All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Campbell <jon@nerdgrounds.com>
To: Randy Dunlap <randy.dunlap@oracle.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Patches for tiny 386 kernels, again. Linux kernel 2.6.22.7
Date: Wed, 26 Sep 2007 11:42:16 -0700	[thread overview]
Message-ID: <46FAA808.90004@nerdgrounds.com> (raw)
In-Reply-To: <20070924104940.50a52cf3.randy.dunlap@oracle.com>

Here is the DMI patch again, written against linux-2.6.23-rc8,
with some of the #ifdef CONFIG_DMI's removed and moved
to include/linux/dmi.h. Putting them there in the way I've done
ensures that you don't have to put #ifdef CONFIG_DMI
around each dmi_check_machine() and that you don't
have to apply little patches to so many device drivers.

diff -u -r linux-2.6.23-rc8-old/arch/i386/Kconfig 
linux-2.6.23-rc8/arch/i386/Kconfig
--- linux-2.6.23-rc8-old/arch/i386/Kconfig    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/Kconfig    2007-09-26 00:01:48.000000000 
+0000
@@ -83,10 +83,6 @@
     bool
     default y
 
-config DMI
-    bool
-    default y
-
 source "init/Kconfig"
 
 menu "Processor type and features"
diff -u -r linux-2.6.23-rc8-old/arch/i386/kernel/acpi/boot.c 
linux-2.6.23-rc8/arch/i386/kernel/acpi/boot.c
--- linux-2.6.23-rc8-old/arch/i386/kernel/acpi/boot.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/kernel/acpi/boot.c    2007-09-26 
00:40:42.000000000 +0000
@@ -869,7 +869,7 @@
     return;
 }
 
-#ifdef __i386__
+#if defined(__i386__) && defined(CONFIG_DMI)
 
 static int __init disable_acpi_irq(struct dmi_system_id *d)
 {
@@ -1097,8 +1097,7 @@
      },
     {}
 };
-
-#endif                /* __i386__ */
+#endif /* CONFIG_DMI && __i386__ */
 
 /*
  * acpi_boot_table_init() and acpi_boot_init()
diff -u -r linux-2.6.23-rc8-old/arch/i386/kernel/acpi/sleep.c 
linux-2.6.23-rc8/arch/i386/kernel/acpi/sleep.c
--- linux-2.6.23-rc8-old/arch/i386/kernel/acpi/sleep.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/kernel/acpi/sleep.c    2007-09-25 
23:59:14.000000000 +0000
@@ -86,6 +86,7 @@
     return 0;
 }
 
+#ifdef CONFIG_DMI
 static __initdata struct dmi_system_id acpisleep_dmi_table[] = {
     {            /* Reset video mode after returning from ACPI S3 sleep */
      .callback = reset_videomode_after_s3,
@@ -104,3 +105,5 @@
 }
 
 core_initcall(acpisleep_dmi_init);
+#endif
+
diff -u -r 
linux-2.6.23-rc8-old/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c 
linux-2.6.23-rc8/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
--- linux-2.6.23-rc8-old/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c    
2007-09-21 22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c    
2007-09-26 00:59:26.000000000 +0000
@@ -535,7 +535,7 @@
     return 0;
 }
 
