Selaa lähdekoodia

[S390] cio: ensure single load of irq handler pointer

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>
Heiko Carstens 16 vuotta sitten
vanhempi
commit
87fa5af80c
1 muutettua tiedostoa jossa 2 lisäystä ja 0 poistoa
  1. 2 0
      drivers/s390/cio/airq.c

+ 2 - 0
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);