- 15 Mar, 2004 1 commit
-
-
Andrew Morton authored
Against Jon's cdev stuff
-
- 12 Mar, 2004 3 commits
-
-
Greg Kroah-Hartman authored
-
Jonathan Corbet authored
The existing cdev interface requires users to deal with the embedded kobject in two places: - The kobject name field must be set before adding the cdev, and - Should cdev_add() fail, a call to kobject_put() is required. IMO, this exposure of the embedded kobject makes the interface more brittle and harder to understand. It's also unnecessary. With the removal of /sys/cdev, a call to cdev_del() will nicely replace kobject_put(), and the name setting is easily wrapped. This is against 2.6.4, but depends on the /sys/cdev removal patch.
-
Jonathan Corbet authored
This is the first of two patches designed to make life easier for authors of device driver books - and, with luck, driver authors too. /sys/cdev is, according to Al, a mistake which was never really meant to exist. I believe nothing uses it currently - there isn't a whole lot there to use. Its existence takes up system resources, and also requires drivers to deal with the cdev's embedded kobject in their failure paths. The following patch (against 2.6.4) makes it all go away. OK, almost all. We have to keep (but not register) cdev_subsys because it's rwsem is needed to control access to cdev_map.
-
- 11 Mar, 2004 4 commits
-
-
Leann Ogasawara authored
Patch adds sysfs simple class support for DRI character device (Major 226). Also, adds some error checking.
-
Greg Kroah-Hartman authored
-
Greg Kroah-Hartman authored
-
Leann Ogasawara authored
I noticed that the class_register() function in drivers/base/class.c always returns 0 and thus will never fail. Patch below inserts simple error checking to return any errors if they occur. Feedback welcome. Thanks,
-
- 10 Mar, 2004 6 commits
-
-
Leann Ogasawara authored
Patch adds sysfs simple class support for netlink character device (Major 36). Feedback appreciated. Thanks,
-
Chris Wright authored
The only spot that seems to care about class_simple_device_add possibly failing, but it gets the wrong error test.
-
Chris Wright authored
Error path doesn't class_simple_destroy.
-
Chris Wright authored
Doesn't catch error on class_simple_add, and existing error return paths forget to class_simple_destroy.
-
Chris Wright authored
Error condition isn't caught on class_simple_create, and parport_register_driver failure doesn't do proper cleanup.
-
Chris Wright authored
* Hanna Linder (hannal@us.ibm.com) wrote: > + ppp_class = class_simple_create(THIS_MODULE, "ppp"); > + class_simple_device_add(ppp_class, MKDEV(PPP_MAJOR, 0), NULL, "ppp"); What happens if that class_simple_create() fails? Actually, class_simple_device_add could fail too, but doesn't seem anybody is checking for that. > err = devfs_mk_cdev(MKDEV(PPP_MAJOR, 0), > S_IFCHR|S_IRUSR|S_IWUSR, "ppp"); > - if (err) > + if (err) { > unregister_chrdev(PPP_MAJOR, "ppp"); > + class_simple_device_remove(MKDEV(PPP_MAJOR,0)); > + } need to destroy the class on error path to avoid leak. > @@ -2540,6 +2547,7 @@ static void __exit ppp_cleanup(void) > if (unregister_chrdev(PPP_MAJOR, "ppp") != 0) > printk(KERN_ERR "PPP: failed to unregister PPP device\n"); > devfs_remove("ppp"); > + class_simple_device_remove(MKDEV(PPP_MAJOR, 0)); ditto. this will leak and would cause oops on reload of module. something like below.
-
- 09 Mar, 2004 2 commits
-
-
Greg Kroah-Hartman authored
-
Dave Jones authored
This got fixed in 2.4, but somehow got missed in 2.6.
-
- 08 Mar, 2004 24 commits
-
-
Rusty Russell authored
This is a cleaner fix for the previous bogon fix.
-
Linus Torvalds authored
-
Rusty Russell authored
- Move free_block prototype, and ac_entry and ac_data functions up in file. - Use list_for_each_entry in cpuup_callback. - Remove unneccessary g_cpucache_up in cpuup_callback. - Make reap_timer_func take CPU number as data, and check if that is offline before rescheduing (noop without CONFIG_HOTPLUG_CPU).
-
Rusty Russell authored
Levent Serinol <levent.serinol@mynet.com> found that the hotplug cpu patch broke Sparc64. I introduced a num_possible_cpus(), which Sparc64 already has. Remove the Sparc64 one. I also removed Sparc64's cpu_online() macro: it's in linux/cpumask.h already.
-
Rusty Russell authored
Note that without CONFIG_HOTPLUG_CPU, online cpus == possible cpus, so substitutions are a noop. - Changes show_stat to print out stats for every possible cpu, not just online CPUs. - Allocate mem in stat_open on possible, not online_cpus. - Add conventient macros to cpu.h: especially cpu_is_offline() for testing if a cpu is still online. - Add a num_possible_cpus() similar to num_online_cpus(), and define cpu_possible_mask for UP. - Allow printk on down cpus once system is running. - Mask cpumask with possible, not online cpus, for sys_getaffinity().
-
Rusty Russell authored
Extracts core of drain_pages() for hotcpu use. Trivial. Hotplug CPU needs to drain pages on a downed CPU (usually it's the current cpu). Introduce "__drain_pages", make the CPU an argument, and expose it if CONFIG_HOTPLUG_CPU as well as CONFIG_PM.
-
bk://kernel.bkbits.net/jgarzik/via-crypto-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
Jeff Garzik authored
into redhat.com:/spare/repo/via-crypto-2.5
-
bk://gkernel.bkbits.net/libata-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
Jeff Garzik authored
Promise driver uses a custom error handling function, so we need the fix that was applied to the libata core: the SCSI error handling thread requires that we complete commands using a special completion function, since the normal one doesn't work inside the error handling thread.
-
Jeff Garzik authored
-
Jeff Garzik authored
-
Arjan van de Ven authored
The following patch is a very crude one to at least not make sata block suspend-to-ram entirely. Probably you want more powermanagement handling as well... but it's a start
-
bk://gkernel.bkbits.net/net-drivers-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
Don Fry authored
The pcnet32 driver will hang after a few frames (<30) with the 79C971 (and probably the 79C972 though I don't have the hardware to prove it). By interrupting slightly more frequently the hang will not occur.
-
Marc Zyngier authored
>>>>> "Pawel" == Pawel Sokolowski <falcon@muflon.linux.pl> writes: Pawel> This machine has RAM BIOS booted from floppy. I ran it and EISA Pawel> configure utility to check this once more. Card is enabled and not Pawel> locked. I added eisa_bus.enable_dev=2 parameter but it didn't help much. Pawel> I'm getting: Pawel> EISA: Probing bus 0 at eisa0 Pawel> EISA: Mainboard HWPC061 detected. Pawel> EISA: slot 2 : HWP1940 detected (forced enabled). Pawel> EISA: Detected 1 card. Pawel> I added this final entry you mailed but nothing changed. Still - module Pawel> loads and unloads cleanly and without any warnings on 2.6.4-rc1. But Pawel> does nothing - not a single line in logs/dmesg after it's loaded. Card Pawel> does not work after modprobe, I can't get interface up. Ok, found it. It really looks like the new EISA probing code in hp100 never got tested, since a precious offset has disappeared during the rewriting process. Please note that you still need to enable the device by hand, since your BIOS (or maybe the EISA CFG file, since I'm seeing the exact same problem on a Compaq machine here) doesn't properly enable the card. Here is what I'm getting on my test system : EISA: Probing bus 0 at 0000:00:0f.0 EISA: Mainboard CPQ0541 detected. EISA: slot 1 : DEC4250 detected. EISA: slot 2 : UNB0048 detected. EISA: slot 3 : HWP1940 detected (forced enabled). hp100: Using (slow) programmed i/o mode. hp100: at 0x3c38, IRQ 3, EISA bus, 128k SRAM (rx/tx 75%). hp100: Adapter is attached to 10Mb/s network (10baseT). EISA: slot 4 : NVL0701 detected.
-
Rusty Russell authored
Now we've moved the bogolock code out to stop_machine.c and generalized it a little, use it in module.c and delete the duplicate code there.
-
Rusty Russell authored
The "bogolock" code was introduced in module.c, as a way of freezing the machine when we wanted to remove a module. This patch moves it out to stop_machine.c and stop_machine.h. Since the code changes affinity and proirity, it's impolite to hijack the current context, so we use a kthread. This means we have to pass the function rather than implement "stop_machine()" and "restart_machine()".
-
bk://kernel.bkbits.net/davem/sparc-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/sparc-2.6
-
http://jfs.bkbits.net/linux-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.5/linux
-
Dave Kleikamp authored
into austin.ibm.com:/shaggy/bk/jfs-2.5
-
Dave Kleikamp authored
Submitted by Christoph Hellwig
-