From 7f81dc0097095f19d25e14c043edfdebb9e01295 Mon Sep 17 00:00:00 2001 From: Chas Williams Date: Tue, 19 Sep 2006 12:59:11 -0700 Subject: [ATM]: [he] don't hold the device lock when upcalling This can create a deadlock/lock ordering problem with other layers that want to use the transmit (or other) path of the card at that time. Signed-off-by: Chas Williams Signed-off-by: David S. Miller --- drivers/atm/he.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/atm/he.c') diff --git a/drivers/atm/he.c b/drivers/atm/he.c index dd96123..ffcb9fd 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c @@ -1928,7 +1928,9 @@ he_service_rbrq(struct he_dev *he_dev, int group) #ifdef notdef ATM_SKB(skb)->vcc = vcc; #endif + spin_unlock(&he_dev->global_lock); vcc->push(vcc, skb); + spin_lock(&he_dev->global_lock); atomic_inc(&vcc->stats->rx); -- cgit v1.1 From 84fa7933a33f806bbbaae6775e87459b1ec584c0 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Tue, 29 Aug 2006 16:44:56 -0700 Subject: [NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE Replace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose checksum still needs to be completed) and CHECKSUM_COMPLETE (for incoming packets, device supplied full checksum). Patch originally from Herbert Xu, updated by myself for 2.6.18-rc3. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- drivers/atm/he.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/atm/he.c') diff --git a/drivers/atm/he.c b/drivers/atm/he.c index ffcb9fd..41e052f 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c @@ -1912,7 +1912,7 @@ he_service_rbrq(struct he_dev *he_dev, int group) skb->tail = skb->data + skb->len; #ifdef USE_CHECKSUM_HW if (vcc->vpi == 0 && vcc->vci >= ATM_NOT_RSV_VCI) { - skb->ip_summed = CHECKSUM_HW; + skb->ip_summed = CHECKSUM_COMPLETE; skb->csum = TCP_CKSUM(skb->data, he_vcc->pdu_len); } -- cgit v1.1