Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b6967eb9 authored by Ron Mercer's avatar Ron Mercer Committed by Jeff Garzik
Browse files

qla3xxx: bugfix: Multi segment sends were getting whacked.



The proper header length was not being used.

Signed-off-by: default avatarRon Mercer <ron.mercer@qlogic.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent d8a759ff
Loading
Loading
Loading
Loading
+2 −7
Original line number Original line Diff line number Diff line
@@ -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,
				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++;