login
Header Space

 
 

Driver, USB, and PCI Subsystem Updates For 2.6.24

September 27, 2007 - 3:44pm
Submitted by Jeremy on September 27, 2007 - 3:44pm.
Linux news

Greg KH posted three emails titled State of the Linux Driver Core Subsystem, State of the Linux USB Subsystem, and State of the Linux PCI Subsystem, noting that for each there were no known regressions then going on to list which patches were bound for the upcoming 2.6.24 kernel. Greg pointed out that there were a large number of open bugs against the USB subsystem, "yeah, there are way too many there, I've been really slack in trying to work through them. If anyone wants to help out, feel free :)" He continued:

"Note, there are over 100 patches in the USB queue, so I might have missed a few things in reviewing them by hand right now. If I failed to describe your patch that is already in the queue, and you feel it is important for everyone to know about, please feel free to add to the above list. I did not purposefully mean to exclude anything, merely try to summarize things"


From: Greg KH <gregkh@...>
Subject: State of the Linux Driver Core Subsystem for 2.6.23-rc8
Date: Sep 26, 4:59 pm 2007

Here's a summary of the current state of the Linux Driver core
subsystem, as of 2.6.23-rc8.

If the information in here is incorrect, or anyone knows of any
outstanding issues not listed here, please let me know.

List of outstanding regressions from 2.6.22:
	- none known.

List of outstanding regressions from older kernel versions:
	- none known.


There are no currently open Driver core or sysfs bugs in bugzilla.


Future patches that are currently in my quilt tree (as found at
	http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
) for the Driver core subsystem are as follows.  All of these will be
submitted for inclusion into 2.6.24, except as noted.  The diffstat of
these patches is included at the bottom of this message for those that
are interested.

	- HOWTO ja_JP updates
	- metric boatload of changes and tweaks to sysfs from Tejun.
	  These clean up the internal usage and implementation of sysfs,
	  and split sysfs from the kobject model a lot, fixing a lot of
	  problems along the way.  I can't thank him enough for this
	  work.
	- cleaned up the usage of struct subsystem some more by removing
	  some functions that are not needed, or only used by the driver
	  core.  Details on the api changes are below
	- cleaned up the usage of the kobject->name field and removed it
	  entirely.  This saves us some size on every kobject which
	  really adds up on those s390 31 bit boxes with 20,000
	  different block devices.
	- uevent environment variable handling has been made simpler,
	  and now hopefully, almost impossible to get wrong.  Previously
	  we were forcing every subsystem to open-code a lot of this
	  logic.  Thanks to Kay for this work.
	- global list of sysdev_drivers is removed, as no one was using
	  it at all.
	- the number of legacy ptys can now be dynamically specified on
	  the kernel command line, allowing people who refuse to fix
	  their old applications to be able to still run on newer
	  distros that want to limit this number at build time.
	- dmi sysfs code cleanups and fixes
	- block devices are moved from /sys/block to /sys/class/block.
	  This patch has been hanging around for almost a year now, and
	  hopefully we have worked out all of the kinks and userspace
	  boot breakages.  If anyone has any problems with this, please
	  let me and Kay know about it.  I'm hesitant to include it in
	  2.6.24 as it has recently changed and needs more testing.
	  Maybe it will go into 2.6.25.  Oh, udev has been able to
	  handle this for over a year, so there should not be any
	  problems with distros that are still supported.  It can also
	  be turned off with the CONFIG_SYSFS_DEPRECATED build option
	  for older distros.
	- new debugfs functions for people who like hex numbers
	- platform devices now have the "platform:" alias added to their
	  modalias to fix the recursive modprobe loops that Red Hat,
	  OLPC, SuSE, and Debian have reported in the current code.
	- some struct class_device to struct device conversions were
	  done for video and some various char drivers.  More of these
	  are on the way.
	- cdev kobject name cleanups.  The kobject name of a cdev does
	  not do anything, so it should not be set.
	- firmware collision fix between i2c and i2c-dev.
	- uevent files for bus and driver have been added.  SuSE has
	  shipped this for quite some time now.
	- if CONFIG_HOTPLUG is not enabled, some more space is saved in
	  the uevent code.
	- the path to the uevent helper program (traditionally
	  /sbin/hotplug) can be specified in the kernel config.  This
	  keeps the kernel from having to call a program that is not
	  present 300+ times before init starts up, speeding up boot
	  time in theory.

