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-next>] [day] [month] [year] [list]
Date:   Tue, 27 Aug 2019 00:30:41 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Bandan Das <bsd@...hat.com>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        tipbuild@...or.com, Thomas Gleixner <tglx@...utronix.de>
Subject: [tip:x86/urgent 3/3] arch/x86/kernel/apic/apic.c:1182:6: warning:
 the address of 'x2apic_enabled' will always evaluate as 'true'

tree:   https://kernel.googlesource.com/pub/scm/linux/kernel/git/tip/tip.git x86/urgent
head:   cfa16294b1c5b320c0a0e1cac37c784b92366c87
commit: cfa16294b1c5b320c0a0e1cac37c784b92366c87 [3/3] x86/apic: Include the LDR when clearing out APIC registers
config: i386-defconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-10) 7.4.0
reproduce:
        git checkout cfa16294b1c5b320c0a0e1cac37c784b92366c87
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@...el.com>

All warnings (new ones prefixed by >>):

   arch/x86/kernel/apic/apic.c: In function 'clear_local_APIC':
>> arch/x86/kernel/apic/apic.c:1182:6: warning: the address of 'x2apic_enabled' will always evaluate as 'true' [-Waddress]
     if (!x2apic_enabled) {
         ^

vim +1182 arch/x86/kernel/apic/apic.c

  1142	
  1143	/*
  1144	 * Local APIC start and shutdown
  1145	 */
  1146	
  1147	/**
  1148	 * clear_local_APIC - shutdown the local APIC
  1149	 *
  1150	 * This is called, when a CPU is disabled and before rebooting, so the state of
  1151	 * the local APIC has no dangling leftovers. Also used to cleanout any BIOS
  1152	 * leftovers during boot.
  1153	 */
  1154	void clear_local_APIC(void)
  1155	{
  1156		int maxlvt;
  1157		u32 v;
  1158	
  1159		/* APIC hasn't been mapped yet */
  1160		if (!x2apic_mode && !apic_phys)
  1161			return;
  1162	
  1163		maxlvt = lapic_get_maxlvt();
  1164		/*
  1165		 * Masking an LVT entry can trigger a local APIC error
  1166		 * if the vector is zero. Mask LVTERR first to prevent this.
  1167		 */
  1168		if (maxlvt >= 3) {
  1169			v = ERROR_APIC_VECTOR; /* any non-zero vector will do */
  1170			apic_write(APIC_LVTERR, v | APIC_LVT_MASKED);
  1171		}
  1172		/*
  1173		 * Careful: we have to set masks only first to deassert
  1174		 * any level-triggered sources.
  1175		 */
  1176		v = apic_read(APIC_LVTT);
  1177		apic_write(APIC_LVTT, v | APIC_LVT_MASKED);
  1178		v = apic_read(APIC_LVT0);
  1179		apic_write(APIC_LVT0, v | APIC_LVT_MASKED);
  1180		v = apic_read(APIC_LVT1);
  1181		apic_write(APIC_LVT1, v | APIC_LVT_MASKED);
> 1182		if (!x2apic_enabled) {
  1183			v = apic_read(APIC_LDR) & ~APIC_LDR_MASK;
  1184			apic_write(APIC_LDR, v);
  1185		}
  1186		if (maxlvt >= 4) {
  1187			v = apic_read(APIC_LVTPC);
  1188			apic_write(APIC_LVTPC, v | APIC_LVT_MASKED);
  1189		}
  1190	
  1191		/* lets not touch this if we didn't frob it */
  1192	#ifdef CONFIG_X86_THERMAL_VECTOR
  1193		if (maxlvt >= 5) {
  1194			v = apic_read(APIC_LVTTHMR);
  1195			apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED);
  1196		}
  1197	#endif
  1198	#ifdef CONFIG_X86_MCE_INTEL
  1199		if (maxlvt >= 6) {
  1200			v = apic_read(APIC_LVTCMCI);
  1201			if (!(v & APIC_LVT_MASKED))
  1202				apic_write(APIC_LVTCMCI, v | APIC_LVT_MASKED);
  1203		}
  1204	#endif
  1205	
  1206		/*
  1207		 * Clean APIC state for other OSs:
  1208		 */
  1209		apic_write(APIC_LVTT, APIC_LVT_MASKED);
  1210		apic_write(APIC_LVT0, APIC_LVT_MASKED);
  1211		apic_write(APIC_LVT1, APIC_LVT_MASKED);
  1212		if (maxlvt >= 3)
  1213			apic_write(APIC_LVTERR, APIC_LVT_MASKED);
  1214		if (maxlvt >= 4)
  1215			apic_write(APIC_LVTPC, APIC_LVT_MASKED);
  1216	
  1217		/* Integrated APIC (!82489DX) ? */
  1218		if (lapic_is_integrated()) {
  1219			if (maxlvt > 3)
  1220				/* Clear ESR due to Pentium errata 3AP and 11AP */
  1221				apic_write(APIC_ESR, 0);
  1222			apic_read(APIC_ESR);
  1223		}
  1224	}
  1225	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (28074 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