Skip to contentSkip to conversation

linux-next: Tree for November 28

RFC PATCH In review Stephen Rothwell 11 participants 32 messages Nov 28, 2008 – Dec 2, 2008 1 message not in the archive

Subsystems (13)
lore
Share & tools
lore
#0 lore raw

Hi all,

Changes since 20081127:

Today's tree fails the powerpc allyesconfig build.

New tree:
trivial

Undropped trees:

Dropped trees (temporarily):
v4l-dvb (build problem)
kbuild (build problem)
semaphore-removal (due to unfixed conflicts against Linus' tree) cpu_alloc (build problem)
perfmon3 (concerns from the x86 team)

The net tree lost its 3 conflicts and a merge fix, but gained a build failure.

The firmware tree gained 2 conflicts against the net tree.

The sound tree gained a build failure.

----------------------------------------------------------------------------

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/sfr/linux-next.git
(patches at
http://www.kernel.org/pub/linux/kernel/people/sfr/linux-next/). If you are tracking the linux-next tree using git, you should not use "git pull" to do so as that will try to merge the new linux-next release with the old one. You should use "git fetch" as mentioned in the FAQ on the wiki (see below).

You can see which trees have been included by looking in the Next/Trees file in the source. There are also quilt-import.log and merge.log files in the Next directory. Between each merge, the tree was built with a ppc64_defconfig for powerpc and an allmodconfig for x86_64. After the final fixups (if any), it is also built with powerpc allnoconfig, 44x_defconfig and allyesconfig and i386, sparc and sparc64 defconfig.

Below is a summary of the state of the merge.

We are up to 127 trees (counting Linus' and 15 trees of patches pending for Linus' tree), more are welcome (even if they are currently empty). Thanks to those who have contributed, and to those who haven't, please do.

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next . If maintainers want to give advice about cross compilers/configs that work, we are always open to add more builds.

Thanks to Jan Dittmer for adding the linux-next tree to his build tests at http://l4x.org/k/ , the guys at http://test.kernel.org/ and Randy Dunlap for doing many randconfig builds.

There is a wiki covering stuff to do with linux-next at
http://linux.f-seidel.de/linux-next/pmwiki/ . Thanks to Frank Seidel.

Signature · 155 lines
Cheers,
Stephen Rothwell                    [email protected]

$ git checkout master
$ git reset --hard stable
Merging origin/master
Merging arm-current/master
Merging m68k-current/for-linus
Merging powerpc-merge/merge
Merging sparc-current/master
Merging scsi-rc-fixes/master
Merging net-current/master
Merging sound-current/for-linus
Merging pci-current/for-linus
Merging wireless-current/master
Merging kbuild-current/master
Merging quilt/driver-core.current
Merging quilt/usb.current
Merging cpufreq-current/fixes
Merging input-current/for-linus
Merging md-current/for-2.6.26
Merging dwmw2/master
Merging arm/devel
Merging avr32/avr32-arch
Merging blackfin/for-linus
Merging cris/for-next
Merging ia64/test
Merging m68k/for-next
Merging m68knommu/for-next
Merging mips/mips-for-linux-next
Merging parisc/master
Merging powerpc/next
Merging 4xx/next
CONFLICT (content): Merge conflict in arch/powerpc/configs/ppc44x_defconfig
Merging galak/next
Merging pxa/for-next
Merging s390/features
CONFLICT (content): Merge conflict in drivers/char/Makefile
Merging sh/master
Merging sparc/master
Merging x86/auto-x86-next
Merging xtensa/master
Merging quilt/driver-core
Merging quilt/usb
Merging tip-core/auto-core-next
Merging cpus4096/auto-cpus4096-next
Merging ftrace/auto-ftrace-next
CONFLICT (content): Merge conflict in scripts/recordmcount.pl
Merging genirq/auto-genirq-next
Merging safe-poison-pointers/auto-safe-poison-pointers-next
Merging sched/auto-sched-next
Merging stackprotector/auto-stackprotector-next
Merging timers/auto-timers-next
Merging pci/linux-next
Merging quilt/device-mapper
Merging hid/for-next
Merging quilt/i2c
Merging quilt/jdelvare-hwmon
Merging quilt/kernel-doc
Merging jfs/next
Merging quilt/ide
Merging libata/NEXT
Merging nfs/linux-next
Merging xfs/master
Merging infiniband/for-next
Merging acpi/test
Merging nfsd/nfsd-next
Merging ieee1394/for-next
Merging ubi/linux-next
Merging kvm/master
CONFLICT (content): Merge conflict in arch/x86/kernel/reboot.c
Merging dlm/next
Merging scsi/master
Merging ocfs2/linux-next
Merging ext4/next
Merging async_tx/next
Merging udf/for_next
Merging net/master
Applying net: async_tx merge fix
Applying net: decnet build fix
Merging mtd/master
CONFLICT (content): Merge conflict in drivers/mtd/maps/physmap.c
Merging wireless/master
Merging crypto/master
Merging vfs/for-next
Merging sound/for-next
Merging cpufreq/next
Merging v9fs/for-next
Merging quilt/rr
CONFLICT (content): Merge conflict in arch/x86/kernel/io_apic.c
CONFLICT (content): Merge conflict in arch/x86/kernel/setup.c
CONFLICT (content): Merge conflict in kernel/irq/manage.c
CONFLICT (content): Merge conflict in kernel/irq/proc.c
Merging cifs/master
Merging mmc/next
Merging gfs2/master
Merging input/next
Merging semaphore/semaphore
Merging bkl-removal/bkl-removal
Merging ubifs/linux-next
Merging lsm/for-next
Merging block/for-next
Merging embedded/master
Merging firmware/master
CONFLICT (content): Merge conflict in drivers/net/tg3.c
CONFLICT (content): Merge conflict in firmware/Makefile
CONFLICT (content): Merge conflict in firmware/WHENCE
Merging pcmcia/master
Merging battery/master
Merging leds/for-mm
Merging backlight/for-mm
Merging kgdb/kgdb-next
Merging slab/for-next
Merging uclinux/for-next
Merging md/for-next
Merging kmemcheck/auto-kmemcheck-next
CONFLICT (content): Merge conflict in MAINTAINERS
CONFLICT (content): Merge conflict in arch/x86/mm/Makefile
CONFLICT (content): Merge conflict in mm/slab.c
CONFLICT (content): Merge conflict in mm/slub.c
Merging generic-ipi/auto-generic-ipi-next
Merging mfd/for-next
Merging hdlc/hdlc-next
Merging drm/drm-next
Merging voltage/for-next
Merging security-testing/next
CONFLICT (content): Merge conflict in fs/nfsd/nfs4recover.c
CONFLICT (content): Merge conflict in fs/ocfs2/namei.c
CONFLICT (content): Merge conflict in fs/xfs/linux-2.6/xfs_cred.h
CONFLICT (content): Merge conflict in fs/xfs/linux-2.6/xfs_globals.h
CONFLICT (content): Merge conflict in fs/xfs/xfs_vnodeops.h
Merging lblnet/master
Merging quilt/ttydev
CONFLICT (content): Merge conflict in fs/devpts/inode.c
Merging agp/agp-next
Merging oprofile/auto-oprofile-next
Merging fastboot/auto-fastboot-next
Merging sparseirq/auto-sparseirq-next
Merging iommu/auto-iommu-next
Merging uwb/for-upstream
Merging watchdog/master
Merging proc/proc
CONFLICT (content): Merge conflict in fs/proc/base.c
CONFLICT (content): Merge conflict in kernel/exit.c
Merging bdev/master
Merging dwmw2-iommu/master
Merging cputime/cputime
CONFLICT (content): Merge conflict in kernel/sched.c
Merging osd/linux-next
Merging fatfs/master
Merging fuse/for-next
Merging trivial/for-next
Merging quilt/staging
Merging scsi-post-merge/master
Created commit 16b3b1d: Revert "ALSA: hda - Move power_save option to hda_intel.c"
#1 lore raw

next-2008-11-28: bfin vs cpumask fixlet

arch/blackfin/kernel/time-ts.c +1 -1
@@ -162,7 +162,6 @@ static struct clock_event_device clockevent_bfin = {
 	.name		= "bfin_core_timer",
 	.features	= CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
 	.shift		= 32,
-	.cpumask	= CPU_MASK_CPU0,
 	.set_next_event = bfin_timer_set_next_event,
 	.set_mode	= bfin_timer_set_mode,
 };
@@ -193,6 +192,7 @@ static int __init bfin_clockevent_init(void)
 	clockevent_bfin.mult = div_sc(timer_clk, NSEC_PER_SEC, clockevent_bfin.shift);
 	clockevent_bfin.max_delta_ns = clockevent_delta2ns(-1, &clockevent_bfin);
 	clockevent_bfin.min_delta_ns = clockevent_delta2ns(100, &clockevent_bfin);
+	clockevent_bfin.cpumask = cpumask_of(0);
 	clockevents_register_device(&clockevent_bfin);
 
 	return 0;
#2 lore raw

Re: next-2008-11-28: bfin vs cpumask fixlet

arch/blackfin/kernel/time-ts.c static struct clock_event_device clockevent_bfin = { · line 165

Quoted 7 lines · On Saturday 29 November 2008 01:47:55 Alexey Dobriyan wrote:
arch/blackfin/kernel/time-ts.c +0 -1
@@ -162,7 +162,6 @@ static struct clock_event_device clockevent_bfin = {
 	.name		= "bfin_core_timer",
 	.features	= CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
 	.shift		= 32,
-	.cpumask	= CPU_MASK_CPU0,

Thanks Alexey, applied.

I grepped harder, and this seems to be the last one.

Cheers,
Rusty.

#3 lore raw

Re: linux-next: Tree for November 28 (misc/tc1100)

In reply to Stephen Rothwell
Quoted 9 lines · Stephen Rothwell

Hi all,

Changes since 20081127:

Today's tree fails the powerpc allyesconfig build.

New tree:
trivial

Quoted 8 lines

Undropped trees:

Dropped trees (temporarily):
v4l-dvb (build problem)
kbuild (build problem)
semaphore-removal (due to unfixed conflicts against Linus' tree) cpu_alloc (build problem)
perfmon3 (concerns from the x86 team)

make[2]: *** No rule to make target drivers/misc/tc1100-wmi.o', needed by drivers/misc/built-in.o'.

on allmodconfig & allyesconfig for i386.

On, moved to drivers/x86/. Someone needs to clean up drivers/misc/Makefile.

Signature · 1 line
~Randy
#4 lore raw

drivers/x86 (Was: Re: linux-next: Tree for November 28 (misc/tc1100))

Hi Len,

Quoted 6 lines · On Fri, 28 Nov 2008 09:55:08 -0800 Randy Dunlap <[email protected]> wrote:

make[2]: *** No rule to make target drivers/misc/tc1100-wmi.o', needed by drivers/misc/built-in.o'.

on allmodconfig & allyesconfig for i386.

On, moved to drivers/x86/. Someone needs to clean up drivers/misc/Makefile.

Just wondering where the move to drivers/x86 was discussed, (reviewed and tested) and why the change is in the acpi tree and not the x86 tree?

I am not saying it should not be done (I haven't looked enough to have an opinion).

Signature · 3 lines
Cheers,
Stephen Rothwell                    [email protected]
http://www.canb.auug.org.au/~sfr/
reviewer
#5 lore raw

Re: drivers/x86 (Was: Re: linux-next: Tree for November 28 (misc/tc1100))

Quoted 7 lines · Stephen Rothwell
Quoted 1 line

On, moved to drivers/x86/. Someone needs to clean up drivers/misc/Makefile.

Just wondering where the move to drivers/x86 was discussed, (reviewed and tested) and why the change is in the acpi tree and not the x86 tree?

I am not saying it should not be done (I haven't looked enough to have an opinion).

Although I discussed it with Linus last week in Portland, it is true that this patch erroneously appeared in my tree before being sent to the list.

I guess I got interrupted...
I'll send it now, thanks for the note.

-Len

A message that is not in the archive (sent off-list or not yet received): [email protected]

reviewer
#7 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 1 line

From 9f57b53c82091c7af2f6082d83d6fc6542e36917 Mon Sep 17 00:00:00 2001

From: Len Brown <[email protected]>
Date: Fri, 21 Nov 2008 00:57:09 -0500
Subject: [PATCH] x86: create drivers/x86/ from drivers/misc/
Organization: Intel Open Source Technology Center

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/x86/.

The community has been maintaining x86 platform specific drivers under /drivers/misc/ for a few years. The oldest ones started life under drivers/acpi, but got booted out because they are generally vendor-specific extensions to ACPI, or simply users of ACPI, rather than implementers of the ACPI spec.

The thing that they have in common is that they are x86 vendor specific platform drivers. So when asked, Linus suggested we move them to drivers/x86.

---
just the interesting part of the patch is included below, due to size.

 arch/x86/Kconfig                         |    2 +
 arch/x86/Makefile                        |    3 +
 drivers/misc/Kconfig                     |  280 ----------------------------
 drivers/misc/Makefile                    |   11 --
 drivers/x86/Kconfig                      |  290 ++++++++++++++++++++++++++++++
 drivers/x86/Makefile                     |   17 ++
 drivers/{misc => x86}/acer-wmi.c         |    0
 drivers/{misc => x86}/asus-laptop.c      |    0
 drivers/{misc => x86}/compal-laptop.c    |    0
 drivers/{misc => x86}/eeepc-laptop.c     |    0
 drivers/{misc => x86}/fujitsu-laptop.c   |    0
 drivers/{misc => x86}/hp-wmi.c           |    0
 drivers/{misc => x86}/intel_menlow.c     |    0
 drivers/{misc => x86}/msi-laptop.c       |    0
 drivers/{misc => x86}/panasonic-laptop.c |    0
 drivers/{misc => x86}/sony-laptop.c      |    0
 drivers/{misc => x86}/tc1100-wmi.c       |    0
 drivers/{misc => x86}/thinkpad_acpi.c    |    0
 18 files changed, 312 insertions(+), 291 deletions(-)
arch/x86/Kconfig +2 -0
index 93224b5..b89db1e 100644
@@ -1904,6 +1904,8 @@ source "drivers/Kconfig"
 
 source "drivers/firmware/Kconfig"
 
+source "drivers/x86/Kconfig"
+
 source "fs/Kconfig"
 
 source "arch/x86/Kconfig.debug"
arch/x86/Makefile +3 -0
index d1a47ad..a750519 100644
@@ -171,6 +171,9 @@ ifeq ($(CONFIG_X86_32),y)
 drivers-$(CONFIG_FB) += arch/x86/video/
 endif
 
+# x86 platform-specific drivers
+drivers-y       += drivers/x86/
+
 ####
 # boot loader support. Several targets are kept for legacy purposes
 
drivers/misc/Kconfig +0 -280

298 lines not on this page · raw message

drivers/misc/Makefile +0 -11
index 817f7f5..4a62847 100644
@@ -5,15 +5,9 @@ obj- := misc.o	# Dummy rule to force built-in.o to be made
 
 obj-$(CONFIG_IBM_ASM)		+= ibmasm/
 obj-$(CONFIG_HDPU_FEATURES)	+= hdpuftrs/
-obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
-obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
-obj-$(CONFIG_MSI_LAPTOP)	+= msi-laptop.o
-obj-$(CONFIG_COMPAL_LAPTOP)	+= compal-laptop.o
-obj-$(CONFIG_ACER_WMI)		+= acer-wmi.o
 obj-$(CONFIG_ATMEL_PWM)		+= atmel_pwm.o
 obj-$(CONFIG_ATMEL_SSC)		+= atmel-ssc.o
 obj-$(CONFIG_ATMEL_TCLIB)	+= atmel_tclib.o
-obj-$(CONFIG_HP_WMI)		+= hp-wmi.o
 obj-$(CONFIG_ICS932S401)	+= ics932s401.o
 obj-$(CONFIG_TC1100_WMI)	+= tc1100-wmi.o
 obj-$(CONFIG_LKDTM)		+= lkdtm.o
@@ -21,12 +15,7 @@ obj-$(CONFIG_TIFM_CORE)       	+= tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)       	+= tifm_7xx1.o
 obj-$(CONFIG_PHANTOM)		+= phantom.o
 obj-$(CONFIG_SGI_IOC4)		+= ioc4.o
-obj-$(CONFIG_SONY_LAPTOP)	+= sony-laptop.o
-obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
-obj-$(CONFIG_FUJITSU_LAPTOP)	+= fujitsu-laptop.o
-obj-$(CONFIG_PANASONIC_LAPTOP)	+= panasonic-laptop.o
 obj-$(CONFIG_EEPROM_93CX6)	+= eeprom_93cx6.o
-obj-$(CONFIG_INTEL_MENLOW)	+= intel_menlow.o
 obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
 obj-$(CONFIG_KGDB_TESTS)	+= kgdbts.o
 obj-$(CONFIG_SGI_XP)		+= sgi-xp/
#8 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 15 lines · Len Brown
Quoted 1 line

From 9f57b53c82091c7af2f6082d83d6fc6542e36917 Mon Sep 17 00:00:00 2001

From: Len Brown <[email protected]>
Date: Fri, 21 Nov 2008 00:57:09 -0500
Subject: [PATCH] x86: create drivers/x86/ from drivers/misc/
Organization: Intel Open Source Technology Center

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/x86/.

The community has been maintaining x86 platform specific drivers under /drivers/misc/ for a few years. The oldest ones started life under drivers/acpi, but got booted out because they are generally vendor-specific extensions to ACPI, or simply users of ACPI, rather than implementers of the ACPI spec.

Quoted 3 lines

The thing that they have in common is that they are x86 vendor specific platform drivers. So when asked, Linus suggested we move them to drivers/x86.

We already have 81 one directory entries under drivers/ and with patch you open up for an additional directory for each arch - not elegant.

As it is today (before this patch) the directories unider drivers/ said what the drivers was used for - which is logical.

But with this new arch specific directory it is no longer obvious is a driver should be located under say drivers/net/* or drivers/arm/* in case it is a arm specific driver.

What is wrong with the current location under misc/*? If there is a good reason to keep them separated follow the style of other directories under drivers/* and introduce drivers/misc/x86.

Quoted 4 lines

---
just the interesting part of the patch is included below, due to size.

git format-patch -M -B is your friend...

Quoted 377 lines

 arch/x86/Kconfig                         |    2 +
 arch/x86/Makefile                        |    3 +
 drivers/misc/Kconfig                     |  280 ----------------------------
 drivers/misc/Makefile                    |   11 --
 drivers/x86/Kconfig                      |  290 ++++++++++++++++++++++++++++++
 drivers/x86/Makefile                     |   17 ++
 drivers/{misc => x86}/acer-wmi.c         |    0
 drivers/{misc => x86}/asus-laptop.c      |    0
 drivers/{misc => x86}/compal-laptop.c    |    0
 drivers/{misc => x86}/eeepc-laptop.c     |    0
 drivers/{misc => x86}/fujitsu-laptop.c   |    0
 drivers/{misc => x86}/hp-wmi.c           |    0
 drivers/{misc => x86}/intel_menlow.c     |    0
 drivers/{misc => x86}/msi-laptop.c       |    0
 drivers/{misc => x86}/panasonic-laptop.c |    0
 drivers/{misc => x86}/sony-laptop.c      |    0
 drivers/{misc => x86}/tc1100-wmi.c       |    0
 drivers/{misc => x86}/thinkpad_acpi.c    |    0
 18 files changed, 312 insertions(+), 291 deletions(-)
arch/x86/Kconfig +2 -0
index 93224b5..b89db1e 100644
@@ -1904,6 +1904,8 @@ source "drivers/Kconfig"
 
 source "drivers/firmware/Kconfig"
 
+source "drivers/x86/Kconfig"
+
 source "fs/Kconfig"
 
 source "arch/x86/Kconfig.debug"
arch/x86/Makefile +3 -0
index d1a47ad..a750519 100644
@@ -171,6 +171,9 @@ ifeq ($(CONFIG_X86_32),y)
 drivers-$(CONFIG_FB) += arch/x86/video/
 endif
 
+# x86 platform-specific drivers
+drivers-y       += drivers/x86/
+
 ####
 # boot loader support. Several targets are kept for legacy purposes
 
drivers/misc/Kconfig +0 -280
index fee7304..8b775b8 100644
@@ -136,97 +136,6 @@ config TIFM_7XX1
           To compile this driver as a module, choose M here: the module will
 	  be called tifm_7xx1.
 
-config ACER_WMI
-        tristate "Acer WMI Laptop Extras (EXPERIMENTAL)"
-	depends on X86
-	depends on EXPERIMENTAL
-	depends on ACPI
-	depends on LEDS_CLASS
-	depends on NEW_LEDS
-	depends on BACKLIGHT_CLASS_DEVICE
-	depends on SERIO_I8042
-	depends on RFKILL
-	select ACPI_WMI
-	---help---
-	  This is a driver for newer Acer (and Wistron) laptops. It adds
-	  wireless radio and bluetooth control, and on some laptops,
-	  exposes the mail LED and LCD backlight.
-
-	  For more information about this driver see
-	  <file:Documentation/laptops/acer-wmi.txt>
-
-	  If you have an ACPI-WMI compatible Acer/ Wistron laptop, say Y or M
-	  here.
-
-config ASUS_LAPTOP
-        tristate "Asus Laptop Extras (EXPERIMENTAL)"
-        depends on X86
-        depends on ACPI
-	depends on EXPERIMENTAL && !ACPI_ASUS
-	depends on LEDS_CLASS
-	depends on NEW_LEDS
-	depends on BACKLIGHT_CLASS_DEVICE
-        ---help---
-	  This is the new Linux driver for Asus laptops. It may also support some
-	  MEDION, JVC or VICTOR laptops. It makes all the extra buttons generate
-	  standard ACPI events that go through /proc/acpi/events. It also adds
-	  support for video output switching, LCD backlight control, Bluetooth and
-	  Wlan control, and most importantly, allows you to blink those fancy LEDs.
-
-	  For more information and a userspace daemon for handling the extra
-	  buttons see <http://acpi4asus.sf.net/>.
-
-	  If you have an ACPI-compatible ASUS laptop, say Y or M here.
-
-config FUJITSU_LAPTOP
-        tristate "Fujitsu Laptop Extras"
-        depends on X86
-        depends on ACPI
-	depends on INPUT
-        depends on BACKLIGHT_CLASS_DEVICE
-        ---help---
-	  This is a driver for laptops built by Fujitsu:
-
-	    * P2xxx/P5xxx/S6xxx/S7xxx series Lifebooks
-	    * Possibly other Fujitsu laptop models
-	    * Tested with S6410 and S7020
-
-	  It adds support for LCD brightness control and some hotkeys.
-
-	  If you have a Fujitsu laptop, say Y or M here.
-
-config FUJITSU_LAPTOP_DEBUG
-	bool "Verbose debug mode for Fujitsu Laptop Extras"
-	depends on FUJITSU_LAPTOP
-	default n
-	---help---
-	  Enables extra debug output from the fujitsu extras driver, at the
-	  expense of a slight increase in driver size.
-
-	  If you are not sure, say N here.
-
-config TC1100_WMI
-	tristate "HP Compaq TC1100 Tablet WMI Extras (EXPERIMENTAL)"
-	depends on X86 && !X86_64
-	depends on EXPERIMENTAL
-	depends on ACPI
-	select ACPI_WMI
-	---help---
-	  This is a driver for the WMI extensions (wireless and bluetooth power
-	  control) of the HP Compaq TC1100 tablet.
-
-config HP_WMI
-       tristate "HP WMI extras"
-       depends on ACPI_WMI
-       depends on INPUT
-       depends on RFKILL
-       help
-         Say Y here if you want to support WMI-based hotkeys on HP laptops and
-	 to read data from WMI such as docking or ambient light sensor state.
-
-         To compile this driver as a module, choose M here: the module will
-         be called hp-wmi.
-
 config ICS932S401
 	tristate "Integrated Circuits ICS932S401"
 	depends on I2C && EXPERIMENTAL
@@ -237,170 +146,6 @@ config ICS932S401
 	  This driver can also be built as a module. If so, the module
 	  will be called ics932s401.
 
-config MSI_LAPTOP
-        tristate "MSI Laptop Extras"
-        depends on X86
-        depends on ACPI
-        depends on BACKLIGHT_CLASS_DEVICE
-        ---help---
-	  This is a driver for laptops built by MSI (MICRO-STAR
-	  INTERNATIONAL):
-
-	  MSI MegaBook S270 (MS-1013)
-	  Cytron/TCM/Medion/Tchibo MD96100/SAM2000
-
-	  It adds support for Bluetooth, WLAN and LCD brightness control.
-
-	  More information about this driver is available at
-	  <http://0pointer.de/lennart/tchibo.html>.
-
-	  If you have an MSI S270 laptop, say Y or M here.
-
-config PANASONIC_LAPTOP
-	tristate "Panasonic Laptop Extras"
-	depends on X86 && INPUT && ACPI
-        depends on BACKLIGHT_CLASS_DEVICE
-	---help---
-	  This driver adds support for access to backlight control and hotkeys
-	  on Panasonic Let's Note laptops.
-
-	  If you have a Panasonic Let's note laptop (such as the R1(N variant),
-	  R2, R3, R5, T2, W2 and Y2 series), say Y.
-
-config COMPAL_LAPTOP
-	tristate "Compal Laptop Extras"
-	depends on X86
-	depends on ACPI
-	depends on BACKLIGHT_CLASS_DEVICE
-	---help---
-	  This is a driver for laptops built by Compal:
-
-	  Compal FL90/IFL90
-	  Compal FL91/IFL91
-	  Compal FL92/JFL92
-	  Compal FT00/IFT00
-
-	  It adds support for Bluetooth, WLAN and LCD brightness control.
-
-	  If you have an Compal FL9x/IFL9x/FT00 laptop, say Y or M here.
-
-config SONY_LAPTOP
-	tristate "Sony Laptop Extras"
-	depends on X86 && ACPI
-	select BACKLIGHT_CLASS_DEVICE
-	depends on INPUT
-	  ---help---
-	  This mini-driver drives the SNC and SPIC devices present in the ACPI
-	  BIOS of the Sony Vaio laptops.
-
-	  It gives access to some extra laptop functionalities like Bluetooth,
-	  screen brightness control, Fn keys and allows powering on/off some
-	  devices.
-
-	  Read <file:Documentation/laptops/sony-laptop.txt> for more information.
-
-config SONYPI_COMPAT
-	bool "Sonypi compatibility"
-	depends on SONY_LAPTOP
-	  ---help---
-	  Build the sonypi driver compatibility code into the sony-laptop driver.
-
-config THINKPAD_ACPI
-	tristate "ThinkPad ACPI Laptop Extras"
-	depends on X86 && ACPI
-	select BACKLIGHT_LCD_SUPPORT
-	select BACKLIGHT_CLASS_DEVICE
-	select HWMON
-	select NVRAM
-	select INPUT
-	select NEW_LEDS
-	select LEDS_CLASS
-	select NET
-	select RFKILL
-	---help---
-	  This is a driver for the IBM and Lenovo ThinkPad laptops. It adds
-	  support for Fn-Fx key combinations, Bluetooth control, video
-	  output switching, ThinkLight control, UltraBay eject and more.
-	  For more information about this driver see
-	  <file:Documentation/laptops/thinkpad-acpi.txt> and
-	  <http://ibm-acpi.sf.net/> .
-
-	  This driver was formerly known as ibm-acpi.
-
-	  If you have an IBM or Lenovo ThinkPad laptop, say Y or M here.
-
-config THINKPAD_ACPI_DEBUG
-	bool "Verbose debug mode"
-	depends on THINKPAD_ACPI
-	default n
-	---help---
-	  Enables extra debugging information, at the expense of a slightly
-	  increase in driver size.
-
-	  If you are not sure, say N here.
-
-config THINKPAD_ACPI_DOCK
-	bool "Legacy Docking Station Support"
-	depends on THINKPAD_ACPI
-	depends on ACPI_DOCK=n
-	default n
-	---help---
-	  Allows the thinkpad_acpi driver to handle docking station events.
-	  This support was made obsolete by the generic ACPI docking station
-	  support (CONFIG_ACPI_DOCK).  It will allow locking and removing the
-	  laptop from the docking station, but will not properly connect PCI
-	  devices.
-
-	  If you are not sure, say N here.
-
-config THINKPAD_ACPI_BAY
-	bool "Legacy Removable Bay Support"
-	depends on THINKPAD_ACPI
-	default y
-	---help---
-	  Allows the thinkpad_acpi driver to handle removable bays.  It will
-	  electrically disable the device in the bay, and also generate
-	  notifications when the bay lever is ejected or inserted.
-
-	  If you are not sure, say Y here.
-
-config THINKPAD_ACPI_VIDEO
-	bool "Video output control support"
-	depends on THINKPAD_ACPI
-	default y
-	---help---
-	  Allows the thinkpad_acpi driver to provide an interface to control
-	  the various video output ports.
-
-	  This feature often won't work well, depending on ThinkPad model,
-	  display state, video output devices in use, whether there is a X
-	  server running, phase of the moon, and the current mood of
-	  Schroedinger's cat.  If you can use X.org's RandR to control
-	  your ThinkPad's video output ports instead of this feature,
-	  don't think twice: do it and say N here to save some memory.
-
-	  If you are not sure, say Y here.
-
-config THINKPAD_ACPI_HOTKEY_POLL
-	bool "Support NVRAM polling for hot keys"
-	depends on THINKPAD_ACPI
-	default y
-	---help---
-	  Some thinkpad models benefit from NVRAM polling to detect a few of
-	  the hot key press events.  If you know your ThinkPad model does not
-	  need to do NVRAM polling to support any of the hot keys you use,
-	  unselecting this option will save about 1kB of memory.
-
-	  ThinkPads T40 and newer, R52 and newer, and X31 and newer are
-	  unlikely to need NVRAM polling in their latest BIOS versions.
-
-	  NVRAM polling can detect at most the following keys: ThinkPad/Access
-	  IBM, Zoom, Switch Display (fn+F7), ThinkLight, Volume up/down/mute,
-	  Brightness up/down, Display Expand (fn+F8), Hibernate (fn+F12).
-
-	  If you are not sure, say Y here.  The driver enables polling only if
-	  it is strictly necessary to do so.
-
 config ATMEL_SSC
 	tristate "Device driver for Atmel SSC peripheral"
 	depends on AVR32 || ARCH_AT91
@@ -413,31 +158,6 @@ config ATMEL_SSC
 
 	  If unsure, say N.
 
-config INTEL_MENLOW
-	tristate "Thermal Management driver for Intel menlow platform"
-	depends on ACPI_THERMAL
-	select THERMAL
-	depends on X86
-	---help---
-	  ACPI thermal management enhancement driver on
-	  Intel Menlow platform.
-
-	  If unsure, say N.
-
-config EEEPC_LAPTOP
-	tristate "Eee PC Hotkey Driver (EXPERIMENTAL)"
-	depends on X86
-	depends on ACPI
-	depends on BACKLIGHT_CLASS_DEVICE
-	depends on HWMON
-	depends on EXPERIMENTAL
-	depends on RFKILL
-	---help---
-	  This driver supports the Fn-Fx keys on Eee PC laptops.
-	  It also adds the ability to switch camera/wlan on/off.
-
-	  If you have an Eee PC laptop, say Y or M here.
-
 config ENCLOSURE_SERVICES
 	tristate "Enclosure Services"
 	default n
drivers/misc/Makefile +0 -6
index 817f7f5..4a62847 100644
@@ -5,15 +5,9 @@ obj- := misc.o	# Dummy rule to force built-in.o to be made
 
 obj-$(CONFIG_IBM_ASM)		+= ibmasm/
 obj-$(CONFIG_HDPU_FEATURES)	+= hdpuftrs/
-obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
-obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
-obj-$(CONFIG_MSI_LAPTOP)	+= msi-laptop.o
-obj-$(CONFIG_COMPAL_LAPTOP)	+= compal-laptop.o
-obj-$(CONFIG_ACER_WMI)		+= acer-wmi.o
 obj-$(CONFIG_ATMEL_PWM)		+= atmel_pwm.o
 obj-$(CONFIG_ATMEL_SSC)		+= atmel-ssc.o
 obj-$(CONFIG_ATMEL_TCLIB)	+= atmel_tclib.o
-obj-$(CONFIG_HP_WMI)		+= hp-wmi.o
 obj-$(CONFIG_ICS932S401)	+= ics932s401.o
 obj-$(CONFIG_TC1100_WMI)	+= tc1100-wmi.o
 obj-$(CONFIG_LKDTM)		+= lkdtm.o
@@ -21,12 +15,7 @@ obj-$(CONFIG_TIFM_CORE)       	+= tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)       	+= tifm_7xx1.o
 obj-$(CONFIG_PHANTOM)		+= phantom.o

drivers/misc/Makefile obj-$(CONFIG_TIFM_CORE) += tifm_core.o · line 21

Quoted 10 lines
drivers/misc/Makefile +0 -5
 obj-$(CONFIG_SGI_IOC4)		+= ioc4.o
-obj-$(CONFIG_SONY_LAPTOP)	+= sony-laptop.o
-obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
-obj-$(CONFIG_FUJITSU_LAPTOP)	+= fujitsu-laptop.o
-obj-$(CONFIG_PANASONIC_LAPTOP)	+= panasonic-laptop.o
 obj-$(CONFIG_EEPROM_93CX6)	+= eeprom_93cx6.o
-obj-$(CONFIG_INTEL_MENLOW)	+= intel_menlow.o
 obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
 obj-$(CONFIG_KGDB_TESTS)	+= kgdbts.o
 obj-$(CONFIG_SGI_XP)		+= sgi-xp/

You move 12 files but delete 11 lines.

Also - where are the new Makefile?

Sam

reviewer
#9 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 11 lines
Quoted 11 lines

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/x86/.

The community has been maintaining x86 platform specific drivers under /drivers/misc/ for a few years. The oldest ones started life under drivers/acpi, but got booted out because they are generally vendor-specific extensions to ACPI, or simply users of ACPI, rather than implementers of the ACPI spec.

Quoted 7 lines
Quoted 3 lines

The thing that they have in common is that they are x86 vendor specific platform drivers. So when asked, Linus suggested we move them to drivers/x86.

We already have 81 one directory entries under drivers/ and with patch you open up for an additional directory for each arch - not elegant.

I followed the example of drivers/s390/,
per Linus' suggestion.

The other place that seemed to suggest itself was arch/x86/drivers/, as we already have:

arch/um/drivers/
arch/sh/drivers/
arch/cris/*/drivers/

Quoted 6 lines

As it is today (before this patch) the directories unider drivers/ said what the drivers was used for - which is logical.

But with this new arch specific directory it is no longer obvious is a driver should be located under say drivers/net/* or drivers/arm/* in case it is a arm specific driver.

These are vendor-specific, aka "platform specific" drivers for various x86 platforms.

Quoted 1 line

What is wrong with the current location under misc/*?

mostly that it "misc" means nothing at all... Indeed, misc should probably be deleted for this reason...

Quoted 3 lines

If there is a good reason to keep them separated
follow the style of other directories under
drivers/* and introduce drivers/misc/x86.

is there an example besides lguest/x86?

Quoted 1 line

git format-patch -M -B is your friend...

here you go:

Quoted 1 line

From 9f57b53c82091c7af2f6082d83d6fc6542e36917 Mon Sep 17 00:00:00 2001

From: Len Brown <[email protected]>
Date: Fri, 21 Nov 2008 00:57:09 -0500
Subject: [PATCH] x86: create drivers/x86/ from drivers/misc/
Organization: Intel Open Source Technology Center

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/x86/.

---
 arch/x86/Kconfig                         |    2 +
 arch/x86/Makefile                        |    3 +
 drivers/misc/Kconfig                     |  280 ----------------------------
 drivers/misc/Makefile                    |   11 --
 drivers/x86/Kconfig                      |  290 ++++++++++++++++++++++++++++++
 drivers/x86/Makefile                     |   17 ++
 drivers/{misc => x86}/acer-wmi.c         |    0 
 drivers/{misc => x86}/asus-laptop.c      |    0 
 drivers/{misc => x86}/compal-laptop.c    |    0 
 drivers/{misc => x86}/eeepc-laptop.c     |    0 
 drivers/{misc => x86}/fujitsu-laptop.c   |    0 
 drivers/{misc => x86}/hp-wmi.c           |    0 
 drivers/{misc => x86}/intel_menlow.c     |    0 
 drivers/{misc => x86}/msi-laptop.c       |    0 
 drivers/{misc => x86}/panasonic-laptop.c |    0 
 drivers/{misc => x86}/sony-laptop.c      |    0 
 drivers/{misc => x86}/tc1100-wmi.c       |    0 
 drivers/{misc => x86}/thinkpad_acpi.c    |    0 
 18 files changed, 312 insertions(+), 291 deletions(-)
 create mode 100644 drivers/x86/Kconfig
 create mode 100644 drivers/x86/Makefile
 rename drivers/{misc => x86}/acer-wmi.c (100%)
 rename drivers/{misc => x86}/asus-laptop.c (100%)
 rename drivers/{misc => x86}/compal-laptop.c (100%)
 rename drivers/{misc => x86}/eeepc-laptop.c (100%)
 rename drivers/{misc => x86}/fujitsu-laptop.c (100%)
 rename drivers/{misc => x86}/hp-wmi.c (100%)
 rename drivers/{misc => x86}/intel_menlow.c (100%)
 rename drivers/{misc => x86}/msi-laptop.c (100%)
 rename drivers/{misc => x86}/panasonic-laptop.c (100%)
 rename drivers/{misc => x86}/sony-laptop.c (100%)
 rename drivers/{misc => x86}/tc1100-wmi.c (100%)
 rename drivers/{misc => x86}/thinkpad_acpi.c (100%)
arch/x86/Kconfig +2 -0
index 93224b5..b89db1e 100644
@@ -1904,6 +1904,8 @@ source "drivers/Kconfig"
 
 source "drivers/firmware/Kconfig"
 
+source "drivers/x86/Kconfig"
+
 source "fs/Kconfig"
 
 source "arch/x86/Kconfig.debug"
arch/x86/Makefile +3 -0
index d1a47ad..a750519 100644
@@ -171,6 +171,9 @@ ifeq ($(CONFIG_X86_32),y)
 drivers-$(CONFIG_FB) += arch/x86/video/
 endif
 
+# x86 platform-specific drivers
+drivers-y       += drivers/x86/
+
 ####
 # boot loader support. Several targets are kept for legacy purposes
 
drivers/misc/Kconfig +0 -280

298 lines not on this page · raw message

drivers/misc/Makefile +0 -11
index 817f7f5..4a62847 100644
@@ -5,15 +5,9 @@ obj- := misc.o	# Dummy rule to force built-in.o to be made
 
 obj-$(CONFIG_IBM_ASM)		+= ibmasm/
 obj-$(CONFIG_HDPU_FEATURES)	+= hdpuftrs/
-obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
-obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
-obj-$(CONFIG_MSI_LAPTOP)	+= msi-laptop.o
-obj-$(CONFIG_COMPAL_LAPTOP)	+= compal-laptop.o
-obj-$(CONFIG_ACER_WMI)		+= acer-wmi.o
 obj-$(CONFIG_ATMEL_PWM)		+= atmel_pwm.o
 obj-$(CONFIG_ATMEL_SSC)		+= atmel-ssc.o
 obj-$(CONFIG_ATMEL_TCLIB)	+= atmel_tclib.o
-obj-$(CONFIG_HP_WMI)		+= hp-wmi.o
 obj-$(CONFIG_ICS932S401)	+= ics932s401.o
 obj-$(CONFIG_TC1100_WMI)	+= tc1100-wmi.o
 obj-$(CONFIG_LKDTM)		+= lkdtm.o
@@ -21,12 +15,7 @@ obj-$(CONFIG_TIFM_CORE)       	+= tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)       	+= tifm_7xx1.o
 obj-$(CONFIG_PHANTOM)		+= phantom.o
 obj-$(CONFIG_SGI_IOC4)		+= ioc4.o
-obj-$(CONFIG_SONY_LAPTOP)	+= sony-laptop.o
-obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
-obj-$(CONFIG_FUJITSU_LAPTOP)	+= fujitsu-laptop.o
-obj-$(CONFIG_PANASONIC_LAPTOP)	+= panasonic-laptop.o
 obj-$(CONFIG_EEPROM_93CX6)	+= eeprom_93cx6.o
-obj-$(CONFIG_INTEL_MENLOW)	+= intel_menlow.o
 obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
 obj-$(CONFIG_KGDB_TESTS)	+= kgdbts.o
 obj-$(CONFIG_SGI_XP)		+= sgi-xp/
drivers/x86/Kconfig new file +290 -0

290 lines not on this page · raw message

drivers/x86/Makefile new file +17 -0
new file mode 100644
index 0000000..4f14f28
@@ -0,0 +1,17 @@
+#
+# x86 Platform-Specific Drivers
+#
+obj- := x86.o	# Dummy rule to force built-in.o to be made
+
+obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
+obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
+obj-$(CONFIG_MSI_LAPTOP)	+= msi-laptop.o
+obj-$(CONFIG_COMPAL_LAPTOP)	+= compal-laptop.o
+obj-$(CONFIG_ACER_WMI)		+= acer-wmi.o
+obj-$(CONFIG_HP_WMI)		+= hp-wmi.o
+obj-$(CONFIG_TC1100_WMI)	+= tc1100-wmi.o
+obj-$(CONFIG_SONY_LAPTOP)	+= sony-laptop.o
+obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
+obj-$(CONFIG_FUJITSU_LAPTOP)	+= fujitsu-laptop.o
+obj-$(CONFIG_PANASONIC_LAPTOP)	+= panasonic-laptop.o
+obj-$(CONFIG_INTEL_MENLOW)	+= intel_menlow.o
drivers/x86/acer-wmi.c renamed from drivers/misc/acer-wmi.c +0 -0
similarity index 100%
rename from drivers/misc/acer-wmi.c
rename to drivers/x86/acer-wmi.c
drivers/x86/asus-laptop.c renamed from drivers/misc/asus-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/asus-laptop.c
rename to drivers/x86/asus-laptop.c
drivers/x86/compal-laptop.c renamed from drivers/misc/compal-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/compal-laptop.c
rename to drivers/x86/compal-laptop.c
drivers/x86/eeepc-laptop.c renamed from drivers/misc/eeepc-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/eeepc-laptop.c
rename to drivers/x86/eeepc-laptop.c
drivers/x86/fujitsu-laptop.c renamed from drivers/misc/fujitsu-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/fujitsu-laptop.c
rename to drivers/x86/fujitsu-laptop.c
drivers/x86/hp-wmi.c renamed from drivers/misc/hp-wmi.c +0 -0
similarity index 100%
rename from drivers/misc/hp-wmi.c
rename to drivers/x86/hp-wmi.c
drivers/x86/intel_menlow.c renamed from drivers/misc/intel_menlow.c +0 -0
similarity index 100%
rename from drivers/misc/intel_menlow.c
rename to drivers/x86/intel_menlow.c
drivers/x86/msi-laptop.c renamed from drivers/misc/msi-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/msi-laptop.c
rename to drivers/x86/msi-laptop.c
drivers/x86/panasonic-laptop.c renamed from drivers/misc/panasonic-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/panasonic-laptop.c
rename to drivers/x86/panasonic-laptop.c
drivers/x86/sony-laptop.c renamed from drivers/misc/sony-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/sony-laptop.c
rename to drivers/x86/sony-laptop.c
drivers/x86/tc1100-wmi.c renamed from drivers/misc/tc1100-wmi.c +0 -0
similarity index 100%
rename from drivers/misc/tc1100-wmi.c
rename to drivers/x86/tc1100-wmi.c
drivers/x86/thinkpad_acpi.c renamed from drivers/misc/thinkpad_acpi.c +0 -0
similarity index 100%
rename from drivers/misc/thinkpad_acpi.c
rename to drivers/x86/thinkpad_acpi.c
Signature · 1 line
1.5.6.5
#10 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 2 lines · Len Brown
Quoted 2 lines
Quoted 2 lines

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/x86/.

[...]

Quoted 7 lines
Quoted 3 lines

We already have 81 one directory entries under drivers/ and with patch you open up for an additional directory for each arch - not elegant.

I followed the example of drivers/s390/,
per Linus' suggestion.

Quoted 6 lines

The other place that seemed to suggest itself was
arch/x86/drivers/, as we already have:

arch/um/drivers/
arch/sh/drivers/
arch/cris/*/drivers/

IMHO, from a purely "tree organization" point of view, it would be best if arch-specific platform drivers were under drivers/platform/<arch>/. And arch/ be left for the core arch-specific stuff.

Whether that would work well, when arch maintenance factors are taken into account, I don't know.

Quoted 6 lines
Quoted 6 lines

As it is today (before this patch) the directories unider drivers/ said what the drivers was used for - which is logical.

But with this new arch specific directory it is no longer obvious is a driver should be located under say drivers/net/* or drivers/arm/* in case it is a arm specific driver.

drivers/platform/<arch> would help in that regard, I think.

Signature · 4 lines
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh
reviewer
#11 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 18 lines · Henrique de Moraes Holschuh
Quoted 2 lines · Len Brown
Quoted 2 lines
Quoted 2 lines

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/x86/.

[...]

Quoted 7 lines
Quoted 3 lines

We already have 81 one directory entries under drivers/ and with patch you open up for an additional directory for each arch - not elegant.

I followed the example of drivers/s390/,
per Linus' suggestion.

Quoted 6 lines

The other place that seemed to suggest itself was
arch/x86/drivers/, as we already have:

arch/um/drivers/
arch/sh/drivers/
arch/cris/*/drivers/

Quoted 6 lines

IMHO, from a purely "tree organization" point of view, it would be best if arch-specific platform drivers were under drivers/platform/<arch>/. And arch/ be left for the core arch-specific stuff.

Whether that would work well, when arch maintenance factors are taken into account, I don't know.

Each of the drivers has a primary maintainer -- though some of them jare more active than others... And I'll continue to be available to help them where I can.

Quoted 8 lines
Quoted 6 lines
Quoted 6 lines

As it is today (before this patch) the directories unider drivers/ said what the drivers was used for - which is logical.

But with this new arch specific directory it is no longer obvious is a driver should be located under say drivers/net/* or drivers/arm/* in case it is a arm specific driver.

drivers/platform/<arch> would help in that regard, I think.

I agree.
drivers/platform/x86/ seems to be a better home than drivers/x86/ for this bunch. I'll update the patch to do this.
The other arch's can follow later if they choose.

thanks,
-Len

#12 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

In reply to Len Brown
Quoted 34 lines · Len Brown
Quoted 10 lines
Quoted 10 lines

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/x86/.

The community has been maintaining x86 platform specific drivers under /drivers/misc/ for a few years. The oldest ones started life under drivers/acpi, but got booted out because they are generally vendor-specific extensions to ACPI, or simply users of ACPI, rather than implementers of the ACPI spec.

Quoted 6 lines
Quoted 3 lines

The thing that they have in common is that they are x86 vendor specific platform drivers. So when asked, Linus suggested we move them to drivers/x86.

We already have 81 one directory entries under drivers/ and with patch you open up for an additional directory for each arch - not elegant.

I followed the example of drivers/s390/,
per Linus' suggestion.

The other place that seemed to suggest itself was
arch/x86/drivers/, as we already have:

arch/um/drivers/
arch/sh/drivers/
arch/cris/*/drivers/

Quoted 6 lines

As it is today (before this patch) the directories unider drivers/ said what the drivers was used for - which is logical.

But with this new arch specific directory it is no longer obvious is a driver should be located under say drivers/net/* or drivers/arm/* in case it is a arm specific driver.

Quoted 7 lines

These are vendor-specific, aka "platform specific" drivers for various x86 platforms.

Quoted 1 line

What is wrong with the current location under misc/*?

mostly that it "misc" means nothing at all... Indeed, misc should probably be deleted for this reason...

Yes, IIRC, we had eliminated drivers/misc/ at one point, and then it came back on us.

~Randy

#13 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

In reply to Len Brown
Quoted 3 lines

I followed the example of drivers/s390/,
per Linus' suggestion.

And in s390 we have:

block/
char/
cio/
crypto/
ebcdic.c
kvm/
Makefile
net/
s390mach.c
s390mach.h
s390_rdev.c
scsi/
sysinfo.c

So we end up with block drivers in drivers/block AND drivers/s390/block This is the wrong way to divide up things.

find -name arm
./net/arm
./scsi/arm

find -name cris
./net/cris

find -name x86
./lguest/x86

See above. I have all net drivers under drivers/net/ and for arm and cris they have their own subdirectory.
Except for s390 where I have to go finding them in other places.

Quoted 6 lines

The other place that seemed to suggest itself was
arch/x86/drivers/, as we already have:

arch/um/drivers/
arch/sh/drivers/
arch/cris/*/drivers/

The approach has been for a long time to move away from storing drivers under arch/*/drivers and cris is slowly moving their drivers.
I dunno about um and sh.

Sam

#14 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

In reply to Len Brown

Comments below in case we stick to this drivers/x86 thing...

Sam

arch/x86/Kconfig source "drivers/Kconfig" · line 1909

Quoted 12 lines
arch/x86/Kconfig +2 -0
index 93224b5..b89db1e 100644
@@ -1904,6 +1904,8 @@ source "drivers/Kconfig"
 
 source "drivers/firmware/Kconfig"
 
+source "drivers/x86/Kconfig"
+
 source "fs/Kconfig"

Any chance we can have this in drivers/Kconfig?

Just wrap all of the file in an

if X86
.....
endif

So we keep all the drivers/ stuff in one Kconfig file and not spread all over.

arch/x86/Makefile ifeq ($(CONFIG_X86_32),y) · line 176

Quoted 11 lines
arch/x86/Makefile +3 -0
index d1a47ad..a750519 100644
@@ -171,6 +171,9 @@ ifeq ($(CONFIG_X86_32),y)
 drivers-$(CONFIG_FB) += arch/x86/video/
 endif
 
+# x86 platform-specific drivers
+drivers-y       += drivers/x86/
+

Can this be included in drivers/Makefile like this:

obj-$(CONFIG_X86) += x86/

Notice that parisc already do the same. (Yes they have a drivers/parisc dir).

We shall try to visit our tree in natural order when we build and such a rule breaks this.
Also it is good to keep drivers/ stuff in one place.

Quoted 10 lines
arch/x86/Makefile +9 -0
+++ b/drivers/x86/Kconfig
@@ -0,0 +1,290 @@
+#
+# X86 Platform Specific Drivers
+#
+
+menuconfig X86_PLATFORM_DEVICES
+	bool "X86 Platform devices"
+	default y
+	---help---

arch/x86/Makefile line 18

Quoted 10 lines
arch/x86/Makefile +10 -0
+	  Say Y here to get to see options for device drivers for various
+	  x86 platforms, including vendor-specific laptop extension drivers.
+	  This option alone does not add any kernel code.
+
+	  If you say N, all options in this submenu will be skipped and disabled.
+
+if X86_PLATFORM_DEVICES
+
+config ACER_WMI
+        tristate "Acer WMI Laptop Extras (EXPERIMENTAL)"

spaces => tab

arch/x86/Makefile line 21

Quoted 3 lines
arch/x86/Makefile +3 -0
+config ASUS_LAPTOP
+        tristate "Asus Laptop Extras (EXPERIMENTAL)"
+        depends on ACPI

spaces => tab

arch/x86/Makefile line 27

Quoted 6 lines
arch/x86/Makefile +6 -0
+config FUJITSU_LAPTOP
+        tristate "Fujitsu Laptop Extras"
+        depends on ACPI
+	depends on INPUT
+        depends on BACKLIGHT_CLASS_DEVICE
+        ---help---

spaces => tab

arch/x86/Makefile line 34

Quoted 7 lines
arch/x86/Makefile +7 -0
+config HP_WMI
+       tristate "HP WMI extras"
+       depends on ACPI_WMI
+       depends on INPUT
+       depends on RFKILL
+       help
+         Say Y here if you want to support WMI-based hotkeys on HP laptops and

spaces => tab

arch/x86/Makefile line 44

Quoted 10 lines
arch/x86/Makefile +10 -0
+	 to read data from WMI such as docking or ambient light sensor state.
+
+         To compile this driver as a module, choose M here: the module will
+         be called hp-wmi.
+
+config MSI_LAPTOP
+        tristate "MSI Laptop Extras"
+        depends on ACPI
+        depends on BACKLIGHT_CLASS_DEVICE
+        ---help---

spaces => tab

drivers/x86/Makefile line 4

Quoted 10 lines
drivers/x86/Makefile new file +4 -0
new file mode 100644
index 0000000..4f14f28
@@ -0,0 +1,17 @@
+#
+# x86 Platform-Specific Drivers
+#
+obj- := x86.o	# Dummy rule to force built-in.o to be made

This is not needed. I can see divers/misc uses the same but it is bogus.

Sam

reviewer
#15 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 1 line · Sam Ravnborg

Comments below in case we stick to this drivers/x86 thing...

now the "drivers/platform/x86/ thing"
aka the "get rid of drivers/misc/ thing":-)

Quoted 14 lines

arch/x86/Kconfig source "drivers/Kconfig" · line 1909

Quoted 11 lines
arch/x86/Kconfig +2 -0
index 93224b5..b89db1e 100644
@@ -1904,6 +1904,8 @@ source "drivers/Kconfig"
 
 source "drivers/firmware/Kconfig"
 
+source "drivers/x86/Kconfig"
+
 source "fs/Kconfig"

Any chance we can have this in drivers/Kconfig?

Quoted 8 lines

Just wrap all of the file in an

if X86
.....
endif

So we keep all the drivers/ stuff in one Kconfig file and not spread all over.

grep 'source "drivers"' arch/x86/Kconfig

source "drivers/acpi/Kconfig"
source "drivers/cpuidle/Kconfig"
source "drivers/idle/Kconfig"
source "drivers/pci/pcie/Kconfig"
source "drivers/pci/Kconfig"
source "drivers/eisa/Kconfig"
source "drivers/mca/Kconfig"
source "drivers/pcmcia/Kconfig"
source "drivers/pci/hotplug/Kconfig"
source "drivers/Kconfig"
source "drivers/firmware/Kconfig"
source "drivers/x86/Kconfig"

Are the lines above a good example, a bad example, or did I miss a nuance of the grand Kconfig design?

I really don't care one way or another, but there seem to be examples of both ways...

Quoted 14 lines

arch/x86/Makefile ifeq ($(CONFIG_X86_32),y) · line 176

Quoted 11 lines
arch/x86/Makefile +3 -0
index d1a47ad..a750519 100644
@@ -171,6 +171,9 @@ ifeq ($(CONFIG_X86_32),y)
 drivers-$(CONFIG_FB) += arch/x86/video/
 endif
 
+# x86 platform-specific drivers
+drivers-y       += drivers/x86/
+

Can this be included in drivers/Makefile like this:

Quoted 8 lines

obj-$(CONFIG_X86) += x86/

Notice that parisc already do the same. (Yes they have a drivers/parisc dir).

We shall try to visit our tree in natural order when we build and such a rule breaks this.
Also it is good to keep drivers/ stuff in one place.

sure, that sounds reasonable.

Quoted 56 lines
Quoted 10 lines
arch/x86/Makefile +9 -0
+++ b/drivers/x86/Kconfig
@@ -0,0 +1,290 @@
+#
+# X86 Platform Specific Drivers
+#
+
+menuconfig X86_PLATFORM_DEVICES
+	bool "X86 Platform devices"
+	default y
+	---help---

arch/x86/Makefile line 18

Quoted 10 lines
arch/x86/Makefile +10 -0
+	  Say Y here to get to see options for device drivers for various
+	  x86 platforms, including vendor-specific laptop extension drivers.
+	  This option alone does not add any kernel code.
+
+	  If you say N, all options in this submenu will be skipped and disabled.
+
+if X86_PLATFORM_DEVICES
+
+config ACER_WMI
+        tristate "Acer WMI Laptop Extras (EXPERIMENTAL)"

spaces => tab

arch/x86/Makefile line 21

Quoted 3 lines
arch/x86/Makefile +3 -0
+config ASUS_LAPTOP
+        tristate "Asus Laptop Extras (EXPERIMENTAL)"
+        depends on ACPI

spaces => tab

arch/x86/Makefile line 27

Quoted 6 lines
arch/x86/Makefile +6 -0
+config FUJITSU_LAPTOP
+        tristate "Fujitsu Laptop Extras"
+        depends on ACPI
+	depends on INPUT
+        depends on BACKLIGHT_CLASS_DEVICE
+        ---help---

spaces => tab

arch/x86/Makefile line 34

Quoted 7 lines
arch/x86/Makefile +7 -0
+config HP_WMI
+       tristate "HP WMI extras"
+       depends on ACPI_WMI
+       depends on INPUT
+       depends on RFKILL
+       help
+         Say Y here if you want to support WMI-based hotkeys on HP laptops and

spaces => tab

arch/x86/Makefile line 44

Quoted 10 lines
arch/x86/Makefile +10 -0
+	 to read data from WMI such as docking or ambient light sensor state.
+
+         To compile this driver as a module, choose M here: the module will
+         be called hp-wmi.
+
+config MSI_LAPTOP
+        tristate "MSI Laptop Extras"
+        depends on ACPI
+        depends on BACKLIGHT_CLASS_DEVICE
+        ---help---

spaces => tab

Quoted 13 lines

drivers/x86/Makefile line 4

Quoted 10 lines
drivers/x86/Makefile new file +4 -0
new file mode 100644
index 0000000..4f14f28
@@ -0,0 +1,17 @@
+#
+# x86 Platform-Specific Drivers
+#
+obj- := x86.o	# Dummy rule to force built-in.o to be made

This is not needed. I can see divers/misc uses the same but it is bogus.

Yes, all of this text came from the existing drivers/misc/ I'll fix it.

thanks,
-Len

#16 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 27 lines · Len Brown
Quoted 11 lines

Any chance we can have this in drivers/Kconfig?

Just wrap all of the file in an

if X86
.....
endif

So we keep all the drivers/ stuff in one Kconfig file and not spread all over.

grep 'source "drivers"' arch/x86/Kconfig

source "drivers/acpi/Kconfig"
source "drivers/cpuidle/Kconfig"
source "drivers/idle/Kconfig"
source "drivers/pci/pcie/Kconfig"
source "drivers/pci/Kconfig"
source "drivers/eisa/Kconfig"
source "drivers/mca/Kconfig"
source "drivers/pcmcia/Kconfig"
source "drivers/pci/hotplug/Kconfig"
source "drivers/Kconfig"
source "drivers/firmware/Kconfig"
source "drivers/x86/Kconfig"

Quoted 2 lines

Are the lines above a good example, a bad example, or did I miss a nuance of the grand Kconfig design?

Unfortunately a typical example but if you look closer most of the above is bus stuff, not driver stuff.

This is not the easist part to deal with
as there are > 10 arch to synchronize.

Sam

reviewer
#17 lore raw

RFC PATCH v2 1/1 create drivers/platform/x86/ from drivers/misc/

In reply to Sam Ravnborg

Sam, Henrique,
I've responded to your feedback in v2, which follows.

Ingo,
this version does not touch arch/x86/

thanks,
-Len

reviewer
#18 lore raw

PATCH 1/2 drivers/misc/Makefile, Kconfig: cleanup

From: Len Brown <[email protected]>

tabs->space and delete unnecessary dummy build-in.o rule.

---
 drivers/misc/Kconfig  |   42 +++++++++++++++++++++---------------------
 drivers/misc/Makefile |    3 ---
 2 files changed, 21 insertions(+), 24 deletions(-)
drivers/misc/Kconfig +21 -21
index fee7304..dcf6169 100644
@@ -120,7 +120,7 @@ config TIFM_CORE
 	  cards are supported via 'MMC/SD Card support: TI Flash Media MMC/SD
 	  Interface support (MMC_TIFM_SD)'.
 
-          To compile this driver as a module, choose M here: the module will
+	  To compile this driver as a module, choose M here: the module will
 	  be called tifm_core.
 
 config TIFM_7XX1
@@ -133,11 +133,11 @@ config TIFM_7XX1
 	  To make actual use of the device, you will have to select some
 	  flash card format drivers, as outlined in the TIFM_CORE Help.
 
-          To compile this driver as a module, choose M here: the module will
+	  To compile this driver as a module, choose M here: the module will
 	  be called tifm_7xx1.
 
 config ACER_WMI
-        tristate "Acer WMI Laptop Extras (EXPERIMENTAL)"
+	tristate "Acer WMI Laptop Extras (EXPERIMENTAL)"
 	depends on X86
 	depends on EXPERIMENTAL
 	depends on ACPI
@@ -159,14 +159,14 @@ config ACER_WMI
 	  here.
 
 config ASUS_LAPTOP
-        tristate "Asus Laptop Extras (EXPERIMENTAL)"
-        depends on X86
-        depends on ACPI
+	tristate "Asus Laptop Extras (EXPERIMENTAL)"
+	depends on X86
+	depends on ACPI
 	depends on EXPERIMENTAL && !ACPI_ASUS
 	depends on LEDS_CLASS
 	depends on NEW_LEDS
 	depends on BACKLIGHT_CLASS_DEVICE
-        ---help---
+	---help---
 	  This is the new Linux driver for Asus laptops. It may also support some
 	  MEDION, JVC or VICTOR laptops. It makes all the extra buttons generate
 	  standard ACPI events that go through /proc/acpi/events. It also adds
@@ -179,12 +179,12 @@ config ASUS_LAPTOP
 	  If you have an ACPI-compatible ASUS laptop, say Y or M here.
 
 config FUJITSU_LAPTOP
-        tristate "Fujitsu Laptop Extras"
-        depends on X86
-        depends on ACPI
+	tristate "Fujitsu Laptop Extras"
+	depends on X86
+	depends on ACPI
 	depends on INPUT
-        depends on BACKLIGHT_CLASS_DEVICE
-        ---help---
+	depends on BACKLIGHT_CLASS_DEVICE
+	---help---
 	  This is a driver for laptops built by Fujitsu:
 
 	    * P2xxx/P5xxx/S6xxx/S7xxx series Lifebooks
@@ -221,11 +221,11 @@ config HP_WMI
        depends on INPUT
        depends on RFKILL
        help
-         Say Y here if you want to support WMI-based hotkeys on HP laptops and
+	 Say Y here if you want to support WMI-based hotkeys on HP laptops and
 	 to read data from WMI such as docking or ambient light sensor state.
 
-         To compile this driver as a module, choose M here: the module will
-         be called hp-wmi.
+	 To compile this driver as a module, choose M here: the module will
+	 be called hp-wmi.
 
 config ICS932S401
 	tristate "Integrated Circuits ICS932S401"
@@ -238,11 +238,11 @@ config ICS932S401
 	  will be called ics932s401.
 
 config MSI_LAPTOP
-        tristate "MSI Laptop Extras"
-        depends on X86
-        depends on ACPI
-        depends on BACKLIGHT_CLASS_DEVICE
-        ---help---
+	tristate "MSI Laptop Extras"
+	depends on X86
+	depends on ACPI
+	depends on BACKLIGHT_CLASS_DEVICE
+	---help---
 	  This is a driver for laptops built by MSI (MICRO-STAR
 	  INTERNATIONAL):
 
@@ -259,7 +259,7 @@ config MSI_LAPTOP
 config PANASONIC_LAPTOP
 	tristate "Panasonic Laptop Extras"
 	depends on X86 && INPUT && ACPI
-        depends on BACKLIGHT_CLASS_DEVICE
+	depends on BACKLIGHT_CLASS_DEVICE
 	---help---
 	  This driver adds support for access to backlight control and hotkeys
 	  on Panasonic Let's Note laptops.
drivers/misc/Makefile +0 -3
index 817f7f5..bcde73b 100644
@@ -1,9 +1,6 @@
 #
 # Makefile for misc devices that really don't fit anywhere else.
 #
-obj- := misc.o	# Dummy rule to force built-in.o to be made
-
-obj-$(CONFIG_IBM_ASM)		+= ibmasm/
 obj-$(CONFIG_HDPU_FEATURES)	+= hdpuftrs/
 obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
 obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
Signature · 1 line
1.5.6.5
#19 lore raw

Re: [PATCH 1/2] drivers/misc/Makefile, Kconfig: cleanup

Hi Len.

drivers/misc/Makefile line 6

Quoted 11 lines
drivers/misc/Makefile +0 -3
index 817f7f5..bcde73b 100644
@@ -1,9 +1,6 @@
 #
 # Makefile for misc devices that really don't fit anywhere else.
 #
-obj- := misc.o	# Dummy rule to force built-in.o to be made
-
-obj-$(CONFIG_IBM_ASM)		+= ibmasm/

^^
Was this on purpose?
I do not think so...

Sam

reviewer
#20 lore raw

Re: [PATCH 1/2] drivers/misc/Makefile, Kconfig: cleanup

Quoted 6 lines

drivers/misc/Makefile line 6

Quoted 5 lines

#

drivers/misc/Makefile +0 -3
-obj- := misc.o	# Dummy rule to force built-in.o to be made
-
-obj-$(CONFIG_IBM_ASM)		+= ibmasm/

^^

thanks for spotting that typo.
Looks like I lost the fight with vim's stupid feature
of adding a '#' to a blank line and deleted a line of code, sigh... --
-Len Brown
Intel Open Source Technology Center

reviewer
#21 lore raw

PATCH 2/2 create drivers/platform/x86/ from drivers/misc/

In reply to Len Brown

From: Len Brown <[email protected]>

Move x86 platform specific drivers from drivers/misc/ to a new home under drivers/platform/x86/.

The community has been maintaining x86 vendor-specific platform specific drivers under /drivers/misc/ for a few years. The oldest ones started life under drivers/acpi.
They moved out of drivers/acpi/ because they don't actually implement the ACPI specification, but either simply use ACPI, or implement vendor-specific ACPI extensions.

In the future we anticipate...
drivers/misc/ will go away.
other architectures will create drivers/platform/<arch>

---
 drivers/Kconfig                                   |    2 +
 drivers/Makefile                                  |    1 +
 drivers/misc/Kconfig                              |  280 -------------------
 drivers/misc/Makefile                             |   12 -
 drivers/platform/Kconfig                          |    5 +
 drivers/platform/Makefile                         |    5 +
 drivers/platform/x86/Kconfig                      |  297 +++++++++++++++++++++
 drivers/platform/x86/Makefile                     |   16 ++
 drivers/{misc => platform/x86}/acer-wmi.c         |    0 
 drivers/{misc => platform/x86}/asus-laptop.c      |    0 
 drivers/{misc => platform/x86}/compal-laptop.c    |    0 
 drivers/{misc => platform/x86}/eeepc-laptop.c     |    0 
 drivers/{misc => platform/x86}/fujitsu-laptop.c   |    0 
 drivers/{misc => platform/x86}/hp-wmi.c           |    0 
 drivers/{misc => platform/x86}/intel_menlow.c     |    0 
 drivers/{misc => platform/x86}/msi-laptop.c       |    0 
 drivers/{misc => platform/x86}/panasonic-laptop.c |    0 
 drivers/{misc => platform/x86}/sony-laptop.c      |    0 
 drivers/{misc => platform/x86}/tc1100-wmi.c       |    0 
 drivers/{misc => platform/x86}/thinkpad_acpi.c    |    0 
 20 files changed, 326 insertions(+), 292 deletions(-)
 create mode 100644 drivers/platform/Kconfig
 create mode 100644 drivers/platform/Makefile
 create mode 100644 drivers/platform/x86/Kconfig
 create mode 100644 drivers/platform/x86/Makefile
 rename drivers/{misc => platform/x86}/acer-wmi.c (100%)
 rename drivers/{misc => platform/x86}/asus-laptop.c (100%)
 rename drivers/{misc => platform/x86}/compal-laptop.c (100%)
 rename drivers/{misc => platform/x86}/eeepc-laptop.c (100%)
 rename drivers/{misc => platform/x86}/fujitsu-laptop.c (100%)
 rename drivers/{misc => platform/x86}/hp-wmi.c (100%)
 rename drivers/{misc => platform/x86}/intel_menlow.c (100%)
 rename drivers/{misc => platform/x86}/msi-laptop.c (100%)
 rename drivers/{misc => platform/x86}/panasonic-laptop.c (100%)
 rename drivers/{misc => platform/x86}/sony-laptop.c (100%)
 rename drivers/{misc => platform/x86}/tc1100-wmi.c (100%)
 rename drivers/{misc => platform/x86}/thinkpad_acpi.c (100%)
drivers/Kconfig +2 -0
index 2f557f5..00cf955 100644
@@ -107,4 +107,6 @@ source "drivers/uio/Kconfig"
 source "drivers/xen/Kconfig"
 
 source "drivers/staging/Kconfig"
+
+source "drivers/platform/Kconfig"
 endmenu
drivers/Makefile +1 -0
index fceb71a..46d4828 100644
@@ -102,3 +102,4 @@ obj-$(CONFIG_SSB)		+= ssb/
 obj-$(CONFIG_VIRTIO)		+= virtio/
 obj-$(CONFIG_REGULATOR)		+= regulator/
 obj-$(CONFIG_STAGING)		+= staging/
+obj-y				+= platform/
drivers/misc/Kconfig +0 -280

298 lines not on this page · raw message

drivers/misc/Makefile +0 -12
index bcde73b..5af1794 100644
@@ -2,28 +2,16 @@
 # Makefile for misc devices that really don't fit anywhere else.
 #
 obj-$(CONFIG_HDPU_FEATURES)	+= hdpuftrs/
-obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
-obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
-obj-$(CONFIG_MSI_LAPTOP)	+= msi-laptop.o
-obj-$(CONFIG_COMPAL_LAPTOP)	+= compal-laptop.o
-obj-$(CONFIG_ACER_WMI)		+= acer-wmi.o
 obj-$(CONFIG_ATMEL_PWM)		+= atmel_pwm.o
 obj-$(CONFIG_ATMEL_SSC)		+= atmel-ssc.o
 obj-$(CONFIG_ATMEL_TCLIB)	+= atmel_tclib.o
-obj-$(CONFIG_HP_WMI)		+= hp-wmi.o
 obj-$(CONFIG_ICS932S401)	+= ics932s401.o
-obj-$(CONFIG_TC1100_WMI)	+= tc1100-wmi.o
 obj-$(CONFIG_LKDTM)		+= lkdtm.o
 obj-$(CONFIG_TIFM_CORE)       	+= tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)       	+= tifm_7xx1.o
 obj-$(CONFIG_PHANTOM)		+= phantom.o
 obj-$(CONFIG_SGI_IOC4)		+= ioc4.o
-obj-$(CONFIG_SONY_LAPTOP)	+= sony-laptop.o
-obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
-obj-$(CONFIG_FUJITSU_LAPTOP)	+= fujitsu-laptop.o
-obj-$(CONFIG_PANASONIC_LAPTOP)	+= panasonic-laptop.o
 obj-$(CONFIG_EEPROM_93CX6)	+= eeprom_93cx6.o
-obj-$(CONFIG_INTEL_MENLOW)	+= intel_menlow.o
 obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
 obj-$(CONFIG_KGDB_TESTS)	+= kgdbts.o
 obj-$(CONFIG_SGI_XP)		+= sgi-xp/
drivers/platform/Kconfig new file +5 -0
new file mode 100644
index 0000000..9652c3f
@@ -0,0 +1,5 @@
+# drivers/platform/Kconfig
+
+if X86
+source "drivers/platform/x86/Kconfig"
+endif
drivers/platform/Makefile new file +5 -0
new file mode 100644
index 0000000..782953a
@@ -0,0 +1,5 @@
+#
+# Makefile for linux/drivers/platform
+#
+
+obj-$(CONFIG_X86)		+= x86/
drivers/platform/x86/Kconfig new file +297 -0

297 lines not on this page · raw message

drivers/platform/x86/Makefile new file +16 -0
new file mode 100644
index 0000000..4d26b1b
@@ -0,0 +1,16 @@
+#
+# Makefile for linux/drivers/platform/x86
+# x86 Platform-Specific Drivers
+#
+obj-$(CONFIG_ASUS_LAPTOP)	+= asus-laptop.o
+obj-$(CONFIG_EEEPC_LAPTOP)	+= eeepc-laptop.o
+obj-$(CONFIG_MSI_LAPTOP)	+= msi-laptop.o
+obj-$(CONFIG_COMPAL_LAPTOP)	+= compal-laptop.o
+obj-$(CONFIG_ACER_WMI)		+= acer-wmi.o
+obj-$(CONFIG_HP_WMI)		+= hp-wmi.o
+obj-$(CONFIG_TC1100_WMI)	+= tc1100-wmi.o
+obj-$(CONFIG_SONY_LAPTOP)	+= sony-laptop.o
+obj-$(CONFIG_THINKPAD_ACPI)	+= thinkpad_acpi.o
+obj-$(CONFIG_FUJITSU_LAPTOP)	+= fujitsu-laptop.o
+obj-$(CONFIG_PANASONIC_LAPTOP)	+= panasonic-laptop.o
+obj-$(CONFIG_INTEL_MENLOW)	+= intel_menlow.o
drivers/platform/x86/acer-wmi.c renamed from drivers/misc/acer-wmi.c +0 -0
similarity index 100%
rename from drivers/misc/acer-wmi.c
rename to drivers/platform/x86/acer-wmi.c
drivers/platform/x86/asus-laptop.c renamed from drivers/misc/asus-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/asus-laptop.c
rename to drivers/platform/x86/asus-laptop.c
drivers/platform/x86/compal-laptop.c renamed from drivers/misc/compal-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/compal-laptop.c
rename to drivers/platform/x86/compal-laptop.c
drivers/platform/x86/eeepc-laptop.c renamed from drivers/misc/eeepc-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/eeepc-laptop.c
rename to drivers/platform/x86/eeepc-laptop.c
drivers/platform/x86/fujitsu-laptop.c renamed from drivers/misc/fujitsu-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/fujitsu-laptop.c
rename to drivers/platform/x86/fujitsu-laptop.c
drivers/platform/x86/hp-wmi.c renamed from drivers/misc/hp-wmi.c +0 -0
similarity index 100%
rename from drivers/misc/hp-wmi.c
rename to drivers/platform/x86/hp-wmi.c
drivers/platform/x86/intel_menlow.c renamed from drivers/misc/intel_menlow.c +0 -0
similarity index 100%
rename from drivers/misc/intel_menlow.c
rename to drivers/platform/x86/intel_menlow.c
drivers/platform/x86/msi-laptop.c renamed from drivers/misc/msi-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/msi-laptop.c
rename to drivers/platform/x86/msi-laptop.c
drivers/platform/x86/panasonic-laptop.c renamed from drivers/misc/panasonic-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/panasonic-laptop.c
rename to drivers/platform/x86/panasonic-laptop.c
drivers/platform/x86/sony-laptop.c renamed from drivers/misc/sony-laptop.c +0 -0
similarity index 100%
rename from drivers/misc/sony-laptop.c
rename to drivers/platform/x86/sony-laptop.c
drivers/platform/x86/tc1100-wmi.c renamed from drivers/misc/tc1100-wmi.c +0 -0
similarity index 100%
rename from drivers/misc/tc1100-wmi.c
rename to drivers/platform/x86/tc1100-wmi.c
drivers/platform/x86/thinkpad_acpi.c renamed from drivers/misc/thinkpad_acpi.c +0 -0
similarity index 100%
rename from drivers/misc/thinkpad_acpi.c
rename to drivers/platform/x86/thinkpad_acpi.c
Signature · 1 line
1.5.6.5
#22 lore raw

Re: [RFC PATCH v2] create drivers/platform/x86/ from drivers/misc/

In reply to Len Brown
Quoted 5 lines · Len Brown

Sam, Henrique,
I've responded to your feedback in v2, which follows.

Ingo,
this version does not touch arch/x86/

the problem isnt the bits that touch arch/x86/, but that we carry these commits:

fbc2a06: Merge branch 'linus' into x86/uv
a3d732f: x86, UV: fix redundant creation of sgi_uv
7d9d1f2: sgi-xp: support getting the address of a partition's reserved page 31de5ec: sgi-xp: define xp_partition_id and xp_region_size 2525789: sgi-xp: create activate and notify gru message queues 6c1c325: sgi-xp: define xp_expand_memprotect() and xp_restrict_memprotect()

their drivers/misc impact is significant:

 drivers/misc/sgi-gru/grufault.c  |    4 +-
 drivers/misc/sgi-gru/gruprocfs.c |    1 -
 drivers/misc/sgi-xp/xp.h         |    7 +-
 drivers/misc/sgi-xp/xp_main.c    |    7 +
 drivers/misc/sgi-xp/xp_sn2.c     |   34 +++++
 drivers/misc/sgi-xp/xp_uv.c      |   70 +++++++++-
 drivers/misc/sgi-xp/xpc.h        |   12 ++
 drivers/misc/sgi-xp/xpc_sn2.c    |   15 +--
 drivers/misc/sgi-xp/xpc_uv.c     |  290 ++++++++++++++++++++++++++++++--------
 10 files changed, 368 insertions(+), 74 deletions(-)

And we'll likely get new commits in that space.

So if this is causing conflicts in linux-next then i'd suggest for you to please do this "git mv drivers/misc/ drivers/x86/" rename (with which i fully agree!) right after v2.6.29-rc1 - or near the end of the -rc1 merge window.

In any case, please keep it in a separate branch in the ACPI tree so that we can reconsider the ordering of this change in the future as well - should it cause problems.

Thanks,

Ingo

reviewer
#23 lore raw

Re: [RFC PATCH v2] create drivers/platform/x86/ from drivers/misc/

Quoted 27 lines
Quoted 3 lines

this version does not touch arch/x86/

the problem isnt the bits that touch arch/x86/, but that we carry these commits:

fbc2a06: Merge branch 'linus' into x86/uv
a3d732f: x86, UV: fix redundant creation of sgi_uv
7d9d1f2: sgi-xp: support getting the address of a partition's reserved page 31de5ec: sgi-xp: define xp_partition_id and xp_region_size 2525789: sgi-xp: create activate and notify gru message queues 6c1c325: sgi-xp: define xp_expand_memprotect() and xp_restrict_memprotect()

their drivers/misc impact is significant:

 drivers/misc/sgi-gru/grufault.c  |    4 +-
 drivers/misc/sgi-gru/gruprocfs.c |    1 -
 drivers/misc/sgi-xp/xp.h         |    7 +-
 drivers/misc/sgi-xp/xp_main.c    |    7 +
 drivers/misc/sgi-xp/xp_sn2.c     |   34 +++++
 drivers/misc/sgi-xp/xp_uv.c      |   70 +++++++++-
 drivers/misc/sgi-xp/xpc.h        |   12 ++
 drivers/misc/sgi-xp/xpc_sn2.c    |   15 +--
 drivers/misc/sgi-xp/xpc_uv.c     |  290 ++++++++++++++++++++++++++++++--------
 10 files changed, 368 insertions(+), 74 deletions(-)
Quoted 6 lines

And we'll likely get new commits in that space.

So if this is causing conflicts in linux-next then i'd suggest for you to please do this "git mv drivers/misc/ drivers/x86/" rename (with which i fully agree!) right after v2.6.29-rc1 - or near the end of the -rc1 merge window.

I only moved only the laptop drivers, didn't touch misc/sgi*/, so I don't see any conflicts here.

Quoted 3 lines

In any case, please keep it in a separate branch in the ACPI tree so that we can reconsider the ordering of this change in the future as well - should it cause problems.

sure.
Since we have no problems in linux-next now, I don't expect any at merge time, but we'll have eyes open for issues then.

thanks,
-Len

reviewer
#24 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

In reply to Sam Ravnborg
Quoted 3 lines

You move 12 files but delete 11 lines.

obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o

was left behind by mistake.

#25 lore raw

Re: [RFC PATCH] x86: create drivers/x86/ from drivers/misc/

Quoted 6 lines · Len Brown
Quoted 2 lines

You move 12 files but delete 11 lines.

obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o

was left behind by mistake.

Yes, that caused the build error that was the original posting for this thread.

~Randy

#26 lore raw

Re: drivers/x86 (Was: Re: linux-next: Tree for November 28 (misc/tc1100))

In reply to Stephen Rothwell
Quoted 6 lines · Stephen Rothwell

Hi Len,

Quoted 3 lines · On Fri, 28 Nov 2008 09:55:08 -0800 Randy Dunlap <[email protected]> wrote:

make[2]: *** No rule to make target drivers/misc/tc1100-wmi.o', needed by drivers/misc/built-in.o'.

Quoted 7 lines
Quoted 3 lines

on allmodconfig & allyesconfig for i386.

On, moved to drivers/x86/. Someone needs to clean up drivers/misc/Makefile.

Just wondering where the move to drivers/x86 was discussed, (reviewed and tested) and why the change is in the acpi tree and not the x86 tree?

it will all conflict with pending bits in the x86 tree, so i'd prefer if Len did this atomically after 2.6.29-rc1, without it having this long-term breakage effect.

Historically drivers/misc/ has been more active via the ACPI tree. (Len being the (in-)voluntary maintainer for those platform details)

So drivers/x86/ makes sense i guess. Eventually the really lowlevel bits might move to arch/x86/drivers/ or so - but i've got no strong opinion on it. There seems to be enough precedent of existing drivers/$ARCH hierarchies.

Ingo

reviewer
#27 lore raw

Re: drivers/x86 (Was: Re: linux-next: Tree for November 28 (misc/tc1100))

Quoted 13 lines · Ingo Molnar
Quoted 10 lines · Stephen Rothwell

Hi Len,

Quoted 6 lines · On Fri, 28 Nov 2008 09:55:08 -0800 Randy Dunlap <[email protected]> wrote:

make[2]: *** No rule to make target drivers/misc/tc1100-wmi.o', needed by drivers/misc/built-in.o'.

on allmodconfig & allyesconfig for i386.

On, moved to drivers/x86/. Someone needs to clean up drivers/misc/Makefile.

Quoted 7 lines
Quoted 3 lines

Just wondering where the move to drivers/x86 was discussed, (reviewed and tested) and why the change is in the acpi tree and not the x86 tree?

it will all conflict with pending bits in the x86 tree, so i'd prefer if Len did this atomically after 2.6.29-rc1, without it having this long-term breakage effect.

Is linux-next running into a conflict between x86 and the acpi tree today?

thanks,
-Len

#28 lore raw

next-2008-11-28 : can't mount UDF DVD

In reply to Stephen Rothwell

Hi,

With next-2008-11-28, I was unable to mount an UDF-formatted DVD-RW:

~$ mount -oro -t udf /dev/sr0 /media/cdrom/
mount: Not a directory

There was no problem with 2.6.28-rc6.

I made a bisection:

33284bdf40f88160a154202510b27d983138c805 is first bad commit commit 33284bdf40f88160a154202510b27d983138c805

Author: Marcin Slusarz <[email protected]>
Date:   Sun Nov 16 20:52:19 2008 +0100

udf: implement mode and dmode mounting options

"dmode" allows overriding permissions of directories and "mode" allows overriding permissions of files.

Indeed, with this commit, I *must* use the dmode option to mount my DVD:

~$ sudo mount -oro,dmode=0755 -t udf /dev/sr0 /media/cdrom/ ~$ grep /media/cdrom /proc/mounts
/dev/scd0 /media/cdrom udf ro,mode=177777,dmode=755,utf8 0 0 ~$ ls -la /media/cdrom/
total 46
drwxr-xr-x 5 root root 344 Dec 24 2007 .
drwxr-xr-x 12 root root 4096 Dec 1 00:17 ..
drwxr-xr-x 2 laurent laurent 7112 Nov 30 20:14 flexbackup
drwxr-xr-x 2 root root 40 Nov 20 2005 lost+found
drwxr-xr-x 10 laurent laurent 4548 Nov 25 2005 patches ~$ ls -la /media/cdrom/flexbackup/
total 4307946
drwxr-xr-x 2 laurent laurent 7112 Nov 30 20:14 .
drwxr-xr-x 5 root root 344 Dec 24 2007 ..
?rwsrwsrwt 1 laurent laurent 44 Oct 1 2006 00-index-key
...

Althought I was able to mount it with no special option on 2.6.28-rc6:

~$ sudo mount -oro -t udf /dev/sr0 /media/cdrom/
~$ grep /media/cdrom /proc/mounts
/dev/scd0 /media/cdrom udf ro,utf8 0 0
~$ ls -la /media/cdrom/
total 46
drwxrwxrwx 5 root root 344 2007-12-24 18:09 .
drwxr-xr-x 12 root root 4096 2008-12-01 00:22 ..
drwxr-x--- 2 laurent laurent 7112 2008-11-30 20:14 flexbackup
drwxr-xr-x 2 root root 40 2005-11-20 23:37 lost+found
drwxr-x--- 10 laurent laurent 4548 2005-11-25 18:18 patches ~$ ls -la /media/cdrom/flexbackup/
total 4307946
drwxr-x--- 2 laurent laurent 7112 2008-11-30 20:14 .
drwxrwxrwx 5 root root 344 2007-12-24 18:09 ..
-rw-r----- 1 laurent laurent 44 2006-10-01 15:36 00-index-key
...

~~
laurent

#29 lore raw

Re: next-2008-11-28 : can't mount UDF DVD

Quoted 21 lines · Laurent Riffard

Hi,

With next-2008-11-28, I was unable to mount an UDF-formatted DVD-RW:

~$ mount -oro -t udf /dev/sr0 /media/cdrom/
mount: Not a directory

There was no problem with 2.6.28-rc6.

I made a bisection:

33284bdf40f88160a154202510b27d983138c805 is first bad commit commit 33284bdf40f88160a154202510b27d983138c805

Author: Marcin Slusarz <[email protected]>
Date:   Sun Nov 16 20:52:19 2008 +0100

udf: implement mode and dmode mounting options

"dmode" allows overriding permissions of directories and "mode" allows overriding permissions of files.

Quoted 6 lines

Indeed, with this commit, I *must* use the dmode option to mount my DVD:

That's not intended behaviour... ;)

Quoted 3 lines

~$ sudo mount -oro,dmode=0755 -t udf /dev/sr0 /media/cdrom/ ~$ grep /media/cdrom /proc/mounts
/dev/scd0 /media/cdrom udf ro,mode=177777,dmode=755,utf8 0 0

                                     ^^^^^^

funny (it's 65535 / (u16)-1)

Quoted 33 lines

~$ ls -la /media/cdrom/
total 46
drwxr-xr-x 5 root root 344 Dec 24 2007 .
drwxr-xr-x 12 root root 4096 Dec 1 00:17 ..
drwxr-xr-x 2 laurent laurent 7112 Nov 30 20:14 flexbackup
drwxr-xr-x 2 root root 40 Nov 20 2005 lost+found
drwxr-xr-x 10 laurent laurent 4548 Nov 25 2005 patches ~$ ls -la /media/cdrom/flexbackup/
total 4307946
drwxr-xr-x 2 laurent laurent 7112 Nov 30 20:14 .
drwxr-xr-x 5 root root 344 Dec 24 2007 ..
?rwsrwsrwt 1 laurent laurent 44 Oct 1 2006 00-index-key
...

Althought I was able to mount it with no special option on 2.6.28-rc6:

~$ sudo mount -oro -t udf /dev/sr0 /media/cdrom/
~$ grep /media/cdrom /proc/mounts
/dev/scd0 /media/cdrom udf ro,utf8 0 0
~$ ls -la /media/cdrom/
total 46
drwxrwxrwx 5 root root 344 2007-12-24 18:09 .
drwxr-xr-x 12 root root 4096 2008-12-01 00:22 ..
drwxr-x--- 2 laurent laurent 7112 2008-11-30 20:14 flexbackup
drwxr-xr-x 2 root root 40 2005-11-20 23:37 lost+found
drwxr-x--- 10 laurent laurent 4548 2005-11-25 18:18 patches ~$ ls -la /media/cdrom/flexbackup/
total 4307946
drwxr-x--- 2 laurent laurent 7112 2008-11-30 20:14 .
drwxrwxrwx 5 root root 344 2007-12-24 18:09 ..
-rw-r----- 1 laurent laurent 44 2006-10-01 15:36 00-index-key
...

Quoted 2 lines

~~
laurent

Can you check whether attached patch fixes it?
What architecture are you testing on?

fs/udf/inode.c +2 -2
index 6612a27..9eeb726 100644
@@ -1222,10 +1222,10 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
 	iinfo->i_lenExtents = inode->i_size;
 
 	if (fe->icbTag.fileType != ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_fmode != -1)
+			sbi->s_fmode != (mode_t)-1)
 		inode->i_mode = sbi->s_fmode;
 	else if (fe->icbTag.fileType == ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_dmode != -1)
+			sbi->s_dmode != (mode_t)-1)
 		inode->i_mode = sbi->s_dmode;
 	else
 		inode->i_mode = udf_convert_permissions(fe);
fs/udf/super.c +2 -2
index e5d121d..af8a771 100644
@@ -284,9 +284,9 @@ static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt)
 		seq_printf(seq, ",gid=%u", sbi->s_gid);
 	if (sbi->s_umask != 0)
 		seq_printf(seq, ",umask=%o", sbi->s_umask);
-	if (sbi->s_fmode != -1)
+	if (sbi->s_fmode != (mode_t)-1)
 		seq_printf(seq, ",mode=%o", sbi->s_fmode);
-	if (sbi->s_dmode != -1)
+	if (sbi->s_dmode != (mode_t)-1)
 		seq_printf(seq, ",dmode=%o", sbi->s_dmode);
 	if (UDF_QUERY_FLAG(sb, UDF_FLAG_SESSION_SET))
 		seq_printf(seq, ",session=%u", sbi->s_session);
Tested-by
#30 lore raw

Re: next-2008-11-28 : can't mount UDF DVD

Quoted 37 lines · Marcin Slusarz
Quoted 21 lines · Laurent Riffard

Hi,

With next-2008-11-28, I was unable to mount an UDF-formatted DVD-RW:

~$ mount -oro -t udf /dev/sr0 /media/cdrom/
mount: Not a directory

There was no problem with 2.6.28-rc6.

I made a bisection:

33284bdf40f88160a154202510b27d983138c805 is first bad commit commit 33284bdf40f88160a154202510b27d983138c805

Author: Marcin Slusarz <[email protected]>
Date:   Sun Nov 16 20:52:19 2008 +0100

udf: implement mode and dmode mounting options

"dmode" allows overriding permissions of directories and "mode" allows overriding permissions of files.

Quoted 6 lines

Indeed, with this commit, I *must* use the dmode option to mount my DVD:

That's not intended behaviour... ;)

Quoted 3 lines

~$ sudo mount -oro,dmode=0755 -t udf /dev/sr0 /media/cdrom/ ~$ grep /media/cdrom /proc/mounts
/dev/scd0 /media/cdrom udf ro,mode=177777,dmode=755,utf8 0 0

                                     ^^^^^^

funny (it's 65535 / (u16)-1)

[snip]

Quoted 3 lines

Can you check whether attached patch fixes it?
What architecture are you testing on?

i686, 32-bit althought CPU is "AMD Athlon(tm) 64 X2 Dual Core Processor 5000+ stepping 02".

~$ uname -a
Linux calimero 2.6.28-rc6-next-20081128-05108-g389b1c9 #62 SMP PREEMPT Mon Dec 1 19:53:55 CET 2008 i686 GNU/Linux

Current kernel is next-20081128 + reiser4 patches + your patch: it seems to works well now.

First test: mount with default options. It works as expected.

~$ sudo mount -oro -t udf /dev/sr0 /media/cdrom/
~$ grep /media/cdrom /proc/mounts
/dev/scd0 /media/cdrom udf ro,utf8 0 0
~$ ls -al /media/cdrom/
total 46
drwxrwxrwx 5 root root 344 2007-12-24 18:09 .
drwxr-xr-x 12 root root 4096 2008-12-01 20:04 ..
drwxr-x--- 2 laurent laurent 7112 2008-11-30 20:14 flexbackup
drwxr-xr-x 2 root root 40 2005-11-20 23:37 lost+found
drwxr-x--- 10 laurent laurent 4548 2005-11-25 18:18 patches ~$ ls -al /media/cdrom/flexbackup/
total 4307946
drwxr-x--- 2 laurent laurent 7112 2008-11-30 20:14 .
drwxrwxrwx 5 root root 344 2007-12-24 18:09 ..
-rw-r----- 1 laurent laurent 44 2006-10-01 15:36 00-index-key
[...]
~$ sudo umount /dev/scd0

Second test : mount with dmode=0755 option. Does work as expected too.

~$ sudo mount -oro,dmode=0755 -t udf /dev/sr0 /media/cdrom/ ~$ grep /media/cdrom /proc/mounts
/dev/scd0 /media/cdrom udf ro,dmode=755,utf8 0 0
~$ ls -al /media/cdrom/
total 46
drwxr-xr-x 5 root root 344 2007-12-24 18:09 .
drwxr-xr-x 12 root root 4096 2008-12-01 20:04 ..
drwxr-xr-x 2 laurent laurent 7112 2008-11-30 20:14 flexbackup
drwxr-xr-x 2 root root 40 2005-11-20 23:37 lost+found
drwxr-xr-x 10 laurent laurent 4548 2005-11-25 18:18 patches ~$ ls -al /media/cdrom/flexbackup/
total 4307946
drwxr-xr-x 2 laurent laurent 7112 2008-11-30 20:14 .
drwxr-xr-x 5 root root 344 2007-12-24 18:09 ..
-rw-r----- 1 laurent laurent 44 2006-10-01 15:36 00-index-key
[...]

Quoted 23 lines
fs/udf/inode.c +2 -2
index 6612a27..9eeb726 100644
@@ -1222,10 +1222,10 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
 	iinfo->i_lenExtents = inode->i_size;
 
 	if (fe->icbTag.fileType != ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_fmode != -1)
+			sbi->s_fmode != (mode_t)-1)
 		inode->i_mode = sbi->s_fmode;
 	else if (fe->icbTag.fileType == ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_dmode != -1)
+			sbi->s_dmode != (mode_t)-1)
 		inode->i_mode = sbi->s_dmode;
 	else
 		inode->i_mode = udf_convert_permissions(fe);
fs/udf/super.c +0 -0
index e5d121d..af8a771 100644
@@ -284,9 +284,9 @@ static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt)
 		seq_printf(seq, ",gid=%u", sbi->s_gid);

fs/udf/super.c static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt) · line 292

Quoted 10 lines
fs/udf/super.c +2 -2
 	if (sbi->s_umask != 0)
 		seq_printf(seq, ",umask=%o", sbi->s_umask);
-	if (sbi->s_fmode != -1)
+	if (sbi->s_fmode != (mode_t)-1)
 		seq_printf(seq, ",mode=%o", sbi->s_fmode);
-	if (sbi->s_dmode != -1)
+	if (sbi->s_dmode != (mode_t)-1)
 		seq_printf(seq, ",dmode=%o", sbi->s_dmode);
 	if (UDF_QUERY_FLAG(sb, UDF_FLAG_SESSION_SET))
 		seq_printf(seq, ",session=%u", sbi->s_session);

Thanks
~~
laurent

#31 lore raw

PATCH 1/1 udf: fix default mode and dmode options handling

Quoted 5 lines · Laurent Riffard
Quoted 2 lines
Quoted 1 line

With next-2008-11-28, I was unable to mount an UDF-formatted DVD-RW:

Can you check whether attached patch fixes it?

Current kernel is next-20081128 + reiser4 patches + your patch: it seems to works well now. (...)

Thanks!

Jan, please apply this patch:

---
From: Marcin Slusarz <[email protected]>
Subject: [PATCH] udf: fix default mode and dmode options handling

On x86 (and several other archs) mode_t is defined as "unsigned short" and comparing unsigned shorts to negative ints is broken (because short is promoted to int and then compared). Fix it.

---
 fs/udf/inode.c  |    4 ++--
 fs/udf/super.c  |    8 ++++----
 fs/udf/udf_sb.h |    2 ++
 3 files changed, 8 insertions(+), 6 deletions(-)
fs/udf/inode.c +2 -2
index 6612a27..2d7e56a 100644
@@ -1222,10 +1222,10 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
 	iinfo->i_lenExtents = inode->i_size;
 
 	if (fe->icbTag.fileType != ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_fmode != -1)
+			sbi->s_fmode != UDF_INVALID_MODE)
 		inode->i_mode = sbi->s_fmode;
 	else if (fe->icbTag.fileType == ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_dmode != -1)
