Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into perf/urgent

+578 -171
+2 -2
Documentation/flexible-arrays.txt
··· 66 66 entering atomic context, using: 67 67 68 68 int flex_array_prealloc(struct flex_array *array, unsigned int start, 69 - unsigned int end, gfp_t flags); 69 + unsigned int nr_elements, gfp_t flags); 70 70 71 71 This function will ensure that memory for the elements indexed in the range 72 - defined by start and end has been allocated. Thereafter, a 72 + defined by start and nr_elements has been allocated. Thereafter, a 73 73 flex_array_put() call on an element in that range is guaranteed not to 74 74 block. 75 75
+1 -1
Makefile
··· 1 1 VERSION = 2 2 2 PATCHLEVEL = 6 3 3 SUBLEVEL = 39 4 - EXTRAVERSION = -rc5 4 + EXTRAVERSION = -rc6 5 5 NAME = Flesh-Eating Bats with Fangs 6 6 7 7 # *DOCUMENTATION*
+48
arch/arm/configs/at91x40_defconfig
··· 1 + CONFIG_EXPERIMENTAL=y 2 + CONFIG_LOG_BUF_SHIFT=14 3 + CONFIG_EMBEDDED=y 4 + # CONFIG_HOTPLUG is not set 5 + # CONFIG_ELF_CORE is not set 6 + # CONFIG_FUTEX is not set 7 + # CONFIG_TIMERFD is not set 8 + # CONFIG_VM_EVENT_COUNTERS is not set 9 + # CONFIG_COMPAT_BRK is not set 10 + CONFIG_SLAB=y 11 + # CONFIG_LBDAF is not set 12 + # CONFIG_BLK_DEV_BSG is not set 13 + # CONFIG_IOSCHED_DEADLINE is not set 14 + # CONFIG_IOSCHED_CFQ is not set 15 + # CONFIG_MMU is not set 16 + CONFIG_ARCH_AT91=y 17 + CONFIG_ARCH_AT91X40=y 18 + CONFIG_MACH_AT91EB01=y 19 + CONFIG_AT91_EARLY_USART0=y 20 + CONFIG_CPU_ARM7TDMI=y 21 + CONFIG_SET_MEM_PARAM=y 22 + CONFIG_DRAM_BASE=0x01000000 23 + CONFIG_DRAM_SIZE=0x00400000 24 + CONFIG_FLASH_MEM_BASE=0x01400000 25 + CONFIG_PROCESSOR_ID=0x14000040 26 + CONFIG_ZBOOT_ROM_TEXT=0x0 27 + CONFIG_ZBOOT_ROM_BSS=0x0 28 + CONFIG_BINFMT_FLAT=y 29 + # CONFIG_SUSPEND is not set 30 + # CONFIG_FW_LOADER is not set 31 + CONFIG_MTD=y 32 + CONFIG_MTD_PARTITIONS=y 33 + CONFIG_MTD_CHAR=y 34 + CONFIG_MTD_BLOCK=y 35 + CONFIG_MTD_RAM=y 36 + CONFIG_MTD_ROM=y 37 + CONFIG_BLK_DEV_RAM=y 38 + # CONFIG_INPUT is not set 39 + # CONFIG_SERIO is not set 40 + # CONFIG_VT is not set 41 + # CONFIG_DEVKMEM is not set 42 + # CONFIG_HW_RANDOM is not set 43 + # CONFIG_HWMON is not set 44 + # CONFIG_USB_SUPPORT is not set 45 + CONFIG_EXT2_FS=y 46 + # CONFIG_DNOTIFY is not set 47 + CONFIG_ROMFS_FS=y 48 + # CONFIG_ENABLE_MUST_CHECK is not set
+1
arch/arm/mach-at91/Kconfig
··· 83 83 select CPU_ARM926T 84 84 select GENERIC_CLOCKEVENTS 85 85 select HAVE_FB_ATMEL 86 + select HAVE_NET_MACB 86 87 87 88 config ARCH_AT572D940HF 88 89 bool "AT572D940HF"
+6 -1
arch/arm/mach-at91/board-eb01.c
··· 30 30 #include <mach/board.h> 31 31 #include "generic.h" 32 32 33 + static void __init at91eb01_init_irq(void) 34 + { 35 + at91x40_init_interrupts(NULL); 36 + } 37 + 33 38 static void __init at91eb01_map_io(void) 34 39 { 35 40 at91x40_initialize(40000000); ··· 43 38 MACHINE_START(AT91EB01, "Atmel AT91 EB01") 44 39 /* Maintainer: Greg Ungerer <gerg@snapgear.com> */ 45 40 .timer = &at91x40_timer, 46 - .init_irq = at91x40_init_interrupts, 41 + .init_irq = at91eb01_init_irq, 47 42 .map_io = at91eb01_map_io, 48 43 MACHINE_END 49 44
+28
arch/arm/mach-at91/include/mach/cpu.h
··· 27 27 #define ARCH_ID_AT91SAM9G45 0x819b05a0 28 28 #define ARCH_ID_AT91SAM9G45MRL 0x819b05a2 /* aka 9G45-ES2 & non ES lots */ 29 29 #define ARCH_ID_AT91SAM9G45ES 0x819b05a1 /* 9G45-ES (Engineering Sample) */ 30 + #define ARCH_ID_AT91SAM9X5 0x819a05a0 30 31 #define ARCH_ID_AT91CAP9 0x039A03A0 31 32 32 33 #define ARCH_ID_AT91SAM9XE128 0x329973a0 ··· 55 54 #define ARCH_EXID_AT91SAM9M10 0x00000002 56 55 #define ARCH_EXID_AT91SAM9G46 0x00000003 57 56 #define ARCH_EXID_AT91SAM9G45 0x00000004 57 + 58 + #define ARCH_EXID_AT91SAM9G15 0x00000000 59 + #define ARCH_EXID_AT91SAM9G35 0x00000001 60 + #define ARCH_EXID_AT91SAM9X35 0x00000002 61 + #define ARCH_EXID_AT91SAM9G25 0x00000003 62 + #define ARCH_EXID_AT91SAM9X25 0x00000004 58 63 59 64 static inline unsigned long at91_exid_identify(void) 60 65 { ··· 148 141 #define cpu_is_at91sam9m10() (0) 149 142 #define cpu_is_at91sam9g46() (0) 150 143 #define cpu_is_at91sam9m11() (0) 144 + #endif 145 + 146 + #ifdef CONFIG_ARCH_AT91SAM9X5 147 + #define cpu_is_at91sam9x5() (at91_cpu_identify() == ARCH_ID_AT91SAM9X5) 148 + #define cpu_is_at91sam9g15() (cpu_is_at91sam9x5() && \ 149 + (at91_exid_identify() == ARCH_EXID_AT91SAM9G15)) 150 + #define cpu_is_at91sam9g35() (cpu_is_at91sam9x5() && \ 151 + (at91_exid_identify() == ARCH_EXID_AT91SAM9G35)) 152 + #define cpu_is_at91sam9x35() (cpu_is_at91sam9x5() && \ 153 + (at91_exid_identify() == ARCH_EXID_AT91SAM9X35)) 154 + #define cpu_is_at91sam9g25() (cpu_is_at91sam9x5() && \ 155 + (at91_exid_identify() == ARCH_EXID_AT91SAM9G25)) 156 + #define cpu_is_at91sam9x25() (cpu_is_at91sam9x5() && \ 157 + (at91_exid_identify() == ARCH_EXID_AT91SAM9X25)) 158 + #else 159 + #define cpu_is_at91sam9x5() (0) 160 + #define cpu_is_at91sam9g15() (0) 161 + #define cpu_is_at91sam9g35() (0) 162 + #define cpu_is_at91sam9x35() (0) 163 + #define cpu_is_at91sam9g25() (0) 164 + #define cpu_is_at91sam9x25() (0) 151 165 #endif 152 166 153 167 #ifdef CONFIG_ARCH_AT91CAP9
+1 -1
arch/x86/kernel/cpu/amd.c
··· 698 698 */ 699 699 700 700 const int amd_erratum_400[] = 701 - AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0xf, 0x41, 0x2, 0xff, 0xf), 701 + AMD_OSVW_ERRATUM(1, AMD_MODEL_RANGE(0x0f, 0x4, 0x2, 0xff, 0xf), 702 702 AMD_MODEL_RANGE(0x10, 0x2, 0x1, 0xff, 0xf)); 703 703 EXPORT_SYMBOL_GPL(amd_erratum_400); 704 704
+6 -6
arch/x86/kernel/reboot_32.S
··· 21 21 /* Get our own relocated address */ 22 22 call 1f 23 23 1: popl %ebx 24 - subl $1b, %ebx 24 + subl $(1b - r_base), %ebx 25 25 26 26 /* Compute the equivalent real-mode segment */ 27 27 movl %ebx, %ecx 28 28 shrl $4, %ecx 29 29 30 30 /* Patch post-real-mode segment jump */ 31 - movw dispatch_table(%ebx,%eax,2),%ax 32 - movw %ax, 101f(%ebx) 33 - movw %cx, 102f(%ebx) 31 + movw (dispatch_table - r_base)(%ebx,%eax,2),%ax 32 + movw %ax, (101f - r_base)(%ebx) 33 + movw %cx, (102f - r_base)(%ebx) 34 34 35 35 /* Set up the IDT for real mode. */ 36 - lidtl machine_real_restart_idt(%ebx) 36 + lidtl (machine_real_restart_idt - r_base)(%ebx) 37 37 38 38 /* 39 39 * Set up a GDT from which we can load segment descriptors for real 40 40 * mode. The GDT is not used in real mode; it is just needed here to 41 41 * prepare the descriptors. 42 42 */ 43 - lgdtl machine_real_restart_gdt(%ebx) 43 + lgdtl (machine_real_restart_gdt - r_base)(%ebx) 44 44 45 45 /* 46 46 * Load the data segment registers with 16-bit compatible values
+1 -1
arch/x86/mm/numa_64.c
··· 306 306 bi->end = min(bi->end, high); 307 307 308 308 /* and there's no empty block */ 309 - if (bi->start == bi->end) { 309 + if (bi->start >= bi->end) { 310 310 numa_remove_memblk_from(i--, mi); 311 311 continue; 312 312 }
+124 -1
arch/x86/xen/mmu.c
··· 1463 1463 return ret; 1464 1464 } 1465 1465 1466 + #ifdef CONFIG_X86_64 1467 + static __initdata u64 __last_pgt_set_rw = 0; 1468 + static __initdata u64 __pgt_buf_start = 0; 1469 + static __initdata u64 __pgt_buf_end = 0; 1470 + static __initdata u64 __pgt_buf_top = 0; 1471 + /* 1472 + * As a consequence of the commit: 1473 + * 1474 + * commit 4b239f458c229de044d6905c2b0f9fe16ed9e01e 1475 + * Author: Yinghai Lu <yinghai@kernel.org> 1476 + * Date: Fri Dec 17 16:58:28 2010 -0800 1477 + * 1478 + * x86-64, mm: Put early page table high 1479 + * 1480 + * at some point init_memory_mapping is going to reach the pagetable pages 1481 + * area and map those pages too (mapping them as normal memory that falls 1482 + * in the range of addresses passed to init_memory_mapping as argument). 1483 + * Some of those pages are already pagetable pages (they are in the range 1484 + * pgt_buf_start-pgt_buf_end) therefore they are going to be mapped RO and 1485 + * everything is fine. 1486 + * Some of these pages are not pagetable pages yet (they fall in the range 1487 + * pgt_buf_end-pgt_buf_top; for example the page at pgt_buf_end) so they 1488 + * are going to be mapped RW. When these pages become pagetable pages and 1489 + * are hooked into the pagetable, xen will find that the guest has already 1490 + * a RW mapping of them somewhere and fail the operation. 1491 + * The reason Xen requires pagetables to be RO is that the hypervisor needs 1492 + * to verify that the pagetables are valid before using them. The validation 1493 + * operations are called "pinning". 1494 + * 1495 + * In order to fix the issue we mark all the pages in the entire range 1496 + * pgt_buf_start-pgt_buf_top as RO, however when the pagetable allocation 1497 + * is completed only the range pgt_buf_start-pgt_buf_end is reserved by 1498 + * init_memory_mapping. Hence the kernel is going to crash as soon as one 1499 + * of the pages in the range pgt_buf_end-pgt_buf_top is reused (b/c those 1500 + * ranges are RO). 1501 + * 1502 + * For this reason, 'mark_rw_past_pgt' is introduced which is called _after_ 1503 + * the init_memory_mapping has completed (in a perfect world we would 1504 + * call this function from init_memory_mapping, but lets ignore that). 1505 + * 1506 + * Because we are called _after_ init_memory_mapping the pgt_buf_[start, 1507 + * end,top] have all changed to new values (b/c init_memory_mapping 1508 + * is called and setting up another new page-table). Hence, the first time 1509 + * we enter this function, we save away the pgt_buf_start value and update 1510 + * the pgt_buf_[end,top]. 1511 + * 1512 + * When we detect that the "old" pgt_buf_start through pgt_buf_end 1513 + * PFNs have been reserved (so memblock_x86_reserve_range has been called), 1514 + * we immediately set out to RW the "old" pgt_buf_end through pgt_buf_top. 1515 + * 1516 + * And then we update those "old" pgt_buf_[end|top] with the new ones 1517 + * so that we can redo this on the next pagetable. 1518 + */ 1519 + static __init void mark_rw_past_pgt(void) { 1520 + 1521 + if (pgt_buf_end > pgt_buf_start) { 1522 + u64 addr, size; 1523 + 1524 + /* Save it away. */ 1525 + if (!__pgt_buf_start) { 1526 + __pgt_buf_start = pgt_buf_start; 1527 + __pgt_buf_end = pgt_buf_end; 1528 + __pgt_buf_top = pgt_buf_top; 1529 + return; 1530 + } 1531 + /* If we get the range that starts at __pgt_buf_end that means 1532 + * the range is reserved, and that in 'init_memory_mapping' 1533 + * the 'memblock_x86_reserve_range' has been called with the 1534 + * outdated __pgt_buf_start, __pgt_buf_end (the "new" 1535 + * pgt_buf_[start|end|top] refer now to a new pagetable. 1536 + * Note: we are called _after_ the pgt_buf_[..] have been 1537 + * updated.*/ 1538 + 1539 + addr = memblock_x86_find_in_range_size(PFN_PHYS(__pgt_buf_start), 1540 + &size, PAGE_SIZE); 1541 + 1542 + /* Still not reserved, meaning 'memblock_x86_reserve_range' 1543 + * hasn't been called yet. Update the _end and _top.*/ 1544 + if (addr == PFN_PHYS(__pgt_buf_start)) { 1545 + __pgt_buf_end = pgt_buf_end; 1546 + __pgt_buf_top = pgt_buf_top; 1547 + return; 1548 + } 1549 + 1550 + /* OK, the area is reserved, meaning it is time for us to 1551 + * set RW for the old end->top PFNs. */ 1552 + 1553 + /* ..unless we had already done this. */ 1554 + if (__pgt_buf_end == __last_pgt_set_rw) 1555 + return; 1556 + 1557 + addr = PFN_PHYS(__pgt_buf_end); 1558 + 1559 + /* set as RW the rest */ 1560 + printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", 1561 + PFN_PHYS(__pgt_buf_end), PFN_PHYS(__pgt_buf_top)); 1562 + 1563 + while (addr < PFN_PHYS(__pgt_buf_top)) { 1564 + make_lowmem_page_readwrite(__va(addr)); 1565 + addr += PAGE_SIZE; 1566 + } 1567 + /* And update everything so that we are ready for the next 1568 + * pagetable (the one created for regions past 4GB) */ 1569 + __last_pgt_set_rw = __pgt_buf_end; 1570 + __pgt_buf_start = pgt_buf_start; 1571 + __pgt_buf_end = pgt_buf_end; 1572 + __pgt_buf_top = pgt_buf_top; 1573 + } 1574 + return; 1575 + } 1576 + #else 1577 + static __init void mark_rw_past_pgt(void) { } 1578 + #endif 1466 1579 static void xen_pgd_free(struct mm_struct *mm, pgd_t *pgd) 1467 1580 { 1468 1581 #ifdef CONFIG_X86_64 ··· 1602 1489 unsigned long pfn = pte_pfn(pte); 1603 1490 1604 1491 /* 1492 + * A bit of optimization. We do not need to call the workaround 1493 + * when xen_set_pte_init is called with a PTE with 0 as PFN. 1494 + * That is b/c the pagetable at that point are just being populated 1495 + * with empty values and we can save some cycles by not calling 1496 + * the 'memblock' code.*/ 1497 + if (pfn) 1498 + mark_rw_past_pgt(); 1499 + /* 1605 1500 * If the new pfn is within the range of the newly allocated 1606 1501 * kernel pagetable, and it isn't being mapped into an 1607 1502 * early_ioremap fixmap slot as a freshly allocated page, make sure 1608 1503 * it is RO. 1609 1504 */ 1610 1505 if (((!is_early_ioremap_ptep(ptep) && 1611 - pfn >= pgt_buf_start && pfn < pgt_buf_end)) || 1506 + pfn >= pgt_buf_start && pfn < pgt_buf_top)) || 1612 1507 (is_early_ioremap_ptep(ptep) && pfn != (pgt_buf_end - 1))) 1613 1508 pte = pte_wrprotect(pte); 1614 1509 ··· 2118 1997 2119 1998 static __init void xen_post_allocator_init(void) 2120 1999 { 2000 + mark_rw_past_pgt(); 2001 + 2121 2002 #ifdef CONFIG_XEN_DEBUG 2122 2003 pv_mmu_ops.make_pte = PV_CALLEE_SAVE(xen_make_pte_debug); 2123 2004 #endif
+2 -2
drivers/block/rbd.c
··· 777 777 ops, 778 778 false, 779 779 GFP_NOIO, pages, bio); 780 - if (IS_ERR(req)) { 780 + if (!req) { 781 781 up_read(&header->snap_rwsem); 782 - ret = PTR_ERR(req); 782 + ret = -ENOMEM; 783 783 goto done_pages; 784 784 } 785 785
+27 -16
drivers/firewire/ohci.c
··· 2199 2199 { 2200 2200 struct fw_ohci *ohci; 2201 2201 unsigned long flags; 2202 - int ret = -EBUSY; 2203 2202 __be32 *next_config_rom; 2204 2203 dma_addr_t uninitialized_var(next_config_rom_bus); 2205 2204 ··· 2239 2240 2240 2241 spin_lock_irqsave(&ohci->lock, flags); 2241 2242 2243 + /* 2244 + * If there is not an already pending config_rom update, 2245 + * push our new allocation into the ohci->next_config_rom 2246 + * and then mark the local variable as null so that we 2247 + * won't deallocate the new buffer. 2248 + * 2249 + * OTOH, if there is a pending config_rom update, just 2250 + * use that buffer with the new config_rom data, and 2251 + * let this routine free the unused DMA allocation. 2252 + */ 2253 + 2242 2254 if (ohci->next_config_rom == NULL) { 2243 2255 ohci->next_config_rom = next_config_rom; 2244 2256 ohci->next_config_rom_bus = next_config_rom_bus; 2245 - 2246 - copy_config_rom(ohci->next_config_rom, config_rom, length); 2247 - 2248 - ohci->next_header = config_rom[0]; 2249 - ohci->next_config_rom[0] = 0; 2250 - 2251 - reg_write(ohci, OHCI1394_ConfigROMmap, 2252 - ohci->next_config_rom_bus); 2253 - ret = 0; 2257 + next_config_rom = NULL; 2254 2258 } 2255 2259 2260 + copy_config_rom(ohci->next_config_rom, config_rom, length); 2261 + 2262 + ohci->next_header = config_rom[0]; 2263 + ohci->next_config_rom[0] = 0; 2264 + 2265 + reg_write(ohci, OHCI1394_ConfigROMmap, ohci->next_config_rom_bus); 2266 + 2256 2267 spin_unlock_irqrestore(&ohci->lock, flags); 2268 + 2269 + /* If we didn't use the DMA allocation, delete it. */ 2270 + if (next_config_rom != NULL) 2271 + dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, 2272 + next_config_rom, next_config_rom_bus); 2257 2273 2258 2274 /* 2259 2275 * Now initiate a bus reset to have the changes take ··· 2277 2263 * controller could need to access it before the bus reset 2278 2264 * takes effect. 2279 2265 */ 2280 - if (ret == 0) 2281 - fw_schedule_bus_reset(&ohci->card, true, true); 2282 - else 2283 - dma_free_coherent(ohci->card.device, CONFIG_ROM_SIZE, 2284 - next_config_rom, next_config_rom_bus); 2285 2266 2286 - return ret; 2267 + fw_schedule_bus_reset(&ohci->card, true, true); 2268 + 2269 + return 0; 2287 2270 } 2288 2271 2289 2272 static void ohci_send_request(struct fw_card *card, struct fw_packet *packet)
+23
drivers/gpu/drm/drm_irq.c
··· 932 932 933 933 void drm_vblank_off(struct drm_device *dev, int crtc) 934 934 { 935 + struct drm_pending_vblank_event *e, *t; 936 + struct timeval now; 935 937 unsigned long irqflags; 938 + unsigned int seq; 936 939 937 940 spin_lock_irqsave(&dev->vbl_lock, irqflags); 938 941 vblank_disable_and_save(dev, crtc); 939 942 DRM_WAKEUP(&dev->vbl_queue[crtc]); 943 + 944 + /* Send any queued vblank events, lest the natives grow disquiet */ 945 + seq = drm_vblank_count_and_time(dev, crtc, &now); 946 + list_for_each_entry_safe(e, t, &dev->vblank_event_list, base.link) { 947 + if (e->pipe != crtc) 948 + continue; 949 + DRM_DEBUG("Sending premature vblank event on disable: \ 950 + wanted %d, current %d\n", 951 + e->event.sequence, seq); 952 + 953 + e->event.sequence = seq; 954 + e->event.tv_sec = now.tv_sec; 955 + e->event.tv_usec = now.tv_usec; 956 + drm_vblank_put(dev, e->pipe); 957 + list_move_tail(&e->base.link, &e->base.file_priv->event_list); 958 + wake_up_interruptible(&e->base.file_priv->event_wait); 959 + trace_drm_vblank_event_delivered(e->base.pid, e->pipe, 960 + e->event.sequence); 961 + } 962 + 940 963 spin_unlock_irqrestore(&dev->vbl_lock, irqflags); 941 964 } 942 965 EXPORT_SYMBOL(drm_vblank_off);
+9 -8
drivers/gpu/drm/radeon/evergreen.c
··· 862 862 SYSTEM_ACCESS_MODE_NOT_IN_SYS | 863 863 SYSTEM_APERTURE_UNMAPPED_ACCESS_PASS_THRU | 864 864 EFFECTIVE_L1_TLB_SIZE(5) | EFFECTIVE_L1_QUEUE_SIZE(5); 865 - WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp); 866 - WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp); 867 - WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp); 865 + if (rdev->flags & RADEON_IS_IGP) { 866 + WREG32(FUS_MC_VM_MD_L1_TLB0_CNTL, tmp); 867 + WREG32(FUS_MC_VM_MD_L1_TLB1_CNTL, tmp); 868 + WREG32(FUS_MC_VM_MD_L1_TLB2_CNTL, tmp); 869 + } else { 870 + WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp); 871 + WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp); 872 + WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp); 873 + } 868 874 WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp); 869 875 WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp); 870 876 WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp); ··· 2928 2922 evergreen_blit_fini(rdev); 2929 2923 rdev->asic->copy = NULL; 2930 2924 dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); 2931 - } 2932 - /* XXX: ontario has problems blitting to gart at the moment */ 2933 - if (rdev->family == CHIP_PALM) { 2934 - rdev->asic->copy = NULL; 2935 - radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size); 2936 2925 } 2937 2926 2938 2927 /* allocate wb buffer */
+5
drivers/gpu/drm/radeon/evergreend.h
··· 221 221 #define MC_VM_MD_L1_TLB0_CNTL 0x2654 222 222 #define MC_VM_MD_L1_TLB1_CNTL 0x2658 223 223 #define MC_VM_MD_L1_TLB2_CNTL 0x265C 224 + 225 + #define FUS_MC_VM_MD_L1_TLB0_CNTL 0x265C 226 + #define FUS_MC_VM_MD_L1_TLB1_CNTL 0x2660 227 + #define FUS_MC_VM_MD_L1_TLB2_CNTL 0x2664 228 + 224 229 #define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x203C 225 230 #define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2038 226 231 #define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2034
+3 -2
drivers/gpu/drm/radeon/radeon_atombios.c
··· 1599 1599 memcpy((u8 *)edid, (u8 *)&fake_edid_record->ucFakeEDIDString[0], 1600 1600 fake_edid_record->ucFakeEDIDLength); 1601 1601 1602 - if (drm_edid_is_valid(edid)) 1602 + if (drm_edid_is_valid(edid)) { 1603 1603 rdev->mode_info.bios_hardcoded_edid = edid; 1604 - else 1604 + rdev->mode_info.bios_hardcoded_edid_size = edid_size; 1605 + } else 1605 1606 kfree(edid); 1606 1607 } 1607 1608 }
+3
drivers/gpu/drm/radeon/radeon_kms.c
··· 234 234 return -EINVAL; 235 235 } 236 236 break; 237 + case RADEON_INFO_FUSION_GART_WORKING: 238 + value = 1; 239 + break; 237 240 default: 238 241 DRM_DEBUG_KMS("Invalid request %d\n", info->request); 239 242 return -EINVAL;
+64 -11
drivers/input/touchscreen/wm831x-ts.c
··· 68 68 unsigned int pd_irq; 69 69 bool pressure; 70 70 bool pen_down; 71 + struct work_struct pd_data_work; 71 72 }; 73 + 74 + static void wm831x_pd_data_work(struct work_struct *work) 75 + { 76 + struct wm831x_ts *wm831x_ts = 77 + container_of(work, struct wm831x_ts, pd_data_work); 78 + 79 + if (wm831x_ts->pen_down) { 80 + enable_irq(wm831x_ts->data_irq); 81 + dev_dbg(wm831x_ts->wm831x->dev, "IRQ PD->DATA done\n"); 82 + } else { 83 + enable_irq(wm831x_ts->pd_irq); 84 + dev_dbg(wm831x_ts->wm831x->dev, "IRQ DATA->PD done\n"); 85 + } 86 + } 72 87 73 88 static irqreturn_t wm831x_ts_data_irq(int irq, void *irq_data) 74 89 { ··· 125 110 } 126 111 127 112 if (!wm831x_ts->pen_down) { 113 + /* Switch from data to pen down */ 114 + dev_dbg(wm831x->dev, "IRQ DATA->PD\n"); 115 + 128 116 disable_irq_nosync(wm831x_ts->data_irq); 129 117 130 118 /* Don't need data any more */ ··· 146 128 ABS_PRESSURE, 0); 147 129 148 130 input_report_key(wm831x_ts->input_dev, BTN_TOUCH, 0); 131 + 132 + schedule_work(&wm831x_ts->pd_data_work); 133 + } else { 134 + input_report_key(wm831x_ts->input_dev, BTN_TOUCH, 1); 149 135 } 150 136 151 137 input_sync(wm831x_ts->input_dev); ··· 163 141 struct wm831x *wm831x = wm831x_ts->wm831x; 164 142 int ena = 0; 165 143 144 + if (wm831x_ts->pen_down) 145 + return IRQ_HANDLED; 146 + 147 + disable_irq_nosync(wm831x_ts->pd_irq); 148 + 166 149 /* Start collecting data */ 167 150 if (wm831x_ts->pressure) 168 151 ena |= WM831X_TCH_Z_ENA; ··· 176 149 WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA | WM831X_TCH_Z_ENA, 177 150 WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA | ena); 178 151 179 - input_report_key(wm831x_ts->input_dev, BTN_TOUCH, 1); 180 - input_sync(wm831x_ts->input_dev); 181 - 182 152 wm831x_set_bits(wm831x, WM831X_INTERRUPT_STATUS_1, 183 153 WM831X_TCHPD_EINT, WM831X_TCHPD_EINT); 184 154 185 155 wm831x_ts->pen_down = true; 186 - enable_irq(wm831x_ts->data_irq); 156 + 157 + /* Switch from pen down to data */ 158 + dev_dbg(wm831x->dev, "IRQ PD->DATA\n"); 159 + schedule_work(&wm831x_ts->pd_data_work); 187 160 188 161 return IRQ_HANDLED; 189 162 } ··· 209 182 struct wm831x_ts *wm831x_ts = input_get_drvdata(idev); 210 183 struct wm831x *wm831x = wm831x_ts->wm831x; 211 184 185 + /* Shut the controller down, disabling all other functionality too */ 212 186 wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, 213 - WM831X_TCH_ENA | WM831X_TCH_CVT_ENA | 214 - WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA | 215 - WM831X_TCH_Z_ENA, 0); 187 + WM831X_TCH_ENA | WM831X_TCH_X_ENA | 188 + WM831X_TCH_Y_ENA | WM831X_TCH_Z_ENA, 0); 216 189 217 - if (wm831x_ts->pen_down) 190 + /* Make sure any pending IRQs are done, the above will prevent 191 + * new ones firing. 192 + */ 193 + synchronize_irq(wm831x_ts->data_irq); 194 + synchronize_irq(wm831x_ts->pd_irq); 195 + 196 + /* Make sure the IRQ completion work is quiesced */ 197 + flush_work_sync(&wm831x_ts->pd_data_work); 198 + 199 + /* If we ended up with the pen down then make sure we revert back 200 + * to pen detection state for the next time we start up. 201 + */ 202 + if (wm831x_ts->pen_down) { 218 203 disable_irq(wm831x_ts->data_irq); 204 + enable_irq(wm831x_ts->pd_irq); 205 + wm831x_ts->pen_down = false; 206 + } 219 207 } 220 208 221 209 static __devinit int wm831x_ts_probe(struct platform_device *pdev) ··· 240 198 struct wm831x_pdata *core_pdata = dev_get_platdata(pdev->dev.parent); 241 199 struct wm831x_touch_pdata *pdata = NULL; 242 200 struct input_dev *input_dev; 243 - int error; 201 + int error, irqf; 244 202 245 203 if (core_pdata) 246 204 pdata = core_pdata->touch; ··· 254 212 255 213 wm831x_ts->wm831x = wm831x; 256 214 wm831x_ts->input_dev = input_dev; 215 + INIT_WORK(&wm831x_ts->pd_data_work, wm831x_pd_data_work); 257 216 258 217 /* 259 218 * If we have a direct IRQ use it, otherwise use the interrupt ··· 313 270 wm831x_set_bits(wm831x, WM831X_TOUCH_CONTROL_1, 314 271 WM831X_TCH_RATE_MASK, 6); 315 272 273 + if (pdata && pdata->data_irqf) 274 + irqf = pdata->data_irqf; 275 + else 276 + irqf = IRQF_TRIGGER_HIGH; 277 + 316 278 error = request_threaded_irq(wm831x_ts->data_irq, 317 279 NULL, wm831x_ts_data_irq, 318 - IRQF_ONESHOT, 280 + irqf | IRQF_ONESHOT, 319 281 "Touchscreen data", wm831x_ts); 320 282 if (error) { 321 283 dev_err(&pdev->dev, "Failed to request data IRQ %d: %d\n", ··· 329 281 } 330 282 disable_irq(wm831x_ts->data_irq); 331 283 284 + if (pdata && pdata->pd_irqf) 285 + irqf = pdata->pd_irqf; 286 + else 287 + irqf = IRQF_TRIGGER_HIGH; 288 + 332 289 error = request_threaded_irq(wm831x_ts->pd_irq, 333 290 NULL, wm831x_ts_pen_down_irq, 334 - IRQF_ONESHOT, 291 + irqf | IRQF_ONESHOT, 335 292 "Touchscreen pen down", wm831x_ts); 336 293 if (error) { 337 294 dev_err(&pdev->dev, "Failed to request pen down IRQ %d: %d\n",
+2
drivers/media/dvb/dvb-usb/Kconfig
··· 356 356 select DVB_TDA826X if !DVB_FE_CUSTOMISE 357 357 select DVB_STV0288 if !DVB_FE_CUSTOMISE 358 358 select DVB_IX2505V if !DVB_FE_CUSTOMISE 359 + select DVB_STV0299 if !DVB_FE_CUSTOMISE 360 + select DVB_PLL if !DVB_FE_CUSTOMISE 359 361 help 360 362 Say Y here to support the LME DM04/QQBOX DVB-S USB2.0 . 361 363
+1
drivers/media/dvb/ngene/ngene-core.c
··· 1520 1520 if (dev->ci.en && (io & NGENE_IO_TSOUT)) { 1521 1521 dvb_ca_en50221_init(adapter, dev->ci.en, 0, 1); 1522 1522 set_transfer(chan, 1); 1523 + chan->dev->channel[2].DataFormatFlags = DF_SWAP32; 1523 1524 set_transfer(&chan->dev->channel[2], 1); 1524 1525 dvb_register_device(adapter, &chan->ci_dev, 1525 1526 &ngene_dvbdev_ci, (void *) chan,
+1 -1
drivers/media/radio/saa7706h.c
··· 376 376 v4l_info(client, "chip found @ 0x%02x (%s)\n", 377 377 client->addr << 1, client->adapter->name); 378 378 379 - state = kmalloc(sizeof(struct saa7706h_state), GFP_KERNEL); 379 + state = kzalloc(sizeof(struct saa7706h_state), GFP_KERNEL); 380 380 if (state == NULL) 381 381 return -ENOMEM; 382 382 sd = &state->sd;
+1 -1
drivers/media/radio/tef6862.c
··· 176 176 v4l_info(client, "chip found @ 0x%02x (%s)\n", 177 177 client->addr << 1, client->adapter->name); 178 178 179 - state = kmalloc(sizeof(struct tef6862_state), GFP_KERNEL); 179 + state = kzalloc(sizeof(struct tef6862_state), GFP_KERNEL); 180 180 if (state == NULL) 181 181 return -ENOMEM; 182 182 state->freq = TEF6862_LO_FREQ;
+27 -4
drivers/media/rc/imon.c
··· 46 46 #define MOD_AUTHOR "Jarod Wilson <jarod@wilsonet.com>" 47 47 #define MOD_DESC "Driver for SoundGraph iMON MultiMedia IR/Display" 48 48 #define MOD_NAME "imon" 49 - #define MOD_VERSION "0.9.2" 49 + #define MOD_VERSION "0.9.3" 50 50 51 51 #define DISPLAY_MINOR_BASE 144 52 52 #define DEVICE_NAME "lcd%d" ··· 460 460 } 461 461 462 462 /** 463 - * Sends a packet to the device -- this function must be called 464 - * with ictx->lock held. 463 + * Sends a packet to the device -- this function must be called with 464 + * ictx->lock held, or its unlock/lock sequence while waiting for tx 465 + * to complete can/will lead to a deadlock. 465 466 */ 466 467 static int send_packet(struct imon_context *ictx) 467 468 { ··· 992 991 * the iMON remotes, and those used by the Windows MCE remotes (which is 993 992 * really just RC-6), but only one or the other at a time, as the signals 994 993 * are decoded onboard the receiver. 994 + * 995 + * This function gets called two different ways, one way is from 996 + * rc_register_device, for initial protocol selection/setup, and the other is 997 + * via a userspace-initiated protocol change request, either by direct sysfs 998 + * prodding or by something like ir-keytable. In the rc_register_device case, 999 + * the imon context lock is already held, but when initiated from userspace, 1000 + * it is not, so we must acquire it prior to calling send_packet, which 1001 + * requires that the lock is held. 995 1002 */ 996 1003 static int imon_ir_change_protocol(struct rc_dev *rc, u64 rc_type) 997 1004 { 998 1005 int retval; 999 1006 struct imon_context *ictx = rc->priv; 1000 1007 struct device *dev = ictx->dev; 1008 + bool unlock = false; 1001 1009 unsigned char ir_proto_packet[] = { 1002 1010 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86 }; 1003 1011 ··· 1039 1029 1040 1030 memcpy(ictx->usb_tx_buf, &ir_proto_packet, sizeof(ir_proto_packet)); 1041 1031 1032 + if (!mutex_is_locked(&ictx->lock)) { 1033 + unlock = true; 1034 + mutex_lock(&ictx->lock); 1035 + } 1036 + 1042 1037 retval = send_packet(ictx); 1043 1038 if (retval) 1044 1039 goto out; ··· 1052 1037 ictx->pad_mouse = false; 1053 1038 1054 1039 out: 1040 + if (unlock) 1041 + mutex_unlock(&ictx->lock); 1042 + 1055 1043 return retval; 1056 1044 } 1057 1045 ··· 2152 2134 goto rdev_setup_failed; 2153 2135 } 2154 2136 2137 + mutex_unlock(&ictx->lock); 2155 2138 return ictx; 2156 2139 2157 2140 rdev_setup_failed: ··· 2224 2205 goto urb_submit_failed; 2225 2206 } 2226 2207 2208 + mutex_unlock(&ictx->lock); 2227 2209 return ictx; 2228 2210 2229 2211 urb_submit_failed: ··· 2319 2299 usb_set_intfdata(interface, ictx); 2320 2300 2321 2301 if (ifnum == 0) { 2302 + mutex_lock(&ictx->lock); 2303 + 2322 2304 if (product == 0xffdc && ictx->rf_device) { 2323 2305 sysfs_err = sysfs_create_group(&interface->dev.kobj, 2324 2306 &imon_rf_attr_group); ··· 2331 2309 2332 2310 if (ictx->display_supported) 2333 2311 imon_init_display(ictx, interface); 2312 + 2313 + mutex_unlock(&ictx->lock); 2334 2314 } 2335 2315 2336 2316 dev_info(dev, "iMON device (%04x:%04x, intf%d) on " 2337 2317 "usb<%d:%d> initialized\n", vendor, product, ifnum, 2338 2318 usbdev->bus->busnum, usbdev->devnum); 2339 2319 2340 - mutex_unlock(&ictx->lock); 2341 2320 mutex_unlock(&driver_lock); 2342 2321 2343 2322 return 0;
+1
drivers/media/rc/ite-cir.c
··· 36 36 #include <linux/io.h> 37 37 #include <linux/interrupt.h> 38 38 #include <linux/sched.h> 39 + #include <linux/delay.h> 39 40 #include <linux/slab.h> 40 41 #include <linux/input.h> 41 42 #include <linux/bitops.h>
+2
drivers/media/rc/mceusb.c
··· 220 220 { USB_DEVICE(VENDOR_PHILIPS, 0x206c) }, 221 221 /* Philips/Spinel plus IR transceiver for ASUS */ 222 222 { USB_DEVICE(VENDOR_PHILIPS, 0x2088) }, 223 + /* Philips IR transceiver (Dell branded) */ 224 + { USB_DEVICE(VENDOR_PHILIPS, 0x2093) }, 223 225 /* Realtek MCE IR Receiver and card reader */ 224 226 { USB_DEVICE(VENDOR_REALTEK, 0x0161), 225 227 .driver_info = MULTIFUNCTION },
+3 -1
drivers/media/rc/rc-main.c
··· 707 707 { 708 708 struct rc_dev *rdev = input_get_drvdata(idev); 709 709 710 - rdev->close(rdev); 710 + if (rdev) 711 + rdev->close(rdev); 711 712 } 712 713 713 714 /* class for /sys/class/rc */ ··· 734 733 { RC_TYPE_SONY, "sony" }, 735 734 { RC_TYPE_RC5_SZ, "rc-5-sz" }, 736 735 { RC_TYPE_LIRC, "lirc" }, 736 + { RC_TYPE_OTHER, "other" }, 737 737 }; 738 738 739 739 #define PROTO_NONE "none"
+1 -1
drivers/media/video/m52790.c
··· 174 174 v4l_info(client, "chip found @ 0x%x (%s)\n", 175 175 client->addr << 1, client->adapter->name); 176 176 177 - state = kmalloc(sizeof(struct m52790_state), GFP_KERNEL); 177 + state = kzalloc(sizeof(struct m52790_state), GFP_KERNEL); 178 178 if (state == NULL) 179 179 return -ENOMEM; 180 180
+1 -1
drivers/media/video/tda9840.c
··· 171 171 v4l_info(client, "chip found @ 0x%x (%s)\n", 172 172 client->addr << 1, client->adapter->name); 173 173 174 - sd = kmalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); 174 + sd = kzalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); 175 175 if (sd == NULL) 176 176 return -ENOMEM; 177 177 v4l2_i2c_subdev_init(sd, client, &tda9840_ops);
+1 -1
drivers/media/video/tea6415c.c
··· 152 152 153 153 v4l_info(client, "chip found @ 0x%x (%s)\n", 154 154 client->addr << 1, client->adapter->name); 155 - sd = kmalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); 155 + sd = kzalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); 156 156 if (sd == NULL) 157 157 return -ENOMEM; 158 158 v4l2_i2c_subdev_init(sd, client, &tea6415c_ops);
+1 -1
drivers/media/video/tea6420.c
··· 125 125 v4l_info(client, "chip found @ 0x%x (%s)\n", 126 126 client->addr << 1, client->adapter->name); 127 127 128 - sd = kmalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); 128 + sd = kzalloc(sizeof(struct v4l2_subdev), GFP_KERNEL); 129 129 if (sd == NULL) 130 130 return -ENOMEM; 131 131 v4l2_i2c_subdev_init(sd, client, &tea6420_ops);
+1 -1
drivers/media/video/upd64031a.c
··· 230 230 v4l_info(client, "chip found @ 0x%x (%s)\n", 231 231 client->addr << 1, client->adapter->name); 232 232 233 - state = kmalloc(sizeof(struct upd64031a_state), GFP_KERNEL); 233 + state = kzalloc(sizeof(struct upd64031a_state), GFP_KERNEL); 234 234 if (state == NULL) 235 235 return -ENOMEM; 236 236 sd = &state->sd;
+1 -1
drivers/media/video/upd64083.c
··· 202 202 v4l_info(client, "chip found @ 0x%x (%s)\n", 203 203 client->addr << 1, client->adapter->name); 204 204 205 - state = kmalloc(sizeof(struct upd64083_state), GFP_KERNEL); 205 + state = kzalloc(sizeof(struct upd64083_state), GFP_KERNEL); 206 206 if (state == NULL) 207 207 return -ENOMEM; 208 208 sd = &state->sd;
+3 -6
drivers/mfd/omap-usb-host.c
··· 25 25 #include <linux/dma-mapping.h> 26 26 #include <linux/spinlock.h> 27 27 #include <linux/gpio.h> 28 - #include <linux/regulator/consumer.h> 29 28 #include <plat/usb.h> 30 29 31 30 #define USBHS_DRIVER_NAME "usbhs-omap" ··· 699 700 dev_dbg(dev, "starting TI HSUSB Controller\n"); 700 701 if (!pdata) { 701 702 dev_dbg(dev, "missing platform_data\n"); 702 - ret = -ENODEV; 703 - goto end_enable; 703 + return -ENODEV; 704 704 } 705 705 706 706 spin_lock_irqsave(&omap->lock, flags); ··· 913 915 914 916 end_count: 915 917 omap->count++; 916 - goto end_enable; 918 + spin_unlock_irqrestore(&omap->lock, flags); 919 + return 0; 917 920 918 921 err_tll: 919 922 if (pdata->ehci_data->phy_reset) { ··· 930 931 clk_disable(omap->usbhost_fs_fck); 931 932 clk_disable(omap->usbhost_hs_fck); 932 933 clk_disable(omap->usbhost_ick); 933 - 934 - end_enable: 935 934 spin_unlock_irqrestore(&omap->lock, flags); 936 935 return ret; 937 936 }
+1
drivers/mmc/core/bus.c
··· 284 284 type = "SD-combo"; 285 285 if (mmc_card_blockaddr(card)) 286 286 type = "SDHC-combo"; 287 + break; 287 288 default: 288 289 type = "?"; 289 290 break;
+4 -5
drivers/mmc/core/host.c
··· 94 94 spin_unlock_irqrestore(&host->clk_lock, flags); 95 95 return; 96 96 } 97 - mutex_lock(&host->clk_gate_mutex); 97 + mmc_claim_host(host); 98 98 spin_lock_irqsave(&host->clk_lock, flags); 99 99 if (!host->clk_requests) { 100 100 spin_unlock_irqrestore(&host->clk_lock, flags); ··· 104 104 pr_debug("%s: gated MCI clock\n", mmc_hostname(host)); 105 105 } 106 106 spin_unlock_irqrestore(&host->clk_lock, flags); 107 - mutex_unlock(&host->clk_gate_mutex); 107 + mmc_release_host(host); 108 108 } 109 109 110 110 /* ··· 130 130 { 131 131 unsigned long flags; 132 132 133 - mutex_lock(&host->clk_gate_mutex); 133 + mmc_claim_host(host); 134 134 spin_lock_irqsave(&host->clk_lock, flags); 135 135 if (host->clk_gated) { 136 136 spin_unlock_irqrestore(&host->clk_lock, flags); ··· 140 140 } 141 141 host->clk_requests++; 142 142 spin_unlock_irqrestore(&host->clk_lock, flags); 143 - mutex_unlock(&host->clk_gate_mutex); 143 + mmc_release_host(host); 144 144 } 145 145 146 146 /** ··· 215 215 host->clk_gated = false; 216 216 INIT_WORK(&host->clk_gate_work, mmc_host_clk_gate_work); 217 217 spin_lock_init(&host->clk_lock); 218 - mutex_init(&host->clk_gate_mutex); 219 218 } 220 219 221 220 /**
+1 -1
drivers/mmc/host/omap.c
··· 832 832 return IRQ_HANDLED; 833 833 } 834 834 835 - if (end_command) 835 + if (end_command && host->cmd) 836 836 mmc_omap_cmd_done(host, host->cmd); 837 837 if (host->data != NULL) { 838 838 if (transfer_error)
+1
drivers/mmc/host/sdhci-pci.c
··· 957 957 host->ioaddr = pci_ioremap_bar(pdev, bar); 958 958 if (!host->ioaddr) { 959 959 dev_err(&pdev->dev, "failed to remap registers\n"); 960 + ret = -ENOMEM; 960 961 goto release; 961 962 } 962 963
+8 -1
drivers/mmc/host/sdhci.c
··· 1334 1334 1335 1335 host = (struct sdhci_host*)param; 1336 1336 1337 + /* 1338 + * If this tasklet gets rescheduled while running, it will 1339 + * be run again afterwards but without any active request. 1340 + */ 1341 + if (!host->mrq) 1342 + return; 1343 + 1337 1344 spin_lock_irqsave(&host->lock, flags); 1338 1345 1339 1346 del_timer(&host->timer); ··· 1352 1345 * upon error conditions. 1353 1346 */ 1354 1347 if (!(host->flags & SDHCI_DEVICE_DEAD) && 1355 - (mrq->cmd->error || 1348 + ((mrq->cmd && mrq->cmd->error) || 1356 1349 (mrq->data && (mrq->data->error || 1357 1350 (mrq->data->stop && mrq->data->stop->error))) || 1358 1351 (host->quirks & SDHCI_QUIRK_RESET_AFTER_REQUEST))) {
+5 -5
drivers/mmc/host/tmio_mmc_pio.c
··· 728 728 tmio_mmc_set_clock(host, ios->clock); 729 729 730 730 /* Power sequence - OFF -> UP -> ON */ 731 - if (ios->power_mode == MMC_POWER_OFF || !ios->clock) { 731 + if (ios->power_mode == MMC_POWER_UP) { 732 + /* power up SD bus */ 733 + if (host->set_pwr) 734 + host->set_pwr(host->pdev, 1); 735 + } else if (ios->power_mode == MMC_POWER_OFF || !ios->clock) { 732 736 /* power down SD bus */ 733 737 if (ios->power_mode == MMC_POWER_OFF && host->set_pwr) 734 738 host->set_pwr(host->pdev, 0); 735 739 tmio_mmc_clk_stop(host); 736 - } else if (ios->power_mode == MMC_POWER_UP) { 737 - /* power up SD bus */ 738 - if (host->set_pwr) 739 - host->set_pwr(host->pdev, 1); 740 740 } else { 741 741 /* start bus clock */ 742 742 tmio_mmc_clk_start(host);
-4
drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c
··· 2288 2288 free_netdev(dev); 2289 2289 return NULL; 2290 2290 } 2291 - 2292 - EXPORT_SYMBOL(init_ft1000_card); 2293 - EXPORT_SYMBOL(stop_ft1000_card); 2294 - EXPORT_SYMBOL(flarion_ft1000_cnt);
-3
drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c
··· 214 214 remove_proc_entry(FT1000_PROC, init_net.proc_net); 215 215 unregister_netdevice_notifier(&ft1000_netdev_notifier); 216 216 } 217 - 218 - EXPORT_SYMBOL(ft1000InitProc); 219 - EXPORT_SYMBOL(ft1000CleanupProc);
+1 -1
drivers/staging/gma500/Kconfig
··· 1 1 config DRM_PSB 2 2 tristate "Intel GMA500 KMS Framebuffer" 3 - depends on DRM && PCI 3 + depends on DRM && PCI && X86 4 4 select FB_CFB_COPYAREA 5 5 select FB_CFB_FILLRECT 6 6 select FB_CFB_IMAGEBLIT
+1
drivers/staging/intel_sst/intelmid_v1_control.c
··· 28 28 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 29 29 30 30 #include <linux/pci.h> 31 + #include <linux/delay.h> 31 32 #include <linux/file.h> 32 33 #include <asm/mrst.h> 33 34 #include <sound/pcm.h>
+1
drivers/staging/intel_sst/intelmid_v2_control.c
··· 29 29 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 30 30 31 31 #include <linux/pci.h> 32 + #include <linux/delay.h> 32 33 #include <linux/file.h> 33 34 #include "intel_sst.h" 34 35 #include "intelmid_snd_control.h"
+1
drivers/staging/olpc_dcon/olpc_dcon_xo_1.c
··· 12 12 */ 13 13 #include <linux/cs5535.h> 14 14 #include <linux/gpio.h> 15 + #include <linux/delay.h> 15 16 #include <asm/olpc.h> 16 17 17 18 #include "olpc_dcon.h"
+1 -1
drivers/staging/rts_pstor/debug.h
··· 28 28 29 29 #define RTSX_STOR "rts_pstor: " 30 30 31 - #if CONFIG_RTS_PSTOR_DEBUG 31 + #ifdef CONFIG_RTS_PSTOR_DEBUG 32 32 #define RTSX_DEBUGP(x...) printk(KERN_DEBUG RTSX_STOR x) 33 33 #define RTSX_DEBUGPN(x...) printk(KERN_DEBUG x) 34 34 #define RTSX_DEBUGPX(x...) printk(x)
+1
drivers/staging/rts_pstor/ms.c
··· 23 23 #include <linux/blkdev.h> 24 24 #include <linux/kthread.h> 25 25 #include <linux/sched.h> 26 + #include <linux/vmalloc.h> 26 27 27 28 #include "rtsx.h" 28 29 #include "rtsx_transport.h"
+3 -2
drivers/staging/rts_pstor/rtsx_chip.c
··· 24 24 #include <linux/kthread.h> 25 25 #include <linux/sched.h> 26 26 #include <linux/workqueue.h> 27 + #include <linux/vmalloc.h> 27 28 28 29 #include "rtsx.h" 29 30 #include "rtsx_transport.h" ··· 1312 1311 1313 1312 #ifdef SUPPORT_OCP 1314 1313 if (CHECK_LUN_MODE(chip, SD_MS_2LUN)) { 1315 - #if CONFIG_RTS_PSTOR_DEBUG 1314 + #ifdef CONFIG_RTS_PSTOR_DEBUG 1316 1315 if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER | MS_OC_NOW | MS_OC_EVER)) { 1317 1316 RTSX_DEBUGP("Over current, OCPSTAT is 0x%x\n", chip->ocp_stat); 1318 1317 } 1319 - #endif 1318 + #endif 1320 1319 1321 1320 if (chip->ocp_stat & (SD_OC_NOW | SD_OC_EVER)) { 1322 1321 if (chip->card_exist & SD_CARD) {
+1
drivers/staging/rts_pstor/rtsx_scsi.c
··· 23 23 #include <linux/blkdev.h> 24 24 #include <linux/kthread.h> 25 25 #include <linux/sched.h> 26 + #include <linux/vmalloc.h> 26 27 27 28 #include "rtsx.h" 28 29 #include "rtsx_transport.h"
+2 -2
drivers/staging/rts_pstor/sd.c
··· 909 909 RTSX_WRITE_REG(chip, SD_VPCLK0_CTL, PHASE_NOT_RESET, PHASE_NOT_RESET); 910 910 RTSX_WRITE_REG(chip, CLK_CTL, CHANGE_CLK, 0); 911 911 } else { 912 - #if CONFIG_RTS_PSTOR_DEBUG 912 + #ifdef CONFIG_RTS_PSTOR_DEBUG 913 913 rtsx_read_register(chip, SD_VP_CTL, &val); 914 914 RTSX_DEBUGP("SD_VP_CTL: 0x%x\n", val); 915 915 rtsx_read_register(chip, SD_DCMPS_CTL, &val); ··· 958 958 return STATUS_SUCCESS; 959 959 960 960 Fail: 961 - #if CONFIG_RTS_PSTOR_DEBUG 961 + #ifdef CONFIG_RTS_PSTOR_DEBUG 962 962 rtsx_read_register(chip, SD_VP_CTL, &val); 963 963 RTSX_DEBUGP("SD_VP_CTL: 0x%x\n", val); 964 964 rtsx_read_register(chip, SD_DCMPS_CTL, &val);
+1 -1
drivers/staging/rts_pstor/trace.h
··· 82 82 #define TRACE_GOTO(chip, label) goto label 83 83 #endif 84 84 85 - #if CONFIG_RTS_PSTOR_DEBUG 85 + #ifdef CONFIG_RTS_PSTOR_DEBUG 86 86 static inline void rtsx_dump(u8 *buf, int buf_len) 87 87 { 88 88 int i;
+1
drivers/staging/rts_pstor/xd.c
··· 23 23 #include <linux/blkdev.h> 24 24 #include <linux/kthread.h> 25 25 #include <linux/sched.h> 26 + #include <linux/vmalloc.h> 26 27 27 28 #include "rtsx.h" 28 29 #include "rtsx_transport.h"
+1
drivers/staging/solo6x10/Kconfig
··· 2 2 tristate "Softlogic 6x10 MPEG codec cards" 3 3 depends on PCI && VIDEO_DEV && SND && I2C 4 4 select VIDEOBUF_DMA_SG 5 + select SND_PCM 5 6 ---help--- 6 7 This driver supports the Softlogic based MPEG-4 and h.264 codec 7 8 codec cards.
+5 -6
drivers/staging/usbip/vhci_hcd.c
··· 876 876 } 877 877 878 878 /* kill threads related to this sdev, if v.c. exists */ 879 - kthread_stop(vdev->ud.tcp_rx); 880 - kthread_stop(vdev->ud.tcp_tx); 879 + if (vdev->ud.tcp_rx) 880 + kthread_stop(vdev->ud.tcp_rx); 881 + if (vdev->ud.tcp_tx) 882 + kthread_stop(vdev->ud.tcp_tx); 881 883 882 884 usbip_uinfo("stop threads\n"); 883 885 ··· 950 948 static void vhci_device_init(struct vhci_device *vdev) 951 949 { 952 950 memset(vdev, 0, sizeof(*vdev)); 953 - 954 - vdev->ud.tcp_rx = kthread_create(vhci_rx_loop, &vdev->ud, "vhci_rx"); 955 - vdev->ud.tcp_tx = kthread_create(vhci_tx_loop, &vdev->ud, "vhci_tx"); 956 951 957 952 vdev->ud.side = USBIP_VHCI; 958 953 vdev->ud.status = VDEV_ST_NULL; ··· 1138 1139 usbip_uerr("create hcd failed\n"); 1139 1140 return -ENOMEM; 1140 1141 } 1141 - 1142 + hcd->has_tt = 1; 1142 1143 1143 1144 /* this is private data for vhci_hcd */ 1144 1145 the_controller = hcd_to_vhci(hcd);
+4 -3
drivers/staging/usbip/vhci_sysfs.c
··· 21 21 #include "vhci.h" 22 22 23 23 #include <linux/in.h> 24 + #include <linux/kthread.h> 24 25 25 26 /* TODO: refine locking ?*/ 26 27 ··· 221 220 vdev->ud.tcp_socket = socket; 222 221 vdev->ud.status = VDEV_ST_NOTASSIGNED; 223 222 224 - wake_up_process(vdev->ud.tcp_rx); 225 - wake_up_process(vdev->ud.tcp_tx); 226 - 227 223 spin_unlock(&vdev->ud.lock); 228 224 spin_unlock(&the_controller->lock); 229 225 /* end the lock */ 226 + 227 + vdev->ud.tcp_rx = kthread_run(vhci_rx_loop, &vdev->ud, "vhci_rx"); 228 + vdev->ud.tcp_tx = kthread_run(vhci_tx_loop, &vdev->ud, "vhci_tx"); 230 229 231 230 rh_port_connect(rhport, speed); 232 231
+1 -1
drivers/staging/wlan-ng/cfg80211.c
··· 273 273 } 274 274 275 275 int prism2_set_default_key(struct wiphy *wiphy, struct net_device *dev, 276 - u8 key_index) 276 + u8 key_index, bool unicast, bool multicast) 277 277 { 278 278 wlandevice_t *wlandev = dev->ml_priv; 279 279
+20
drivers/usb/host/ehci-omap.c
··· 40 40 #include <linux/slab.h> 41 41 #include <linux/usb/ulpi.h> 42 42 #include <plat/usb.h> 43 + #include <linux/regulator/consumer.h> 43 44 44 45 /* EHCI Register Set */ 45 46 #define EHCI_INSNREG04 (0xA0) ··· 119 118 struct ehci_hcd *omap_ehci; 120 119 int ret = -ENODEV; 121 120 int irq; 121 + int i; 122 + char supply[7]; 122 123 123 124 if (usb_disabled()) 124 125 return -ENODEV; ··· 160 157 hcd->rsrc_start = res->start; 161 158 hcd->rsrc_len = resource_size(res); 162 159 hcd->regs = regs; 160 + 161 + /* get ehci regulator and enable */ 162 + for (i = 0 ; i < OMAP3_HS_USB_PORTS ; i++) { 163 + if (pdata->port_mode[i] != OMAP_EHCI_PORT_MODE_PHY) { 164 + pdata->regulator[i] = NULL; 165 + continue; 166 + } 167 + snprintf(supply, sizeof(supply), "hsusb%d", i); 168 + pdata->regulator[i] = regulator_get(dev, supply); 169 + if (IS_ERR(pdata->regulator[i])) { 170 + pdata->regulator[i] = NULL; 171 + dev_dbg(dev, 172 + "failed to get ehci port%d regulator\n", i); 173 + } else { 174 + regulator_enable(pdata->regulator[i]); 175 + } 176 + } 163 177 164 178 ret = omap_usbhs_enable(dev); 165 179 if (ret) {
+1
drivers/usb/host/isp1760-hcd.c
··· 1633 1633 ints[i].qh = NULL; 1634 1634 ints[i].qtd = NULL; 1635 1635 1636 + urb->status = status; 1636 1637 isp1760_urb_done(hcd, urb); 1637 1638 if (qtd) 1638 1639 pe(hcd, qh, qtd);
+17 -2
drivers/usb/host/xhci-hub.c
··· 777 777 if (t1 != t2) 778 778 xhci_writel(xhci, t2, port_array[port_index]); 779 779 780 - if (DEV_HIGHSPEED(t1)) { 780 + if (hcd->speed != HCD_USB3) { 781 781 /* enable remote wake up for USB 2.0 */ 782 782 u32 __iomem *addr; 783 783 u32 tmp; ··· 866 866 temp |= PORT_LINK_STROBE | XDEV_U0; 867 867 xhci_writel(xhci, temp, port_array[port_index]); 868 868 } 869 + /* wait for the port to enter U0 and report port link 870 + * state change. 871 + */ 872 + spin_unlock_irqrestore(&xhci->lock, flags); 873 + msleep(20); 874 + spin_lock_irqsave(&xhci->lock, flags); 875 + 876 + /* Clear PLC */ 877 + temp = xhci_readl(xhci, port_array[port_index]); 878 + if (temp & PORT_PLC) { 879 + temp = xhci_port_state_to_neutral(temp); 880 + temp |= PORT_PLC; 881 + xhci_writel(xhci, temp, port_array[port_index]); 882 + } 883 + 869 884 slot_id = xhci_find_slot_id_by_port(hcd, 870 885 xhci, port_index + 1); 871 886 if (slot_id) ··· 888 873 } else 889 874 xhci_writel(xhci, temp, port_array[port_index]); 890 875 891 - if (DEV_HIGHSPEED(temp)) { 876 + if (hcd->speed != HCD_USB3) { 892 877 /* disable remote wake up for USB 2.0 */ 893 878 u32 __iomem *addr; 894 879 u32 tmp;
+2 -4
drivers/usb/musb/musb_gadget.c
··· 1887 1887 otg_set_vbus(musb->xceiv, 1); 1888 1888 1889 1889 hcd->self.uses_pio_for_control = 1; 1890 - 1891 - if (musb->xceiv->last_event == USB_EVENT_NONE) 1892 - pm_runtime_put(musb->controller); 1893 - 1894 1890 } 1891 + if (musb->xceiv->last_event == USB_EVENT_NONE) 1892 + pm_runtime_put(musb->controller); 1895 1893 1896 1894 return 0; 1897 1895
+1 -1
drivers/usb/musb/omap2430.c
··· 270 270 DBG(4, "VBUS Disconnect\n"); 271 271 272 272 #ifdef CONFIG_USB_GADGET_MUSB_HDRC 273 - if (is_otg_enabled(musb)) 273 + if (is_otg_enabled(musb) || is_peripheral_enabled(musb)) 274 274 if (musb->gadget_driver) 275 275 #endif 276 276 {
+7
fs/ceph/addr.c
··· 775 775 ci->i_truncate_seq, 776 776 ci->i_truncate_size, 777 777 &inode->i_mtime, true, 1, 0); 778 + 779 + if (!req) { 780 + rc = -ENOMEM; 781 + unlock_page(page); 782 + break; 783 + } 784 + 778 785 max_pages = req->r_num_pages; 779 786 780 787 alloc_page_vec(fsc, req);
+7 -7
fs/ceph/caps.c
··· 1331 1331 } 1332 1332 1333 1333 /* 1334 - * Mark caps dirty. If inode is newly dirty, add to the global dirty 1335 - * list. 1334 + * Mark caps dirty. If inode is newly dirty, return the dirty flags. 1335 + * Caller is then responsible for calling __mark_inode_dirty with the 1336 + * returned flags value. 1336 1337 */ 1337 - void __ceph_mark_dirty_caps(struct ceph_inode_info *ci, int mask) 1338 + int __ceph_mark_dirty_caps(struct ceph_inode_info *ci, int mask) 1338 1339 { 1339 1340 struct ceph_mds_client *mdsc = 1340 1341 ceph_sb_to_client(ci->vfs_inode.i_sb)->mdsc; ··· 1358 1357 list_add(&ci->i_dirty_item, &mdsc->cap_dirty); 1359 1358 spin_unlock(&mdsc->cap_dirty_lock); 1360 1359 if (ci->i_flushing_caps == 0) { 1361 - igrab(inode); 1360 + ihold(inode); 1362 1361 dirty |= I_DIRTY_SYNC; 1363 1362 } 1364 1363 } ··· 1366 1365 if (((was | ci->i_flushing_caps) & CEPH_CAP_FILE_BUFFER) && 1367 1366 (mask & CEPH_CAP_FILE_BUFFER)) 1368 1367 dirty |= I_DIRTY_DATASYNC; 1369 - if (dirty) 1370 - __mark_inode_dirty(inode, dirty); 1371 1368 __cap_delay_requeue(mdsc, ci); 1369 + return dirty; 1372 1370 } 1373 1371 1374 1372 /* ··· 1991 1991 ci->i_wr_ref++; 1992 1992 if (got & CEPH_CAP_FILE_BUFFER) { 1993 1993 if (ci->i_wrbuffer_ref == 0) 1994 - igrab(&ci->vfs_inode); 1994 + ihold(&ci->vfs_inode); 1995 1995 ci->i_wrbuffer_ref++; 1996 1996 dout("__take_cap_refs %p wrbuffer %d -> %d (?)\n", 1997 1997 &ci->vfs_inode, ci->i_wrbuffer_ref-1, ci->i_wrbuffer_ref);
+4 -1
fs/ceph/file.c
··· 734 734 } 735 735 } 736 736 if (ret >= 0) { 737 + int dirty; 737 738 spin_lock(&inode->i_lock); 738 - __ceph_mark_dirty_caps(ci, CEPH_CAP_FILE_WR); 739 + dirty = __ceph_mark_dirty_caps(ci, CEPH_CAP_FILE_WR); 739 740 spin_unlock(&inode->i_lock); 741 + if (dirty) 742 + __mark_inode_dirty(inode, dirty); 740 743 } 741 744 742 745 out:
+5 -1
fs/ceph/inode.c
··· 1567 1567 int release = 0, dirtied = 0; 1568 1568 int mask = 0; 1569 1569 int err = 0; 1570 + int inode_dirty_flags = 0; 1570 1571 1571 1572 if (ceph_snap(inode) != CEPH_NOSNAP) 1572 1573 return -EROFS; ··· 1726 1725 dout("setattr %p ATTR_FILE ... hrm!\n", inode); 1727 1726 1728 1727 if (dirtied) { 1729 - __ceph_mark_dirty_caps(ci, dirtied); 1728 + inode_dirty_flags = __ceph_mark_dirty_caps(ci, dirtied); 1730 1729 inode->i_ctime = CURRENT_TIME; 1731 1730 } 1732 1731 1733 1732 release &= issued; 1734 1733 spin_unlock(&inode->i_lock); 1734 + 1735 + if (inode_dirty_flags) 1736 + __mark_inode_dirty(inode, inode_dirty_flags); 1735 1737 1736 1738 if (mask) { 1737 1739 req->r_inode = igrab(inode);
+1 -1
fs/ceph/super.h
··· 506 506 { 507 507 return ci->i_dirty_caps | ci->i_flushing_caps; 508 508 } 509 - extern void __ceph_mark_dirty_caps(struct ceph_inode_info *ci, int mask); 509 + extern int __ceph_mark_dirty_caps(struct ceph_inode_info *ci, int mask); 510 510 511 511 extern int ceph_caps_revoking(struct ceph_inode_info *ci, int mask); 512 512 extern int __ceph_caps_used(struct ceph_inode_info *ci);
+8 -4
fs/ceph/xattr.c
··· 703 703 struct ceph_inode_xattr *xattr = NULL; 704 704 int issued; 705 705 int required_blob_size; 706 + int dirty; 706 707 707 708 if (ceph_snap(inode) != CEPH_NOSNAP) 708 709 return -EROFS; ··· 764 763 dout("setxattr %p issued %s\n", inode, ceph_cap_string(issued)); 765 764 err = __set_xattr(ci, newname, name_len, newval, 766 765 val_len, 1, 1, 1, &xattr); 767 - __ceph_mark_dirty_caps(ci, CEPH_CAP_XATTR_EXCL); 766 + dirty = __ceph_mark_dirty_caps(ci, CEPH_CAP_XATTR_EXCL); 768 767 ci->i_xattrs.dirty = true; 769 768 inode->i_ctime = CURRENT_TIME; 770 769 spin_unlock(&inode->i_lock); 771 - 770 + if (dirty) 771 + __mark_inode_dirty(inode, dirty); 772 772 return err; 773 773 774 774 do_sync: ··· 812 810 struct ceph_vxattr_cb *vxattrs = ceph_inode_vxattrs(inode); 813 811 int issued; 814 812 int err; 813 + int dirty; 815 814 816 815 if (ceph_snap(inode) != CEPH_NOSNAP) 817 816 return -EROFS; ··· 836 833 goto do_sync; 837 834 838 835 err = __remove_xattr_by_name(ceph_inode(inode), name); 839 - __ceph_mark_dirty_caps(ci, CEPH_CAP_XATTR_EXCL); 836 + dirty = __ceph_mark_dirty_caps(ci, CEPH_CAP_XATTR_EXCL); 840 837 ci->i_xattrs.dirty = true; 841 838 inode->i_ctime = CURRENT_TIME; 842 839 843 840 spin_unlock(&inode->i_lock); 844 - 841 + if (dirty) 842 + __mark_inode_dirty(inode, dirty); 845 843 return err; 846 844 do_sync: 847 845 spin_unlock(&inode->i_lock);
+4 -4
fs/logfs/super.c
··· 480 480 !read_only) 481 481 return -EIO; 482 482 483 - mutex_init(&super->s_dirop_mutex); 484 - mutex_init(&super->s_object_alias_mutex); 485 - INIT_LIST_HEAD(&super->s_freeing_list); 486 - 487 483 ret = logfs_init_rw(sb); 488 484 if (ret) 489 485 return ret; ··· 596 600 super = kzalloc(sizeof(*super), GFP_KERNEL); 597 601 if (!super) 598 602 return ERR_PTR(-ENOMEM); 603 + 604 + mutex_init(&super->s_dirop_mutex); 605 + mutex_init(&super->s_object_alias_mutex); 606 + INIT_LIST_HEAD(&super->s_freeing_list); 599 607 600 608 if (!devname) 601 609 err = logfs_get_sb_bdev(super, type, devname);
+5
include/drm/drm_pciids.h
··· 155 155 {0x1002, 0x6719, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \ 156 156 {0x1002, 0x671c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \ 157 157 {0x1002, 0x671d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \ 158 + {0x1002, 0x671f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAYMAN|RADEON_NEW_MEMMAP}, \ 158 159 {0x1002, 0x6720, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 159 160 {0x1002, 0x6721, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 160 161 {0x1002, 0x6722, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ ··· 168 167 {0x1002, 0x6729, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ 169 168 {0x1002, 0x6738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ 170 169 {0x1002, 0x6739, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ 170 + {0x1002, 0x673e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_BARTS|RADEON_NEW_MEMMAP}, \ 171 171 {0x1002, 0x6740, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 172 172 {0x1002, 0x6741, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 173 173 {0x1002, 0x6742, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ ··· 201 199 {0x1002, 0x688D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ 202 200 {0x1002, 0x6898, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ 203 201 {0x1002, 0x6899, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ 202 + {0x1002, 0x689b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ 204 203 {0x1002, 0x689c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \ 205 204 {0x1002, 0x689d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_HEMLOCK|RADEON_NEW_MEMMAP}, \ 206 205 {0x1002, 0x689e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CYPRESS|RADEON_NEW_MEMMAP}, \ ··· 212 209 {0x1002, 0x68b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 213 210 {0x1002, 0x68b8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ 214 211 {0x1002, 0x68b9, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ 212 + {0x1002, 0x68ba, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ 215 213 {0x1002, 0x68be, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ 214 + {0x1002, 0x68bf, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_JUNIPER|RADEON_NEW_MEMMAP}, \ 216 215 {0x1002, 0x68c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 217 216 {0x1002, 0x68c1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ 218 217 {0x1002, 0x68c7, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_REDWOOD|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
+1
include/drm/radeon_drm.h
··· 910 910 #define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 /* clock crystal frequency */ 911 911 #define RADEON_INFO_NUM_BACKENDS 0x0a /* DB/backends for r600+ - need for OQ */ 912 912 #define RADEON_INFO_NUM_TILE_PIPES 0x0b /* tile pipes for r600+ */ 913 + #define RADEON_INFO_FUSION_GART_WORKING 0x0c /* fusion writes to GTT were broken before this */ 913 914 914 915 struct drm_radeon_info { 915 916 uint32_t request;
+1 -1
include/linux/flex_array.h
··· 61 61 struct flex_array *flex_array_alloc(int element_size, unsigned int total, 62 62 gfp_t flags); 63 63 int flex_array_prealloc(struct flex_array *fa, unsigned int start, 64 - unsigned int end, gfp_t flags); 64 + unsigned int nr_elements, gfp_t flags); 65 65 void flex_array_free(struct flex_array *fa); 66 66 void flex_array_free_parts(struct flex_array *fa); 67 67 int flex_array_put(struct flex_array *fa, unsigned int element_nr, void *src,
+2
include/linux/mfd/wm831x/pdata.h
··· 81 81 int rpu; /** Pen down sensitivity resistor divider */ 82 82 int pressure; /** Report pressure (boolean) */ 83 83 unsigned int data_irq; /** Touch data ready IRQ */ 84 + int data_irqf; /** IRQ flags for data ready IRQ */ 84 85 unsigned int pd_irq; /** Touch pendown detect IRQ */ 86 + int pd_irqf; /** IRQ flags for pen down IRQ */ 85 87 }; 86 88 87 89 enum wm831x_watchdog_action {
-1
include/linux/mmc/host.h
··· 183 183 struct work_struct clk_gate_work; /* delayed clock gate */ 184 184 unsigned int clk_old; /* old clock value cache */ 185 185 spinlock_t clk_lock; /* lock for clk fields */ 186 - struct mutex clk_gate_mutex; /* mutex for clock gating */ 187 186 #endif 188 187 189 188 /* host specific block data */
+1 -1
include/linux/percpu.h
··· 948 948 irqsafe_generic_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) 949 949 # endif 950 950 # define irqsafe_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \ 951 - __pcpu_double_call_return_int(irqsafe_cpu_cmpxchg_double_, (pcp1), (pcp2), (oval1), (oval2), (nval1), (nval2)) 951 + __pcpu_double_call_return_bool(irqsafe_cpu_cmpxchg_double_, (pcp1), (pcp2), (oval1), (oval2), (nval1), (nval2)) 952 952 #endif 953 953 954 954 #endif /* __LINUX_PERCPU_H */
+1 -1
kernel/irq/proc.c
··· 419 419 } else { 420 420 seq_printf(p, " %8s", "None"); 421 421 } 422 - #ifdef CONFIG_GENIRC_IRQ_SHOW_LEVEL 422 + #ifdef CONFIG_GENERIC_IRQ_SHOW_LEVEL 423 423 seq_printf(p, " %-8s", irqd_is_level_type(&desc->irq_data) ? "Level" : "Edge"); 424 424 #endif 425 425 if (desc->name)
+18 -6
lib/flex_array.c
··· 232 232 233 233 /** 234 234 * flex_array_prealloc - guarantee that array space exists 235 - * @fa: the flex array for which to preallocate parts 236 - * @start: index of first array element for which space is allocated 237 - * @end: index of last (inclusive) element for which space is allocated 238 - * @flags: page allocation flags 235 + * @fa: the flex array for which to preallocate parts 236 + * @start: index of first array element for which space is allocated 237 + * @nr_elements: number of elements for which space is allocated 238 + * @flags: page allocation flags 239 239 * 240 240 * This will guarantee that no future calls to flex_array_put() 241 241 * will allocate memory. It can be used if you are expecting to ··· 245 245 * Locking must be provided by the caller. 246 246 */ 247 247 int flex_array_prealloc(struct flex_array *fa, unsigned int start, 248 - unsigned int end, gfp_t flags) 248 + unsigned int nr_elements, gfp_t flags) 249 249 { 250 250 int start_part; 251 251 int end_part; 252 252 int part_nr; 253 + unsigned int end; 253 254 struct flex_array_part *part; 254 255 255 - if (start >= fa->total_nr_elements || end >= fa->total_nr_elements) 256 + if (!start && !nr_elements) 257 + return 0; 258 + if (start >= fa->total_nr_elements) 259 + return -ENOSPC; 260 + if (!nr_elements) 261 + return 0; 262 + 263 + end = start + nr_elements - 1; 264 + 265 + if (end >= fa->total_nr_elements) 256 266 return -ENOSPC; 257 267 if (elements_fit_in_base(fa)) 258 268 return 0; ··· 353 343 int part_nr; 354 344 int ret = 0; 355 345 346 + if (!fa->total_nr_elements) 347 + return 0; 356 348 if (elements_fit_in_base(fa)) 357 349 return ret; 358 350 for (part_nr = 0; part_nr < FLEX_ARRAY_NR_BASE_PTRS; part_nr++) {
+3 -4
mm/memory.c
··· 1359 1359 */ 1360 1360 mark_page_accessed(page); 1361 1361 } 1362 - if (flags & FOLL_MLOCK) { 1362 + if ((flags & FOLL_MLOCK) && (vma->vm_flags & VM_LOCKED)) { 1363 1363 /* 1364 1364 * The preliminary mapping check is mainly to avoid the 1365 1365 * pointless overhead of lock_page on the ZERO_PAGE ··· 1552 1552 } 1553 1553 1554 1554 /* 1555 - * If we don't actually want the page itself, 1556 - * and it's the stack guard page, just skip it. 1555 + * For mlock, just skip the stack guard page. 1557 1556 */ 1558 - if (!pages && stack_guard_page(vma, start)) 1557 + if ((gup_flags & FOLL_MLOCK) && stack_guard_page(vma, start)) 1559 1558 goto next_page; 1560 1559 1561 1560 do {
+1 -4
mm/mlock.c
··· 162 162 VM_BUG_ON(end > vma->vm_end); 163 163 VM_BUG_ON(!rwsem_is_locked(&mm->mmap_sem)); 164 164 165 - gup_flags = FOLL_TOUCH; 165 + gup_flags = FOLL_TOUCH | FOLL_MLOCK; 166 166 /* 167 167 * We want to touch writable mappings with a write fault in order 168 168 * to break COW, except for shared mappings because these don't COW ··· 177 177 */ 178 178 if (vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) 179 179 gup_flags |= FOLL_FORCE; 180 - 181 - if (vma->vm_flags & VM_LOCKED) 182 - gup_flags |= FOLL_MLOCK; 183 180 184 181 return __get_user_pages(current, mm, addr, nr_pages, gup_flags, 185 182 NULL, NULL, nonblocking);
+2 -2
mm/slub.c
··· 1940 1940 * Since this is without lock semantics the protection is only against 1941 1941 * code executing on this cpu *not* from access by other cpus. 1942 1942 */ 1943 - if (unlikely(!this_cpu_cmpxchg_double( 1943 + if (unlikely(!irqsafe_cpu_cmpxchg_double( 1944 1944 s->cpu_slab->freelist, s->cpu_slab->tid, 1945 1945 object, tid, 1946 1946 get_freepointer(s, object), next_tid(tid)))) { ··· 2145 2145 set_freepointer(s, object, c->freelist); 2146 2146 2147 2147 #ifdef CONFIG_CMPXCHG_LOCAL 2148 - if (unlikely(!this_cpu_cmpxchg_double( 2148 + if (unlikely(!irqsafe_cpu_cmpxchg_double( 2149 2149 s->cpu_slab->freelist, s->cpu_slab->tid, 2150 2150 c->freelist, tid, 2151 2151 object, next_tid(tid)))) {
+13 -13
net/ceph/messenger.c
··· 2267 2267 m->more_to_follow = false; 2268 2268 m->pool = NULL; 2269 2269 2270 + /* middle */ 2271 + m->middle = NULL; 2272 + 2273 + /* data */ 2274 + m->nr_pages = 0; 2275 + m->page_alignment = 0; 2276 + m->pages = NULL; 2277 + m->pagelist = NULL; 2278 + m->bio = NULL; 2279 + m->bio_iter = NULL; 2280 + m->bio_seg = 0; 2281 + m->trail = NULL; 2282 + 2270 2283 /* front */ 2271 2284 if (front_len) { 2272 2285 if (front_len > PAGE_CACHE_SIZE) { ··· 2298 2285 m->front.iov_base = NULL; 2299 2286 } 2300 2287 m->front.iov_len = front_len; 2301 - 2302 - /* middle */ 2303 - m->middle = NULL; 2304 - 2305 - /* data */ 2306 - m->nr_pages = 0; 2307 - m->page_alignment = 0; 2308 - m->pages = NULL; 2309 - m->pagelist = NULL; 2310 - m->bio = NULL; 2311 - m->bio_iter = NULL; 2312 - m->bio_seg = 0; 2313 - m->trail = NULL; 2314 2288 2315 2289 dout("ceph_msg_new %p front %d\n", m, front_len); 2316 2290 return m;
+2 -2
net/ceph/osd_client.c
··· 470 470 snapc, ops, 471 471 use_mempool, 472 472 GFP_NOFS, NULL, NULL); 473 - if (IS_ERR(req)) 474 - return req; 473 + if (!req) 474 + return NULL; 475 475 476 476 /* calculate max write size */ 477 477 calc_layout(osdc, vino, layout, off, plen, req, ops);
+2 -1
security/selinux/hooks.c
··· 1578 1578 return rc; 1579 1579 1580 1580 if (!newsid || !(sbsec->flags & SE_SBLABELSUPP)) { 1581 - rc = security_transition_sid(sid, dsec->sid, tclass, NULL, &newsid); 1581 + rc = security_transition_sid(sid, dsec->sid, tclass, 1582 + &dentry->d_name, &newsid); 1582 1583 if (rc) 1583 1584 return rc; 1584 1585 }
+3 -3
security/selinux/ss/policydb.c
··· 502 502 goto out; 503 503 504 504 rc = flex_array_prealloc(p->type_val_to_struct_array, 0, 505 - p->p_types.nprim - 1, GFP_KERNEL | __GFP_ZERO); 505 + p->p_types.nprim, GFP_KERNEL | __GFP_ZERO); 506 506 if (rc) 507 507 goto out; 508 508 ··· 519 519 goto out; 520 520 521 521 rc = flex_array_prealloc(p->sym_val_to_name[i], 522 - 0, p->symtab[i].nprim - 1, 522 + 0, p->symtab[i].nprim, 523 523 GFP_KERNEL | __GFP_ZERO); 524 524 if (rc) 525 525 goto out; ··· 2375 2375 goto bad; 2376 2376 2377 2377 /* preallocate so we don't have to worry about the put ever failing */ 2378 - rc = flex_array_prealloc(p->type_attr_map_array, 0, p->p_types.nprim - 1, 2378 + rc = flex_array_prealloc(p->type_attr_map_array, 0, p->p_types.nprim, 2379 2379 GFP_KERNEL | __GFP_ZERO); 2380 2380 if (rc) 2381 2381 goto bad;