net: ALIGN/PTR_ALIGN cleanup in alloc_netdev_mq()/netdev_priv()
Subsystems (3)
PATCH 1/1 net: ALIGN/PTR_ALIGN cleanup in alloc_netdev_mq()/netdev_priv()
Use ALIGN() and PTR_ALIGN() macros instead of handcoding them.
Get rid of NETDEV_ALIGN_CONST ugly define
Signed-off-by Eric Dumazet <[email protected]>
--- include/linux/netdevice.h | 5 +---- net/core/dev.c | 9 ++++----- net/mac80211/main.c | 8 ++------ 3 files changed, 7 insertions(+), 15 deletions(-)
include/linux/netdevice.h +1 -4
@@ -905,7 +905,6 @@ struct net_device#define to_net_dev (d) container_of(d, struct net_device, dev)#define NETDEV_ALIGN 32 -#define NETDEV_ALIGN_CONST (NETDEV_ALIGN - 1)static inline struct netdev_queue *netdev_get_tx_queue(const struct net_device *dev,
@@ -976,9 +975,7 @@ static inline bool netdev_uses_trailer_tags(struct net_device *dev)*/ static inline void *netdev_priv (const struct net_device *dev) { -return (char *)dev + ((sizeof (struct net_device ) - +NETDEV_ALIGN_CONST ) - & ~NETDEV_ALIGN_CONST ); +return (char *)dev +ALIGN (sizeof (struct net_device ),NETDEV_ALIGN ); }/* Set the sysfs physical device reference for the network logical device
net/core/dev.c +4 -5
@@ -4988,18 +4988,18 @@ struct net_device *alloc_netdev_mq(int sizeof_priv, const char *name,struct netdev_queue *tx;struct net_device *dev;size_t alloc_size; -void *p; +struct net_device *p;BUG_ON (strlen (name) >=sizeof (dev->name)); alloc_size =sizeof (struct net_device );if (sizeof_priv) {/* ensure 32-byte alignment of private area */ - alloc_size = (alloc_size +NETDEV_ALIGN_CONST ) & ~NETDEV_ALIGN_CONST ; + alloc_size =ALIGN (alloc_size,NETDEV_ALIGN ); alloc_size += sizeof_priv; }/* ensure 32-byte alignment of whole construct */ - alloc_size +=NETDEV_ALIGN_CONST ; + alloc_size +=NETDEV_ALIGN -1 ; p =kzalloc (alloc_size,GFP_KERNEL );if (!p) {
@@ -5014,8 +5014,7 @@ struct net_device *alloc_netdev_mq(int sizeof_priv, const char *name, goto free_p; } - dev = (struct net_device *) - (((long )p +NETDEV_ALIGN_CONST ) & ~NETDEV_ALIGN_CONST ); + dev =PTR_ALIGN (p,NETDEV_ALIGN ); dev->padded = (char *)dev - (char *)p;if (dev_addr_init (dev))
net/mac80211/main.c +2 -6
@@ -735,9 +735,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,* +-------------------------+ * */ - priv_size = ((sizeof (struct ieee80211_local ) + -NETDEV_ALIGN_CONST ) & ~NETDEV_ALIGN_CONST ) + - priv_data_len; + priv_size =ALIGN (sizeof (*local),NETDEV_ALIGN ) + priv_data_len; wiphy =wiphy_new (&mac80211_config_ops, priv_size);
@@ -754,9 +752,7 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, local->hw.wiphy = wiphy; - local->hw.priv = (char *)local + - ((sizeof (struct ieee80211_local ) + -NETDEV_ALIGN_CONST ) & ~NETDEV_ALIGN_CONST ); + local->hw.priv = (char *)local +ALIGN (sizeof (*local),NETDEV_ALIGN );BUG_ON (!ops->tx);BUG_ON (!ops->start);
From: Eric Dumazet <[email protected]>
Date: Wed, 27 May 2009 16:42:37 +0200
Quoted 5 lines
Use
ALIGN()andPTR_ALIGN()macros instead of handcoding them.Get rid of
NETDEV_ALIGN_CONSTugly defineSigned-off-by Eric Dumazet <[email protected]>
Applied to net-next-2.6.