diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2010-07-23 09:56:28 -0400 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-07-30 12:41:39 -0400 |
commit | 30da55242818a8ca08583188ebcbaccd283ad4d9 (patch) | |
tree | eaa39565cf37a2fbc739e1af02b569107aeee447 /arch/ia64/kernel | |
parent | 911e1c9b05a8e3559a7aa89083930700a0b9e7ee (diff) |
PCI: MSI: Restore read_msi_msg_desc(); add get_cached_msi_msg_desc()
commit 2ca1af9aa3285c6a5f103ed31ad09f7399fc65d7 "PCI: MSI: Remove
unsafe and unnecessary hardware access" changed read_msi_msg_desc() to
return the last MSI message written instead of reading it from the
device, since it may be called while the device is in a reduced
power state.
However, the pSeries platform code really does need to read messages
from the device, since they are initially written by firmware.
Therefore:
- Restore the previous behaviour of read_msi_msg_desc()
- Add new functions get_cached_msi_msg{,_desc}() which return the
last MSI message written
- Use the new functions where appropriate
Acked-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r-- | arch/ia64/kernel/msi_ia64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c index 6c8922856049..4a746ea838ff 100644 --- a/arch/ia64/kernel/msi_ia64.c +++ b/arch/ia64/kernel/msi_ia64.c | |||
@@ -25,7 +25,7 @@ static int ia64_set_msi_irq_affinity(unsigned int irq, | |||
25 | if (irq_prepare_move(irq, cpu)) | 25 | if (irq_prepare_move(irq, cpu)) |
26 | return -1; | 26 | return -1; |
27 | 27 | ||
28 | read_msi_msg(irq, &msg); | 28 | get_cached_msi_msg(irq, &msg); |
29 | 29 | ||
30 | addr = msg.address_lo; | 30 | addr = msg.address_lo; |
31 | addr &= MSI_ADDR_DEST_ID_MASK; | 31 | addr &= MSI_ADDR_DEST_ID_MASK; |