- 25 Sep, 2002 4 commits
-
-
bk://ldm@bkbits.net/linux-2.5Patrick Mochel authored
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5
-
Patrick Mochel authored
-
bk://linus.bkbits.net/linux-2.5Patrick Mochel authored
into hostme.bitkeeper.com:/ua/repos/l/ldm/linux-2.5
-
Dave Kleikamp authored
into kleikamp.austin.ibm.com:/home/shaggy/bk/jfs-2.5
-
- 24 Sep, 2002 12 commits
-
-
Paul Mackerras authored
As it is at the moment, sys_mprotect will dereference a null pointer if you use it on a region that is contained within the first vma. I have a little program that demonstrates this (I'll post it if anyone is interested). What happens then is that the process hangs in do_page_fault at the down_read on the mm->mmap_sem, since sys_mprotect has done a down_write on mm->mmap_sem. The problem is that mprotect_fixup isn't updating prev properly. Thus we can finish the main loop in sys_mprotect with prev == NULL. This has been the case since Christoph's cleanups went in. Prior to that, mprotect_fixup always set prev to something non-NULL. I suspect that not updating prev could also cause vmas to get dropped completely if the region being mprotected spans more than one vma. The patch below fixes the problem by making mprotect_fixup set prev to a reasonable value in all circumstances.
-
Linus Torvalds authored
-
Patrick Mochel authored
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5
-
Robert Love authored
This unsafe access to per-CPU data via reordering of instructions or use of "get_cpu()". Before anyone balks at the brlock.h fix, note this was in the alternative version of the code which is not used by default.
-
Robert Love authored
Before the irqs_disabled() check in preempt_schedule(), we worked around some locking issues in slab.c. Now that we will never preempt with interrupts disabled, we can remove those and clean things up. This is courtesy of Manfred Spraul.
-
Robert Love authored
This converts the debugging check in do_exit from a check on preempt_count() to in_atomic(). The main benefit to this is we will stop warning over the BKL and now use the standard mechanism for such checks.
-
Matthew Wilcox authored
Looks like I dropped a hunk from my patchset, sorry. We never set FL_SLEEP in the flock case, so if we should block, we'll livelock instead.
-
Linus Torvalds authored
This is needed for reasonable read latency with the new VM behaviour. NOTE! This is way too unfair, Andrew and Jens are working on alternatives.
-
Ivan Kokshaysky authored
- Makefile cleanups and fixes - a bunch of syscalls added - removed crap from asm/ide.h (it's not needed anymore) - __down_read_trylock fix
-
Linus Torvalds authored
-
Jens Axboe authored
IDE must use blk_queue_empty() and not do a list_empty() on the (potentially only) dispatch queue. This took quite a while to find while debugging a new io scheduler...
-
Ingo Molnar authored
This fixes the emacs bug reported by Andries. It should probably also fix other, terminal handling related weirdnesses introduced by the new PID handling code in 2.5.38. The bug was in the session_of_pgrp() function, if no proper session is found in the process group then we must take the session ID from the process that has pgrp PID (which does not necesserily have to be part of the pgrp). The fallback code is only triggered when no process in the process group has a valid session - besides being faster, this also matches the old implementation. [ hey, who needs a POSIX conformance testsuite when we have emacs! ;) ]
-
- 23 Sep, 2002 24 commits
-
-
Patrick Mochel authored
Platform devices are devices commonly found on the motherboard of systems. This includes legacy devices (serial ports, floppy controllers, parallel ports, etc) and host bridges to peripheral buses. We already had a platform bus type, which gives a way to group platform devices and drivers, and allow each to be bound to each other dynamically. Though before, it didn't do anything. It still doesn't do much, but we now have: - struct platform_device, which generically describes platform deviecs. This only includes a name and id in addition to a struct device, but more may be added later. - implelemnt platform_device_register() and platform_device_unregister() to handle adding and removing these devices. - Create legacy_bus - a default parent device for legacy devices. - Change the floppy driver to define a platform_device (instead of a sys_device). In driverfs, this gives us now: a# tree -d /sys/bus/platform/ /sys/bus/platform/ |-- devices | `-- floppy0 -> ../../../root/legacy/floppy0 `-- drivers and # tree -d /sys/root/legacy/ /sys/root/legacy/ `-- floppy0
-
Patrick Mochel authored
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5
-
Patrick Mochel authored
- device struct sys_root for describing the individual boards of a multi-board system. - allow for registration of alternate device roots. - check if struct sys_device::root is set on registration, and add it as a child of an alternative root, if it's set.
-
Andrew Morton authored
The direct-IO code is currently generating 1 meg BIOs (and subsequent BUGs) because it doesn't know about bio_add_page(). Could we please drop it to 16k until we get it sorted out?
-
Patrick Mochel authored
- Create struct cpu to generically describe cpus (it simply contains a struct sys_device in it). - Define an array of size NR_CPUS in arch/i386/kernel/cpu/common.c and register each on bootup. This gives us something like: # tree -d /sys/root/sys/ /sys/root/sys/ |-- cpu0 |-- pic0 `-- rtc0 and: # tree -d /sys/bus/system/devices/ /sys/bus/system/devices/ |-- cpu0 -> ../../../root/sys/cpu0 - Define arch-specific CPU driver that's also registered on boot. That gives us: # tree -d /sys/bus/system/drivers/ /sys/bus/system/drivers/ |-- cpu - Create a CPU device class that's registered very early. That gives us all the CPUs in the system in one place: # tree -d /sys/class/cpu/ /sys/class/cpu/ |-- devices | `-- 0 -> ../../../root/sys/cpu0 `-- drivers Other archs are encouraged to do the same.
-
Patrick Mochel authored
The generic driver is used by the virtual USB bridge device. This makes sure that the driver is registered before we try to use it (and it gets the bus type right). We also check for equality when matching devices to drivers, because we don't want to match any device to it.
-
Patrick Mochel authored
In some cases, especially when dealing with system and platform devices, a device's driver is known when the device is registered. We still want to add the device to the driver's list and add it to the class. This makes splits driver binding into probe() and attach(). If the device already has a driver, we simply call attach(). Otherwise, we try to match it on the bus and still call found_match(). This requires that all drivers that are referenced are registered beforehand.
-
Patrick Mochel authored
- Create struct sys_device to describe system-level devices (CPUs, PICs, etc.). This structure includes a 'name' and 'id' field for drivers to fill in with a simple canonical name (like 'pic' or 'floppy') and the id of the device relative to its discovery in the system (it's enumerated value). The core then constructs the bus_id for the device from these, giving them meaningful names when exporting them to userspace: # tree -d /sys/root/sys/ /sys/root/sys/ |-- pic0 `-- rtc0 - Replace int register_sys_device(struct device * dev); with int sys_device_register(struct sys_device * sysdev); - Fixup the users of the API. - Add a system_bus_type for devices to associate themselves with. This provides a bus/system/ directory in driverfs that looks like: # tree -d /sys/bus/system/ /sys/bus/system/ |-- devices | |-- pic0 -> ../../../root/sys/pic0 | `-- rtc0 -> ../../../root/sys/rtc0 `-- drivers `-- pic
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/gregkh-2.5
-
Adams IT Services authored
-increased timeout value because some people reported problems -(important!) Vender ID has changed from 0x1212 to 0x10D2 , my official assigned one. -added usblcd driver to configure.help
-
Stuart MacDonald authored
Update to full working driver status. Latest firmware 4.06 too. Driver now officially supported.
-
Greg Kroah-Hartman authored
Based off of a patch from Stuart MacDonald <stuartm@connecttech.com>
-
Stuart MacDonald authored
This cleans up the error path in the open() call to make a bit more sense.
-
Greg Kroah-Hartman authored
This fixes a stupid error in the timeout value when downloading firmware to a device. The WhiteHEAT device now works properly with this patch.
-
Alan Stern authored
Like the header says, this patch fixes up the various Transfer- and Transport-level return codes. There were a lot of places in the various subdrivers that were not particularly careful about distinguishing the two; it would help if the people currently maintaining those drivers could take a look at my changes to make sure I haven't screwed anything up. # Converted US_BULK_TRANSFER_xxx to USB_STOR_XFER_xxx, to make it more # easily distinguishable from USB_STOR_TRANSPORT_xxx. (Also, in the # future these codes may apply to control transfers as well as to bulk # transfers.) # # Changed USB_STOR_XFER_FAILED to USB_STOR_XFER_ERROR, since it implies # a transport error rather than a transport failure. # # Added a USB_STOR_XFER_STALLED code, to indicate a transfer that was # terminated by an endpoint stall. This patch is in preparation for one in which usb_stor_transfer_partial() and usb_stor_transfer() are replaced by usb_stor_bulk_transfer_buf() and usb_stor_bulk_transfer_srb() respectively, with slightly different argument lists. Ultimately the subdrivers will be able to use these routines in place of the slightly specialized versions they have now and in place of the ones in raw_bulk.c.
-
Luc Van Oostenryck authored
compile fails with the following message: > In file included from ohci-hcd.c:136: > ohci-dbg.c:318: parse error > make[3]: *** [ohci-hcd.o] Error 1 due to a missing #include <linux/version.h> Here is a trivial patch for this.
-
David Brownell authored
is it guarenteed that callers have zero'd out the device before this is invoked? Else the following is necessary to prevent potential OOPS's derefencing interface->dev.driver in the generic device layer.
-
David Brownell authored
Here's an EHCI update, I'll send separate patches to sync 2.4 with this version. Changes in this version include: - An earlier locking update would give trouble on SPARC, where irqsave "flags" aren't flags. This resolves that issue by adding a module parameter to limit work done with irqs off. (Some net drivers do the same thing.) - Optionally (now #ifdef DEBUG) collects some statistics on IRQs and URBs. There are more IAA interrupts than I want to see, during extended usb-storage loading. - Adds a commented-out workaround for a problem I've seen on one VT8235. Seems likely an issue with this specific motherboard; another tester hasn't reported such issues. - Includes the jiffies time_after() patch from Tim Schmielau. - Minor tweaks to the hcd portability (get rid of another #if). - Minor doc/diagnostic/... updates
-
David Brownell authored
This USB patch updates the OHCI driver: - converts to relying on td_list shadowing the hardware's schedule; only collecting the donelist needs dma_to_td(), and td list handling works much like EHCI or UHCI. - leaves faulted endpoint queues (bulk/intr) disabled until the relevant drivers had a chance to clean up. - fixes minor bugs (unreported) in the affected code: * byteswap problem when unlinking urbs ... symptom would be data toggle confusion (since 2.4.2x) on big-endian cpus * latent bug if folk unlinked queue in LIFO order, not FIFO - removes unnecessary debug code; mostly de-BUG()ged The interesting fix is the "leave queues halted" one. As discussed on email a while back, this HCD fault handling policy (also followed by EHCI) is sufficient to let device drivers implement the two key fault handling policies that seem to be necessary: (a) Datagram style, where issues on one I/O won't affect the next unless the device halted the endpoint. The device driver can ignore most errors other than -EPIPE. (b) Stream style, where for example it'd be wrong to ever let block N+1 overwrite block N on the disk. Once the first URB fails, the rest would just be unlinked in the completion handler. As a consequence of using the td_list, you can now see urb queuing in action in the driverfs 'async' file. At least, if you look at the right time, or use drivers (networking, etc) that queue (bulk) reads for a long time.
-
Dave Kleikamp authored
In certain situations, dbNextAG set db_agpref to db_numag, with is one higher than the last valid value. This will eventually result in a trap.
-
Ingo Molnar authored
This fixes all xchg()'s and a preemption bug.
-
Ingo Molnar authored
This does the following things: - removes the ->thread_group list and uses a new PIDTYPE_TGID pid class to handle thread groups. This cleans up lots of code in signal.c and elsewhere. - fixes sys_execve() if a non-leader thread calls it. (2.5.38 crashed in this case.) - renames list_for_each_noprefetch to __list_for_each. - cleans up delayed-leader parent notification. - introduces link_pid() to optimize PIDTYPE_TGID installation in the thread-group case. I've tested the patch with a number of threaded and non-threaded workloads, and it works just fine. Compiles & boots on UP and SMP x86. The session/pgrp bugs reported to lkml are probably still open, they are the next on my todo - now that we have a clean pidhash architecture they should be easier to fix.
-
Linus Torvalds authored
-
http://linux-isdn.bkbits.net/linux-2.5.isdnLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-