From patchwork Mon Oct 14 10:58:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13834738 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 329C41A7053; Mon, 14 Oct 2024 10:59:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728903597; cv=none; b=dYJdShBaD9XF79QkXmTcypClq/EOozgjG4LQpFxqPkOnCYoa5rkfc0755ORDB+2AqaCBeZqL4EohtAR9qV1W8neklVVtZjpKui7oA7HbXugLgsMVCvpPrR4T+E/D6pjZ5e3H/xuLuB8fSRnrqpND+QM2XDkrcK3DGUMwxMr+ra4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728903597; c=relaxed/simple; bh=7yj401S/QfEgPguHrgI7BCX+1aPLUKhWdK1yTuic9xY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UauQlKoZgDQdQO9fYMoV52Iv3gZcsnLP8AKf56afupQUDp32kzYcAVnYA2zCOFTB2wbJQy25Wu+Ray8j04y04wk727Pn47MCkHh6A7x7rxr3ZjrEDkzO2gfeBbVPQpvoHpdHDnXnlpKDzKu/Cm9NjWUmIa6jO/cNVxc4gInL8dE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2D6B51424; Mon, 14 Oct 2024 04:00:25 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.27]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C5CEC3F51B; Mon, 14 Oct 2024 03:59:52 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Anna Schumaker , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Greg Marsden , Ivan Ivanov , Kalesh Singh , Marc Zyngier , Mark Rutland , Matthias Brugger , Miroslav Benes , Trond Myklebust , Will Deacon Cc: Ryan Roberts , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org Subject: [RFC PATCH v1 09/57] fs/nfs: Remove PAGE_SIZE compile-time constant assumption Date: Mon, 14 Oct 2024 11:58:16 +0100 Message-ID: <20241014105912.3207374-9-ryan.roberts@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241014105912.3207374-1-ryan.roberts@arm.com> References: <20241014105514.3206191-1-ryan.roberts@arm.com> <20241014105912.3207374-1-ryan.roberts@arm.com> Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To prepare for supporting boot-time page size selection, refactor code to remove assumptions about PAGE_SIZE being compile-time constant. Code intended to be equivalent when compile-time page size is active. Calculation of NFS4ACL_MAXPAGES and NFS4XATTR_MAXPAGES are modified to give max pages when page size is at the minimum. BUILD_BUG_ON() is modified to test against the min page size, which implicitly also applies to all other page sizes. Signed-off-by: Ryan Roberts --- ***NOTE*** Any confused maintainers may want to read the cover note here for context: https://lore.kernel.org/all/20241014105514.3206191-1-ryan.roberts@arm.com/ fs/nfs/nfs42proc.c | 2 +- fs/nfs/nfs42xattr.c | 2 +- fs/nfs/nfs4proc.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c index 28704f924612c..c600574105c63 100644 --- a/fs/nfs/nfs42proc.c +++ b/fs/nfs/nfs42proc.c @@ -1161,7 +1161,7 @@ int nfs42_proc_clone(struct file *src_f, struct file *dst_f, return err; } -#define NFS4XATTR_MAXPAGES DIV_ROUND_UP(XATTR_SIZE_MAX, PAGE_SIZE) +#define NFS4XATTR_MAXPAGES DIV_ROUND_UP(XATTR_SIZE_MAX, PAGE_SIZE_MIN) static int _nfs42_proc_removexattr(struct inode *inode, const char *name) { diff --git a/fs/nfs/nfs42xattr.c b/fs/nfs/nfs42xattr.c index b6e3d8f77b910..734177eb44889 100644 --- a/fs/nfs/nfs42xattr.c +++ b/fs/nfs/nfs42xattr.c @@ -183,7 +183,7 @@ nfs4_xattr_alloc_entry(const char *name, const void *value, uint32_t flags; BUILD_BUG_ON(sizeof(struct nfs4_xattr_entry) + - XATTR_NAME_MAX + 1 > PAGE_SIZE); + XATTR_NAME_MAX + 1 > PAGE_SIZE_MIN); alloclen = sizeof(struct nfs4_xattr_entry); if (name != NULL) { diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index b8ffbe52ba15a..3c3622f46d3e0 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -5928,7 +5928,7 @@ static bool nfs4_server_supports_acls(const struct nfs_server *server, * it's OK to put sizeof(void) * (XATTR_SIZE_MAX/PAGE_SIZE) bytes on * the stack. */ -#define NFS4ACL_MAXPAGES DIV_ROUND_UP(XATTR_SIZE_MAX, PAGE_SIZE) +#define NFS4ACL_MAXPAGES DIV_ROUND_UP(XATTR_SIZE_MAX, PAGE_SIZE_MIN) int nfs4_buf_to_pages_noslab(const void *buf, size_t buflen, struct page **pages) From patchwork Mon Oct 14 10:58:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13834739 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7D1501AC42C; Mon, 14 Oct 2024 11:00:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728903634; cv=none; b=qwfm4Inv76YTgaEK0Kp2bx5bbs9bsPYs4lrkn9AJYCJsD5jZM+iPos4YyU1yzs1F1HmILYIWxikjxOv8fRVVx+cquOqvNbNPXZDVvANqJNLu9Y03Btqeg0BvuhAW2waPXnVxMw6j+WavPlqVkpww35HcfH4n94bgJloa20u8Adw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728903634; c=relaxed/simple; bh=e+YQDR10H2AzwPGwlgfVFvSnmoMZbbXPbr3mIsLC0sw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B6+YQzMc7Wfm76GaiP7hzYHtFqUkYCDU5hvlFa+GVRdttumZEiQAXwLm1PeGUcjlMARdNbIBkw/ZloamsaQLD3bOHEz+OiaBumZ/5stzGw/rWJt0Z03UHdoRwz/ZYkVxOILRvlurVnvnPw11/MQHZVUWGwHDfKIAIs6X+kcJ7Cg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6EB86168F; Mon, 14 Oct 2024 04:01:01 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.27]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1323A3F51B; Mon, 14 Oct 2024 04:00:28 -0700 (PDT) From: Ryan Roberts To: Andrew Morton , Anna Schumaker , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Greg Marsden , Ivan Ivanov , Kalesh Singh , Marc Zyngier , Mark Rutland , Matthias Brugger , Miroslav Benes , Trond Myklebust , Will Deacon Cc: Ryan Roberts , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org Subject: [RFC PATCH v1 21/57] sunrpc: Remove PAGE_SIZE compile-time constant assumption Date: Mon, 14 Oct 2024 11:58:28 +0100 Message-ID: <20241014105912.3207374-21-ryan.roberts@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241014105912.3207374-1-ryan.roberts@arm.com> References: <20241014105514.3206191-1-ryan.roberts@arm.com> <20241014105912.3207374-1-ryan.roberts@arm.com> Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To prepare for supporting boot-time page size selection, refactor code to remove assumptions about PAGE_SIZE being compile-time constant. Code intended to be equivalent when compile-time page size is active. Updated array sizes in various structs to contain enough entries for the smallest supported page size. Signed-off-by: Ryan Roberts --- ***NOTE*** Any confused maintainers may want to read the cover note here for context: https://lore.kernel.org/all/20241014105514.3206191-1-ryan.roberts@arm.com/ include/linux/sunrpc/svc.h | 8 +++++--- include/linux/sunrpc/svc_rdma.h | 4 ++-- include/linux/sunrpc/svcsock.h | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h index a7d0406b9ef59..dda44018b8f36 100644 --- a/include/linux/sunrpc/svc.h +++ b/include/linux/sunrpc/svc.h @@ -160,6 +160,8 @@ extern u32 svc_max_payload(const struct svc_rqst *rqstp); */ #define RPCSVC_MAXPAGES ((RPCSVC_MAXPAYLOAD+PAGE_SIZE-1)/PAGE_SIZE \ + 2 + 1) +#define RPCSVC_MAXPAGES_MAX ((RPCSVC_MAXPAYLOAD+PAGE_SIZE_MIN-1)/PAGE_SIZE_MIN \ + + 2 + 1) /* * The context of a single thread, including the request currently being @@ -190,14 +192,14 @@ struct svc_rqst { struct xdr_stream rq_res_stream; struct page *rq_scratch_page; struct xdr_buf rq_res; - struct page *rq_pages[RPCSVC_MAXPAGES + 1]; + struct page *rq_pages[RPCSVC_MAXPAGES_MAX + 1]; struct page * *rq_respages; /* points into rq_pages */ struct page * *rq_next_page; /* next reply page to use */ struct page * *rq_page_end; /* one past the last page */ struct folio_batch rq_fbatch; - struct kvec rq_vec[RPCSVC_MAXPAGES]; /* generally useful.. */ - struct bio_vec rq_bvec[RPCSVC_MAXPAGES]; + struct kvec rq_vec[RPCSVC_MAXPAGES_MAX]; /* generally useful.. */ + struct bio_vec rq_bvec[RPCSVC_MAXPAGES_MAX]; __be32 rq_xid; /* transmission id */ u32 rq_prog; /* program number */ diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h index d33bab33099ab..7c6441e8d6f7a 100644 --- a/include/linux/sunrpc/svc_rdma.h +++ b/include/linux/sunrpc/svc_rdma.h @@ -200,7 +200,7 @@ struct svc_rdma_recv_ctxt { struct svc_rdma_pcl rc_reply_pcl; unsigned int rc_page_count; - struct page *rc_pages[RPCSVC_MAXPAGES]; + struct page *rc_pages[RPCSVC_MAXPAGES_MAX]; }; /* @@ -242,7 +242,7 @@ struct svc_rdma_send_ctxt { void *sc_xprt_buf; int sc_page_count; int sc_cur_sge_no; - struct page *sc_pages[RPCSVC_MAXPAGES]; + struct page *sc_pages[RPCSVC_MAXPAGES_MAX]; struct ib_sge sc_sges[]; }; diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h index 7c78ec6356b92..6c6bcc82685a3 100644 --- a/include/linux/sunrpc/svcsock.h +++ b/include/linux/sunrpc/svcsock.h @@ -40,7 +40,7 @@ struct svc_sock { struct completion sk_handshake_done; - struct page * sk_pages[RPCSVC_MAXPAGES]; /* received data */ + struct page * sk_pages[RPCSVC_MAXPAGES_MAX]; /* received data */ }; static inline u32 svc_sock_reclen(struct svc_sock *svsk) From patchwork Mon Oct 14 10:58:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Roberts X-Patchwork-Id: 13834740 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E8DA11AC444; Mon, 14 Oct 2024 11:00:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728903640; cv=none; b=geKiha/3QJ8ySj5Jiy88dP7vWBsfEgo6Dai7PRuiOV+i3tL2oilYIbHISWtfrBbbM6EWqOlOVEZqBthXdpQRoeGrrjDvu23M0U6deHLOI3K22FmolGsDUuA6WrVxyNVRzGj5sH4zF9ucxTX3OWz/Mjy2qF83+9zUqHcwRELB8qI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728903640; c=relaxed/simple; bh=x3r7cGik4a+cV7xnBT9Zyr3ejj7E/w6UkjWUpLXgsOQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pgq3+rDfY8uGMGCLiJlXMVFbTTI4Vu3kco31ZdcuU99HQ9nxpTR2Iw9Z38nnr9G1/uTiiyXn2iw2xwd/xzrrzdd3cMW5ljC+YgOejVHtH3V4/gLJ0+x1p2Sw4gURTa/S5Bp5BW0aPK0kwGOtiK+o/kteQUXDkpq6TmQxRQXZFeA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 306CE1691; Mon, 14 Oct 2024 04:01:08 -0700 (PDT) Received: from e125769.cambridge.arm.com (e125769.cambridge.arm.com [10.1.196.27]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2DF153F51B; Mon, 14 Oct 2024 04:00:35 -0700 (PDT) From: Ryan Roberts To: "David S. Miller" , Andrew Morton , Anna Schumaker , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Eric Dumazet , Greg Marsden , Ivan Ivanov , Jakub Kicinski , Kalesh Singh , Marc Zyngier , Mark Rutland , Matthias Brugger , Miroslav Benes , Paolo Abeni , Trond Myklebust , Will Deacon Cc: Ryan Roberts , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org, netdev@vger.kernel.org Subject: [RFC PATCH v1 23/57] net: Remove PAGE_SIZE compile-time constant assumption Date: Mon, 14 Oct 2024 11:58:30 +0100 Message-ID: <20241014105912.3207374-23-ryan.roberts@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241014105912.3207374-1-ryan.roberts@arm.com> References: <20241014105514.3206191-1-ryan.roberts@arm.com> <20241014105912.3207374-1-ryan.roberts@arm.com> Precedence: bulk X-Mailing-List: linux-nfs@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 To prepare for supporting boot-time page size selection, refactor code to remove assumptions about PAGE_SIZE being compile-time constant. Code intended to be equivalent when compile-time page size is active. Define NLMSG_GOODSIZE using min() instead of ifdeffery. This will now evaluate to a compile-time constant for compile-time page size, but evaluate at run-time when using boot-time page size. Rework NAPI small page frag infrastructure so that for boot-time page size it is compiled in if 4K page size is in the possible range, but defer deciding to use it to run time when the page size is known. No change for compile-time page size case. Resize cache_defer_hash[] array for PAGE_SIZE_MAX. Convert a complex BUILD_BUG_ON() to runtime BUG_ON(). Wrap global variables that are initialized with PAGE_SIZE derived values using DEFINE_GLOBAL_PAGE_SIZE_VAR() so their initialization can be deferred for boot-time page size builds. Signed-off-by: Ryan Roberts --- ***NOTE*** Any confused maintainers may want to read the cover note here for context: https://lore.kernel.org/all/20241014105514.3206191-1-ryan.roberts@arm.com/ include/linux/netlink.h | 6 +----- net/core/hotdata.c | 4 ++-- net/core/skbuff.c | 4 ++-- net/core/sysctl_net_core.c | 2 +- net/sunrpc/cache.c | 3 ++- net/unix/af_unix.c | 2 +- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/include/linux/netlink.h b/include/linux/netlink.h index b332c2048c755..ffa1e94111f89 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h @@ -267,11 +267,7 @@ netlink_skb_clone(struct sk_buff *skb, gfp_t gfp_mask) * use enormous buffer sizes on recvmsg() calls just to avoid * MSG_TRUNC when PAGE_SIZE is very large. */ -#if PAGE_SIZE < 8192UL -#define NLMSG_GOODSIZE SKB_WITH_OVERHEAD(PAGE_SIZE) -#else -#define NLMSG_GOODSIZE SKB_WITH_OVERHEAD(8192UL) -#endif +#define NLMSG_GOODSIZE SKB_WITH_OVERHEAD(min(PAGE_SIZE, 8192UL)) #define NLMSG_DEFAULT_SIZE (NLMSG_GOODSIZE - NLMSG_HDRLEN) diff --git a/net/core/hotdata.c b/net/core/hotdata.c index d0aaaaa556f22..e1f30e87ba6e9 100644 --- a/net/core/hotdata.c +++ b/net/core/hotdata.c @@ -5,7 +5,7 @@ #include #include -struct net_hotdata net_hotdata __cacheline_aligned = { +__DEFINE_GLOBAL_PAGE_SIZE_VAR(struct net_hotdata, net_hotdata, __cacheline_aligned, { .offload_base = LIST_HEAD_INIT(net_hotdata.offload_base), .ptype_all = LIST_HEAD_INIT(net_hotdata.ptype_all), .gro_normal_batch = 8, @@ -21,5 +21,5 @@ struct net_hotdata net_hotdata __cacheline_aligned = { .sysctl_max_skb_frags = MAX_SKB_FRAGS, .sysctl_skb_defer_max = 64, .sysctl_mem_pcpu_rsv = SK_MEMORY_PCPU_RESERVE -}; +}); EXPORT_SYMBOL(net_hotdata); diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 83f8cd8aa2d16..b6c8eee0cc74b 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -219,9 +219,9 @@ static void skb_under_panic(struct sk_buff *skb, unsigned int sz, void *addr) #define NAPI_SKB_CACHE_BULK 16 #define NAPI_SKB_CACHE_HALF (NAPI_SKB_CACHE_SIZE / 2) -#if PAGE_SIZE == SZ_4K +#if PAGE_SIZE_MIN <= SZ_4K && SZ_4K <= PAGE_SIZE_MAX -#define NAPI_HAS_SMALL_PAGE_FRAG 1 +#define NAPI_HAS_SMALL_PAGE_FRAG (PAGE_SIZE == SZ_4K) #define NAPI_SMALL_PAGE_PFMEMALLOC(nc) ((nc).pfmemalloc) /* specialized page frag allocator using a single order 0 page diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c index 86a2476678c48..a7a2eb7581bd1 100644 --- a/net/core/sysctl_net_core.c +++ b/net/core/sysctl_net_core.c @@ -33,7 +33,7 @@ static int int_3600 = 3600; static int min_sndbuf = SOCK_MIN_SNDBUF; static int min_rcvbuf = SOCK_MIN_RCVBUF; static int max_skb_frags = MAX_SKB_FRAGS; -static int min_mem_pcpu_rsv = SK_MEMORY_PCPU_RESERVE; +static DEFINE_GLOBAL_PAGE_SIZE_VAR(int, min_mem_pcpu_rsv, SK_MEMORY_PCPU_RESERVE); static int net_msg_warn; /* Unused, but still a sysctl */ diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index 95ff747061046..4e682c0cd7586 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c @@ -573,13 +573,14 @@ EXPORT_SYMBOL_GPL(cache_purge); */ #define DFR_HASHSIZE (PAGE_SIZE/sizeof(struct list_head)) +#define DFR_HASHSIZE_MAX (PAGE_SIZE_MAX/sizeof(struct list_head)) #define DFR_HASH(item) ((((long)item)>>4 ^ (((long)item)>>13)) % DFR_HASHSIZE) #define DFR_MAX 300 /* ??? */ static DEFINE_SPINLOCK(cache_defer_lock); static LIST_HEAD(cache_defer_list); -static struct hlist_head cache_defer_hash[DFR_HASHSIZE]; +static struct hlist_head cache_defer_hash[DFR_HASHSIZE_MAX]; static int cache_defer_cnt; static void __unhash_deferred_req(struct cache_deferred_req *dreq) diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 0be0dcb07f7b6..1cf9f583358af 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -2024,7 +2024,7 @@ static int unix_dgram_sendmsg(struct socket *sock, struct msghdr *msg, MAX_SKB_FRAGS * PAGE_SIZE); data_len = PAGE_ALIGN(data_len); - BUILD_BUG_ON(SKB_MAX_ALLOC < PAGE_SIZE); + BUG_ON(SKB_MAX_ALLOC < PAGE_SIZE); } skb = sock_alloc_send_pskb(sk, len - data_len, data_len,