Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild

* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
  kbuild: fix modpost warnings for xtensa
  kbuild: be more foregiving on init section naming
  kbuild: rearrange a few function in modpost
  kbuild: use LDFLAGS_MODULE only for .ko links
  kconfig: remove unused members from struct symbol
  kconfig: attach help text to menus
  kbuild: fix up printing of Linux C Library version in scripts/ver_linux
  kbuild: do not do section mismatch checks on vmlinux in 2nd pass
diff --git a/arch/i386/boot/apm.c b/arch/i386/boot/apm.c
index a34087c..eab50c5 100644
--- a/arch/i386/boot/apm.c
+++ b/arch/i386/boot/apm.c
@@ -40,14 +40,15 @@
 	if (bx != 0x504d)	/* "PM" signature */
 		return -1;
 
-	if (cx & 0x02)		/* 32 bits supported? */
+	if (!(cx & 0x02))		/* 32 bits supported? */
 		return -1;
 
 	/* Disconnect first, just in case */
 	ax = 0x5304;
+	bx = 0;
 	asm volatile("pushl %%ebp ; int $0x15 ; popl %%ebp"
-		     : "+a" (ax)
-		     : : "ebx", "ecx", "edx", "esi", "edi");
+		     : "+a" (ax), "+b" (bx)
+		     : : "ecx", "edx", "esi", "edi");
 
 	/* Paranoia */
 	ebx = esi = 0;
diff --git a/arch/i386/boot/main.c b/arch/i386/boot/main.c
index 7f01f96..0eeef39 100644
--- a/arch/i386/boot/main.c
+++ b/arch/i386/boot/main.c
@@ -73,15 +73,15 @@
 }
 
 /*
- * Get Intel SpeedStep IST information.
+ * Get Intel SpeedStep (IST) information.
  */
-static void query_speedstep_ist(void)
+static void query_ist(void)
 {
 	asm("int $0x15"
-	    : "=a" (boot_params.speedstep_info[0]),
-	      "=b" (boot_params.speedstep_info[1]),
-	      "=c" (boot_params.speedstep_info[2]),
-	      "=d" (boot_params.speedstep_info[3])
+	    : "=a" (boot_params.ist_info.signature),
+	      "=b" (boot_params.ist_info.command),
+	      "=c" (boot_params.ist_info.event),
+	      "=d" (boot_params.ist_info.perf_level)
 	    : "a" (0x0000e980),	 /* IST Support */
 	      "d" (0x47534943)); /* Request value */
 }
@@ -144,8 +144,8 @@
 	query_voyager();
 #endif
 
-	/* Query SpeedStep IST information */
-	query_speedstep_ist();
+	/* Query Intel SpeedStep (IST) information */
+	query_ist();
 
 	/* Query APM information */
 #if defined(CONFIG_APM) || defined(CONFIG_APM_MODULE)
diff --git a/include/asm-i386/bootparam.h b/include/asm-i386/bootparam.h
index 427d865..b91b017 100644
--- a/include/asm-i386/bootparam.h
+++ b/include/asm-i386/bootparam.h
@@ -4,8 +4,9 @@
 #include <linux/types.h>
 #include <linux/screen_info.h>
 #include <linux/apm_bios.h>
-#include <asm/e820.h>
 #include <linux/edd.h>
+#include <asm/e820.h>
+#include <asm/ist.h>
 #include <video/edid.h>
 
 struct setup_header {
@@ -48,9 +49,9 @@
 	u32 _pad1;
 	u32 efi_systab;
 	u32 efi_memdesc_size;
-	u32 efi_memdec_version;
+	u32 efi_memdesc_version;
 	u32 efi_memmap;
-	u32 fi_memmap_size;
+	u32 efi_memmap_size;
 	u32 _pad2[2];
 };
 
@@ -59,7 +60,7 @@
 	struct screen_info screen_info;			/* 0x000 */
 	struct apm_bios_info apm_bios_info;		/* 0x040 */
 	u8  _pad2[12];					/* 0x054 */
-	u32 speedstep_info[4];				/* 0x060 */
+	struct ist_info ist_info;			/* 0x060 */
 	u8  _pad3[16];					/* 0x070 */
 	u8  hd0_info[16];	/* obsolete! */		/* 0x080 */
 	u8  hd1_info[16];	/* obsolete! */		/* 0x090 */
diff --git a/include/asm-i386/ist.h b/include/asm-i386/ist.h
index d13d1e6..ef2003e 100644
--- a/include/asm-i386/ist.h
+++ b/include/asm-i386/ist.h
@@ -19,11 +19,13 @@
 
 #ifdef __KERNEL__
 
+#include <linux/types.h>
+
 struct ist_info {
-	unsigned long	signature;
-	unsigned long	command;
-	unsigned long	event;
-	unsigned long	perf_level;
+	u32 signature;
+	u32 command;
+	u32 event;
+	u32 perf_level;
 };
 
 extern struct ist_info ist_info;
diff --git a/include/asm-x86_64/ist.h b/include/asm-x86_64/ist.h
new file mode 100644
index 0000000..338857e
--- /dev/null
+++ b/include/asm-x86_64/ist.h
@@ -0,0 +1 @@
+#include <asm-i386/ist.h>
diff --git a/include/linux/apm_bios.h b/include/linux/apm_bios.h
index 290aef3..5f921c8 100644
--- a/include/linux/apm_bios.h
+++ b/include/linux/apm_bios.h
@@ -21,20 +21,22 @@
 
 #ifdef __KERNEL__
 
+#include <linux/types.h>
+
 #define APM_CS		(GDT_ENTRY_APMBIOS_BASE * 8)
 #define APM_CS_16	(APM_CS + 8)
 #define APM_DS		(APM_CS_16 + 8)
 
 struct apm_bios_info {
-	unsigned short	version;
-	unsigned short	cseg;
-	unsigned long	offset;
-	unsigned short	cseg_16;
-	unsigned short	dseg;
-	unsigned short	flags;
-	unsigned short	cseg_len;
-	unsigned short	cseg_16_len;
-	unsigned short	dseg_len;
+	u16	version;
+	u16	cseg;
+	u32	offset;
+	u16	cseg_16;
+	u16	dseg;
+	u16	flags;
+	u16	cseg_len;
+	u16	cseg_16_len;
+	u16	dseg_len;
 };
 
 /* Results of APM Installation Check */