diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-25 17:41:24 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-25 17:41:24 -0500 |
| commit | 99f1c97dbdb30e958edfd1ced0ae43df62504e07 (patch) | |
| tree | cc61393c912b3c1b095a9c74322f8e1364ab9b3a /include/net | |
| parent | b31fde6db2b76a9f7f59bf016652b46cff43f8da (diff) | |
| parent | 8176d297c73a06e6076c9c31f6404047567f6324 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (81 commits)
RDMA/cxgb3: Fix the T3A workaround checks
IB/ipath: Remove unnecessary cast
IPoIB: Constify seq_operations function pointer tables
RDMA/cxgb3: Mark QP as privileged based on user capabilities
RDMA/cxgb3: Fix page shift calculation in build_phys_page_list()
RDMA/cxgb3: Flush the receive queue when closing
IB/ipath: Trivial simplification of ipath_make_ud_req()
IB/mthca: Update latest "native Arbel" firmware revision
IPoIB: Remove redundant check of netif_queue_stopped() in xmit handler
IB/ipath: Add mappings from HW register to PortInfo port physical state
IB/ipath: Changes to support PIO bandwidth check on IBA7220
IB/ipath: Minor cleanup of unused fields and chip-specific errors
IB/ipath: New sysfs entries to control 7220 features
IB/ipath: Add new chip-specific functions to older chips, consistent init
IB/ipath: Remove unused MDIO interface code
IB/ehca: Prevent RDMA-related connection failures on some eHCA2 hardware
IB/ehca: Add "port connection autodetect mode"
IB/ehca: Define array to store SMI/GSI QPs
IB/ehca: Remove CQ-QP-link before destroying QP in error path of create_qp()
IB/iser: Add change_queue_depth method
...
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/if_inet6.h | 11 | ||||
| -rw-r--r-- | include/net/ip.h | 10 |
2 files changed, 13 insertions, 8 deletions
diff --git a/include/net/if_inet6.h b/include/net/if_inet6.h index 448eccb20638..b24508abb850 100644 --- a/include/net/if_inet6.h +++ b/include/net/if_inet6.h | |||
| @@ -269,18 +269,21 @@ static inline void ipv6_arcnet_mc_map(const struct in6_addr *addr, char *buf) | |||
| 269 | buf[0] = 0x00; | 269 | buf[0] = 0x00; |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | static inline void ipv6_ib_mc_map(struct in6_addr *addr, char *buf) | 272 | static inline void ipv6_ib_mc_map(const struct in6_addr *addr, |
| 273 | const unsigned char *broadcast, char *buf) | ||
| 273 | { | 274 | { |
| 275 | unsigned char scope = broadcast[5] & 0xF; | ||
| 276 | |||
| 274 | buf[0] = 0; /* Reserved */ | 277 | buf[0] = 0; /* Reserved */ |
| 275 | buf[1] = 0xff; /* Multicast QPN */ | 278 | buf[1] = 0xff; /* Multicast QPN */ |
| 276 | buf[2] = 0xff; | 279 | buf[2] = 0xff; |
| 277 | buf[3] = 0xff; | 280 | buf[3] = 0xff; |
| 278 | buf[4] = 0xff; | 281 | buf[4] = 0xff; |
| 279 | buf[5] = 0x12; /* link local scope */ | 282 | buf[5] = 0x10 | scope; /* scope from broadcast address */ |
| 280 | buf[6] = 0x60; /* IPv6 signature */ | 283 | buf[6] = 0x60; /* IPv6 signature */ |
| 281 | buf[7] = 0x1b; | 284 | buf[7] = 0x1b; |
| 282 | buf[8] = 0; /* P_Key */ | 285 | buf[8] = broadcast[8]; /* P_Key */ |
| 283 | buf[9] = 0; | 286 | buf[9] = broadcast[9]; |
| 284 | memcpy(buf + 10, addr->s6_addr + 6, 10); | 287 | memcpy(buf + 10, addr->s6_addr + 6, 10); |
| 285 | } | 288 | } |
| 286 | #endif | 289 | #endif |
diff --git a/include/net/ip.h b/include/net/ip.h index 840dd91b513b..50c8889b1b8d 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
| @@ -266,20 +266,22 @@ static inline void ip_eth_mc_map(__be32 naddr, char *buf) | |||
| 266 | * Leave P_Key as 0 to be filled in by driver. | 266 | * Leave P_Key as 0 to be filled in by driver. |
| 267 | */ | 267 | */ |
| 268 | 268 | ||
| 269 | static inline void ip_ib_mc_map(__be32 naddr, char *buf) | 269 | static inline void ip_ib_mc_map(__be32 naddr, const unsigned char *broadcast, char *buf) |
| 270 | { | 270 | { |
| 271 | __u32 addr; | 271 | __u32 addr; |
| 272 | unsigned char scope = broadcast[5] & 0xF; | ||
| 273 | |||
| 272 | buf[0] = 0; /* Reserved */ | 274 | buf[0] = 0; /* Reserved */ |
| 273 | buf[1] = 0xff; /* Multicast QPN */ | 275 | buf[1] = 0xff; /* Multicast QPN */ |
| 274 | buf[2] = 0xff; | 276 | buf[2] = 0xff; |
| 275 | buf[3] = 0xff; | 277 | buf[3] = 0xff; |
| 276 | addr = ntohl(naddr); | 278 | addr = ntohl(naddr); |
| 277 | buf[4] = 0xff; | 279 | buf[4] = 0xff; |
| 278 | buf[5] = 0x12; /* link local scope */ | 280 | buf[5] = 0x10 | scope; /* scope from broadcast address */ |
| 279 | buf[6] = 0x40; /* IPv4 signature */ | 281 | buf[6] = 0x40; /* IPv4 signature */ |
| 280 | buf[7] = 0x1b; | 282 | buf[7] = 0x1b; |
| 281 | buf[8] = 0; /* P_Key */ | 283 | buf[8] = broadcast[8]; /* P_Key */ |
| 282 | buf[9] = 0; | 284 | buf[9] = broadcast[9]; |
| 283 | buf[10] = 0; | 285 | buf[10] = 0; |
| 284 | buf[11] = 0; | 286 | buf[11] = 0; |
| 285 | buf[12] = 0; | 287 | buf[12] = 0; |