+			sbi->s_dmode != UDF_INVALID_MODE)
 		inode->i_mode = sbi->s_dmode;
 	else
 		inode->i_mode = udf_convert_permissions(fe);
fs/udf/super.c +4 -4
index e5d121d..8deaa61 100644
@@ -284,9 +284,9 @@ static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt)
 		seq_printf(seq, ",gid=%u", sbi->s_gid);
 	if (sbi->s_umask != 0)
 		seq_printf(seq, ",umask=%o", sbi->s_umask);
-	if (sbi->s_fmode != -1)
+	if (sbi->s_fmode != UDF_INVALID_MODE)
 		seq_printf(seq, ",mode=%o", sbi->s_fmode);
-	if (sbi->s_dmode != -1)
+	if (sbi->s_dmode != UDF_INVALID_MODE)
 		seq_printf(seq, ",dmode=%o", sbi->s_dmode);
 	if (UDF_QUERY_FLAG(sb, UDF_FLAG_SESSION_SET))
 		seq_printf(seq, ",session=%u", sbi->s_session);
@@ -1894,8 +1894,8 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
 	uopt.uid = -1;
 	uopt.gid = -1;
 	uopt.umask = 0;
-	uopt.fmode = -1;
-	uopt.dmode = -1;
+	uopt.fmode = UDF_INVALID_MODE;
+	uopt.dmode = UDF_INVALID_MODE;
 
 	sbi = kzalloc(sizeof(struct udf_sb_info), GFP_KERNEL);
 	if (!sbi)