New driver core api changes for 2.6.24:
	- debugfs_create_x8(), debugfs_create_x16(), and
	  debugfs_create_x32() have been added
	- struct kobject.name field has been removed.  Use
	  kobject_set_name() and kobject_name() to set and get the name.
	- uevent callbacks in the driver core and for kobjects have been
	  changed from:
	    int (*uevent)(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size);
	  to:
	    int (*uevent)(struct device *dev, struct kobj_uevent_env *env);
	  and struct kobj_uevent_env has been created to make it simpler
	  to create environment variables for uevents.
	- struct platform_device.id has changed from an u32 to an int.
	- the following functions have been removed either entirely or
	  from the global namespace:
		get_bus()
		put_bus()
		kset_set_kset_s()
		subsys_get()
		subsys_put()
		subsys_set_kset()
		subsystem_init()
	  All documentation and in-kernel users have been cleaned up.
	  There really wasn't many, if any users of these calls.

No known at this time, changes to the sysfs userspace visable structure
will happen in 2.6.24.

thanks,

greg k-h

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

Diffstat of the current driver-2.6 quilt queue:


 Documentation/ja_JP/HOWTO                   |   84 -
 Documentation/kernel-parameters.txt         |    4 
 Documentation/kobject.txt                   |   21 
 arch/i386/kernel/traps.c                    |    1 
 arch/ia64/sn/kernel/tiocx.c                 |    3 
 arch/powerpc/kernel/of_device.c             |   37 
 arch/powerpc/kernel/vio.c                   |   16 
 arch/powerpc/platforms/ps3/system-bus.c     |    9 
 arch/x86_64/kernel/traps.c                  |    1 
 block/bsg.c                                 |    5 
 block/elevator.c                            |    2 
 block/genhd.c                               |  446 ++---
 block/ll_rw_blk.c                           |    6 
 drivers/acpi/bus.c                          |    2 
 drivers/acpi/scan.c                         |   16 
 drivers/acpi/video.c                        |    4 
 drivers/amba/bus.c                          |    9 
 drivers/base/Kconfig                        |    8 
 drivers/base/base.h                         |    2 
 drivers/base/bus.c                          |  116 -
 drivers/base/class.c                        |   52 
 drivers/base/core.c                         |  124 -
 drivers/base/firmware_class.c               |   14 
 drivers/base/memory.c                       |    3 
 drivers/base/platform.c                     |   28 
 drivers/base/power/power.h                  |    6 
 drivers/base/power/resume.c                 |    2 
 drivers/base/power/suspend.c                |    2 
 drivers/base/sys.c                          |   73 
 drivers/block/aoe/aoeblk.c                  |   51 
 drivers/block/nbd.c                         |   15 
 drivers/char/Kconfig                        |   10 
 drivers/char/Makefile                       |    1 
 drivers/char/dsp56k.c                       |    4 
 drivers/char/ip2/ip2main.c                  |   12 
 drivers/char/ipmi/ipmi_devintf.c            |    6 
 drivers/char/istallion.c                    |    8 
 drivers/char/lp.c                           |    5 
 drivers/char/nozomi.c                       | 2348 ++++++++++++++++++++++++++++
 drivers/char/pcmcia/cm4000_cs.c             |    5 
 drivers/char/pcmcia/cm4040_cs.c             |    5 
 drivers/char/pty.c                          |    9 
 drivers/char/raw.c                          |    5 
 drivers/char/snsc.c                         |    3 
 drivers/char/stallion.c                     |    7 
 drivers/char/tipar.c                        |    6 
 drivers/char/viotape.c                      |   10 
 drivers/cpufreq/cpufreq.c                   |    2 
 drivers/edac/edac_mc_sysfs.c                |    3 
 drivers/eisa/eisa-bus.c                     |    9 
 drivers/firewire/fw-device.c                |   11 
 drivers/firmware/dmi-id.c                   |   60 
 drivers/i2c/i2c-core.c                      |    8 
 drivers/ide/ide-probe.c                     |    2 
 drivers/ide/ide.c                           |   15 
 drivers/ieee1394/nodemgr.c                  |   17 
 drivers/infiniband/core/sysfs.c             |    9 
 drivers/input/input.c                       |   62 
 drivers/input/misc/pcspkr.c                 |    1 
 drivers/input/serio/serio.c                 |   11 
 drivers/md/dm.c                             |    2 
 drivers/md/md.c                             |   11 
 drivers/media/dvb/dvb-core/dvbdev.c         |    5 
 drivers/media/video/pvrusb2/pvrusb2-sysfs.c |    4 
 drivers/misc/tifm_core.c                    |    9 
 drivers/mmc/core/bus.c                      |   11 
 drivers/net/ibmveth.c                       |    2 
 drivers/pci/hotplug.c                       |   28 
 drivers/pci/hotplug/pci_hotplug_core.c      |   60 
 drivers/pci/hotplug/rpadlpar_sysfs.c        |    6 
 drivers/pci/pci-driver.c                    |    3 
 drivers/pci/pci.h                           |    3 
 drivers/pci/setup-irq.c                     |    2 
 drivers/pcmcia/cs.c                         |   10 
 drivers/pcmcia/ds.c                         |   26 
 drivers/pcmcia/pxa2xx_mainstone.c           |    2 
 drivers/pcmcia/pxa2xx_sharpsl.c             |    2 
 drivers/power/power_supply.h                |    3 
 drivers/power/power_supply_sysfs.c          |   17 
 drivers/s390/cio/ccwgroup.c                 |    3 
 drivers/s390/cio/device.c                   |   25 
 drivers/s390/crypto/ap_bus.c                |   14 
 drivers/scsi/scsi_sysfs.c                   |    9 
 drivers/spi/spi.c                           |    7 
 drivers/usb/core/devio.c                    |    6 
 drivers/usb/core/driver.c                   |   29 
 drivers/usb/core/message.c                  |   28 
 drivers/video/output.c                      |   29 
 drivers/w1/w1.c                             |   18 
 fs/block_dev.c                              |    8 
 fs/debugfs/file.c                           |   36 
 fs/dlm/lockspace.c                          |    2 
 fs/gfs2/locking/dlm/sysfs.c                 |    2 
 fs/gfs2/sys.c                               |    2 
 fs/ocfs2/cluster/masklog.c                  |    3 
 fs/partitions/check.c                       |  328 +--
 fs/sysfs/bin.c                              |   30 
 fs/sysfs/dir.c                              |  806 ++-------
 fs/sysfs/file.c                             |  262 ++-
 fs/sysfs/group.c                            |    2 
 fs/sysfs/inode.c                            |  109 -
 fs/sysfs/mount.c                            |   18 
 fs/sysfs/symlink.c                          |   26 
 fs/sysfs/sysfs.h                            |  191 +-
 include/asm-powerpc/of_device.h             |    2 
 include/linux/debugfs.h                     |   27 
 include/linux/device.h                      |   17 
 include/linux/genhd.h                       |   29 
 include/linux/init.h                        |    1 
 include/linux/kobject.h                     |   86 -
 include/linux/platform_device.h             |    7 
 include/linux/sysfs.h                       |  168 --
 include/linux/tty.h                         |    1 
 include/linux/video_output.h                |    4 
 init/do_mounts.c                            |  108 -
 init/main.c                                 |    9 
 lib/Makefile                                |    3 
 lib/kobject.c                               |  195 +-
 lib/kobject_uevent.c                        |  216 +-
 net/atm/atm_sysfs.c                         |    7 
 net/bridge/br_sysfs_br.c                    |    2 
 net/core/net-sysfs.c                        |   14 
 net/wireless/sysfs.c                        |    3 
 sound/aoa/soundbus/core.c                   |   33 
 124 files changed, 4226 insertions(+), 2721 deletions(-)
