提交 b6967eb9 编写于 作者: R Ron Mercer 提交者: Jeff Garzik

qla3xxx: bugfix: Multi segment sends were getting whacked.

The proper header length was not being used.
Signed-off-by: NRon Mercer <ron.mercer@qlogic.com>
Signed-off-by: NJeff Garzik <jeff@garzik.org>
上级 d8a759ff
...@@ -2217,12 +2217,7 @@ static int ql_send_map(struct ql3_adapter *qdev, ...@@ -2217,12 +2217,7 @@ static int ql_send_map(struct ql3_adapter *qdev,
int seg_cnt, seg = 0; int seg_cnt, seg = 0;
int frag_cnt = (int)skb_shinfo(skb)->nr_frags; int frag_cnt = (int)skb_shinfo(skb)->nr_frags;
seg_cnt = tx_cb->seg_count = ql_get_seg_count(qdev, seg_cnt = tx_cb->seg_count;
(skb_shinfo(skb)->nr_frags));
if(seg_cnt == -1) {
printk(KERN_ERR PFX"%s: invalid segment count!\n",__func__);
return NETDEV_TX_BUSY;
}
/* /*
* Map the skb buffer first. * Map the skb buffer first.
*/ */
...@@ -2278,7 +2273,7 @@ static int ql_send_map(struct ql3_adapter *qdev, ...@@ -2278,7 +2273,7 @@ static int ql_send_map(struct ql3_adapter *qdev,
pci_unmap_addr_set(&tx_cb->map[seg], mapaddr, pci_unmap_addr_set(&tx_cb->map[seg], mapaddr,
map); map);
pci_unmap_len_set(&tx_cb->map[seg], maplen, pci_unmap_len_set(&tx_cb->map[seg], maplen,
len); sizeof(struct oal));
oal_entry = (struct oal_entry *)oal; oal_entry = (struct oal_entry *)oal;
oal++; oal++;
seg++; seg++;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册