diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2007-04-25 21:04:18 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:25:31 -0400 |
commit | 9c70220b73908f64792422a2c39c593c4792f2c5 (patch) | |
tree | 2090ea10aaa2714a5e095bae8cc02e743c378a3a /drivers/net/cxgb3/sge.c | |
parent | a27ef749e7be3b06fb58df53d94eb97a21f18707 (diff) |
[SK_BUFF]: Introduce skb_transport_header(skb)
For the places where we need a pointer to the transport header, it is
still legal to touch skb->h.raw directly if just adding to,
subtracting from or setting it to another layer header.
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cxgb3/sge.c')
-rw-r--r-- | drivers/net/cxgb3/sge.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c index a70fe9145a2e..610e4769efa4 100644 --- a/drivers/net/cxgb3/sge.c +++ b/drivers/net/cxgb3/sge.c | |||
@@ -1324,12 +1324,14 @@ static void write_ofld_wr(struct adapter *adap, struct sk_buff *skb, | |||
1324 | 1324 | ||
1325 | flits = skb_transport_offset(skb) / 8; | 1325 | flits = skb_transport_offset(skb) / 8; |
1326 | sgp = ndesc == 1 ? (struct sg_ent *)&d->flit[flits] : sgl; | 1326 | sgp = ndesc == 1 ? (struct sg_ent *)&d->flit[flits] : sgl; |
1327 | sgl_flits = make_sgl(skb, sgp, skb->h.raw, skb->tail - skb->h.raw, | 1327 | sgl_flits = make_sgl(skb, sgp, skb_transport_header(skb), |
1328 | skb->tail - skb_transport_header(skb), | ||
1328 | adap->pdev); | 1329 | adap->pdev); |
1329 | if (need_skb_unmap()) { | 1330 | if (need_skb_unmap()) { |
1330 | setup_deferred_unmapping(skb, adap->pdev, sgp, sgl_flits); | 1331 | setup_deferred_unmapping(skb, adap->pdev, sgp, sgl_flits); |
1331 | skb->destructor = deferred_unmap_destructor; | 1332 | skb->destructor = deferred_unmap_destructor; |
1332 | ((struct unmap_info *)skb->cb)->len = skb->tail - skb->h.raw; | 1333 | ((struct unmap_info *)skb->cb)->len = (skb->tail - |
1334 | skb_transport_header(skb)); | ||
1333 | } | 1335 | } |
1334 | 1336 | ||
1335 | write_wr_hdr_sgl(ndesc, skb, d, pidx, q, sgl, flits, sgl_flits, | 1337 | write_wr_hdr_sgl(ndesc, skb, d, pidx, q, sgl, flits, sgl_flits, |
@@ -1351,7 +1353,7 @@ static inline unsigned int calc_tx_descs_ofld(const struct sk_buff *skb) | |||
1351 | return 1; /* packet fits as immediate data */ | 1353 | return 1; /* packet fits as immediate data */ |
1352 | 1354 | ||
1353 | flits = skb_transport_offset(skb) / 8; /* headers */ | 1355 | flits = skb_transport_offset(skb) / 8; /* headers */ |
1354 | if (skb->tail != skb->h.raw) | 1356 | if (skb->tail != skb_transport_header(skb)) |
1355 | cnt++; | 1357 | cnt++; |
1356 | return flits_to_desc(flits + sgl_len(cnt)); | 1358 | return flits_to_desc(flits + sgl_len(cnt)); |
1357 | } | 1359 | } |