-

From: Greg KH <gregkh@...> Subject: State of the Linux USB Subsystem for 2.6.23-rc8 Date: Sep 26, 4:59 pm 2007 Here's a summary of the current state of the Linux USB subsystem, as of 2.6.23-rc8 If the information in here is incorrect, or anyone knows of any outstanding issues not listed here, please let me know. List of outstanding regressions from 2.6.22: - none known. List of outstanding regressions from older kernel versions: - none known. If interested, the list of all currently open USB bugs can be seen at: http://bugzilla.kernel.org/showdependencytree.cgi?id=5089&hide_resolved=1 Yeah, there are way too many there, I've been really slack in trying to work through them. If anyone wants to help out, feel free :) Future patches that are currently in my quilt tree (as found at http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ ) for the USB subsystem are as follows. All of these will be submitted for inclusion into 2.6.24, except as noted. The diffstat of these patches is included at the bottom of this message for those that are interested. - usbmon fixups and cleanups and documentation update - usblp cleanups and tweaks - sisusb2vga lindenting and other janitorial cleanups - urb->status reworks in the host controller drivers to make the removal of that field in the future much easier. - usb gadget driver cleanups - new drivers/usb/serial/ch341.c driver - kobil_sct driver reworking - ueagle driver updates - new device ids added - new unusual devs storage quirks added - removal of all of the USB_QUIRK_NO_AUTOSUSPEND entries as they no longer make any sense. - USB authorization changes which allow userspace to disable a USB device from being able to be used by the kernel, if it so desires. This is part of the slow merge of the USB Wireless work. - lots of small tweaks and bugfixes and reworks in the usb-serial drivers due to some tty reworks and auditing. - the usbserial port is now shown in sysfs for the individual usb-serial bus devices.a - lots of rework of the internal apis for the USB host controllers to make things simpler and easier (hopefully.) - suspend tweaks and reworks to make USB devices behave better - other minor fixes in the USB core and drivers. New USB driver api changes for 2.6.24: usb_urb_dir_in() and usb_urb_dir_out() have been added to test the direction of an urb. Note, there are over 100 patches in the USB queue, so I might have missed a few things in reviewing them by hand right now. If I failed to describe your patch that is already in the queue, and you feel it is important for everyone to know about, please feel free to add to the above list. I did not purposefully mean to exclude anything, merely try to summarize things. thanks, greg k-h ---------------------------- Diffstat of the current usb-2.6 quilt queue: Documentation/usb/authorization.txt | 92 + Documentation/usb/usb-serial.txt | 11 Documentation/usb/usbmon.txt | 9 drivers/usb/Makefile | 24 drivers/usb/atm/cxacru.c | 43 drivers/usb/atm/speedtch.c | 3 drivers/usb/atm/ueagle-atm.c | 1398 +++++++++++++++++++++++------ drivers/usb/class/usblp.c | 120 +- drivers/usb/core/config.c | 24 drivers/usb/core/devio.c | 77 - drivers/usb/core/driver.c | 31 drivers/usb/core/endpoint.c | 1 drivers/usb/core/generic.c | 30 drivers/usb/core/hcd.c | 908 ++++++++++-------- drivers/usb/core/hcd.h | 38 drivers/usb/core/hub.c | 273 ++++- drivers/usb/core/message.c | 52 - drivers/usb/core/quirks.c | 81 - drivers/usb/core/sysfs.c | 39 drivers/usb/core/urb.c | 114 +- drivers/usb/core/usb.c | 40 drivers/usb/core/usb.h | 7 drivers/usb/gadget/amd5536udc.c | 7 drivers/usb/gadget/dummy_hcd.c | 97 -- drivers/usb/gadget/ether.c | 147 +-- drivers/usb/gadget/file_storage.c | 249 ++--- drivers/usb/gadget/fsl_usb2_udc.c | 9 drivers/usb/gadget/gmidi.c | 80 - drivers/usb/gadget/inode.c | 44 drivers/usb/gadget/omap_udc.c | 10 drivers/usb/gadget/serial.c | 166 +-- drivers/usb/gadget/zero.c | 239 ++-- drivers/usb/host/ehci-hcd.c | 14 drivers/usb/host/ehci-pci.c | 5 drivers/usb/host/ehci-ps3.c | 2 drivers/usb/host/ehci-q.c | 115 +- drivers/usb/host/ehci-sched.c | 47 drivers/usb/host/isp116x-hcd.c | 65 - drivers/usb/host/ohci-dbg.c | 8 drivers/usb/host/ohci-hcd.c | 213 +++- drivers/usb/host/ohci-mem.c | 1 drivers/usb/host/ohci-pci.c | 22 drivers/usb/host/ohci-q.c | 195 +--- drivers/usb/host/ohci.h | 26 drivers/usb/host/r8a66597-hcd.c | 177 +-- drivers/usb/host/sl811-hcd.c | 90 - drivers/usb/host/u132-hcd.c | 370 ++++--- drivers/usb/host/uhci-debug.c | 4 drivers/usb/host/uhci-hcd.h | 16 drivers/usb/host/uhci-q.c | 72 - drivers/usb/misc/Kconfig | 9 drivers/usb/misc/Makefile | 1 drivers/usb/misc/adutux.c | 3 drivers/usb/misc/berry_charge.c | 7 drivers/usb/misc/ftdi-elan.c | 8 drivers/usb/misc/gotemp.c | 292 ++++++ drivers/usb/misc/sisusbvga/sisusb.c | 198 ---- drivers/usb/misc/sisusbvga/sisusb.h | 130 +- drivers/usb/misc/sisusbvga/sisusb_con.c | 60 - drivers/usb/misc/sisusbvga/sisusb_init.c | 354 ++----- drivers/usb/misc/sisusbvga/sisusb_init.h | 1363 ++++++++++++++-------------- drivers/usb/misc/sisusbvga/sisusb_struct.h | 164 +-- drivers/usb/mon/mon_bin.c | 102 +- drivers/usb/mon/mon_main.c | 31 drivers/usb/mon/mon_text.c | 80 - drivers/usb/mon/usb_mon.h | 2 drivers/usb/serial/Kconfig | 10 drivers/usb/serial/Makefile | 1 drivers/usb/serial/ark3116.c | 5 drivers/usb/serial/bus.c | 16 drivers/usb/serial/ch341.c | 362 +++++++ drivers/usb/serial/cp2101.c | 3 drivers/usb/serial/ftdi_sio.c | 5 drivers/usb/serial/ipaq.c | 2 drivers/usb/serial/kl5kusb105.c | 28 drivers/usb/serial/kobil_sct.c | 146 +-- drivers/usb/serial/mct_u232.c | 28 drivers/usb/serial/oti6858.c | 2 drivers/usb/serial/pl2303.c | 1 drivers/usb/serial/pl2303.h | 1 drivers/usb/serial/safe_serial.c | 11 drivers/usb/serial/usb-serial.c | 11 drivers/usb/storage/initializers.c | 14 drivers/usb/storage/initializers.h | 3 drivers/usb/storage/shuttle_usbat.c | 3 drivers/usb/storage/unusual_devs.h | 20 drivers/usb/usb-skeleton.c | 1 include/linux/usb.h | 79 + include/linux/usb/quirks.h | 7 include/linux/usb_gadget.h | 95 + 90 files changed, 5685 insertions(+), 3878 deletions(-) -
From: Greg KH <gregkh@...> Subject: State of the Linux PCI Subsystem for 2.6.23-rc8 Date: Sep 26, 5:00 pm 2007 Here's a summary of the current state of the Linux PCI subsystem, as of 2.6.23-rc8. If the information in here is incorrect, or anyone knows of any outstanding issues not listed here, please let me know. List of outstanding regressions from 2.6.22: - none known. List of outstanding regressions from older kernel versions: - none known. If interested, the list of all currently open PCI bugs can be seen at: http://bugzilla.kernel.org/showdependencytree.cgi?id=5829&hide_resolved=1 Future patches that are currently in my quilt tree (as found at http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ ) for the PCI subsystem are as follows. All of these will be submitted for inclusion into 2.6.24, except as noted. The diffstat of these patches is included at the bottom of this message for those that are interested. - various pci quirks for different devices - pci hotplug driver kthread conversion - pci hotplug bugfixes - pci express hotplug tweaks and fixes - minor bugfixes and cleanups - MSI documentation update - pci bridge device rework. Note, this was reported to break Andrew's x86-64 box, but he lost the picture he took of the oops. Others reported that it worked just fine on their boxes. I'm still a little hesitant of sending this to 2.6.24 until I can track down what happened here. There are no PCI api changes scheduled for 2.6.24. thanks, greg k-h ---------------------------- Diffstat of the current pci-2.6 quilt queue: Documentation/DMA-API.txt | 3 Documentation/MSI-HOWTO.txt | 69 ------------ arch/i386/kernel/pci-dma.c | 3 arch/i386/kernel/reboot_fixups.c | 6 + arch/i386/pci/common.c | 10 + arch/i386/pci/fixup.c | 47 ++++++++ arch/i386/pci/irq.c | 39 +++++++ arch/x86_64/kernel/pci-dma.c | 1 drivers/pci/bus.c | 17 ++- drivers/pci/hotplug/cpqphp_core.c | 2 drivers/pci/hotplug/cpqphp_ctrl.c | 74 ++++--------- drivers/pci/hotplug/ibmphp_hpc.c | 57 ++-------- drivers/pci/hotplug/pciehp_core.c | 24 +--- drivers/pci/hotplug/pciehp_ctrl.c | 20 +-- drivers/pci/hotplug/pciehp_hpc.c | 209 ++++++++++---------------------------- drivers/pci/hotplug/pciehp_pci.c | 24 ++-- drivers/pci/pci-driver.c | 3 drivers/pci/pci.c | 5 drivers/pci/pci.h | 2 drivers/pci/pcie/Kconfig | 9 - drivers/pci/probe.c | 82 +++++++------- drivers/pci/quirks.c | 43 ------- drivers/pci/remove.c | 6 - include/linux/pci.h | 4 include/linux/pci_ids.h | 3 include/linux/pci_regs.h | 6 - lib/swiotlb.c | 1 27 files changed, 316 insertions(+), 453 deletions(-) -


