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
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox