summaryrefslogtreecommitdiff
path: root/arch/x86/ia32/ia32entry.S
diff options
context:
space:
mode:
authorLiu Ping Fan <kernelfans@gmail.com>2013-08-23 08:58:47 (GMT)
committerIngo Molnar <mingo@kernel.org>2013-08-26 10:58:00 (GMT)
commit25aa2957973d361081ac6c8b6e5a0d9d7a83fef6 (patch)
treead77338c9f70a2dd2f4c731e71e1a4cd12c29fee /arch/x86/ia32/ia32entry.S
parent17405453f4ad0220721a29978692081be6392b8f (diff)
downloadlinux-fsl-qoriq-25aa2957973d361081ac6c8b6e5a0d9d7a83fef6.tar.xz
x86/ioapic: Check attr against the previous setting when programmed more than once
When programming ioapic pinX more than once, current code does not check whether the later attr (trigger & polarity) is the same as the former or not. This causes broken semantics which can be observed in a qemu q35 machine, where ioapic's ioredtbl[x] can never be set as low-active, even if the hpet driver registered it. And hpet driver may share a high-level active IRQ line with other devices. So in qemu, when hpet-dev asserts low-level as kernel expects, the kernel has no response. With this patch, we can observe an ioredtbl[x] set as low-active for hpet. Fix it by reporting -EBUSY to the caller, when attr is different. Signed-off-by: Liu Ping Fan <pingfank@linux.vnet.ibm.com> Cc: Kevin Hao <haokexin@gmail.com> Cc: Len Brown <len.brown@intel.com> Cc: Yinghai Lu <yinghai@kernel.org> Link: http://lkml.kernel.org/r/1377248327-19633-1-git-send-email-pingfank@linux.vnet.ibm.com [ Made small readability edits to both the changelog and the code. ] Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/ia32/ia32entry.S')
0 files changed, 0 insertions, 0 deletions