diff options
author | Liu Ping Fan <[email protected]> | 2013-08-23 16:58:47 +0800 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2013-08-26 12:58:00 +0200 |
commit | 25aa2957973d361081ac6c8b6e5a0d9d7a83fef6 (patch) | |
tree | ad77338c9f70a2dd2f4c731e71e1a4cd12c29fee /tools/perf/util/trace-event-scripting.c | |
parent | 17405453f4ad0220721a29978692081be6392b8f (diff) |
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 <[email protected]>
Cc: Kevin Hao <[email protected]>
Cc: Len Brown <[email protected]>
Cc: Yinghai Lu <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
[ Made small readability edits to both the changelog and the code. ]
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'tools/perf/util/trace-event-scripting.c')
0 files changed, 0 insertions, 0 deletions