- 01 May, 2004 9 commits
-
-
Paul Mackerras authored
This fixes a bug in the ppc64 signal delivery code where the signal number argument to a signal handler can get corrupted before the handler is called. The specific scenario is that a process is in a blocking system call when two signals get generated for it, both of which have handlers. The signal code will stack up two signal frames on the process stack (assuming the mask for the first signal delivered doesn't block the second signal) and return to userspace to run the handler for the second signal. On return from that handler the first handler gets run with an incorrect signal number argument because we end up with regs->result still having a negative value (left over from when the system call was interrupted) when it should be zero. This patch sets it to zero when we set up the signal frame (in three places; for 64-bit processes, and for 32-bit processes for RT and non-RT signals). The way we handle signal delivery and signal handler return using the regs->result field in ppc64 is more complicated than it needs to be. In ppc32 I have already simplified it and eliminated use of the regs->result field. I am going to do the same in the ppc64 code, but I think this patch should go in for now to fix the bug. The patch also fixes a couple of places where we were unnecessarily and incorrectly truncating the regs->result value to 32 bits (sys32_sigreturn and sys32_rt_sigreturn return a long value, as all syscalls do, and if regs->result is negative we need those syscalls to return a negative value). Thanks to Maneesh Soni for identifying the specific circumstances under which this bug shows up.
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/net-2.6
-
Herbert Xu authored
There is a bug in listening_get_first() which used by /proc/net/tcp* where it wasn't looping through all the sockets in each hash chain. This problem doesn't show up unless the first socket in a chain doesn't match the family that is being looked up. The following patch fixes this by getting rid of listening_get_first() altogether.
-
Denis Vlasenko authored
There's a subtle problem with "inline" usage in <linux/string.h>: <linux/string.h>: this pulls in __constant_c_and_count_memset() <linux/mm.h>: this pulls <compiler.h>, re-defining inline == __inline__ __attribute__((always_inline)). But by now it is too late! The compiler has already seen the bare "inline" in string.h, and hasn't inlined it. Result: # grep __constant System.map c0144670 t __constant_c_and_count_memset c0145c60 t __constant_c_and_count_memset ... many more copies of this function ... Fixed by including <compiler.h> early enough.
-
bk://are.twiddle.net/axp-2.6/Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Richard Henderson authored
-
David S. Miller authored
into nuts.davemloft.net:/disk1/BK/net-2.6
-
Bartlomiej Zolnierkiewicz authored
From: Patrick Wildi <patrick@wildi.com> On OSB4 the hwif->ultra_mask is set to not support UDMA. Unfortunately in that case svwks_config_drive_xfer_rate() falls through to the end of the function, instead of trying other DMA modes.
-
- 30 Apr, 2004 20 commits
-
-
Linus Torvalds authored
- Correctly handle wraparound on offset+len - fix FADV_WILLNEED handling of non-page-aligned (offset+len) Let's hope we don't need to fix the fixed fix.
-
Andrew Morton authored
On sparc64 toolchain: drivers/built-in.o(.init.text+0xaf8c): In function `usb_init': : undefined reference to `usbfs_cleanup' usb_init() is __init and usbfs_cleanup() is __exit. No can do.
-
bk://bk.arm.linux.org.uk/linux-2.6-rmkLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Nicolas Pitre authored
Patch from Nicolas Pitre
-
Nicolas Pitre authored
Patch from Nicolas Pitre ... including the new PXA270 aka Bulverde.
-
Nicolas Pitre authored
Patch from Nicolas Pitre Before previous patch this driver compiled OK but was buggy. Now it doesn't compile anymore as the bogus macro has been deleted. Fix that in any case. The same fix has been committed to the MTD CVS already, but please forward this to Linus otherwise Lubbock won't compile from kernel.org tree anymore (waiting for dwmw2 to update this might prove ... hrm ... long)
-
Nicolas Pitre authored
Patch from Nicolas Pitre Too many macro with too generic names. Let's remove unneeded code and redundant/unused macros. This also prevent namespace clash with upcoming patches.
-
Nicolas Pitre authored
Patch from Nicolas Pitre Minor cleanup of Lubbock specific code, like removal of redundant mappings. Also a prerequisite for some upcoming patches.
-
Nicolas Pitre authored
Patch from Nicolas Pitre virtual address mapping can change.
-
Andrew Morton authored
The recent slab alignment changes broke an unknown number of architectures (parisc and x86_64 for sure) by causing task_structs to be insufficiently aligned. We need good alignemnt because architectures do things like dumping FP state into the task_struct with instructions which require particular alignment (I think). So change the default alignment to L1_CACHE_BYTES, which is what we used to have, via SLAB_HW_CACHE_ALIGN.
-
Russell King authored
This patch updates the MTD concatenating driver from MTD CVS, which fixes issues found with this driver which concatenates multiple MTD devices into one MTD device. From David Woodhouse, through CVS: revision 1.8 date: 2003/06/30 11:01:26; author: dwmw2; state: Exp; lines: +5 -5 I will not commit stuff whilst pissed I will not commit stuff whilst pissed revision 1.7 date: 2003/06/29 21:26:34; author: dwmw2; state: Exp; lines: +9 -9 Fix ecc/oob subdev comparisions revision 1.6 date: 2003/06/25 12:37:50; author: dwmw2; state: Exp; lines: +14 -6 Don't pretend to have {read,write}_{oob,ecc} functions if subdevices don't revision 1.5 date: 2003/06/25 12:21:16; author: dwmw2; state: Exp; lines: +390 -397 coding style cleanup
-
http://lia64.bkbits.net/to-linus-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
David Mosberger authored
-
Andrew Morton authored
POSIX sez: "If len is zero, all data following offset is specified."
-
Andrew Morton authored
From: David Gibson <david@gibson.dropbear.id.au> The 32->64 bit syscall translation layer on ppc64 incorrectly sign- extends rather than zero-extending the second parameter to shmget(), which should be a size_t. This means that it is impossible to shmget() more 2GB or more from a 32-bit process.
-
Andrew Morton authored
From: "Randy.Dunlap" <rddunlap@osdl.org> From: Pavel Machek <pavel@ucw.cz> Kill uninformative boot-time message.
-
Andrew Morton authored
From: Arnd Bergmann <arnd@arndb.de> Enable basic profiling code on s390 depending on CONFIG_PROFILING, not CONFIG_OPROFILE. CONFIG_PROFILING should enable the generic profiling code here, even if CONFIG_OPROFILE is not set. Note that the identical code on i386 is always compiled in, regardless of CONFIG_PROFILING and CONFIG_OPROFILE.
-
Andrew Morton authored
From: Michael Hunold <hunold@convergence.de> unfortunately it's possible to remove a DVB adapter module even if a DVB network device has been set up using this adapter. The attached patch fixes this problem.
-
Andrew Morton authored
From: Matt Tolentino <metolent@snoqualmie.dp.intel.com> This trailing space in sysfs contents is not needed.
-
Andrew Morton authored
From: Trond Myklebust <trond.myklebust@fys.uio.no> fs/nfs/direct.c: In function `nfs_direct_IO': fs/nfs/direct.c:458: warning: int format, different type arg (arg 2)
-
- 29 Apr, 2004 11 commits
-
-
Andrew Morton authored
From: Adam Belay <ambx1@neo.rr.com> Fix http://bugme.osdl.org/show_bug.cgi?id=2540 It prevents PnP detection if devices were already detected by SuperIO.
-
Trond Myklebust authored
Ensure that when we send the SETATTR call after doing an O_EXCL create, we always set the atime and ctime fields. See RFC1813 for details on why the server is allowed to clobber these two fields in order to cache a verifier that protects CREATE in case of a timeout+resend from the client. Patch is by Olaf Kirch.
-
Stephen Hemminger authored
-
http://lia64.bkbits.net/to-linus-2.5Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Pat Gefre authored
Move HW interrupt register init. to the proper place and don't force an interrupt if the IRQ is disabled or in progress.
-
David Mosberger authored
No pun intended, but X can't work if it can't turn on eXecute-permission on the some data pages...
-
Hugh Dickins authored
Just found I never changed type of move_page_tables when I changed it to return offset: einormous mremap moves would fail on 64-bit.
-
David Mosberger authored
into tiger.hpl.hp.com:/data1/bk/lia64/to-linus-2.5
-
Andrew Morton authored
To avoid various livelocks, the writeback code parks all the dirty inodes onto sb->s_io and then works through that list until it is empty. This assumes that each inode will be moved to some other list as it is processed. But there's a loophole: if the ->writepages() implementation does nothing at all, the inode is not redirtied (which would move it to s_dirty). This causes s_io to not empty and pdflush goes nuts. So when this happens, move the inode onto s_dirty within __sync_single_inode(). Use list_move_tail() to attempt to preserve the time-ordering of the s_dirty list.
-
Andrew Morton authored
From: Mikael Pettersson <mikpe@user.it.uu.se> This patch fixes three warnings from gcc-3.4.0 in 2.6.6-rc3: - arch/i386/pci/pcbios.c: use of "+m" constraint - drivers/char/ftape/: use of cast-as-lvalue - drivers/char/ftape/: __attribute__((packed)) on something containing only bytes
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> Makes the Motorola PrPMC800 platform functional again. This comes from Randy Vinson <rvinson@mvista.com>.
-