Skip to content
Newer
Older
100644 246 lines (228 sloc) 11.5 KB
6fdf249 @gregkh initial import from old git tree
authored
1 From: Greg KH <gregkh@suse.de>
2 To: torvalds@osdl.org, Andrew Morton <akpm@osdl.org>
3 Cc: linux-kernel@vger.kernel.org
4 Subject: State of the Linux Driver Core Subsystem for 2.6.23-rc8
5
6 Here's a summary of the current state of the Linux Driver core
7 subsystem, as of 2.6.23-rc8.
8
9 If the information in here is incorrect, or anyone knows of any
10 outstanding issues not listed here, please let me know.
11
12 List of outstanding regressions from 2.6.22:
13 - none known.
14
15 List of outstanding regressions from older kernel versions:
16 - none known.
17
18
19 There are no currently open Driver core or sysfs bugs in bugzilla.
20
21
22 Future patches that are currently in my quilt tree (as found at
23 http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
24 ) for the Driver core subsystem are as follows. All of these will be
25 submitted for inclusion into 2.6.24, except as noted. The diffstat of
26 these patches is included at the bottom of this message for those that
27 are interested.
28
29 - HOWTO ja_JP updates
30 - metric boatload of changes and tweaks to sysfs from Tejun.
31 These clean up the internal usage and implementation of sysfs,
32 and split sysfs from the kobject model a lot, fixing a lot of
33 problems along the way. I can't thank him enough for this
34 work.
35 - cleaned up the usage of struct subsystem some more by removing
36 some functions that are not needed, or only used by the driver
37 core. Details on the api changes are below
38 - cleaned up the usage of the kobject->name field and removed it
39 entirely. This saves us some size on every kobject which
40 really adds up on those s390 31 bit boxes with 20,000
41 different block devices.
42 - uevent environment variable handling has been made simpler,
43 and now hopefully, almost impossible to get wrong. Previously
44 we were forcing every subsystem to open-code a lot of this
45 logic. Thanks to Kay for this work.
46 - global list of sysdev_drivers is removed, as no one was using
47 it at all.
48 - the number of legacy ptys can now be dynamically specified on
49 the kernel command line, allowing people who refuse to fix
50 their old applications to be able to still run on newer
51 distros that want to limit this number at build time.
52 - dmi sysfs code cleanups and fixes
53 - block devices are moved from /sys/block to /sys/class/block.
54 This patch has been hanging around for almost a year now, and
55 hopefully we have worked out all of the kinks and userspace
56 boot breakages. If anyone has any problems with this, please
57 let me and Kay know about it. I'm hesitant to include it in
58 2.6.24 as it has recently changed and needs more testing.
59 Maybe it will go into 2.6.25. Oh, udev has been able to
60 handle this for over a year, so there should not be any
61 problems with distros that are still supported. It can also
62 be turned off with the CONFIG_SYSFS_DEPRECATED build option
63 for older distros.
64 - new debugfs functions for people who like hex numbers
65 - platform devices now have the "platform:" alias added to their
66 modalias to fix the recursive modprobe loops that Red Hat,
67 OLPC, SuSE, and Debian have reported in the current code.
68 - some struct class_device to struct device conversions were
69 done for video and some various char drivers. More of these
70 are on the way.
71 - cdev kobject name cleanups. The kobject name of a cdev does
72 not do anything, so it should not be set.
73 - firmware collision fix between i2c and i2c-dev.
74 - uevent files for bus and driver have been added. SuSE has
75 shipped this for quite some time now.
76 - if CONFIG_HOTPLUG is not enabled, some more space is saved in
77 the uevent code.
78 - the path to the uevent helper program (traditionally
79 /sbin/hotplug) can be specified in the kernel config. This
80 keeps the kernel from having to call a program that is not
81 present 300+ times before init starts up, speeding up boot
82 time in theory.
83
84 New driver core api changes for 2.6.24:
85 - debugfs_create_x8(), debugfs_create_x16(), and
86 debugfs_create_x32() have been added
87 - struct kobject.name field has been removed. Use
88 kobject_set_name() and kobject_name() to set and get the name.
89 - uevent callbacks in the driver core and for kobjects have been
90 changed from:
91 int (*uevent)(struct device *dev, char **envp, int num_envp, char *buffer, int buffer_size);
92 to:
93 int (*uevent)(struct device *dev, struct kobj_uevent_env *env);
94 and struct kobj_uevent_env has been created to make it simpler
95 to create environment variables for uevents.
96 - struct platform_device.id has changed from an u32 to an int.
97 - the following functions have been removed either entirely or
98 from the global namespace:
99 get_bus()
100 put_bus()
101 kset_set_kset_s()
102 subsys_get()
103 subsys_put()
104 subsys_set_kset()
105 subsystem_init()
106 All documentation and in-kernel users have been cleaned up.
107 There really wasn't many, if any users of these calls.
108
109 No known at this time, changes to the sysfs userspace visable structure
110 will happen in 2.6.24.
111
112 thanks,
113
114 greg k-h
115
116 ----------------------------
117
118 Diffstat of the current driver-2.6 quilt queue:
119
120
121 Documentation/ja_JP/HOWTO | 84 -
122 Documentation/kernel-parameters.txt | 4
123 Documentation/kobject.txt | 21
124 arch/i386/kernel/traps.c | 1
125 arch/ia64/sn/kernel/tiocx.c | 3
126 arch/powerpc/kernel/of_device.c | 37
127 arch/powerpc/kernel/vio.c | 16
128 arch/powerpc/platforms/ps3/system-bus.c | 9
129 arch/x86_64/kernel/traps.c | 1
130 block/bsg.c | 5
131 block/elevator.c | 2
132 block/genhd.c | 446 ++---
133 block/ll_rw_blk.c | 6
134 drivers/acpi/bus.c | 2
135 drivers/acpi/scan.c | 16
136 drivers/acpi/video.c | 4
137 drivers/amba/bus.c | 9
138 drivers/base/Kconfig | 8
139 drivers/base/base.h | 2
140 drivers/base/bus.c | 116 -
141 drivers/base/class.c | 52
142 drivers/base/core.c | 124 -
143 drivers/base/firmware_class.c | 14
144 drivers/base/memory.c | 3
145 drivers/base/platform.c | 28
146 drivers/base/power/power.h | 6
147 drivers/base/power/resume.c | 2
148 drivers/base/power/suspend.c | 2
149 drivers/base/sys.c | 73
150 drivers/block/aoe/aoeblk.c | 51
151 drivers/block/nbd.c | 15
152 drivers/char/Kconfig | 10
153 drivers/char/Makefile | 1
154 drivers/char/dsp56k.c | 4
155 drivers/char/ip2/ip2main.c | 12
156 drivers/char/ipmi/ipmi_devintf.c | 6
157 drivers/char/istallion.c | 8
158 drivers/char/lp.c | 5
159 drivers/char/nozomi.c | 2348 ++++++++++++++++++++++++++++
160 drivers/char/pcmcia/cm4000_cs.c | 5
161 drivers/char/pcmcia/cm4040_cs.c | 5
162 drivers/char/pty.c | 9
163 drivers/char/raw.c | 5
164 drivers/char/snsc.c | 3
165 drivers/char/stallion.c | 7
166 drivers/char/tipar.c | 6
167 drivers/char/viotape.c | 10
168 drivers/cpufreq/cpufreq.c | 2
169 drivers/edac/edac_mc_sysfs.c | 3
170 drivers/eisa/eisa-bus.c | 9
171 drivers/firewire/fw-device.c | 11
172 drivers/firmware/dmi-id.c | 60
173 drivers/i2c/i2c-core.c | 8
174 drivers/ide/ide-probe.c | 2
175 drivers/ide/ide.c | 15
176 drivers/ieee1394/nodemgr.c | 17
177 drivers/infiniband/core/sysfs.c | 9
178 drivers/input/input.c | 62
179 drivers/input/misc/pcspkr.c | 1
180 drivers/input/serio/serio.c | 11
181 drivers/md/dm.c | 2
182 drivers/md/md.c | 11
183 drivers/media/dvb/dvb-core/dvbdev.c | 5
184 drivers/media/video/pvrusb2/pvrusb2-sysfs.c | 4
185 drivers/misc/tifm_core.c | 9
186 drivers/mmc/core/bus.c | 11
187 drivers/net/ibmveth.c | 2
188 drivers/pci/hotplug.c | 28
189 drivers/pci/hotplug/pci_hotplug_core.c | 60
190 drivers/pci/hotplug/rpadlpar_sysfs.c | 6
191 drivers/pci/pci-driver.c | 3
192 drivers/pci/pci.h | 3
193 drivers/pci/setup-irq.c | 2
194 drivers/pcmcia/cs.c | 10
195 drivers/pcmcia/ds.c | 26
196 drivers/pcmcia/pxa2xx_mainstone.c | 2
197 drivers/pcmcia/pxa2xx_sharpsl.c | 2
198 drivers/power/power_supply.h | 3
199 drivers/power/power_supply_sysfs.c | 17
200 drivers/s390/cio/ccwgroup.c | 3
201 drivers/s390/cio/device.c | 25
202 drivers/s390/crypto/ap_bus.c | 14
203 drivers/scsi/scsi_sysfs.c | 9
204 drivers/spi/spi.c | 7
205 drivers/usb/core/devio.c | 6
206 drivers/usb/core/driver.c | 29
207 drivers/usb/core/message.c | 28
208 drivers/video/output.c | 29
209 drivers/w1/w1.c | 18
210 fs/block_dev.c | 8
211 fs/debugfs/file.c | 36
212 fs/dlm/lockspace.c | 2
213 fs/gfs2/locking/dlm/sysfs.c | 2
214 fs/gfs2/sys.c | 2
215 fs/ocfs2/cluster/masklog.c | 3
216 fs/partitions/check.c | 328 +--
217 fs/sysfs/bin.c | 30
218 fs/sysfs/dir.c | 806 ++-------
219 fs/sysfs/file.c | 262 ++-
220 fs/sysfs/group.c | 2
221 fs/sysfs/inode.c | 109 -
222 fs/sysfs/mount.c | 18
223 fs/sysfs/symlink.c | 26
224 fs/sysfs/sysfs.h | 191 +-
225 include/asm-powerpc/of_device.h | 2
226 include/linux/debugfs.h | 27
227 include/linux/device.h | 17
228 include/linux/genhd.h | 29
229 include/linux/init.h | 1
230 include/linux/kobject.h | 86 -
231 include/linux/platform_device.h | 7
232 include/linux/sysfs.h | 168 --
233 include/linux/tty.h | 1
234 include/linux/video_output.h | 4
235 init/do_mounts.c | 108 -
236 init/main.c | 9
237 lib/Makefile | 3
238 lib/kobject.c | 195 +-
239 lib/kobject_uevent.c | 216 +-
240 net/atm/atm_sysfs.c | 7
241 net/bridge/br_sysfs_br.c | 2
242 net/core/net-sysfs.c | 14
243 net/wireless/sysfs.c | 3
244 sound/aoa/soundbus/core.c | 33
245 124 files changed, 4226 insertions(+), 2721 deletions(-)
Something went wrong with that request. Please try again.