Re: 2.4.20-pre1-ac1: apm.c non SMP compile error

From: Tomas Szepe (szepe@pinerecords.com)
Date: Wed Aug 07 2002 - 10:15:08 EST


> apm_save_cpus() is defined without parameters for non-SMP, breaks
> compile.
>
> --
> Eyal Lebedinsky (eyal@eyal.emu.id.au) <http://samba.org/eyal/>
> --- linux/arch/i386/kernel/apm.c.orig Wed Aug 7 22:59:06 2002
> +++ linux/arch/i386/kernel/apm.c Wed Aug 7 22:56:55 2002
> @@ -524,7 +524,7 @@
> * No CPU lockdown needed on a uniprocessor
> */
>
> -#define apm_save_cpus 0
> +#define apm_save_cpus() 0
> #define apm_restore_cpus(x)
>
> #endif

or alternatively the following, which for the cost of a couple ifdefs
also removes the unused variable 'cpus' on UP:

diff -urN linux-2.4.20-pre1-ac1/arch/i386/kernel/apm.c linux-2.4.20-pre1-ac1.n/arch/i386/kernel/apm.c
--- linux-2.4.20-pre1-ac1/arch/i386/kernel/apm.c 2002-08-07 17:11:09.000000000 +0200
+++ linux-2.4.20-pre1-ac1.n/arch/i386/kernel/apm.c 2002-08-07 17:08:10.000000000 +0200
@@ -496,9 +496,9 @@
 }
 
 /*
- * Lock APM functionality to physical CPU 0
+ * Lock APM functionality to physical CPU 0 in SMP kernels
  */
-
+
 #ifdef CONFIG_SMP
 
 static unsigned long apm_save_cpus(void)
@@ -518,15 +518,6 @@
         set_cpus_allowed(current, mask);
 }
 
-#else
-
-/*
- * No CPU lockdown needed on a uniprocessor
- */
-
-#define apm_save_cpus 0
-#define apm_restore_cpus(x)
-
 #endif
 
 /*
@@ -602,8 +593,10 @@
 {
         APM_DECL_SEGS
         unsigned long flags;
+#ifdef CONFIG_SMP
         unsigned long cpus = apm_save_cpus();
-
+#endif
+
         __save_flags(flags);
         APM_DO_CLI;
         APM_DO_SAVE_SEGS;
@@ -625,9 +618,11 @@
                 : "memory", "cc");
         APM_DO_RESTORE_SEGS;
         __restore_flags(flags);
-
+
+#ifdef CONFIG_SMP
         apm_restore_cpus(cpus);
-
+#endif
+
         return *eax & 0xff;
 }
 
@@ -651,8 +646,10 @@
         APM_DECL_SEGS
         unsigned long flags;
 
+#ifdef CONFIG_SMP
         unsigned long cpus = apm_save_cpus();
-
+#endif
+
         __save_flags(flags);
         APM_DO_CLI;
         APM_DO_SAVE_SEGS;
@@ -679,8 +676,10 @@
         APM_DO_RESTORE_SEGS;
         __restore_flags(flags);
 
+#ifdef CONFIG_SMP
         apm_restore_cpus(cpus);
-
+#endif
+
         return error;
 }
 
@@ -935,7 +934,9 @@
          */
         if (apm_info.realmode_power_off)
         {
+#ifdef CONFIG_SMP
                 apm_save_cpus();
+#endif
                 machine_real_restart(po_bios_call, sizeof(po_bios_call));
                 /* Never returns */
         }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Aug 07 2002 - 22:00:36 EST