iwlwifi: clear unattended interrupts in tasklet
authorShanyu Zhao <shanyu.zhao@intel.com>
Tue, 16 Mar 2010 17:22:26 +0000 (10:22 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 30 Mar 2010 19:37:31 +0000 (15:37 -0400)
commit48a6be6a0dd3982bb2d48e82b3e6f5458d9f3c63
tree8980ff473c9d1bb56728517fe2e51b4369a5cd35
parentbe6b38bcb175613f239e0b302607db346472c6b6
iwlwifi: clear unattended interrupts in tasklet

Previously in interrupt handling tasklet, iwlwifi driver only clear/ack
those interrupts that are enabled by the driver through inta_mask.
If the hardware generates unattended interrupts, driver will not ack them,
defeating the interrupt coalescing feature. This results in high number
of interrupts per second and high CPU utilization.

This patch addresses this issue by acking those unattended interrupts
in the tasklet. Local test showed an order of magnitude improvement
in terms of the number of interrupts without sacrificing networking
throughput. This is a workaround for hardware issue.

Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
drivers/net/wireless/iwlwifi/iwl-agn.c