fs/udf/udf_sb.h +2 -0
index 5d32c60..158221e 100644
@@ -48,6 +48,8 @@
 #define UDF_SPARABLE_MAP15		0x1522U
 #define UDF_METADATA_MAP25		0x2511U
 
+#define UDF_INVALID_MODE		((mode_t)-1)
+
 #pragma pack(1) /* XXX(hch): Why?  This file just defines in-core structures */
 
 struct udf_meta_data {
Signature · 1 line
1.5.6.4
#32 lore raw

Re: [PATCH] udf: fix default mode and dmode options handling

Quoted 10 lines · Marcin Slusarz
Quoted 5 lines · Laurent Riffard
Quoted 2 lines
Quoted 1 line

With next-2008-11-28, I was unable to mount an UDF-formatted DVD-RW:

Can you check whether attached patch fixes it?

Current kernel is next-20081128 + reiser4 patches + your patch: it seems to works well now. (...)

Thanks!

Jan, please apply this patch:

OK, committed.

Honza

Quoted 76 lines

---
From: Marcin Slusarz <[email protected]>
Subject: [PATCH] udf: fix default mode and dmode options handling

On x86 (and several other archs) mode_t is defined as "unsigned short" and comparing unsigned shorts to negative ints is broken (because short is promoted to int and then compared). Fix it.

---
 fs/udf/inode.c  |    4 ++--
 fs/udf/super.c  |    8 ++++----
 fs/udf/udf_sb.h |    2 ++
 3 files changed, 8 insertions(+), 6 deletions(-)
fs/udf/inode.c +2 -2
index 6612a27..2d7e56a 100644
@@ -1222,10 +1222,10 @@ static void udf_fill_inode(struct inode *inode, struct buffer_head *bh)
 	iinfo->i_lenExtents = inode->i_size;
 
 	if (fe->icbTag.fileType != ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_fmode != -1)
+			sbi->s_fmode != UDF_INVALID_MODE)
 		inode->i_mode = sbi->s_fmode;
 	else if (fe->icbTag.fileType == ICBTAG_FILE_TYPE_DIRECTORY &&
-			sbi->s_dmode != -1)
+			sbi->s_dmode != UDF_INVALID_MODE)
 		inode->i_mode = sbi->s_dmode;
 	else
 		inode->i_mode = udf_convert_permissions(fe);
