diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-27 12:26:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-27 12:26:46 -0400 |
commit | 15c54033964a943de7b0763efd3bd0ede7326395 (patch) | |
tree | 840b292612d1b5396d5bab5bde537a9013db3ceb /arch/ia64/sn/kernel/xpnet.c | |
parent | ad5da3cf39a5b11a198929be1f2644e17ecd767e (diff) | |
parent | 912a41a4ab935ce8c4308428ec13fc7f8b1f18f4 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (448 commits)
[IPV4] nl_fib_lookup: Initialise res.r before fib_res_put(&res)
[IPV6]: Fix thinko in ipv6_rthdr_rcv() changes.
[IPV4]: Add multipath cached to feature-removal-schedule.txt
[WIRELESS] cfg80211: Clarify locking comment.
[WIRELESS] cfg80211: Fix locking in wiphy_new.
[WEXT] net_device: Don't include wext bits if not required.
[WEXT]: Misc code cleanups.
[WEXT]: Reduce inline abuse.
[WEXT]: Move EXPORT_SYMBOL statements where they belong.
[WEXT]: Cleanup early ioctl call path.
[WEXT]: Remove options.
[WEXT]: Remove dead debug code.
[WEXT]: Clean up how wext is called.
[WEXT]: Move to net/wireless
[AFS]: Eliminate cmpxchg() usage in vlocation code.
[RXRPC]: Fix pointers passed to bitops.
[RXRPC]: Remove bogus atomic_* overrides.
[AFS]: Fix u64 printing in debug logging.
[AFS]: Add "directory write" support.
[AFS]: Implement the CB.InitCallBackState3 operation.
...
Diffstat (limited to 'arch/ia64/sn/kernel/xpnet.c')
-rw-r--r-- | arch/ia64/sn/kernel/xpnet.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/ia64/sn/kernel/xpnet.c b/arch/ia64/sn/kernel/xpnet.c index c8173db0d84f..5419acb89a8c 100644 --- a/arch/ia64/sn/kernel/xpnet.c +++ b/arch/ia64/sn/kernel/xpnet.c | |||
@@ -233,7 +233,7 @@ xpnet_receive(partid_t partid, int channel, struct xpnet_message *msg) | |||
233 | "%lu)\n", skb->data, &msg->data, | 233 | "%lu)\n", skb->data, &msg->data, |
234 | (size_t) msg->embedded_bytes); | 234 | (size_t) msg->embedded_bytes); |
235 | 235 | ||
236 | memcpy(skb->data, &msg->data, (size_t) msg->embedded_bytes); | 236 | skb_copy_to_linear_data(skb, &msg->data, (size_t)msg->embedded_bytes); |
237 | } else { | 237 | } else { |
238 | dev_dbg(xpnet, "transferring buffer to the skb->data area;\n\t" | 238 | dev_dbg(xpnet, "transferring buffer to the skb->data area;\n\t" |
239 | "bte_copy(0x%p, 0x%p, %hu)\n", (void *)msg->buf_pa, | 239 | "bte_copy(0x%p, 0x%p, %hu)\n", (void *)msg->buf_pa, |
@@ -264,17 +264,16 @@ xpnet_receive(partid_t partid, int channel, struct xpnet_message *msg) | |||
264 | 264 | ||
265 | dev_dbg(xpnet, "<skb->head=0x%p skb->data=0x%p skb->tail=0x%p " | 265 | dev_dbg(xpnet, "<skb->head=0x%p skb->data=0x%p skb->tail=0x%p " |
266 | "skb->end=0x%p skb->len=%d\n", (void *) skb->head, | 266 | "skb->end=0x%p skb->len=%d\n", (void *) skb->head, |
267 | (void *) skb->data, (void *) skb->tail, (void *) skb->end, | 267 | (void *)skb->data, skb_tail_pointer(skb), skb_end_pointer(skb), |
268 | skb->len); | 268 | skb->len); |
269 | 269 | ||
270 | skb->dev = xpnet_device; | ||
271 | skb->protocol = eth_type_trans(skb, xpnet_device); | 270 | skb->protocol = eth_type_trans(skb, xpnet_device); |
272 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 271 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
273 | 272 | ||
274 | dev_dbg(xpnet, "passing skb to network layer; \n\tskb->head=0x%p " | 273 | dev_dbg(xpnet, "passing skb to network layer; \n\tskb->head=0x%p " |
275 | "skb->data=0x%p skb->tail=0x%p skb->end=0x%p skb->len=%d\n", | 274 | "skb->data=0x%p skb->tail=0x%p skb->end=0x%p skb->len=%d\n", |
276 | (void *) skb->head, (void *) skb->data, (void *) skb->tail, | 275 | (void *)skb->head, (void *)skb->data, skb_tail_pointer(skb), |
277 | (void *) skb->end, skb->len); | 276 | skb_end_pointer(skb), skb->len); |
278 | 277 | ||
279 | 278 | ||
280 | xpnet_device->last_rx = jiffies; | 279 | xpnet_device->last_rx = jiffies; |
@@ -476,7 +475,7 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
476 | 475 | ||
477 | dev_dbg(xpnet, ">skb->head=0x%p skb->data=0x%p skb->tail=0x%p " | 476 | dev_dbg(xpnet, ">skb->head=0x%p skb->data=0x%p skb->tail=0x%p " |
478 | "skb->end=0x%p skb->len=%d\n", (void *) skb->head, | 477 | "skb->end=0x%p skb->len=%d\n", (void *) skb->head, |
479 | (void *) skb->data, (void *) skb->tail, (void *) skb->end, | 478 | (void *)skb->data, skb_tail_pointer(skb), skb_end_pointer(skb), |
480 | skb->len); | 479 | skb->len); |
481 | 480 | ||
482 | 481 | ||
@@ -498,7 +497,7 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
498 | 497 | ||
499 | /* get the beginning of the first cacheline and end of last */ | 498 | /* get the beginning of the first cacheline and end of last */ |
500 | start_addr = ((u64) skb->data & ~(L1_CACHE_BYTES - 1)); | 499 | start_addr = ((u64) skb->data & ~(L1_CACHE_BYTES - 1)); |
501 | end_addr = L1_CACHE_ALIGN((u64) skb->tail); | 500 | end_addr = L1_CACHE_ALIGN((u64)skb_tail_pointer(skb)); |
502 | 501 | ||
503 | /* calculate how many bytes to embed in the XPC message */ | 502 | /* calculate how many bytes to embed in the XPC message */ |
504 | embedded_bytes = 0; | 503 | embedded_bytes = 0; |
@@ -567,14 +566,15 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
567 | msg->version = XPNET_VERSION_EMBED; | 566 | msg->version = XPNET_VERSION_EMBED; |
568 | dev_dbg(xpnet, "calling memcpy(0x%p, 0x%p, 0x%lx)\n", | 567 | dev_dbg(xpnet, "calling memcpy(0x%p, 0x%p, 0x%lx)\n", |
569 | &msg->data, skb->data, (size_t) embedded_bytes); | 568 | &msg->data, skb->data, (size_t) embedded_bytes); |
570 | memcpy(&msg->data, skb->data, (size_t) embedded_bytes); | 569 | skb_copy_from_linear_data(skb, &msg->data, |
570 | (size_t)embedded_bytes); | ||
571 | } else { | 571 | } else { |
572 | msg->version = XPNET_VERSION; | 572 | msg->version = XPNET_VERSION; |
573 | } | 573 | } |
574 | msg->magic = XPNET_MAGIC; | 574 | msg->magic = XPNET_MAGIC; |
575 | msg->size = end_addr - start_addr; | 575 | msg->size = end_addr - start_addr; |
576 | msg->leadin_ignore = (u64) skb->data - start_addr; | 576 | msg->leadin_ignore = (u64) skb->data - start_addr; |
577 | msg->tailout_ignore = end_addr - (u64) skb->tail; | 577 | msg->tailout_ignore = end_addr - (u64)skb_tail_pointer(skb); |
578 | msg->buf_pa = __pa(start_addr); | 578 | msg->buf_pa = __pa(start_addr); |
579 | 579 | ||
580 | dev_dbg(xpnet, "sending XPC message to %d:%d\nmsg->buf_pa=" | 580 | dev_dbg(xpnet, "sending XPC message to %d:%d\nmsg->buf_pa=" |