ipw2200: ipw_tx_skb() endianness bug
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 27 Dec 2007 06:57:47 +0000 (01:57 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:08:57 +0000 (15:08 -0800)
We'd just set tfd->u.data.chunk_len[i] to cpu_to_le16(remaining_bytes);
passing it to pci_map_single() is a bad idea - it expects host-endian.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ipw2200.c

index c0591bda0178973d589b7c41497269f60ab333ca..7c45ba53f379bdf8c937b839e423a7fc24e881d9 100644 (file)
@@ -10341,7 +10341,7 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb,
                        tfd->u.data.chunk_ptr[i] =
                            cpu_to_le32(pci_map_single
                                        (priv->pci_dev, skb->data,
-                                        tfd->u.data.chunk_len[i],
+                                        remaining_bytes,
                                         PCI_DMA_TODEVICE));
 
                        tfd->u.data.num_chunks =