All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <200812081506.54173.chunkeey@web.de>

diff --git a/a/1.txt b/N1/1.txt
index aed3b40..250147b 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,70 +1,60 @@
-Alan Stern found several flaws in p54usb's implementation and annotated=
-:=20
+Alan Stern found several flaws in p54usb's implementation and annotated: 
 "usb_kill_urb() and similar routines do not expect an URB's completion
-routine to deallocate it. =A0This is almost obvious -- if the URB is de=
-allocated
-before the completion routine returns then there's no way for usb_kill_=
-urb
+routine to deallocate it.  This is almost obvious -- if the URB is deallocated
+before the completion routine returns then there's no way for usb_kill_urb
 to detect when the URB actually is complete."
 
-I really hope this patch addresses all of Alan's comments and fixes the=
-=20
+I really hope this patch addresses all of Alan's comments and fixes the 
 "use-after-freed" hang, when SLUB debug's poisoning option is enabled.
 ---
-> I looked quickly at your new code.  It seems basically right, but the=
-re
-> are few things that still need attention.  For instance, you removed =
-a
+> I looked quickly at your new code.  It seems basically right, but there
+> are few things that still need attention.  For instance, you removed a
 > line to free an URB's transfer buffer.
 
 yeah, it was there in the last patch, but probably in the wrong place.
 Anyway, there's now a small comment so it's easier to spot it.
 
-So here's the new "final" version, unless someone files a complain with=
-in 24 hours.=20
+So here's the new "final" version, unless someone files a complain within 24 hours. 
 ---
-diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
-54/p54usb.c
---- a/drivers/net/wireless/p54/p54usb.c	2008-12-07 21:21:04.017774898 +=
-0100
-+++ b/drivers/net/wireless/p54/p54usb.c	2008-12-08 14:17:51.863521490 +=
-0100
+diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
+--- a/drivers/net/wireless/p54/p54usb.c	2008-12-07 21:21:04.017774898 +0100
++++ b/drivers/net/wireless/p54/p54usb.c	2008-12-08 14:17:51.863521490 +0100
 @@ -86,13 +86,13 @@ static void p54u_rx_cb(struct urb *urb)
- 	struct ieee80211_hw *dev =3D info->dev;
- 	struct p54u_priv *priv =3D dev->priv;
-=20
+ 	struct ieee80211_hw *dev = info->dev;
+ 	struct p54u_priv *priv = dev->priv;
+ 
 +	skb_unlink(skb, &priv->rx_queue);
 +
  	if (unlikely(urb->status)) {
--		info->urb =3D NULL;
+-		info->urb = NULL;
 -		usb_free_urb(urb);
 +		dev_kfree_skb_irq(skb);
  		return;
  	}
-=20
+ 
 -	skb_unlink(skb, &priv->rx_queue);
  	skb_put(skb, urb->actual_length);
-=20
- 	if (priv->hw_type =3D=3D P54U_NET2280)
+ 
+ 	if (priv->hw_type == P54U_NET2280)
 @@ -105,7 +105,6 @@ static void p54u_rx_cb(struct urb *urb)
  	if (p54_rx(dev, skb)) {
- 		skb =3D dev_alloc_skb(priv->common.rx_mtu + 32);
+ 		skb = dev_alloc_skb(priv->common.rx_mtu + 32);
  		if (unlikely(!skb)) {
 -			usb_free_urb(urb);
  			/* TODO check rx queue length and refill *somewhere* */
  			return;
  		}
 @@ -115,7 +114,6 @@ static void p54u_rx_cb(struct urb *urb)
- 		info->dev =3D dev;
- 		urb->transfer_buffer =3D skb_tail_pointer(skb);
- 		urb->context =3D skb;
+ 		info->dev = dev;
+ 		urb->transfer_buffer = skb_tail_pointer(skb);
+ 		urb->context = skb;
 -		skb_queue_tail(&priv->rx_queue, skb);
  	} else {
- 		if (priv->hw_type =3D=3D P54U_NET2280)
+ 		if (priv->hw_type == P54U_NET2280)
  			skb_push(skb, priv->common.tx_hdr_len);
 @@ -130,11 +128,14 @@ static void p54u_rx_cb(struct urb *urb)
  			WARN_ON(1);
- 			urb->transfer_buffer =3D skb_tail_pointer(skb);
+ 			urb->transfer_buffer = skb_tail_pointer(skb);
  		}
 -
 -		skb_queue_tail(&priv->rx_queue, skb);
