lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220207222348.wbokxgsdvmxhbidd@offworld>
Date:   Mon, 7 Feb 2022 14:23:48 -0800
From:   Davidlohr Bueso <dave@...olabs.net>
To:     kernel test robot <lkp@...el.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Song Liu <song@...nel.org>
Subject: [PATCH] md/raid5: silence sparse warnings wrt struct raid5_percpu

Move out the nested declaration of the percpu bits of struct r5conf and
silence sparse complaining about address spaces:

drivers/md/raid5.c:7070:9: sparse: sparse: cast removes address space '__percpu' of expression
drivers/md/raid5.c:7070:9: warning: incorrect type in argument 1 (different address spaces)
drivers/md/raid5.c:7070:9:    expected struct lockdep_map *lock
drivers/md/raid5.c:7070:9:    got struct lockdep_map [noderef] __percpu *
drivers/md/raid5.c:7070:9: warning: incorrect type in argument 1 (different address spaces)
drivers/md/raid5.c:7070:9:    expected struct local_lock_t [usertype] *l
drivers/md/raid5.c:7070:9:    got struct local_lock_t [noderef] __percpu *

Reported-by: kernel test robot <lkp@...el.com>
Signed-off-by: Davidlohr Bueso <dbueso@...e.de>
---
  drivers/md/raid5.h | 22 ++++++++++++----------
  1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/drivers/md/raid5.h b/drivers/md/raid5.h
index 9e8486a9e445..125b925e2b0c 100644
--- a/drivers/md/raid5.h
+++ b/drivers/md/raid5.h
@@ -560,6 +560,17 @@ struct r5pending_data {
	struct bio_list bios;
  };

+/* per cpu variables */
+struct raid5_percpu {
+	struct page	*spare_page; /* Used when checking P/Q in raid6 */
+	void		*scribble;  /* space for constructing buffer
+				     * lists and performing address
+				     * conversions
+				     */
+	int             scribble_obj_size;
+	local_lock_t    lock;
+};
+
  struct r5conf {
	struct hlist_head	*stripe_hashtbl;
	/* only protect corresponding hash list and inactive_list */
@@ -634,16 +645,7 @@ struct r5conf {
					    * Cleared when a sync completes.
					    */
	int			recovery_disabled;
-	/* per cpu variables */
-	struct raid5_percpu {
-		struct page	*spare_page; /* Used when checking P/Q in raid6 */
-		void		*scribble;  /* space for constructing buffer
-					     * lists and performing address
-					     * conversions
-					     */
-		int             scribble_obj_size;
-		local_lock_t    lock;
-	} __percpu *percpu;
+	struct raid5_percpu __percpu *percpu;
	int scribble_disks;
	int scribble_sectors;
	struct hlist_node node;
--
2.35.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