diff options
author | Neil Horman <nhorman@tuxdriver.com> | 2012-03-09 17:50:08 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-03-28 04:09:35 -0400 |
commit | 94aa29f28e748484de7acef09a0023846624a81c (patch) | |
tree | 4cc44379a48583832917a80d6b0682caec7bccf3 /drivers/scsi | |
parent | 81c11dd2ed154b351eb6ee3443e07094a1d53ce1 (diff) |
[SCSI] foce: remove bh disable from fcoe sw transport rcv function
The fcoe sw recive packet function (fcoe_rcv) only ever executes in softirq
context. Given that, and the fact that no use of the fcoe_rx_list is made in
irq context, its not necessecary to disable bottom halves while actually
receiving the frame. Convert spin_*_bh calls in that function to their
lock-only equivalents
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/fcoe/fcoe.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c index 22ae29520d6e..961bf364429a 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c | |||
@@ -1436,7 +1436,7 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev, | |||
1436 | goto err; | 1436 | goto err; |
1437 | 1437 | ||
1438 | fps = &per_cpu(fcoe_percpu, cpu); | 1438 | fps = &per_cpu(fcoe_percpu, cpu); |
1439 | spin_lock_bh(&fps->fcoe_rx_list.lock); | 1439 | spin_lock(&fps->fcoe_rx_list.lock); |
1440 | if (unlikely(!fps->thread)) { | 1440 | if (unlikely(!fps->thread)) { |
1441 | /* | 1441 | /* |
1442 | * The targeted CPU is not ready, let's target | 1442 | * The targeted CPU is not ready, let's target |
@@ -1447,12 +1447,12 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev, | |||
1447 | "ready for incoming skb- using first online " | 1447 | "ready for incoming skb- using first online " |
1448 | "CPU.\n"); | 1448 | "CPU.\n"); |
1449 | 1449 | ||
1450 | spin_unlock_bh(&fps->fcoe_rx_list.lock); | 1450 | spin_unlock(&fps->fcoe_rx_list.lock); |
1451 | cpu = cpumask_first(cpu_online_mask); | 1451 | cpu = cpumask_first(cpu_online_mask); |
1452 | fps = &per_cpu(fcoe_percpu, cpu); | 1452 | fps = &per_cpu(fcoe_percpu, cpu); |
1453 | spin_lock_bh(&fps->fcoe_rx_list.lock); | 1453 | spin_lock(&fps->fcoe_rx_list.lock); |
1454 | if (!fps->thread) { | 1454 | if (!fps->thread) { |
1455 | spin_unlock_bh(&fps->fcoe_rx_list.lock); | 1455 | spin_unlock(&fps->fcoe_rx_list.lock); |
1456 | goto err; | 1456 | goto err; |
1457 | } | 1457 | } |
1458 | } | 1458 | } |
@@ -1473,7 +1473,7 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev, | |||
1473 | __skb_queue_tail(&fps->fcoe_rx_list, skb); | 1473 | __skb_queue_tail(&fps->fcoe_rx_list, skb); |
1474 | if (fps->fcoe_rx_list.qlen == 1) | 1474 | if (fps->fcoe_rx_list.qlen == 1) |
1475 | wake_up_process(fps->thread); | 1475 | wake_up_process(fps->thread); |
1476 | spin_unlock_bh(&fps->fcoe_rx_list.lock); | 1476 | spin_unlock(&fps->fcoe_rx_list.lock); |
1477 | 1477 | ||
1478 | return 0; | 1478 | return 0; |
1479 | err: | 1479 | err: |