- 21 Nov, 2002 23 commits
-
-
Neil Brown authored
If an NFS request arrives in a linear skb, we don't need to copy it, particularly if the network card has already done the DUB checksum. This patch only copies a request if it is already non-linear.
-
Neil Brown authored
Hirokazu Takahashi <taka@valinux.co.jp> noticed that svc_udp_recvfrom wouild set some fields in rqstp->rq_arg wrongly if the request was shorter than one page. This patch makes the code in udp_recvfrom the same as the (correct) code in tcp_recvfrom.
-
Neil Brown authored
If the 'data' component of a readdir response is exactly one page (the max allowed) then we currently only send 0 bytes of it, instead of PAGE_SIZE bytes.
-
Neil Brown authored
Now that requests are broken into non-contiguous pages, an NFSv3 symlink request could be larger than a page and so non-continguous. This patch copies the symlink into a new page (while checking for nul bytes) so nfsd_symlink will definately get a contiguous link.
-
Neil Brown authored
-
Neil Brown authored
-
Neil Brown authored
when do_md_run fails mddev->pers is not set, so do_md_stop will not try to write out the superblock so there is no need to set sb_dirty to 0.
-
Neil Brown authored
-
Neil Brown authored
They take the length of the passed bvec into account, which is wrong.
-
Andrew Morton authored
This is a requirement for ancient gcc's
-
Andrew Morton authored
So poor old Dave spent days hunting down memory corruption because the `kstat' per-cpu storage is not initialised (it needs to be, it's a workaround for ancient gcc's). The same problem had me hunting for a day too. This patch, based on an initial version from Rusty will parse System.map at final link and will fail the build if any per-cpu symbols are found to be not in the percpu section.
-
Andrew Morton authored
egcs-1.1.2 doesn't understand that form of vararg macro
-
Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Arnaldo Carvalho de Melo authored
-
Arnaldo Carvalho de Melo authored
-
Nicolas Mailhot authored
This adds the KT400 pci ID and lists it as using Via generic setup routines. This patch has been tested with all GL xscreensavers I could find, and been reviewed by Dave Jones (full patch history at http://bugzilla.kernel.org/show_bug.cgi?id=3D14). diff -uNr linux-2.5.47-ac6.orig/drivers/char/agp/agp.c linux-2.5.47-ac6/drivers/char/agp/agp.c
-
bk://ldm.bkbits.net/linux-2.5-coreLinus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Ingo Molnar authored
Support more flexible child pid set/clear operations for NPTL. there's one more improvement in the interface: set the parent-TID prior doing the copy_mm() - this helps cfork() to pass the TID to the child as well.
-
Dave Jones authored
Very recent Athlons (Model 8 stepping 1 and above) (XPs/MPs and mobiles) have an interesting problem. Certain bits in the CLK_CTL register need to be programmed differently to those in earlier models. The problem arises when people plug these new CPUs into boards running BIOSes that are unaware of this fact. The fix is to reprogram CLK_CTL to 200xxxxx instead of 0x600xxxxx as it was in previous models. The AMD folks have found that this improves stability. The patch below does this reprogramming if an affected model/bios is detected. I'm interested if someone with an affected model could run some benchmarks before and after to also see if this affects performance.
-
Christoph Hellwig authored
uClinux ports can't use mmu tricks for reading /dev/zero due to the lack of one. similarly it can't mmap /dev/zero.
-
Christoph Hellwig authored
We must always use total_swapcache_pages instead of swapper_space.nrpages in code that doesn't depend on CONFIG_SWAP
-
- 20 Nov, 2002 17 commits
-
-
William Lee Irwin III authored
-
Arnaldo Carvalho de Melo authored
also fix a bug in hammerfall driver, removing __exit from a function that is called from a non __exit function.
-
Arnaldo Carvalho de Melo authored
also convert some struct initializations to C99 style and change irq_count to tcic_irq_count, as irq_count now is a macro...
-
Arnaldo Carvalho de Melo authored
and also makes a var go to .bss...
-
William Lee Irwin III authored
-
Arnaldo Carvalho de Melo authored
-
Patrick Mochel authored
Some names (for some reason) have a '/' in them, making them no good for directory names. disk->kobj.name has already been transformed to turn those into '!', so this makes sure we use those when setting the name for the partitions' names.
-
Patrick Mochel authored
- don't define and use a release callback for the generic driver. - Call bus_unregister() in usb_exit() to remove the usb driver, instead of put_bus().
-
Patrick Mochel authored
Like the other objects, this allows a decent bit of cleanup. Details include: - use rwsem in subsytem, instead of one in struct device_class. - use refcount in struct kobject, instead of one in struct device_class. - kill class's present flag. - kill class_list, since we can just use class_subsys's. - make interfaces instances of their class's subsystem. This allows us to kill struct device_class::intf_list, and struct device_interface::node.
-
Patrick Mochel authored
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-kobject
-
Patrick Mochel authored
This a multi-pronged attack aimed at exploiting the kobject infrastructure mor. - Remove bus_driver_list, in favor of list in bus_subys. - Remove bus_for_each_* and driver_for_each_dev(). They're not being used by anyone, have questionable locking semantics, and really don't provide that much use, as the function returns once the callback fails, with no indication of where it failed. Forget them, at least for now. - Make sure that we return success from bus_match() if device matches, but doesn't have a probe method. - Remove extraneous get_{device,driver}s from bus routines that are serialized by the bus's rwsem. bus_{add,remove}_{device,driver} all take the rwsem, so there is no way we can get a non-existant object when in those functions. - Use the rwsem in the struct subsystem the bus has embedded in it, and kill the separate one in struct bus_type. - Move bulk of driver_register() into bus_add_driver(), which holds the bus's rwsem during the entirety. this will prevent the driver from being unloaded while it's being registered, and two drivers with the same name getting registered at the same time. - Ditto for driver_unregister() and bus_remove_driver(). - Add driver_release() method for the driver bus driver subsystems. (Explained later) - Use only the refcounts in the buses' kobjects, and kill the one in struct bus_type. - Kill struct bus_type::present and struct device_driver::present. These didn't work out the way we intended them to. The idea was to not let a user obtain a rerference count to the object if it was in the process of being unregistered. All the code paths should be fixed now such that their registration is protected with a semaphore, so no partially initialized objects can be removed, and enough infrastructure is moved to the kobject model so that once the object is publically visible, it should be usable by other sources. - Add a bus_sem to serialize bus registration and unregistration. - Add struct device_driver::unload_sem to prevent unloading of drivers with a positive reference count. The driver model has always had a bug that would allow a driver with a positive reference count to be unloaded. It would decrement the reference count and return, letting the module be unloaded, without accounting for the other users of the object. This has been discussed many times, though never resolved cleanly. This should fix the problem in the simplest manner. struct device_driver gets unload_sem, which is initialized to _locked_. When the reference count for the driver reaches 0, the semaphore is unlocked. driver_unregister() blocks on acquiring this lock before it exits. In the normal case that driver_unregister() drops the last reference to the driver, the lock will be acquired immediately, and the module will unload. In the case that someone else is using the driver object, driver_unregister() will not be able to acquire the lock, since the refcount has not reached 0, and the lock has not been released. This means that rmmod(8) will block while drivers' sysfs files are open. There are no sysfs files for drivers yet, but note this when they do have some.
-
Patrick Mochel authored
- Don't do extra dget() when creating symlink. This is a long-standing bug with a simple and obvious fix. We were doing an extra dget() on the dentry after d_instantiate(). It only gets decremented once on removal, so the dentry was never really going away, and the directory wasn't, either. - Use simple_unlink() instead of sysfs_unlink(). - Use simple_rmdir() instead of our own, unrolled, version. - Remove MODULE_LICENSE(), since it's always in the kernel.
-
Patrick Mochel authored
-
David S. Miller authored
into nuts.ninka.net:/home/davem/src/BK/net-2.5
-
David S. Miller authored
into nuts.ninka.net:/home/davem/src/BK/sparc-2.5
-
David S. Miller authored
-
David S. Miller authored
-