Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tipc: introduce constants for tipc address validation

In this commit, we introduce defines for tipc address size,
offset and mask specification for Zone.Cluster.Node.
There is no functional change in this commit.

Reviewed-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Parthasarathy Bhuvaragan and committed by
David S. Miller
9ff26e9f d1c2b501

+29 -10
+26 -4
include/uapi/linux/tipc.h
··· 60 60 __u32 upper; 61 61 }; 62 62 63 + /* TIPC Address Size, Offset, Mask specification for Z.C.N 64 + */ 65 + #define TIPC_NODE_BITS 12 66 + #define TIPC_CLUSTER_BITS 12 67 + #define TIPC_ZONE_BITS 8 68 + 69 + #define TIPC_NODE_OFFSET 0 70 + #define TIPC_CLUSTER_OFFSET TIPC_NODE_BITS 71 + #define TIPC_ZONE_OFFSET (TIPC_CLUSTER_OFFSET + TIPC_CLUSTER_BITS) 72 + 73 + #define TIPC_NODE_SIZE ((1UL << TIPC_NODE_BITS) - 1) 74 + #define TIPC_CLUSTER_SIZE ((1UL << TIPC_CLUSTER_BITS) - 1) 75 + #define TIPC_ZONE_SIZE ((1UL << TIPC_ZONE_BITS) - 1) 76 + 77 + #define TIPC_NODE_MASK (TIPC_NODE_SIZE << TIPC_NODE_OFFSET) 78 + #define TIPC_CLUSTER_MASK (TIPC_CLUSTER_SIZE << TIPC_CLUSTER_OFFSET) 79 + #define TIPC_ZONE_MASK (TIPC_ZONE_SIZE << TIPC_ZONE_OFFSET) 80 + 81 + #define TIPC_ZONE_CLUSTER_MASK (TIPC_ZONE_MASK | TIPC_CLUSTER_MASK) 82 + 63 83 static inline __u32 tipc_addr(unsigned int zone, 64 84 unsigned int cluster, 65 85 unsigned int node) 66 86 { 67 - return (zone << 24) | (cluster << 12) | node; 87 + return (zone << TIPC_ZONE_OFFSET) | 88 + (cluster << TIPC_CLUSTER_OFFSET) | 89 + node; 68 90 } 69 91 70 92 static inline unsigned int tipc_zone(__u32 addr) 71 93 { 72 - return addr >> 24; 94 + return addr >> TIPC_ZONE_OFFSET; 73 95 } 74 96 75 97 static inline unsigned int tipc_cluster(__u32 addr) 76 98 { 77 - return (addr >> 12) & 0xfff; 99 + return (addr & TIPC_CLUSTER_MASK) >> TIPC_CLUSTER_OFFSET; 78 100 } 79 101 80 102 static inline unsigned int tipc_node(__u32 addr) 81 103 { 82 - return addr & 0xfff; 104 + return addr & TIPC_NODE_MASK; 83 105 } 84 106 85 107 /*
+1 -4
net/tipc/addr.h
··· 43 43 #include <net/netns/generic.h> 44 44 #include "core.h" 45 45 46 - #define TIPC_ZONE_MASK 0xff000000u 47 - #define TIPC_CLUSTER_MASK 0xfffff000u 48 - 49 46 static inline u32 tipc_own_addr(struct net *net) 50 47 { 51 48 struct tipc_net *tn = net_generic(net, tipc_net_id); ··· 57 60 58 61 static inline u32 tipc_cluster_mask(u32 addr) 59 62 { 60 - return addr & TIPC_CLUSTER_MASK; 63 + return addr & TIPC_ZONE_CLUSTER_MASK; 61 64 } 62 65 63 66 u32 tipc_own_addr(struct net *net);
+2 -2
net/tipc/bearer.c
··· 225 225 if (tipc_addr_domain_valid(disc_domain) && 226 226 (disc_domain != tn->own_addr)) { 227 227 if (tipc_in_scope(disc_domain, tn->own_addr)) { 228 - disc_domain = tn->own_addr & TIPC_CLUSTER_MASK; 228 + disc_domain = tn->own_addr & TIPC_ZONE_CLUSTER_MASK; 229 229 res = 0; /* accept any node in own cluster */ 230 230 } else if (in_own_cluster_exact(net, disc_domain)) 231 231 res = 0; /* accept specified node in own cluster */ ··· 832 832 u32 prio; 833 833 834 834 prio = TIPC_MEDIA_LINK_PRI; 835 - domain = tn->own_addr & TIPC_CLUSTER_MASK; 835 + domain = tn->own_addr & TIPC_ZONE_CLUSTER_MASK; 836 836 837 837 if (!info->attrs[TIPC_NLA_BEARER]) 838 838 return -EINVAL;