fs/udf/super.c +4 -4
index e5d121d..8deaa61 100644
@@ -284,9 +284,9 @@ static int udf_show_options(struct seq_file *seq, struct vfsmount *mnt)
 		seq_printf(seq, ",gid=%u", sbi->s_gid);
 	if (sbi->s_umask != 0)
 		seq_printf(seq, ",umask=%o", sbi->s_umask);
-	if (sbi->s_fmode != -1)
+	if (sbi->s_fmode != UDF_INVALID_MODE)
 		seq_printf(seq, ",mode=%o", sbi->s_fmode);
-	if (sbi->s_dmode != -1)
+	if (sbi->s_dmode != UDF_INVALID_MODE)
 		seq_printf(seq, ",dmode=%o", sbi->s_dmode);
 	if (UDF_QUERY_FLAG(sb, UDF_FLAG_SESSION_SET))
 		seq_printf(seq, ",session=%u", sbi->s_session);
@@ -1894,8 +1894,8 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
 	uopt.uid = -1;
 	uopt.gid = -1;
 	uopt.umask = 0;
-	uopt.fmode = -1;
-	uopt.dmode = -1;
+	uopt.fmode = UDF_INVALID_MODE;
+	uopt.dmode = UDF_INVALID_MODE;
 
 	sbi = kzalloc(sizeof(struct udf_sb_info), GFP_KERNEL);
 	if (!sbi)
fs/udf/udf_sb.h +2 -0
index 5d32c60..158221e 100644
@@ -48,6 +48,8 @@
 #define UDF_SPARABLE_MAP15		0x1522U
 #define UDF_METADATA_MAP25		0x2511U
 
+#define UDF_INVALID_MODE		((mode_t)-1)
+
 #pragma pack(1) /* XXX(hch): Why?  This file just defines in-core structures */
 
 struct udf_meta_data {
Signature · 1 line
1.5.6.4
Signature · 2 lines
Jan Kara <[email protected]>
SUSE Labs, CR