aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2012-05-06meta: add mei featuretzanussi/xhcd-mei-featuresTom Zanussi
Add an 'mei' feature that turns on the kernel options required to support the Intel Management Engine Interface. Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-05-06meta/crownbay: use usb featuresTom Zanussi
Use the available usb features and remove the associated config settings from the top-level crownbay feature. Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-05-06meta: add usb/uhci-hcd featureTom Zanussi
Add a 'uhci-hcd' feature that turns on the kernel options required to support uhci (USB 1.x). Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-05-06meta: add usb/ohci-hcd featureTom Zanussi
Add an 'ohci-hcd' feature that turns on the kernel options required to support ohci (USB 1.x). Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-05-06meta: add usb/ehci-hcd featureTom Zanussi
Add an 'ehci-hcd' feature that turns on the kernel options required to support ehci (USB 2.0). Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-05-06meta: add usb/xhci-hcd featureTom Zanussi
Add an 'xhci-hcd' feature that turns on the kernel options required to support xhci (USB 3.0). Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-05-04meta: add usb/base featureTom Zanussi
Add a feature to enable 'base' support for USB. Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-17meta: Clean up BSPs kernel configYang Shi
Clean up some QEMU and non-x86 BSPs kernel config, including qemuarm qemuppc qemux86 beagleboard mpc8315e_rdb Only obsolete/invalid kernel configs are removed. Signed-off-by: Yang Shi <yang.shi@windriver.com>
2012-04-17meta/beagleboard: disable CONFIG_PREEMPTBruce Ashfield
The boot hangs with the message: mmc0: error -110 whilst initialising SD card The MMC driver has issues initializing when PREEMPT is enabled (either forced or voluntary). Unplugging and then plugging the card back will reset the driver and continue booting. Alternatively, disable preemption. Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-04-11meta: Add igb.scc to RomleyKishore Bodke
Romley machine has 82580 Giga bit Ethernet Controller. Add the relavent Nic driver to it. Signed-off-by: Kishore Bodke <kishore.k.bodke@intel.com>
2012-03-31meta: Add common-pc-tiny.sccDarren Hart
Create the MACHINE-KTYPE description file for common-pc and tiny. This is used by the qemux86 machine for the linux-yocto-tiny kernel recipe. Add the common-pc hardware config, but not all the features included by the common-pc-standard.scc file. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-31tiny: Minimize the tiny configDarren Hart
The config fragments in the tiny ktype were simply pulled in from a collection of experimental fragments. Boil things down to a core policy (yocto.cfg) and tiny-specific configs (tiny.cfg). Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-31meta: common-pc add dependencies to cfgDarren Hart
When building with the allnoconfig option, some of the common-pc CONFIG options are dropped due to missing dependencies. This machine also depended on certain default options, such as CONFIG_E1000, which are not enabled with allnoconfig. Add the dependencies and CONFIG_E1000 explicitly. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-26common-pc: Add PCNET32 to the configDarren Hart
Qemu and VM Ware both support PCNET32 and the latter requires it for 32 bit images. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-16meta: update kver to v3.2.11Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-03-16fri2: Update fri2.cfg for hardware specific supportDarren Hart
The FRI2 does not require R8169 or PATA support. It does not need SFF or GENERIC ATA options either. The FRI2 does require IEEE802154 (Zigbee), BT (Bluetooth), and IWLWIFI. The latter is compiled as a module to avoid the need for an initrd containing the firmware blobs. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-12meta/emgd: emgd 1.10 updatesBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-03-06meta: adding -rt16 patch recordBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-03-05meta/fri2/sys940x: fix incorrect cfg includesBruce Ashfield
During the merge from the 3.0 BSPs, a few differences in the location of configuration values was missed. Updating the board configs to the 3.2 location of dmaengine and vesafb. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-03-05meta/sys940x: fix incorrect emgd branch mergeBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-03-02fri2: Move non-hardware optional features out of fri2.sccDarren Hart
Move policy features out of fri2.scc and into the fri2-KTYPE.scc files. This allows KTYPEs like tiny to build smaller kernels while still reusing the fri2.scc file. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-02fri2: Add SMP and EFI supportDarren Hart
Rather than add these as features in the linux-yocto recipe, include them in the BSP meta-data directly. Include only the core EFI bits in the fri2.scc, and add the extended EFI support to the fri2-standard.scc so that other ktypes don't pull in more than what's absolutely required from fri2.scc. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-02eg20t: Enable serial console for the pch_uartDarren Hart
The FRI2 uses the pch_uart driver for the serial console. Enable the console driver. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-02fri2: Drop 8250 from the fri2 sccDarren Hart
The FRI2 has a pch_uart. Depending on the firmware, the kernel may decide to use the 8250 or the pch_uart driver. As the firmware configures the pch_uart with a non-standard UART clock, it is necessary to ensure the pch_uart is used. To do this, drop the 8250 support from the kernel. Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-02Remove boot-live cfg duplication from BSPsDarren Hart
Several BSPs duplicated the boot-live fragment in their BSP specific config. Remove the duplication and add CONFIG_RD_GZIP and CONFIG_BLK_DEV_SR to the boot-live fragment. Signed-off-by: Darren Hart <dvhart@linux.intel.com> Acked-by: Tom Zanussi <tzanussi@intel.com>
2012-03-02meta: sys940x BSP meta dataDarren Hart
The Inforce SYS940x-ECX Developer-Ready Reference Platform features: o Intel Atom E6xx (0.6-1.6 GHz) o Up to 1GB on-board DDR2 o Intel Platform Controller Hub EG20T o VGA,LVDS o HD Audio o SD Card o Dual SATA o Mini-PCIe http://www.inforcecomputing.com/SYS940X_ECX.html Signed-off-by: Darren Hart <dvhart@linux.intel.com> Acked-by: Tom Zanussi <tzanussi@intel.com> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2012-03-02meta/rt: update to v3.2.9-rt15Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-03-02meta: bump kver to v3.2.9Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-02-27meta: create pvr feature descriptionKishore Bodke
For targets with the appropriate hardware support, they should include this option to enable the appropriate kernel features. Signed-off-by: Kishore Bodke <kishore.k.bodke@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-02-26meta: updating kver to v3.2.7Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-01-30Merge branch 'meta-temp' into metaBruce Ashfield
2012-01-30checkpoint dir: metaBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-01-30checkpoint dir: metaBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-01-30checkpoint dir: metaBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-01-30checkpoint dir: meta/scriptsBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-01-30This is the cache of the kernel patches for the "next" kernel layer.Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-01-30meta: initial kern-features.rcBruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-01-25Linux 3.2.2Greg Kroah-Hartman
2012-01-25SHM_UNLOCK: fix Unevictable pages stranded after swapHugh Dickins
commit 245132643e1cfcd145bbc86a716c1818371fcb93 upstream. Commit cc39c6a9bbde ("mm: account skipped entries to avoid looping in find_get_pages") correctly fixed an infinite loop; but left a problem that find_get_pages() on shmem would return 0 (appearing to callers to mean end of tree) when it meets a run of nr_pages swap entries. The only uses of find_get_pages() on shmem are via pagevec_lookup(), called from invalidate_mapping_pages(), and from shmctl SHM_UNLOCK's scan_mapping_unevictable_pages(). The first is already commented, and not worth worrying about; but the second can leave pages on the Unevictable list after an unusual sequence of swapping and locking. Fix that by using shmem_find_get_pages_and_swap() (then ignoring the swap) instead of pagevec_lookup(). But I don't want to contaminate vmscan.c with shmem internals, nor shmem.c with LRU locking. So move scan_mapping_unevictable_pages() into shmem.c, renaming it shmem_unlock_mapping(); and rename check_move_unevictable_page() to check_move_unevictable_pages(), looping down an array of pages, oftentimes under the same lock. Leave out the "rotate unevictable list" block: that's a leftover from when this was used for /proc/sys/vm/scan_unevictable_pages, whose flawed handling involved looking at pages at tail of LRU. Was there significance to the sequence first ClearPageUnevictable, then test page_evictable, then SetPageUnevictable here? I think not, we're under LRU lock, and have no barriers between those. Signed-off-by: Hugh Dickins <hughd@google.com> Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Minchan Kim <minchan.kim@gmail.com> Cc: Rik van Riel <riel@redhat.com> Cc: Shaohua Li <shaohua.li@intel.com> Cc: Eric Dumazet <eric.dumazet@gmail.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michel Lespinasse <walken@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25SHM_UNLOCK: fix long unpreemptible sectionHugh Dickins
commit 85046579bde15e532983438f86b36856e358f417 upstream. scan_mapping_unevictable_pages() is used to make SysV SHM_LOCKed pages evictable again once the shared memory is unlocked. It does this with pagevec_lookup()s across the whole object (which might occupy most of memory), and takes 300ms to unlock 7GB here. A cond_resched() every PAGEVEC_SIZE pages would be good. However, KOSAKI-san points out that this is called under shmem.c's info->lock, and it's also under shm.c's shm_lock(), both spinlocks. There is no strong reason for that: we need to take these pages off the unevictable list soonish, but those locks are not required for it. So move the call to scan_mapping_unevictable_pages() from shmem.c's unlock handling up to shm.c's unlock handling. Remove the recently added barrier, not needed now we have spin_unlock() before the scan. Use get_file(), with subsequent fput(), to make sure we have a reference to mapping throughout scan_mapping_unevictable_pages(): that's something that was previously guaranteed by the shm_lock(). Remove shmctl's lru_add_drain_all(): we don't fault in pages at SHM_LOCK time, and we lazily discover them to be Unevictable later, so it serves no purpose for SHM_LOCK; and serves no purpose for SHM_UNLOCK, since pages still on pagevec are not marked Unevictable. The original code avoided redundant rescans by checking VM_LOCKED flag at its level: now avoid them by checking shp's SHM_LOCKED. The original code called scan_mapping_unevictable_pages() on a locked area at shm_destroy() time: perhaps we once had accounting cross-checks which required that, but not now, so skip the overhead and just let inode eviction deal with them. Put check_move_unevictable_page() and scan_mapping_unevictable_pages() under CONFIG_SHMEM (with stub for the TINY case when ramfs is used), more as comment than to save space; comment them used for SHM_UNLOCK. Signed-off-by: Hugh Dickins <hughd@google.com> Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Minchan Kim <minchan.kim@gmail.com> Cc: Rik van Riel <riel@redhat.com> Cc: Shaohua Li <shaohua.li@intel.com> Cc: Eric Dumazet <eric.dumazet@gmail.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michel Lespinasse <walken@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25iwlegacy: 3945: fix hw passive scan on radar channelsStanislaw Gruszka
commit 68acc4afb040d98ddfd2cae0de09e2f4e1ee127f upstream. Patch fix firmware error on "iw dev wlan0 scan passive" for hardware scanning (with disable_hw_scan=0 module parameter). iwl3945 0000:03:00.0: Microcode SW error detected. Restarting 0x82000008. iwl3945 0000:03:00.0: Loaded firmware version: 15.32.2.9 iwl3945 0000:03:00.0: Start IWL Error Log Dump: iwl3945 0000:03:00.0: Status: 0x0002A2E4, count: 1 iwl3945 0000:03:00.0: Desc Time asrtPC blink2 ilink1 nmiPC Line iwl3945 0000:03:00.0: SYSASSERT (0x5) 0041263900 0x13756 0x0031C 0x00000 764 iwl3945 0000:03:00.0: Error Reply type 0x000002FC cmd C_SCAN (0x80) seq 0x443E ser 0x00340000 iwl3945 0000:03:00.0: Command C_SCAN failed: FW Error iwl3945 0000:03:00.0: Can't stop Rx DMA. We have disable ability to change passive scanning to active on particular channel when traffic is detected on that channel. Otherwise firmware will report error, when we try to do passive scan on radar channels. Reported-and-debugged-by: Pedro Francisco <pedrogfrancisco@gmail.com> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25iwlagn: check for SMPS modeWey-Yi Guy
commit b2ccccdca46273c7b321ecf5041c362cd950da20 upstream. Check and report WARN only when its invalid Resolves: https://bugzilla.kernel.org/show_bug.cgi?id=42621 https://bugzilla.redhat.com/show_bug.cgi?id=766071 Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25mm: fix NULL ptr dereference in __count_immobile_pagesMichal Hocko
commit 687875fb7de4a95223af20ee024282fa9099f860 upstream. Fix the following NULL ptr dereference caused by cat /sys/devices/system/memory/memory0/removable Pid: 13979, comm: sed Not tainted 3.0.13-0.5-default #1 IBM BladeCenter LS21 -[7971PAM]-/Server Blade RIP: __count_immobile_pages+0x4/0x100 Process sed (pid: 13979, threadinfo ffff880221c36000, task ffff88022e788480) Call Trace: is_pageblock_removable_nolock+0x34/0x40 is_mem_section_removable+0x74/0xf0 show_mem_removable+0x41/0x70 sysfs_read_file+0xfe/0x1c0 vfs_read+0xc7/0x130 sys_read+0x53/0xa0 system_call_fastpath+0x16/0x1b We are crashing because we are trying to dereference NULL zone which came from pfn=0 (struct page ffffea0000000000). According to the boot log this page is marked reserved: e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved) and early_node_map confirms that: early_node_map[3] active PFN ranges 1: 0x00000010 -> 0x0000009c 1: 0x00000100 -> 0x000bffa3 1: 0x00100000 -> 0x00240000 The problem is that memory_present works in PAGE_SECTION_MASK aligned blocks so the reserved range sneaks into the the section as well. This also means that free_area_init_node will not take care of those reserved pages and they stay uninitialized. When we try to read the removable status we walk through all available sections and hope that the zone is valid for all pages in the section. But this is not true in this case as the zone and nid are not initialized. We have only one node in this particular case and it is marked as node=1 (rather than 0) and that made the problem visible because page_to_nid will return 0 and there are no zones on the node. Let's check that the zone is valid and that the given pfn falls into its boundaries and mark the section not removable. This might cause some false positives, probably, but we do not have any sane way to find out whether the page is reserved by the platform or it is just not used for whatever other reasons. Signed-off-by: Michal Hocko <mhocko@suse.cz> Acked-by: Mel Gorman <mgorman@suse.de> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25proc: clear_refs: do not clear reserved pagesWill Deacon
commit 85e72aa5384b1a614563ad63257ded0e91d1a620 upstream. /proc/pid/clear_refs is used to clear the Referenced and YOUNG bits for pages and corresponding page table entries of the task with PID pid, which includes any special mappings inserted into the page tables in order to provide things like vDSOs and user helper functions. On ARM this causes a problem because the vectors page is mapped as a global mapping and since ec706dab ("ARM: add a vma entry for the user accessible vector page"), a VMA is also inserted into each task for this page to aid unwinding through signals and syscall restarts. Since the vectors page is required for handling faults, clearing the YOUNG bit (and subsequently writing a faulting pte) means that we lose the vectors page *globally* and cannot fault it back in. This results in a system deadlock on the next exception. To see this problem in action, just run: $ echo 1 > /proc/self/clear_refs on an ARM platform (as any user) and watch your system hang. I think this has been the case since 2.6.37 This patch avoids clearing the aforementioned bits for reserved pages, therefore leaving the vectors page intact on ARM. Since reserved pages are not candidates for swap, this change should not have any impact on the usefulness of clear_refs. Signed-off-by: Will Deacon <will.deacon@arm.com> Reported-by: Moussa Ba <moussaba@micron.com> Acked-by: Hugh Dickins <hughd@google.com> Cc: David Rientjes <rientjes@google.com> Cc: Russell King <rmk@arm.linux.org.uk> Acked-by: Nicolas Pitre <nico@linaro.org> Cc: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25kprobes: initialize before using a hlistAnanth N Mavinakayanahalli
commit d496aab567e7e52b3e974c9192a5de6e77dce32c upstream. Commit ef53d9c5e ("kprobes: improve kretprobe scalability with hashed locking") introduced a bug where we can potentially leak kretprobe_instances since we initialize a hlist head after having used it. Initialize the hlist head before using it. Reported by: Jim Keniston <jkenisto@us.ibm.com> Acked-by: Jim Keniston <jkenisto@us.ibm.com> Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Srinivasa D S <srinivasa@in.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25cifs: lower default wsize when unix extensions are not usedJeff Layton
commit ce91acb3acae26f4163c5a6f1f695d1a1e8d9009 upstream. We've had some reports of servers (namely, the Solaris in-kernel CIFS server) that don't deal properly with writes that are "too large" even though they set CAP_LARGE_WRITE_ANDX. Change the default to better mirror what windows clients do. Cc: Pavel Shilovsky <piastry@etersoft.ru> Reported-by: Nick Davis <phireph0x@yahoo.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <smfrench@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25score: fix off-by-one index into syscall tableDan Rosenberg
commit c25a785d6647984505fa165b5cd84cfc9a95970b upstream. If the provided system call number is equal to __NR_syscalls, the current check will pass and a function pointer just after the system call table may be called, since sys_call_table is an array with total size __NR_syscalls. Whether or not this is a security bug depends on what the compiler puts immediately after the system call table. It's likely that this won't do anything bad because there is an additional NULL check on the syscall entry, but if there happens to be a non-NULL value immediately after the system call table, this may result in local privilege escalation. Signed-off-by: Dan Rosenberg <drosenberg@vsecurity.com> Cc: Chen Liqin <liqin.chen@sunplusct.com> Cc: Lennox Wu <lennox.wu@gmail.com> Cc: Eugene Teo <eugeneteo@kernel.sg> Cc: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25i2c-eg20t: modified the setting of transfer rate.Toshiharu Okada
commit ff35e8b18984ad2a82cbd259fc07f0be4b34b1aa upstream. This patch modified the setting value of I2C Bus Transfer Rate Setting Counter regisrer. Signed-off-by: Toshiharu Okada <toshiharu-linux@dsn.okisemi.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25xfs: fix endian conversion issue in discard codeDave Chinner
commit b1c770c273a4787069306fc82aab245e9ac72e9d upstream When finding the longest extent in an AG, we read the value directly out of the AGF buffer without endian conversion. This will give an incorrect length, resulting in FITRIM operations potentially not trimming everything that it should. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Ben Myers <bpm@sgi.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-25rt2800pci: fix spurious interrupts generationStanislaw Gruszka
commit dfd00c4c8f3dfa1fd7cec45f83d98b2a49743dcd upstream. Same devices can generate interrupt without properly setting bit in INT_SOURCE_CSR register (spurious interrupt), what will cause IRQ line will be disabled by interrupts controller driver. We discovered that clearing INT_MASK_CSR stops such behaviour. We previously first read that register, and then clear all know interrupt sources bits and do not touch reserved bits. After this patch, we write to all register content (I believe writing to reserved bits on that register will not cause any problems, I tested that on my rt2800pci device). This fix very bad performance problem, practically making device unusable (since worked without interrupts), reported in: https://bugzilla.redhat.com/show_bug.cgi?id=658451 We previously tried to workaround that issue in commit 4ba7d9997869d25bd223dea7536fc1ce9fab3b3b "rt2800pci: handle spurious interrupts", but it was reverted in commit 82e5fc2a34fa9ffea38f00c4066b7e600a0ca5e6 as thing, that will prevent to detect real spurious interrupts. Reported-and-tested-by: Amir Hedayaty <hedayaty@gmail.com> Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Acked-by: Gertjan van Wingerde <gwingerde@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>