@@ -79,11 +69,11 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
 +		dev_kfree_skb_irq(skb);
 +	}
  }
-=20
+ 
  static void p54u_tx_reuse_skb_cb(struct urb *urb)
-@@ -144,18 +145,6 @@ static void p54u_tx_reuse_skb_cb(struct=20
+@@ -144,18 +145,6 @@ static void p54u_tx_reuse_skb_cb(struct 
  		usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)))->priv;
-=20
+ 
  	skb_pull(skb, priv->common.tx_hdr_len);
 -	usb_free_urb(urb);
 -}
@@ -98,11 +88,11 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
 -	kfree(urb->transfer_buffer);
 -	usb_free_urb(urb);
  }
-=20
+ 
  static void p54u_tx_free_skb_cb(struct urb *urb)
 @@ -165,25 +154,36 @@ static void p54u_tx_free_skb_cb(struct u
  		usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0));
-=20
+ 
  	p54_free_skb(dev, skb);
 -	usb_free_urb(urb);
 +}
@@ -111,32 +101,32 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
 +
 +static void p54u_free_urbs(struct ieee80211_hw *dev)
 +{
-+	struct p54u_priv *priv =3D dev->priv;
++	struct p54u_priv *priv = dev->priv;
 +	usb_kill_anchored_urbs(&priv->submitted);
  }
