On Fri, Oct 23, 2015 at 12:21 PM, Helge Deller <del...@gmx.de> wrote: > On 22.10.2015 23:37, Tom Herbert wrote: >> On Thu, Oct 22, 2015 at 1:00 PM, Helge Deller <del...@gmx.de> wrote: >>> Hi Tom & David, >>> >>> I've queued-up a patch for the parisc architecture which reduces >>> L1_CACHE_BYTES from 32 to 16: >>> https://patchwork.kernel.org/patch/7399291/ >>> >>> But this change will break the kernel build like this: >>> >>> In file included from net/core/dev.c:92:0: >>> net/core/dev.c: In function ‘expand_xps_map’: >>> include/linux/netdevice.h:721:27: warning: overflow in implicit constant >>> conversion [-Woverflow] >>> #define XPS_MIN_MAP_ALLOC ((L1_CACHE_BYTES - sizeof(struct xps_map)) \ >>> net/core/dev.c:1972:18: note: in expansion of macro ‘XPS_MIN_MAP_ALLOC’ >>> int alloc_len = XPS_MIN_MAP_ALLOC; >>> >>> Do you see an easy way to fix this ? >>> >> How about >> >> #define XPS_MIN_MAP_ALLOC ((L1_CACHE_BYTES - ((sizeof(struct xps_map) >> % L1_CACHE_BYTES)) \ > > The full line would then be: > #define XPS_MIN_MAP_ALLOC ((L1_CACHE_BYTES - (sizeof(struct xps_map) % > L1_CACHE_BYTES)) / sizeof(u16)) > > The only problem I see with this is, that XPS_MIN_MAP_ALLOC might become zero. > In that case the call to kzalloc_node() in expand_xps_map() doesn't allocate > any memory for the queues. > I believe this wouldn't ever be zero (add 1 in to avoid result is 1 / 2 possibility):
#define XPS_MIN_MAP_ALLOC ((L1_CACHE_BYTES + 1 - (sizeof(struct xps_map) % L1_CACHE_BYTES)) / sizeof(u16)) Tom > Helge -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html