summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorChenhui Zhao <chenhui.zhao@freescale.com>2010-11-11 23:50:00 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-03-31 18:59:10 (GMT)
commitd6c4a975da18a95198dcca0d6c9cd92dc6cbc173 (patch)
treec3f63bd2834160f4dbf17d8cdb4abea49d93d49f /drivers/net
parent4333167f3e6f071905e841aa71377b0d14d55f35 (diff)
downloadlinux-fsl-qoriq-d6c4a975da18a95198dcca0d6c9cd92dc6cbc173.tar.xz
powerpc/mpic: supply a .disable callback
Currently MPIC provides .mask, but not .disable. This means that effectively disable_irq() soft-disables the interrupt, and you get a .mask call if an interrupt actually occurs. I'm not sure if this was intended as a performance benefit (it seems common to omit .disable on powerpc interrupt controllers, but nowhere else), but it interacts badly with threaded/workqueue interrupts (including KVM reflection). In such cases, where the real interrupt handler does a disable_irq_nosync(), schedules defered handling, and returns, we get two interrupts for every real interrupt. The second interrupt does nothing but see that IRQ_DISABLED is set, and decide that it would be a good idea to actually call .mask. In the sleep case, disable all irqs of IP blocks using .disable() when entering sleep. Change-Id: I8f57e20a87acae115d0a8a006d31ffdedb42c295 Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/10507 Reviewed-by: Yang Li <LeoLi@freescale.com> Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Dongsheng Wang <dongsheng.wang@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net')
0 files changed, 0 insertions, 0 deletions