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>] [day] [month] [year] [list]
Message-Id: <20200602091941.29449-1-andriy.shevchenko@linux.intel.com>
Date:   Tue,  2 Jun 2020 12:19:41 +0300
From:   Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
To:     Thomas Gleixner <tglx@...utronix.de>,
        Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
        x86@...nel.org, "H. Peter Anvin" <hpa@...or.com>,
        linux-kernel@...r.kernel.org,
        Akinobu Mita <akinobu.mita@...il.com>,
        Tony Luck <tony.luck@...el.com>
Cc:     Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
        kbuild test robot <lkp@...el.com>
Subject: [PATCH v1] x86/gdt: Replace u16 castings by bitwise & in GDT_ENTRY_INIT()

It appears that the original commit 1e5de18278e6
("x86: Introduce GDT_ENTRY_INIT()") used bitwise operations on the parameters
when the commit 38e9e81f4c81 ("x86/gdt: Use bitfields for initialization")
changed them to simple castings. The latter change recently made sparse not
happy about. To satisfy it return to bitwise operations in GDT_ENTRY_INIT().

Fixes: 38e9e81f4c81 ("x86/gdt: Use bitfields for initialization")
Reported-by: kbuild test robot <lkp@...el.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
---
 arch/x86/include/asm/desc_defs.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/desc_defs.h b/arch/x86/include/asm/desc_defs.h
index a91f3b6e4f2a..0d17a86fc1df 100644
--- a/arch/x86/include/asm/desc_defs.h
+++ b/arch/x86/include/asm/desc_defs.h
@@ -22,9 +22,9 @@ struct desc_struct {
 
 #define GDT_ENTRY_INIT(flags, base, limit)			\
 	{							\
-		.limit0		= (u16) (limit),		\
+		.limit0		= ((limit) >> 0) & 0xFFFF,	\
 		.limit1		= ((limit) >> 16) & 0x0F,	\
-		.base0		= (u16) (base),			\
+		.base0		= ((base) >> 0) & 0xFFFF,	\
 		.base1		= ((base) >> 16) & 0xFF,	\
 		.base2		= ((base) >> 24) & 0xFF,	\
 		.type		= (flags & 0x0f),		\
-- 
2.27.0.rc2

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