- 06 Jun, 2003 7 commits
-
-
Andrew Morton authored
From: David Mosberger <davidm@napali.hpl.hp.com>, Christoph Hellwig I believe this is the last outstanding piece that prevents ia64 from being fully in sync with Linus' tree (yes, there are some minor ACPI changes outstanding and a toolchain bug that's left to fix, but other than that, I think we're clean). Many architectures (alpha, ia64, ppc, ppc64, sparc, and sparc64 at least) use a syscall convention which provides for a return value and a separate error flag. On those architectures, it can be beneficial if the kernel provides a mechanism to signal that a syscall call has completed successfully, even when the returned value is potentially a (small) negative number. The patch below provides a hook for such a mechanism via a macro called force_successful_syscall_return(). On x86, this would be simply a no-op (because on x86, user-level has to be hacked to handle such cases). On Alpha, it would be something along the lines of: #define force_successful_syscall_return() ptregs->r0 = 0 where "ptregs" is a pointer to the user's ptregs structure of the current task. On ia64, we have been using this for a long time: static inline void force_successful_syscall_return (void) { ia64_task_regs(current)->r8 = 0; } The other architectures (ppc, ppc64, sparc, and sparc64) currently have no mechanism to force a syscall return to be successful. But since the syscall convention already provide for a separate error flag, the arch maintainers could change this if they wanted to. There are only 3 places in the platform-independent portion of the kernel that need this macro: - memory_lseek() in drivers/char/mem.c - fs/fcntl.c for F_GETOWN - lseek for /proc/mem in fs/proc/array.c Ideally, there are a couple of other places that could benefit from this macro: - sys_getpriority() - sys_shmat() - sys_brk() - do_mmap2() - do_mremap() but these are not so critical, because the can be worked around in platform-specific code (e.g., see arch/ia64/kernel/sys_ia64.c). Note that for the above 3 cases, handling them in user level is rather suboptimal: - it would affect all lseek() syscalls, even though only /proc/mem and /dev/mem need the special treatment (at least until there are filesystems that can handle files >= 2^63 bytes) - all fcntl() calls would be affected, even though only F_GETOWN needs the special treatment so I think handling these in the kernel for the platforms that can makes tons of sense. The only limitation of force_successful_syscall_return() is that it doesn't help with system calls performed by the kernel. But the kernel does that so rarely and for such a limited set of syscalls that this is not a real problem.
-
Andrew Morton authored
The addition of more fields to irq_desc_t may have broken compilation of other architectures. Go through and C99ify them (was needed anyway).
-
Andrew Morton authored
Attempt to do something intelligent with IRQ handlers which don't return IRQ_HANDLED. - If they return neither IRQ_HANDLED nor IRQ_NONE, complain. - If they return IRQ_NONE more than 99900 times in 100000 interrupts, complain and disable the IRQ. I did have it at 750-in-1000, but someone had an otherwise-functioning system which triggered it. The 99.9% ratio is designed to address the problem wherein the babbling device shares an IRQ with a good device. We don't want the good device's trickle of IRQ_HANDLED callouts to defeat the lockup detector. (fat chance os this working right). - Add a kernel boot parameter `noirqdebug' to turn the whole thing off.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> OK, this does the *minimum* required to support DEFINE_PER_CPU inside modules. If we decide to change kmalloc_percpu later, great, we can turf this out. Basically, overallocates the amount of per-cpu data at boot to at least PERCPU_ENOUGH_ROOM if CONFIG_MODULES=y (arch-specific by default 32k: I have only 7744 bytes of percpu data in my kernel here, so makes sense), and a special allocator in module.c dishes it out.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Several tweaks to the kmalloc_percpu()/kfree_percpu() interface, to allow future implementations to be more flexible, and make easier to use now we can see how it's actually being used. 1) No flags argument: GFP_ATOMIC doesn't make much sense, 2) Explicit alignment argument, so we don't have to give SMP_CACHE_BYTES alignment always, 3) Zeros memory, since most callers want that and it's not entirely trivial, 4) Convenient type-safe wrapper which takes a typename, and 5) Rename to alloc_percpu/__alloc_percpu, since usage no longer matches kmalloc.
-
Roman Zippel authored
This fixes a problem which can show up with the new select facility, e.g. a symbol is forced to 'y', so we should never even try to change such symbols.
-
Roman Zippel authored
This is an important fix to allow changing boolean symbols, whose dependency is 'm'. All internal symbol states must be converted from the tristate into boolean the state. I missed this change while adding expression support for defaults, please apply.
-
- 05 Jun, 2003 33 commits
-
-
Jeff Garzik authored
into redhat.com:/garz/repo/net-drivers-2.5
-
Hideaki Yoshifuji authored
-
Scott Feldman authored
dev_ioctl already checks capable(CAP_NET_ADMIN) for SOICETHTOOL, so privileged reference are not necessary.
-
Scott Feldman authored
Add 10GbE support for ethtool.
-
Zwane Mwaikambo authored
This one should be safe as we're protected by the xmit_lock in all instances
-
Jeff Garzik authored
-
Simon Kelley authored
Attached is a driver for Atmel at76c50x WiFi cards. This code started out as a GPL release from Atmel of pretty horrible quality and I've extensively re-worked it with the aim of making it acceptable in the kernel. Please could you take a look and either pass it into the patch stream or let me know what's wrong with it? The code has been tested on at least three different brand cards by different people. Jean Tourrilhes took a look at an earlier version an was positive. He's put incorporating this into 2.6 as a priority 1. The patch works fine on 2.5.70. The firmware issue has been addressed now. The only firmware in the driver is a small stub which reads the MAC address from NVRAM on the card. The source for that is included so there are no GPL issues. The main firmware is loaded from userspace using Manuel Estrada Sainz's sysfs firmware class. I know that the patch for that has been accepted but it hasn't turned up anywhere I can see yet. The driver compiles fine even without the firmware class. I've made a package of the firmware images which is available from my website. The remaining issues with the driver are migrating PCMCIA to the new driver model and PCI support. I'm happy to produce followup patches as the PCMCIA system gets evolved to the new driver model: the timing on that is controlled by others. This set of chips includes a PCI version and the driver should support that, but AFAIK there is no PCI hardware available anywhere. If Atmel can provide me with some it will be simple to add PCI support. The driver uses the CRC32 library module and the firmware loader. I've not put in dependencies on those, but when the lastest set of patches go into Kconfig I'll set it up so that selecting the Atmel driver selects CRC32 and FW_LOADER too.
-
Stephen Hemminger authored
Inspecting the sb1000 driver showed some interesting bugs: - net device pointer is used before the device is allocated; gcc does catch this. - unregister is called even though device not registered successfully - net device is not freed on remove. Compiles but don't have hardware to test. Don't know how it ever worked though.
-
Hollis Blanchard authored
Two ioctl functions in sound/oss/awe_wave.c were directly dereferencing a user-supplied pointer in a few places.
-
Linus Torvalds authored
Jörn missed a few places of FAR conversion in inflate
-
Jörn Engel authored
Remove the stale support for K&R function declarations through the OF() macro. This is the last patch to clean up zconf.h, at least for now.
-
Jörn Engel authored
This nice macro must have been one of the good intentions on the road to hell. Completely unused. :)
-
Jörn Engel authored
Just a simple s/ZEXPORT//.
-
Jörn Engel authored
This one was just simple s/ZEXTERN/extern/g.
-
Jörn Engel authored
Remove unused __32BIT__ and STDC macros
-
Jörn Engel authored
This removes FAR, the typedefs using FAR (Bytef and friends) and the function prototypes for zalloc and zfree that should have gone earlier already.
-
bk://kernel.bkbits.net/gregkh/linux/tty-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
bk://ldm.bkbits.net/linux-2.5-coreLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Greg Kroah-Hartman authored
-
Patrick Mochel authored
What happens when you get a patch that does something an applied patch already does, but a little better, and merge it sloppily: You end up calling the wrong function because you've defined equivalent methods in two places. Bad Pat, Bad.
-
bk://kernel.bkbits.net/gregkh/linux/i2c-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
bk://kernel.bkbits.net/gregkh/linux/pci-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Patrick Mochel authored
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-core
-
Greg Kroah-Hartman authored
This fixes a race with looking at files in /sys/class/tty/ and removing a tty device.
-
Patrick Mochel authored
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/pci-2.5
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/gregkh-2.5
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/tty-2.5
-
Patrick Mochel authored
From Mike Anderson: I have been using it on an outstanding patch for scsi_set_host_offline. It appears to work fine in my testing.
-
Greg Kroah-Hartman authored
into kroah.com:/home/greg/linux/BK/i2c-2.5
-
Kurt Robideau authored
Update the Rocketport driver
-
Greg Kroah-Hartman authored
-
Stephen Hemminger authored
There is a typo in the current 2.5.70 bk version of class_device_release that was not there in my original patch. By confusing the class and the class_device, the release function oops. cd->release is always the function itself (class_device_release), cls->release is the one setup for the class (net_class in my case).
-