-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) && defined(CONFIG_DMI)
 /*
  * Some BIOSes do SW_ANY coordination internally, either set it up in hw
  * or do it in BIOS firmware and won't inform about it to OS. If not
@@ -562,7 +562,9 @@
     },
     { }
 };
-#endif
+#else
+#  define bios_with_sw_any_bug 0
+#endif /* CONFIG_SMP && CONFIG_DMI */
 
 static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
 {
diff -u -r linux-2.6.23-rc8-old/arch/i386/kernel/reboot.c 
linux-2.6.23-rc8/arch/i386/kernel/reboot.c
--- linux-2.6.23-rc8-old/arch/i386/kernel/reboot.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/kernel/reboot.c    2007-09-26 
01:00:08.000000000 +0000
@@ -71,6 +71,7 @@
 
 __setup("reboot=", reboot_setup);
 
+#ifdef CONFIG_DMI
 /*
  * Reboot options and system auto-detection code provided by
  * Dell Inc. so their systems "just work". :-)
@@ -131,6 +132,7 @@
     },
     { }
 };
+#endif /* CONFIG_DMI */
 
 static int __init reboot_init(void)
 {
diff -u -r linux-2.6.23-rc8-old/arch/i386/kernel/tsc.c 
linux-2.6.23-rc8/arch/i386/kernel/tsc.c
--- linux-2.6.23-rc8-old/arch/i386/kernel/tsc.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/kernel/tsc.c    2007-09-26 
00:39:52.000000000 +0000
@@ -290,6 +290,7 @@
 }
 EXPORT_SYMBOL_GPL(mark_tsc_unstable);
 
+#ifdef CONFIG_DMI
 static int __init dmi_mark_tsc_unstable(struct dmi_system_id *d)
 {
     printk(KERN_NOTICE "%s detected: marking TSC unstable.\n",
@@ -310,6 +311,7 @@
      },
      {}
 };
+#endif
 
 /*
  * Make an educated guess if the TSC is trustworthy and synchronized
diff -u -r linux-2.6.23-rc8-old/arch/i386/mach-generic/bigsmp.c 
linux-2.6.23-rc8/arch/i386/mach-generic/bigsmp.c
--- linux-2.6.23-rc8-old/arch/i386/mach-generic/bigsmp.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/mach-generic/bigsmp.c    2007-09-26 
00:57:13.000000000 +0000
@@ -21,6 +21,7 @@
 
 static int dmi_bigsmp; /* can be set by dmi scanners */
 
+#ifdef CONFIG_DMI
 static int hp_ht_bigsmp(struct dmi_system_id *d)
 {
 #ifdef CONFIG_X86_GENERICARCH
@@ -30,7 +31,6 @@
     return 0;
 }
 
-
 static struct dmi_system_id bigsmp_dmi_table[] = {
     { hp_ht_bigsmp, "HP ProLiant DL760 G2", {
         DMI_MATCH(DMI_BIOS_VENDOR, "HP"),
@@ -43,7 +43,7 @@
      }},
      { }
 };
-
+#endif /* CONFIG_DMI */
 
 static int probe_bigsmp(void)
 {
diff -u -r linux-2.6.23-rc8-old/arch/i386/pci/fixup.c 
linux-2.6.23-rc8/arch/i386/pci/fixup.c
--- linux-2.6.23-rc8-old/arch/i386/pci/fixup.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/arch/i386/pci/fixup.c    2007-09-26 
01:17:23.000000000 +0000
@@ -367,6 +367,7 @@
  */
 static u16 toshiba_line_size;
 
+#ifdef CONFIG_DMI
 static struct dmi_system_id __devinitdata toshiba_ohci1394_dmi_table[] = {
     {
         .ident = "Toshiba PS5 based laptop",
@@ -391,6 +392,7 @@
     },
     { }
 };
+#endif
 
 static void __devinit pci_pre_fixup_toshiba_ohci1394(struct pci_dev *dev)
 {
diff -u -r linux-2.6.23-rc8-old/drivers/acpi/Kconfig 
linux-2.6.23-rc8/drivers/acpi/Kconfig
--- linux-2.6.23-rc8-old/drivers/acpi/Kconfig    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/drivers/acpi/Kconfig    2007-09-25 
23:59:14.000000000 +0000
@@ -263,6 +263,7 @@
 
 config ACPI_BLACKLIST_YEAR
     int "Disable ACPI for systems before Jan 1st this year" if X86_32
+    depends on DMI
     default 0
     help
       enter a 4-digit year, eg. 2001 to disable ACPI by default
diff -u -r linux-2.6.23-rc8-old/drivers/acpi/blacklist.c 
linux-2.6.23-rc8/drivers/acpi/blacklist.c
--- linux-2.6.23-rc8-old/drivers/acpi/blacklist.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/drivers/acpi/blacklist.c    2007-09-26 
01:06:59.000000000 +0000
@@ -73,7 +73,7 @@
     {""}
 };
 
-#if    CONFIG_ACPI_BLACKLIST_YEAR
+#if defined(CONFIG_ACPI_BLACKLIST_YEAR) && CONFIG_ACPI_BLACKLIST_YEAR > 0
 
 static int __init blacklist_by_year(void)
 {
diff -u -r linux-2.6.23-rc8-old/drivers/acpi/processor_idle.c 
linux-2.6.23-rc8/drivers/acpi/processor_idle.c
--- linux-2.6.23-rc8-old/drivers/acpi/processor_idle.c    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/drivers/acpi/processor_idle.c    2007-09-26 
01:08:00.000000000 +0000
@@ -85,6 +85,7 @@
                                 Power Management
    
-------------------------------------------------------------------------- 
*/
 
+#ifdef CONFIG_DMI
 /*
  * IBM ThinkPad R40e crashes mysteriously when going into C2 or C3.
  * For now disable this. Probably a bug somewhere else.
@@ -165,6 +166,7 @@
      (void *)2},
     {},
 };
+#endif // CONFIG_DMI
 
 static inline u32 ticks_elapsed(u32 t1, u32 t2)
 {
diff -u -r linux-2.6.23-rc8-old/drivers/input/mouse/Kconfig 
linux-2.6.23-rc8/drivers/input/mouse/Kconfig
--- linux-2.6.23-rc8-old/drivers/input/mouse/Kconfig    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/drivers/input/mouse/Kconfig    2007-09-26 
01:12:13.000000000 +0000
@@ -60,7 +60,7 @@
 config MOUSE_PS2_SYNAPTICS
     bool "Synaptics PS/2 mouse protocol extension" if EMBEDDED
     default y
-    depends on MOUSE_PS2
+    depends on MOUSE_PS2 && DMI
     help
       Say Y here if you have a Synaptics PS/2 TouchPad connected to
       your system.
@@ -70,7 +70,7 @@
 config MOUSE_PS2_LIFEBOOK
     bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED
     default y
-    depends on MOUSE_PS2
+    depends on MOUSE_PS2 && DMI
     help
       Say Y here if you have a Fujitsu B-series Lifebook PS/2
       TouchScreen connected to your system.
diff -u -r linux-2.6.23-rc8-old/drivers/input/serio/i8042-x86ia64io.h 
linux-2.6.23-rc8/drivers/input/serio/i8042-x86ia64io.h
--- linux-2.6.23-rc8-old/drivers/input/serio/i8042-x86ia64io.h    
2007-09-21 22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/drivers/input/serio/i8042-x86ia64io.h    2007-09-26 
01:19:54.000000000 +0000
@@ -63,7 +63,7 @@
     outb(val, I8042_COMMAND_REG);
 }
 
-#if defined(__i386__)
+#if defined(__i386__) && defined(CONFIG_DMI)
 
 #include <linux/dmi.h>
 
@@ -472,7 +472,7 @@
         i8042_reset = 1;
 #endif
 
-#if defined(__i386__)
+#if defined(__i386__) && defined(CONFIG_DMI)
     if (dmi_check_system(i8042_dmi_noloop_table))
         i8042_noloop = 1;
 
diff -u -r linux-2.6.23-rc8-old/include/linux/dmi.h 
linux-2.6.23-rc8/include/linux/dmi.h
--- linux-2.6.23-rc8-old/include/linux/dmi.h    2007-09-21 
22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/include/linux/dmi.h    2007-09-26 
01:34:13.000000000 +0000
@@ -73,12 +73,24 @@
 
 #else
 
-static inline int dmi_check_system(struct dmi_system_id *list) { return 
0; }
+/* use the C preprocessor to toss out the DMI id list, and redirect
+ * to an inline function that reduces down to 0 (failure). this
+ * satisfies code using this in if () ... else ... statements that
+ * do not use brackets where #define dmi_check_list(list) 0 would
+ * give many "statement reduces to nothing" errors. { } is a
+ * possibility except that many parts of the kernel do in fact
+ * check the return value, { } would result in a syntax error.
+ * we toss out the param because the list is included only if
+ * #ifdef CONFIG_DMI. without DMI the id list is not used, and
+ * a waste of memory, so it is #ifdef'd out. */
+#define dmi_check_system(list) dmi_check_system_NOTHING()
+static inline int dmi_check_system_NOTHING(void) { return 0; }
+
 static inline char * dmi_get_system_info(int field) { return NULL; }
-static inline struct dmi_device * dmi_find_device(int type, const char 
*name,
-    struct dmi_device *from) { return NULL; }
-static inline int dmi_get_year(int year) { return 0; }
-static inline int dmi_name_in_vendors(char *s) { return 0; }
+#define dmi_find_device(type,name,from) NULL
+#define dmi_scan_machine() { }
+static inline int dmi_get_year(int field) { return 0; }
+static inline int dmi_name_in_vendors(char *str) { return 0; }
 
 #endif
 
diff -u -r linux-2.6.23-rc8-old/init/Kconfig linux-2.6.23-rc8/init/Kconfig
--- linux-2.6.23-rc8-old/init/Kconfig    2007-09-21 22:38:23.000000000 +0000
+++ linux-2.6.23-rc8/init/Kconfig    2007-09-26 00:03:05.000000000 +0000
@@ -542,6 +542,18 @@
       on EMBEDDED systems.  /proc/vmstat will only show page counts
       if VM event counters are disabled.
 
+config DMI
+    default y
+    bool "Enable DMI support" if EMBEDDED
+    depends on X86
+    help
+      This enables support for processing the Desktop Management
+      Interface structures present in most modern BIOSes. If you are
+      building a kernel for an older Pentium, 486, or 386 system and
+      memory is tight, you can disable this to help reduce the size
+      of your kernel by about 6K.
+      If unsure, say Y.
+
 config SLUB_DEBUG
     default y
     bool "Enable SLUB debugging support" if EMBEDDED


  reply	other threads:[~2007-09-26 18:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-24  8:51 [PATCH] Patches for tiny 386 kernels, again. Linux kernel 2.6.22.7 Jonathan Campbell
2007-09-24 17:49 ` Randy Dunlap
2007-09-26 18:42   ` Jonathan Campbell [this message]
2007-09-26 22:06     ` Randy Dunlap
2007-09-26 23:20     ` Randy Dunlap
2007-09-26 23:44       ` Jonathan Campbell
     [not found]       ` <46FAEE97.7090902@nerdgrounds.com>
2007-09-26 23:47         ` Randy Dunlap
2007-09-26 23:49           ` Jonathan Campbell
2007-09-28 21:24   ` Bill Davidsen
2007-09-28 21:56     ` Randy Dunlap
2007-10-01 13:44     ` Lennart Sorensen
2007-10-01 14:28       ` Bill Davidsen
2007-10-02  4:48         ` Willy Tarreau
2007-09-24 19:09 ` Dave Jones
2007-09-25  4:45   ` Andrey Panin
2007-09-25  7:28   ` Jan Engelhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46FAA808.90004@nerdgrounds.com \
    --to=jon@nerdgrounds.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=randy.dunlap@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.