浏览代码

[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 年之前
父节点
当前提交
87fa5af80c
共有 1 个文件被更改,包括 2 次插入0 次删除
  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);