Ver Fonte

RDS: Fix BUG_ONs to not fire when in a tasklet

in_interrupt() is true in softirqs. The BUG_ONs are supposed
to check for if irqs are disabled, so we should use
BUG_ON(irqs_disabled()) instead, duh.

Signed-off-by: Andy Grover <andy.grover@oracle.com>
Andy Grover há 15 anos atrás
pai
commit
9e2effba2c
2 ficheiros alterados com 2 adições e 2 exclusões
  1. 1 1
      net/rds/ib_rdma.c
  2. 1 1
      net/rds/rdma.c

+ 1 - 1
net/rds/ib_rdma.c

@@ -441,7 +441,7 @@ static void __rds_ib_teardown_mr(struct rds_ib_mr *ibmr)
 
 			/* FIXME we need a way to tell a r/w MR
 			 * from a r/o MR */
-			BUG_ON(in_interrupt());
+			BUG_ON(irqs_disabled());
 			set_page_dirty(page);
 			put_page(page);
 		}

+ 1 - 1
net/rds/rdma.c

@@ -440,7 +440,7 @@ void rds_rdma_free_op(struct rds_rdma_op *ro)
 		 * is the case for a RDMA_READ which copies from remote
 		 * to local memory */
 		if (!ro->r_write) {
-			BUG_ON(in_interrupt());
+			BUG_ON(irqs_disabled());
 			set_page_dirty(page);
 		}
 		put_page(page);