-=20
+ 
  static int p54u_init_urbs(struct ieee80211_hw *dev)
  {
- 	struct p54u_priv *priv =3D dev->priv;
+ 	struct p54u_priv *priv = dev->priv;
 -	struct urb *entry;
-+	struct urb *entry =3D NULL;
++	struct urb *entry = NULL;
  	struct sk_buff *skb;
  	struct p54u_rx_info *info;
-+	int ret =3D 0;
-=20
++	int ret = 0;
+ 
  	while (skb_queue_len(&priv->rx_queue) < 32) {
- 		skb =3D __dev_alloc_skb(priv->common.rx_mtu + 32, GFP_KERNEL);
+ 		skb = __dev_alloc_skb(priv->common.rx_mtu + 32, GFP_KERNEL);
 -		if (!skb)
 -			break;
 +		if (!skb) {
-+			ret =3D -ENOMEM;
++			ret = -ENOMEM;
 +			goto err;
 +		}
- 		entry =3D usb_alloc_urb(0, GFP_KERNEL);
+ 		entry = usb_alloc_urb(0, GFP_KERNEL);
  		if (!entry) {
 -			kfree_skb(skb);
 -			break;
-+			ret =3D -ENOMEM;
++			ret = -ENOMEM;
 +			goto err;
  		}
 +
@@ -144,33 +134,33 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
  				  usb_rcvbulkpipe(priv->udev, P54U_PIPE_DATA),
  				  skb_tail_pointer(skb),
 @@ -192,26 +192,25 @@ static int p54u_init_urbs(struct ieee802
- 		info->urb =3D entry;
- 		info->dev =3D dev;
+ 		info->urb = entry;
+ 		info->dev = dev;
  		skb_queue_tail(&priv->rx_queue, skb);
 -		usb_submit_urb(entry, GFP_KERNEL);
 +
 +		usb_anchor_urb(entry, &priv->submitted);
-+		ret =3D usb_submit_urb(entry, GFP_KERNEL);
++		ret = usb_submit_urb(entry, GFP_KERNEL);
 +		if (ret) {
 +			skb_unlink(skb, &priv->rx_queue);
 +			usb_unanchor_urb(entry);
 +			goto err;
 +		}
 +		usb_free_urb(entry);
-+		entry =3D NULL;
++		entry = NULL;
  	}
-=20
+ 
  	return 0;
 -}
-=20
+ 
 -static void p54u_free_urbs(struct ieee80211_hw *dev)
 -{
--	struct p54u_priv *priv =3D dev->priv;
+-	struct p54u_priv *priv = dev->priv;
 -	struct p54u_rx_info *info;
 -	struct sk_buff *skb;
 -
--	while ((skb =3D skb_dequeue(&priv->rx_queue))) {
--		info =3D (struct p54u_rx_info *) skb->cb;
+-	while ((skb = skb_dequeue(&priv->rx_queue))) {
+-		info = (struct p54u_rx_info *) skb->cb;
 -		if (!info->urb)
 -			continue;
 -
@@ -183,16 +173,15 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
 +	p54u_free_urbs(dev);
 +	return ret;
  }
-=20
- static void p54u_tx_3887(struct ieee80211_hw *dev, struct sk_buff *skb=
-,
+ 
+ static void p54u_tx_3887(struct ieee80211_hw *dev, struct sk_buff *skb,
 @@ -219,6 +218,7 @@ static void p54u_tx_3887(struct ieee8021
  {
- 	struct p54u_priv *priv =3D dev->priv;
+ 	struct p54u_priv *priv = dev->priv;
  	struct urb *addr_urb, *data_urb;
-+	int err =3D 0;
-=20
- 	addr_urb =3D usb_alloc_urb(0, GFP_ATOMIC);
++	int err = 0;
+ 
+ 	addr_urb = usb_alloc_urb(0, GFP_ATOMIC);
  	if (!addr_urb)
 @@ -233,15 +233,31 @@ static void p54u_tx_3887(struct ieee8021
  	usb_fill_bulk_urb(addr_urb, priv->udev,
@@ -205,18 +194,18 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
  			  skb->data, skb->len,
  			  free_on_tx ? p54u_tx_free_skb_cb :
  				       p54u_tx_reuse_skb_cb, skb);
-=20
+ 
 -	usb_submit_urb(addr_urb, GFP_ATOMIC);
 -	usb_submit_urb(data_urb, GFP_ATOMIC);
 +	usb_anchor_urb(addr_urb, &priv->submitted);
-+	err =3D usb_submit_urb(addr_urb, GFP_ATOMIC);
++	err = usb_submit_urb(addr_urb, GFP_ATOMIC);
 +	if (err) {
 +		usb_unanchor_urb(addr_urb);
 +		goto out;
 +	}
 +
 +	usb_anchor_urb(addr_urb, &priv->submitted);
-+	err =3D usb_submit_urb(data_urb, GFP_ATOMIC);
++	err = usb_submit_urb(data_urb, GFP_ATOMIC);
 +	if (err)
 +		usb_unanchor_urb(data_urb);
 +
@@ -227,12 +216,12 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
 +	if (err)
 +		p54_free_skb(dev, skb);
  }
-=20
+ 
  static __le32 p54u_lm87_chksum(const __le32 *data, size_t length)
 @@ -281,7 +297,13 @@ static void p54u_tx_lm87(struct ieee8021
  			  free_on_tx ? p54u_tx_free_skb_cb :
  				       p54u_tx_reuse_skb_cb, skb);
-=20
+ 
 -	usb_submit_urb(data_urb, GFP_ATOMIC);
 +	usb_anchor_urb(data_urb, &priv->submitted);
 +	if (usb_submit_urb(data_urb, GFP_ATOMIC)) {
@@ -242,19 +231,18 @@ diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=
 +	}
 +	usb_free_urb(data_urb);
  }
-=20
- static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *=
-skb,
+ 
+ static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *skb,
 @@ -291,6 +313,7 @@ static void p54u_tx_net2280(struct ieee8
  	struct urb *int_urb, *data_urb;
  	struct net2280_tx_hdr *hdr;
  	struct net2280_reg_write *reg;
-+	int err =3D 0;
-=20
- 	reg =3D kmalloc(sizeof(*reg), GFP_ATOMIC);
++	int err = 0;
+ 
+ 	reg = kmalloc(sizeof(*reg), GFP_ATOMIC);
  	if (!reg)
 @@ -320,15 +343,42 @@ static void p54u_tx_net2280(struct ieee8
-=20
+ 
  	usb_fill_bulk_urb(int_urb, priv->udev,
  		usb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), reg, sizeof(*reg),
 -		p54u_tx_free_cb, dev);
@@ -266,8 +254,8 @@ skb,
 +	 * free what's inside the transfer_buffer after the callback routine
 +	 * has completed.
 +	 */
-+	int_urb->transfer_flags |=3D URB_FREE_BUFFER;
-=20
++	int_urb->transfer_flags |= URB_FREE_BUFFER;
+ 
  	usb_fill_bulk_urb(data_urb, priv->udev,
  			  usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA),
  			  skb->data, skb->len,
@@ -276,14 +264,14 @@ skb,
 -	usb_submit_urb(data_urb, GFP_ATOMIC);
 +
 +	usb_anchor_urb(int_urb, &priv->submitted);
-+	err =3D usb_submit_urb(int_urb, GFP_ATOMIC);
++	err = usb_submit_urb(int_urb, GFP_ATOMIC);
 +	if (err) {
 +		usb_unanchor_urb(int_urb);
 +		goto out;
 +	}
 +
 +	usb_anchor_urb(data_urb, &priv->submitted);
-+	err =3D usb_submit_urb(data_urb, GFP_ATOMIC);
++	err = usb_submit_urb(data_urb, GFP_ATOMIC);
 +	if (err) {
 +		usb_unanchor_urb(data_urb);
 +		goto out;
@@ -297,32 +285,24 @@ skb,
 +		p54_free_skb(dev, skb);
 +	}
  }
-=20
+ 
  static int p54u_write(struct p54u_priv *priv,
 @@ -886,6 +936,7 @@ static int __devinit p54u_probe(struct u
  		goto err_free_dev;
-=20
+ 
  	skb_queue_head_init(&priv->rx_queue);
 +	init_usb_anchor(&priv->submitted);
-=20
+ 
  	p54u_open(dev);
- 	err =3D p54_read_eeprom(dev);
-diff -Nurp a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p=
-54/p54usb.h
---- a/drivers/net/wireless/p54/p54usb.h	2008-12-07 21:21:04.017774898 +=
-0100
-+++ b/drivers/net/wireless/p54/p54usb.h	2008-12-07 22:04:45.956897502 +=
-0100
+ 	err = p54_read_eeprom(dev);
+diff -Nurp a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h
+--- a/drivers/net/wireless/p54/p54usb.h	2008-12-07 21:21:04.017774898 +0100
++++ b/drivers/net/wireless/p54/p54usb.h	2008-12-07 22:04:45.956897502 +0100
 @@ -133,6 +133,7 @@ struct p54u_priv {
-=20
+ 
  	spinlock_t lock;
  	struct sk_buff_head rx_queue;
 +	struct usb_anchor submitted;
  };
-=20
+ 
  #endif /* P54USB_H */
---
-To unsubscribe from this list: send the line "unsubscribe linux-wireles=
-s" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff --git a/a/content_digest b/N1/content_digest
index 8757bc3..e32d1eb 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -12,73 +12,63 @@
  " linux-kernel@vger.kernel.org\0"
  "\00:1\0"
  "b\0"
- "Alan Stern found several flaws in p54usb's implementation and annotated=\n"
- ":=20\n"
+ "Alan Stern found several flaws in p54usb's implementation and annotated: \n"
  "\"usb_kill_urb() and similar routines do not expect an URB's completion\n"
- "routine to deallocate it. =A0This is almost obvious -- if the URB is de=\n"
- "allocated\n"
- "before the completion routine returns then there's no way for usb_kill_=\n"
- "urb\n"
+ "routine to deallocate it. \302\240This is almost obvious -- if the URB is deallocated\n"
+ "before the completion routine returns then there's no way for usb_kill_urb\n"
  "to detect when the URB actually is complete.\"\n"
  "\n"
- "I really hope this patch addresses all of Alan's comments and fixes the=\n"
- "=20\n"
+ "I really hope this patch addresses all of Alan's comments and fixes the \n"
  "\"use-after-freed\" hang, when SLUB debug's poisoning option is enabled.\n"
  "---\n"
- "> I looked quickly at your new code.  It seems basically right, but the=\n"
- "re\n"
- "> are few things that still need attention.  For instance, you removed =\n"
- "a\n"
+ "> I looked quickly at your new code.  It seems basically right, but there\n"
+ "> are few things that still need attention.  For instance, you removed a\n"
  "> line to free an URB's transfer buffer.\n"
  "\n"
  "yeah, it was there in the last patch, but probably in the wrong place.\n"
  "Anyway, there's now a small comment so it's easier to spot it.\n"
  "\n"
- "So here's the new \"final\" version, unless someone files a complain with=\n"
- "in 24 hours.=20\n"
+ "So here's the new \"final\" version, unless someone files a complain within 24 hours. \n"
  "---\n"
- "diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p=\n"
- "54/p54usb.c\n"
- "--- a/drivers/net/wireless/p54/p54usb.c\t2008-12-07 21:21:04.017774898 +=\n"
- "0100\n"
- "+++ b/drivers/net/wireless/p54/p54usb.c\t2008-12-08 14:17:51.863521490 +=\n"
- "0100\n"
+ "diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c\n"
+ "--- a/drivers/net/wireless/p54/p54usb.c\t2008-12-07 21:21:04.017774898 +0100\n"
+ "+++ b/drivers/net/wireless/p54/p54usb.c\t2008-12-08 14:17:51.863521490 +0100\n"
  "@@ -86,13 +86,13 @@ static void p54u_rx_cb(struct urb *urb)\n"
- " \tstruct ieee80211_hw *dev =3D info->dev;\n"
- " \tstruct p54u_priv *priv =3D dev->priv;\n"
- "=20\n"
+ " \tstruct ieee80211_hw *dev = info->dev;\n"
+ " \tstruct p54u_priv *priv = dev->priv;\n"
+ " \n"
  "+\tskb_unlink(skb, &priv->rx_queue);\n"
  "+\n"
  " \tif (unlikely(urb->status)) {\n"
- "-\t\tinfo->urb =3D NULL;\n"
+ "-\t\tinfo->urb = NULL;\n"
  "-\t\tusb_free_urb(urb);\n"
  "+\t\tdev_kfree_skb_irq(skb);\n"
  " \t\treturn;\n"
  " \t}\n"
- "=20\n"
+ " \n"
  "-\tskb_unlink(skb, &priv->rx_queue);\n"
  " \tskb_put(skb, urb->actual_length);\n"
- "=20\n"
- " \tif (priv->hw_type =3D=3D P54U_NET2280)\n"
+ " \n"
+ " \tif (priv->hw_type == P54U_NET2280)\n"
  "@@ -105,7 +105,6 @@ static void p54u_rx_cb(struct urb *urb)\n"
  " \tif (p54_rx(dev, skb)) {\n"
- " \t\tskb =3D dev_alloc_skb(priv->common.rx_mtu + 32);\n"
+ " \t\tskb = dev_alloc_skb(priv->common.rx_mtu + 32);\n"
  " \t\tif (unlikely(!skb)) {\n"
  "-\t\t\tusb_free_urb(urb);\n"
  " \t\t\t/* TODO check rx queue length and refill *somewhere* */\n"
  " \t\t\treturn;\n"
  " \t\t}\n"
  "@@ -115,7 +114,6 @@ static void p54u_rx_cb(struct urb *urb)\n"
- " \t\tinfo->dev =3D dev;\n"
- " \t\turb->transfer_buffer =3D skb_tail_pointer(skb);\n"
- " \t\turb->context =3D skb;\n"
+ " \t\tinfo->dev = dev;\n"
+ " \t\turb->transfer_buffer = skb_tail_pointer(skb);\n"
+ " \t\turb->context = skb;\n"
  "-\t\tskb_queue_tail(&priv->rx_queue, skb);\n"
  " \t} else {\n"
- " \t\tif (priv->hw_type =3D=3D P54U_NET2280)\n"
+ " \t\tif (priv->hw_type == P54U_NET2280)\n"
  " \t\t\tskb_push(skb, priv->common.tx_hdr_len);\n"
  "@@ -130,11 +128,14 @@ static void p54u_rx_cb(struct urb *urb)\n"
  " \t\t\tWARN_ON(1);\n"
- " \t\t\turb->transfer_buffer =3D skb_tail_pointer(skb);\n"
+ " \t\t\turb->transfer_buffer = skb_tail_pointer(skb);\n"
  " \t\t}\n"
  "-\n"
  "-\t\tskb_queue_tail(&priv->rx_queue, skb);\n"
@@ -93,11 +83,11 @@
  "+\t\tdev_kfree_skb_irq(skb);\n"
  "+\t}\n"
  " }\n"
- "=20\n"
+ " \n"
  " static void p54u_tx_reuse_skb_cb(struct urb *urb)\n"
- "@@ -144,18 +145,6 @@ static void p54u_tx_reuse_skb_cb(struct=20\n"
+ "@@ -144,18 +145,6 @@ static void p54u_tx_reuse_skb_cb(struct \n"
  " \t\tusb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)))->priv;\n"
- "=20\n"
+ " \n"
  " \tskb_pull(skb, priv->common.tx_hdr_len);\n"
  "-\tusb_free_urb(urb);\n"
  "-}\n"
@@ -112,11 +102,11 @@
  "-\tkfree(urb->transfer_buffer);\n"
  "-\tusb_free_urb(urb);\n"
  " }\n"
- "=20\n"
+ " \n"
  " static void p54u_tx_free_skb_cb(struct urb *urb)\n"
  "@@ -165,25 +154,36 @@ static void p54u_tx_free_skb_cb(struct u\n"
  " \t\tusb_get_intfdata(usb_ifnum_to_if(urb->dev, 0));\n"
- "=20\n"
+ " \n"
  " \tp54_free_skb(dev, skb);\n"
  "-\tusb_free_urb(urb);\n"
  "+}\n"
@@ -125,32 +115,32 @@
  "+\n"
  "+static void p54u_free_urbs(struct ieee80211_hw *dev)\n"
  "+{\n"
- "+\tstruct p54u_priv *priv =3D dev->priv;\n"
+ "+\tstruct p54u_priv *priv = dev->priv;\n"
  "+\tusb_kill_anchored_urbs(&priv->submitted);\n"
  " }\n"
- "=20\n"
+ " \n"
  " static int p54u_init_urbs(struct ieee80211_hw *dev)\n"
  " {\n"
- " \tstruct p54u_priv *priv =3D dev->priv;\n"
+ " \tstruct p54u_priv *priv = dev->priv;\n"
  "-\tstruct urb *entry;\n"
- "+\tstruct urb *entry =3D NULL;\n"
+ "+\tstruct urb *entry = NULL;\n"
  " \tstruct sk_buff *skb;\n"
  " \tstruct p54u_rx_info *info;\n"
- "+\tint ret =3D 0;\n"
- "=20\n"
+ "+\tint ret = 0;\n"
+ " \n"
  " \twhile (skb_queue_len(&priv->rx_queue) < 32) {\n"
- " \t\tskb =3D __dev_alloc_skb(priv->common.rx_mtu + 32, GFP_KERNEL);\n"
+ " \t\tskb = __dev_alloc_skb(priv->common.rx_mtu + 32, GFP_KERNEL);\n"
  "-\t\tif (!skb)\n"
  "-\t\t\tbreak;\n"
  "+\t\tif (!skb) {\n"
- "+\t\t\tret =3D -ENOMEM;\n"
+ "+\t\t\tret = -ENOMEM;\n"
  "+\t\t\tgoto err;\n"
  "+\t\t}\n"
- " \t\tentry =3D usb_alloc_urb(0, GFP_KERNEL);\n"
+ " \t\tentry = usb_alloc_urb(0, GFP_KERNEL);\n"
  " \t\tif (!entry) {\n"
  "-\t\t\tkfree_skb(skb);\n"
  "-\t\t\tbreak;\n"
- "+\t\t\tret =3D -ENOMEM;\n"
+ "+\t\t\tret = -ENOMEM;\n"
  "+\t\t\tgoto err;\n"
  " \t\t}\n"
  "+\n"
@@ -158,33 +148,33 @@
  " \t\t\t\t  usb_rcvbulkpipe(priv->udev, P54U_PIPE_DATA),\n"
  " \t\t\t\t  skb_tail_pointer(skb),\n"
  "@@ -192,26 +192,25 @@ static int p54u_init_urbs(struct ieee802\n"
- " \t\tinfo->urb =3D entry;\n"
- " \t\tinfo->dev =3D dev;\n"
+ " \t\tinfo->urb = entry;\n"
+ " \t\tinfo->dev = dev;\n"
  " \t\tskb_queue_tail(&priv->rx_queue, skb);\n"
  "-\t\tusb_submit_urb(entry, GFP_KERNEL);\n"
  "+\n"
  "+\t\tusb_anchor_urb(entry, &priv->submitted);\n"
- "+\t\tret =3D usb_submit_urb(entry, GFP_KERNEL);\n"
+ "+\t\tret = usb_submit_urb(entry, GFP_KERNEL);\n"
  "+\t\tif (ret) {\n"
  "+\t\t\tskb_unlink(skb, &priv->rx_queue);\n"
  "+\t\t\tusb_unanchor_urb(entry);\n"
  "+\t\t\tgoto err;\n"
  "+\t\t}\n"
  "+\t\tusb_free_urb(entry);\n"
- "+\t\tentry =3D NULL;\n"
+ "+\t\tentry = NULL;\n"
  " \t}\n"
- "=20\n"
+ " \n"
  " \treturn 0;\n"
  "-}\n"
- "=20\n"
+ " \n"
  "-static void p54u_free_urbs(struct ieee80211_hw *dev)\n"
  "-{\n"
- "-\tstruct p54u_priv *priv =3D dev->priv;\n"
+ "-\tstruct p54u_priv *priv = dev->priv;\n"
  "-\tstruct p54u_rx_info *info;\n"
  "-\tstruct sk_buff *skb;\n"
  "-\n"
- "-\twhile ((skb =3D skb_dequeue(&priv->rx_queue))) {\n"
- "-\t\tinfo =3D (struct p54u_rx_info *) skb->cb;\n"
+ "-\twhile ((skb = skb_dequeue(&priv->rx_queue))) {\n"
+ "-\t\tinfo = (struct p54u_rx_info *) skb->cb;\n"
  "-\t\tif (!info->urb)\n"
  "-\t\t\tcontinue;\n"
  "-\n"
@@ -197,16 +187,15 @@
  "+\tp54u_free_urbs(dev);\n"
  "+\treturn ret;\n"
  " }\n"
- "=20\n"
- " static void p54u_tx_3887(struct ieee80211_hw *dev, struct sk_buff *skb=\n"
- ",\n"
+ " \n"
+ " static void p54u_tx_3887(struct ieee80211_hw *dev, struct sk_buff *skb,\n"
  "@@ -219,6 +218,7 @@ static void p54u_tx_3887(struct ieee8021\n"
  " {\n"
- " \tstruct p54u_priv *priv =3D dev->priv;\n"
+ " \tstruct p54u_priv *priv = dev->priv;\n"
  " \tstruct urb *addr_urb, *data_urb;\n"
- "+\tint err =3D 0;\n"
- "=20\n"
- " \taddr_urb =3D usb_alloc_urb(0, GFP_ATOMIC);\n"
+ "+\tint err = 0;\n"
+ " \n"
+ " \taddr_urb = usb_alloc_urb(0, GFP_ATOMIC);\n"
  " \tif (!addr_urb)\n"
  "@@ -233,15 +233,31 @@ static void p54u_tx_3887(struct ieee8021\n"
  " \tusb_fill_bulk_urb(addr_urb, priv->udev,\n"
@@ -219,18 +208,18 @@
  " \t\t\t  skb->data, skb->len,\n"
  " \t\t\t  free_on_tx ? p54u_tx_free_skb_cb :\n"
  " \t\t\t\t       p54u_tx_reuse_skb_cb, skb);\n"
- "=20\n"
+ " \n"
  "-\tusb_submit_urb(addr_urb, GFP_ATOMIC);\n"
  "-\tusb_submit_urb(data_urb, GFP_ATOMIC);\n"
  "+\tusb_anchor_urb(addr_urb, &priv->submitted);\n"
- "+\terr =3D usb_submit_urb(addr_urb, GFP_ATOMIC);\n"
+ "+\terr = usb_submit_urb(addr_urb, GFP_ATOMIC);\n"
  "+\tif (err) {\n"
  "+\t\tusb_unanchor_urb(addr_urb);\n"
  "+\t\tgoto out;\n"
  "+\t}\n"
  "+\n"
  "+\tusb_anchor_urb(addr_urb, &priv->submitted);\n"
- "+\terr =3D usb_submit_urb(data_urb, GFP_ATOMIC);\n"
+ "+\terr = usb_submit_urb(data_urb, GFP_ATOMIC);\n"
  "+\tif (err)\n"
  "+\t\tusb_unanchor_urb(data_urb);\n"
  "+\n"
@@ -241,12 +230,12 @@
  "+\tif (err)\n"
  "+\t\tp54_free_skb(dev, skb);\n"
  " }\n"
- "=20\n"
+ " \n"
  " static __le32 p54u_lm87_chksum(const __le32 *data, size_t length)\n"
  "@@ -281,7 +297,13 @@ static void p54u_tx_lm87(struct ieee8021\n"
  " \t\t\t  free_on_tx ? p54u_tx_free_skb_cb :\n"
  " \t\t\t\t       p54u_tx_reuse_skb_cb, skb);\n"
- "=20\n"
+ " \n"
  "-\tusb_submit_urb(data_urb, GFP_ATOMIC);\n"
  "+\tusb_anchor_urb(data_urb, &priv->submitted);\n"
  "+\tif (usb_submit_urb(data_urb, GFP_ATOMIC)) {\n"
@@ -256,19 +245,18 @@
  "+\t}\n"
  "+\tusb_free_urb(data_urb);\n"
  " }\n"
- "=20\n"
- " static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *=\n"
- "skb,\n"
+ " \n"
+ " static void p54u_tx_net2280(struct ieee80211_hw *dev, struct sk_buff *skb,\n"
  "@@ -291,6 +313,7 @@ static void p54u_tx_net2280(struct ieee8\n"
  " \tstruct urb *int_urb, *data_urb;\n"
  " \tstruct net2280_tx_hdr *hdr;\n"
  " \tstruct net2280_reg_write *reg;\n"
- "+\tint err =3D 0;\n"
- "=20\n"
- " \treg =3D kmalloc(sizeof(*reg), GFP_ATOMIC);\n"
+ "+\tint err = 0;\n"
+ " \n"
+ " \treg = kmalloc(sizeof(*reg), GFP_ATOMIC);\n"
  " \tif (!reg)\n"
  "@@ -320,15 +343,42 @@ static void p54u_tx_net2280(struct ieee8\n"
- "=20\n"
+ " \n"
  " \tusb_fill_bulk_urb(int_urb, priv->udev,\n"
  " \t\tusb_sndbulkpipe(priv->udev, P54U_PIPE_DEV), reg, sizeof(*reg),\n"
  "-\t\tp54u_tx_free_cb, dev);\n"
@@ -280,8 +268,8 @@
  "+\t * free what's inside the transfer_buffer after the callback routine\n"
  "+\t * has completed.\n"
  "+\t */\n"
- "+\tint_urb->transfer_flags |=3D URB_FREE_BUFFER;\n"
- "=20\n"
+ "+\tint_urb->transfer_flags |= URB_FREE_BUFFER;\n"
+ " \n"
  " \tusb_fill_bulk_urb(data_urb, priv->udev,\n"
  " \t\t\t  usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA),\n"
  " \t\t\t  skb->data, skb->len,\n"
@@ -290,14 +278,14 @@
  "-\tusb_submit_urb(data_urb, GFP_ATOMIC);\n"
  "+\n"
  "+\tusb_anchor_urb(int_urb, &priv->submitted);\n"
- "+\terr =3D usb_submit_urb(int_urb, GFP_ATOMIC);\n"
+ "+\terr = usb_submit_urb(int_urb, GFP_ATOMIC);\n"
  "+\tif (err) {\n"
  "+\t\tusb_unanchor_urb(int_urb);\n"
  "+\t\tgoto out;\n"
  "+\t}\n"
  "+\n"
  "+\tusb_anchor_urb(data_urb, &priv->submitted);\n"
- "+\terr =3D usb_submit_urb(data_urb, GFP_ATOMIC);\n"
+ "+\terr = usb_submit_urb(data_urb, GFP_ATOMIC);\n"
  "+\tif (err) {\n"
  "+\t\tusb_unanchor_urb(data_urb);\n"
  "+\t\tgoto out;\n"
@@ -311,34 +299,26 @@
  "+\t\tp54_free_skb(dev, skb);\n"
  "+\t}\n"
  " }\n"
- "=20\n"
+ " \n"
  " static int p54u_write(struct p54u_priv *priv,\n"
  "@@ -886,6 +936,7 @@ static int __devinit p54u_probe(struct u\n"
  " \t\tgoto err_free_dev;\n"
- "=20\n"
+ " \n"
  " \tskb_queue_head_init(&priv->rx_queue);\n"
  "+\tinit_usb_anchor(&priv->submitted);\n"
- "=20\n"
+ " \n"
  " \tp54u_open(dev);\n"
- " \terr =3D p54_read_eeprom(dev);\n"
- "diff -Nurp a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p=\n"
- "54/p54usb.h\n"
- "--- a/drivers/net/wireless/p54/p54usb.h\t2008-12-07 21:21:04.017774898 +=\n"
- "0100\n"
- "+++ b/drivers/net/wireless/p54/p54usb.h\t2008-12-07 22:04:45.956897502 +=\n"
- "0100\n"
+ " \terr = p54_read_eeprom(dev);\n"
+ "diff -Nurp a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h\n"
+ "--- a/drivers/net/wireless/p54/p54usb.h\t2008-12-07 21:21:04.017774898 +0100\n"
+ "+++ b/drivers/net/wireless/p54/p54usb.h\t2008-12-07 22:04:45.956897502 +0100\n"
  "@@ -133,6 +133,7 @@ struct p54u_priv {\n"
- "=20\n"
+ " \n"
  " \tspinlock_t lock;\n"
  " \tstruct sk_buff_head rx_queue;\n"
  "+\tstruct usb_anchor submitted;\n"
  " };\n"
- "=20\n"
- " #endif /* P54USB_H */\n"
- "--\n"
- "To unsubscribe from this list: send the line \"unsubscribe linux-wireles=\n"
- "s\" in\n"
- "the body of a message to majordomo@vger.kernel.org\n"
- More majordomo info at  http://vger.kernel.org/majordomo-info.html
+ " \n"
+  #endif /* P54USB_H */
 
-9a148ee5a7f716800cf660bf56da072ef34c1abe0bfe89e2895603691cb1bf26
+7ebe350fbcd995ef0000b6dcd1cdc20da9292a4c9ffc893936648811e66d7fc0

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.