Messages in this thread Patch in this message | | | Date | Wed, 25 Feb 2009 16:06:51 +0100 | From | Martin Schwidefsky <> | Subject | [patch/s390 29/46] cio: ensure single load of irq handler pointer |
| |
From: Heiko Carstens <heiko.carstens@de.ibm.com>
Add barrier to prevent compiler from reloading pointer to irq handler.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> ---
drivers/s390/cio/airq.c | 2 ++ 1 file changed, 2 insertions(+)
Index: quilt-2.6/drivers/s390/cio/airq.c =================================================================== --- quilt-2.6.orig/drivers/s390/cio/airq.c +++ quilt-2.6/drivers/s390/cio/airq.c @@ -133,6 +133,8 @@ void do_adapter_IO(u8 isc) while (word) { if (word & INDICATOR_MASK) { airq = airqs[isc][i]; + /* Make sure gcc reads from airqs only once. */ + barrier(); if (likely(airq)) airq->handler(&indicators[isc].byte[i], airq->drv_data); -- blue skies, Martin.
"Reality continues to ruin my life." - Calvin.
| |