USB bugs list is high, not the patch queue

September 27, 2007 - 4:45pm
greg k-h (not verified)

No, I pointed out that the list of open USB bugs is high, not the USB patch queue.

thanks

September 28, 2007 - 12:54am

I obviously need to read closer. I updated the article per your comment, thanks for the feedback.

we could need an automatic

September 28, 2007 - 3:26am
Anonymous (not verified)

we could need an automatic lexical highlighter that helps remove any confusion =)

anyway, thanks for the work Jeremy, i dont think there is any other project that
makes such a fine summary (kernel-level wise)

What can't that guy do?

September 27, 2007 - 8:38pm
Anonymous (not verified)

Seriously, great work Greg. I know it's more than you out there, but you do a lot to keep the kernel up-to-date. :)

submitted a bug report to

September 28, 2007 - 3:00am

submitted a bug report to Greg like 3 years ago in time of 2.6.0-test kernels, which caused major hotplug code rewrite :)

hehehe

September 28, 2007 - 3:27am
Anonymous (not verified)

hehehe

Competence

September 28, 2007 - 8:25am
Anonymous (not verified)

This guy is Rambo. So refreshing to see competence in action instead of more of the scheduler fiasco.

So scheduler developers are

September 28, 2007 - 8:49am
Anonymous (not verified)

So scheduler developers are incompetent?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
speck-geostationary