ChangeSet@1.2226, 2005-01-05 16:12:23-08:00, dhowells@redhat.com [PATCH] FRV: Update banner comments at the top of frv arch files This updates the banner comments at the top of the frv arch files so that they don't proclaim to be part of the m68k arch and also to attribute responsibility for them to myself. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2225, 2005-01-05 16:12:09-08:00, dhowells@redhat.com [PATCH] Make pud_alloc() and pmd_alloc() non-existant on !MMU This makes the general pud_alloc() and pmd_alloc() inline functions unavailable if CONFIG_MMU is not defined. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2224, 2005-01-05 16:11:57-08:00, dhowells@redhat.com [PATCH] FRV: provide stub asm/a.out.h This provides a stub asm/a.out.h for the FRV arch. This shouldn't be necessary as FRV doesn't support the AOUT binfmt, but it seems to be required by some archs for compilation of fs/exec.c. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2223, 2005-01-05 16:11:43-08:00, dhowells@redhat.com [PATCH] FRV: remove excess argument passed to expand_stack() This removes the excess argument being passed to expand_stack() as it isn't needed in -bk8. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2222, 2005-01-05 16:11:30-08:00, dhowells@redhat.com [PATCH] FRV: vperfctr syscalls don't exist in -bk8 This marks the vperfctr syscalls as unavailable as they aren't actually implemented in -bk8. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2221, 2005-01-05 15:46:52-08:00, torvalds@ppc970.osdl.org fbmem: don't mix code/declarations. That messes up gcc-2.95 ChangeSet@1.2220, 2005-01-05 15:36:59-08:00, clameter@sgi.com [PATCH] Make page allocator aware of requests for zeroed memory Thisintroduces __GFP_ZERO as an additional gfp_mask element to allow to request zeroed pages from the page allocator: - Modifies the page allocator so that it zeroes memory if __GFP_ZERO is set - Replace all page zeroing after allocating pages by prior allocations with allocations using __GFP_ZERO Signed-off-by: Christoph Lameter Signed-off-by: Linus Torvalds ChangeSet@1.1971.2.1, 2005-01-05 13:12:57-08:00, davem@nuts.davemloft.net [SPARC64]: We really do need to mask the start/end args to flush_tlb_pgtables(). The callers used to do it, but with the 4-level page table code this is no longer the case. Noticed by Nick Piggin and Andrew Morton. Signed-off-by: David S. Miller ChangeSet@1.2218, 2005-01-05 11:12:32-08:00, torvalds@ppc970.osdl.org Merge bk://drm.bkbits.net/drm-linus into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2217, 2005-01-05 11:11:30-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] Fix megaraid oops on unload Reported by Wakko Warner. The megaraid driver is trying to remove a non-empty directory in procfs. Trivially fixed by first unregistering the driver, which will remove all the per-controller files in the megaraid directory, and only _then_ removing the megaraid /proc directory entry. ChangeSet@1.2216, 2005-01-05 19:11:47+01:00, dwmw2@shinybook.infradead.org Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 ChangeSet@1.1938.1.215, 2005-01-05 19:08:53+01:00, domen@coderock.org MTD: Remove gratuitous (void *) casts. Signed-off-by: Domen Puncer Signed-off-by: David Woodhouse ChangeSet@1.1938.1.214, 2005-01-05 18:53:19+01:00, dwmw2@shinybook.infradead.org MTD: Remove long-obsolete DiskOnChip 1000 driver. ChangeSet@1.1938.1.213, 2005-01-05 18:47:09+01:00, dwmw2@shinybook.infradead.org MTD: Cosmetic ident catchup. Let the CVS idents catch up where changes have been made upstream. Signed-off-by: David Woodhouse ChangeSet@1.1938.1.212, 2005-01-05 18:43:36+01:00, dwmw2@shinybook.infradead.org [MTD] add missing dependencies on MTD_PARTITIONS Signed-off-by: Adrian Bunk Signed-off-by: David Woodhouse ChangeSet@1.1938.1.211, 2005-01-05 18:39:49+01:00, dwmw2@shinybook.infradead.org MTD: Fix config option name in Makefile for IBM 750FX/750GX boards. Also some cosmetic fixes in the map driver itself. Signed-off-by: David Woodhouse ChangeSet@1.1938.1.210, 2005-01-05 18:36:19+01:00, dwmw2@shinybook.infradead.org MTD: include moduleparam.h in DiskOnChip driver Signed-off-by: David Woodhouse ChangeSet@1.1938.1.209, 2005-01-05 18:25:43+01:00, rpurdie@rpsys.net MTD SharpSL NAND driver: Calculate partitions sizes at runtime. This allows one kernel build to support multiple machines. Signed-off-by: Richard Purdie Signed-off-by: David Woodhouse ChangeSet@1.1938.1.208, 2005-01-05 18:22:57+01:00, joern@wh.fh-wedel.de [MTD] New blockdev-backed 'fake' MTD device. Rewritten alternative driver by Gareth Bult and Jörn Engel. Signed-off-by: David Woodhouse ChangeSet@1.1938.1.207, 2005-01-05 18:17:59+01:00, juhl-lkml@dif.dk [MTD] remove unnecessary casts from drivers/mtd/maps/nettel.c and kill two warnings I took a look at the cause for these warnings in the 2.6.10 kernel, drivers/mtd/maps/nettel.c:361: warning: assignment makes pointer from integer without a cast drivers/mtd/maps/nettel.c:395: warning: assignment makes pointer from integer without a cast and as far as I can see the casts in there (to unsigned long and back to void*) are completely unnessesary ('virt' in 'struct map_info' is a void __iomem *), and getting rid of those casts buys us a warning free build. Signed-off-by: Jesper Juhl Signed-off-by: David Woodhouse ChangeSet@1.1938.1.206, 2005-01-05 18:15:36+01:00, dwmw2@shinybook.infradead.org [MTD] Bug in 2.6.10 mtd driver for physmem mapped flash chips The patch below fixes a small but fatal bug in the code that handles non-buswidth-aligned writes. The problem is that the code used the same index in both map_word and buf, therefore putting the wrong words in the map_word that partially contains old data and partially contains new data. The result: corrupt data is being written. Signed-off-by: Koen Martens Signed-off-by: David Woodhouse ChangeSet@1.2215, 2005-01-04 21:57:13-08:00, rbultje@ronald.bitfreak.net [PATCH] zr36067 driver - reduce stack size usage Reduce local variable (large struct) stack usage in zoran_do_ioctl() from 1028 bytes to 324 bytes (on x86-32) by declaring & using only 1 "struct zoran_jpg_settings" instead of 5 instances of it. Reduced from 5 * 180 bytes to 1 * 180 bytes, plus other locals in each case. Signed-off-by: Randy Dunlap Signed-off-by: Ronald S. Bultje Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2214, 2005-01-04 21:57:00-08:00, rbultje@ronald.bitfreak.net [PATCH] zr36067 driver - ppc/be port Attached patch adds some host<->le conversion functions for 32-bit integers. The hardware expects 32-bit integers, which the host does not always provide. With the attached patch, the hardware runs fine on PPC hardware as well. Original patch by Ben Capper . Signed-off-by: Ronald S. Bultje Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2213, 2005-01-04 21:56:47-08:00, rbultje@ronald.bitfreak.net [PATCH] zr36067 driver - correct jpeg app/com markers Attached patch fixes the writing of APP (application-specific) and COM (comment) markers in the JPEG stream as generated by the zr36050 or zr36060 encoders, both part of the zr36067 driver. During separating those bits out of the main zoran driver, we accidently removed the interface through which applications can adapt those markers, replacing them by unchangeable (static) markers. Some video formats, particularly Quicktime and AVI, require specific container-specific markers in the stream for interlaced streams. Those markers specify field order and such. The attached patch re-adds this feature so that decoders depending on those container-specific markers for correct playback will work correctly. Signed-off-by: Ronald S. Bultje Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2212, 2005-01-04 21:56:34-08:00, adaplas@hotpop.com [PATCH] fbdev: Reduce stack usage of intelfb Reduce stack usage in intelfb_set_par() from 2404 bytes (on x86-32) to 12 bytes. Signed-off-by: Randy Dunlap Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2211, 2005-01-04 21:56:21-08:00, adaplas@hotpop.com [PATCH] fbdev: Fix default timings in vga16fb From: Martin Wilck ..I am asking because we have encountered a video device that obviously has problems displaying the standard mode of the vga16fb driver... The default timings give a vtotal of 529 instead of 525 in 640x480@60. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2210, 2005-01-04 21:56:08-08:00, adaplas@hotpop.com [PATCH] fbdev: Add Viewsonic PF775a to broken display database Add Viewsonic PF775a to broken display database Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2209, 2005-01-04 21:55:55-08:00, adaplas@hotpop.com [PATCH] fbdev: Do a symbol_put for each symbol_get in savagefb Do a symbol_put() for each symbol_get() in savagefb. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2208, 2005-01-04 21:55:42-08:00, adaplas@hotpop.com [PATCH] fbdev: Check return value of fb_add_videomode The function fb_add_videomode can fail, check return value. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2207, 2005-01-04 21:55:29-08:00, adaplas@hotpop.com [PATCH] fbcon/fbdev: Add blanking notification Add blanking event to the notifier call chain. This can be used by fbcon to blank/unblank the console, and theoretically, by backlight drivers. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2206, 2005-01-04 21:55:16-08:00, adaplas@hotpop.com [PATCH] fbdev: Revive global_mode_option The global_mode_option is useful for choosing the initial video mode without specifying the driver, ie 'video=1024x768@60'. After the initialization cleanup, this variable was accidentally removed. This patch brings it back again. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2205, 2005-01-04 21:55:03-08:00, adaplas@hotpop.com [PATCH] fbdev: Revive BIOS-less booting for Rage XL cards The file drivers/video/aty/xlinit.c is currently unused. This file might be useful to boot some types of RageXL cards on non-x86 platforms. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2204, 2005-01-04 21:54:49-08:00, adaplas@hotpop.com [PATCH] fbdev: Cleanup i2c code of rivafb - Change timings to as close as possible to VESA specs and use msecs_to_jiffies() instead of hard-coded number - Attempt to read all i2c busses regardless of chipset type Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2203, 2005-01-04 21:54:37-08:00, jbarnes@engr.sgi.com [PATCH] fix ROM enable/disable in r128 and radeon fb drivers Both the r128 and radeon fb drivers do bad things with the PCI BAR corresponding to their option ROM. They incorrectly use the host address instead of the BAR address to enable the ROM, and then incorrectly lose the original value on unmap. This patch fixes both problems. Tested on Altix. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2202, 2005-01-04 21:54:23-08:00, jim.hague@acm.org [PATCH] pm2fb: fix fbi image display on 24 bit depth big endian Handle 24bit on big-endian by leaving the hardware in RGB and using the colour offset to reverse red/blue. Leaving the hardware in RGB means that fbi displays images correctly (abeit fortuitously) and the console is correct, thanks to a recent patch to the console code correcting an endian bug in fbcon_putc(). Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2201, 2005-01-04 21:54:11-08:00, jim.hague@acm.org [PATCH] pm2fb: fix big-endian (Sparc) support A collection of changes that taken together makes the driver work correctly on big-endian systems, specifically Sparc. - Remove old PM2FB_BE_APERTURE define and use __BIG_ENDIAN throughout. PM2FB_BE_APERTURE wasn't defined on Sparc; this was incorrect. - Replace colour mode magic numbers with suitable constants, and tidy colour mode handling. Use BGR not RGB at 24bit on big-endian. - Replace aperture magic numbers with constants. Rearrange code to emphasise second aperture is not used. Add short explanations of aperture settings for big endian. - Update comments to note that the driver now works on Sparc. - Revisit 32bit depth colour offsets and ensure transp is set. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2200, 2005-01-04 21:53:58-08:00, jim.hague@acm.org [PATCH] pm2fb: use modedb in modules - modedb is now available in modules. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2199, 2005-01-04 21:53:45-08:00, jim.hague@acm.org [PATCH] pm2fb: save/restore memory config - From 2.4 driver: Save memory config registers at init and restore after card reset. Reset card on mode change. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2198, 2005-01-04 21:53:32-08:00, jim.hague@acm.org [PATCH] pm2fb: module parameters and module-conditional code - Update MODULE_PARM to module_param. - Omit some non-module code from module builds and vice-versa. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2197, 2005-01-04 21:53:19-08:00, kraxel@bytesex.org [PATCH] fbdev: sysfs fix Make sure the fbdev sysfs class is registered before all drivers, otherwise some symlinks are missing. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2196, 2005-01-04 21:53:06-08:00, thomas@winischhofer.net [PATCH] fbdev: SiS framebuffer driver update 1.7.17 attached is an update for sisfb, lifting it up to version 1.7.17. It contains all changes done behind my back by other people (viro, torvalds, adaplas) in the meantime. Furthermore, - all remaining sparse warnings were fixed (mainly caused by the ROM code) - problems with very old and brand new BIOSes from SiS were fixed, - LCD setup was simplified, allowing more display modes than before, - UMC/charter bridge type handling was added, - a code clean-up was performed, the new FB_BLANK-flags were taken over, VBLANK status info was corrected, etc. Signed-off-by: Thomas Winischhofer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2195, 2005-01-04 21:52:52-08:00, wli@holomorphy.com [PATCH] invalidate_inodes speedup With Kirill Korotaev invalidate_inodes() can take a large amount of time searching the inode lists for inodes which belong to this fs. Add a separate list for this search. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2194, 2005-01-04 21:52:38-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: clear the recall_lru of delegations at shutdown Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2193, 2005-01-04 21:52:26-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add to the laundromat service for delegations. Walk the recall_lru and reap unused or timed-out delegations. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2192, 2005-01-04 21:52:12-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add the DELEGRETURN operation. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2191, 2005-01-04 21:51:59-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add checking of delegation stateids to nfs4_preprocess_stateid_op. Call release_delegation on delegreturn (DELEG_RET). Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2190, 2005-01-04 21:51:46-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: check for openmode violations given a delegation stateid. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2189, 2005-01-04 21:51:33-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: remove unnecessary stateowner existence check. At OPEN: Check for delegations in the process of being recalled. Attempt to hand out a delegation. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2188, 2005-01-04 21:51:20-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: attempt to hand out a delegation Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2187, 2005-01-04 21:51:07-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: helper functions for deciding to grant a delegation. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2186, 2005-01-04 21:50:54-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: kernel thread for delegation callback Any task can call break_lease or time_out_leases on a v4 delegated file which results in a recall callback rpc sent to the NFSv4 client holding the delegation, and/or the FL_LEASE to be removed. Spawn a kernel thread to perform the callback. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2185, 2005-01-04 21:50:42-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: delegation recall callback rpc. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2184, 2005-01-04 21:50:29-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: delay nfsd_colse for delegations until reaping Because nfsd_close() can call locks_remove_flock() which removes leases, delay nfsd_close() for delegations until the delegation is reaped. Don't release an nfs4_file struct with delegations. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2183, 2005-01-04 21:50:16-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: changes to expire_client ... to shutdown the rpc callback client and remove all client associated delegations Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2182, 2005-01-04 21:50:03-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add the delegation release and free functions Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2181, 2005-01-04 21:49:50-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: find a delegation for a file given a stateid. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2180, 2005-01-04 21:49:38-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: allocate and initialize the delegation structure. Declare and initialize the recall_lru list. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2179, 2005-01-04 21:49:25-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add structures for delegation support Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2178, 2005-01-04 21:49:12-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: get rid of the special delegation_stateid_t, use the existing stateid_t. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2177, 2005-01-04 21:48:59-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: check for existence of file_lock parameter inside of the kernel lock. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2176, 2005-01-04 21:48:47-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: probe the callback path upon a successful setclientid_confirm Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2175, 2005-01-04 21:48:34-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: preparation for delegation: client callback probe client callback rpc to probe the callback channel on setclientid with a null request. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2174, 2005-01-04 21:48:20-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: count the nfs4_client structure usage ... to protect the null (probe) callback asynchronous rpc's reference. Atomically inc and set the cb_set flag. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2173, 2005-01-04 21:48:08-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: check the callback netid in gen_callback. since we only support tcp, don't save the netinfo. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2172, 2005-01-04 21:47:55-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preparation for delegation state. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2171, 2005-01-04 21:47:42-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: trivial cleanup Trim a couple redundant comments, minor whitespace cleanup. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2170, 2005-01-04 21:47:29-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: fix dropit return We need to handle nfserr_dropit as a special case here, since we don't want to return it in the rdattr_error attribute. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2169, 2005-01-04 21:47:16-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: simplify control flow Replace series of if's by a switch, remove (now unnecessary) label "out". Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2168, 2005-01-04 21:47:03-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: simplify error handling Minor simplification of error handling in encode_dirent. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2167, 2005-01-04 21:46:50-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: move rdattr_error code to new function Move code to encode the special rdattr_error attribute to nfsd4_encode_rdattr_error(). Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2166, 2005-01-04 21:46:37-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: simplify nfs4_encode_dirent_fattr Make nfsd4_encode_dirent_fattr() slightly more concise. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2165, 2005-01-04 21:46:24-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: more readdir attribute encoding to new function Move readdir attribute encoding to nfsd4_encode_dirent_fattr(), remove the (no-longer used) error label. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2164, 2005-01-04 21:46:12-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: superfluous local variables The local variables bmval0 and bmval1 turn out not to really help much. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2163, 2005-01-04 21:45:59-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: superfluous assignment Remove unused assignment Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2162, 2005-01-04 21:45:46-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4 encode_dirent cleanup No sensible client is ever going to request only the RDATTR_ERROR attribute, so there's no point optimizing for that case. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2161, 2005-01-04 21:45:32-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: use the fsid export option when returning the fsid attribute Return the special NFSv4 pseudo filesystem fsid (0/0) in a GETATTR on an NFSv4 pseudo filesystem node. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2160, 2005-01-04 21:45:20-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: fix fileid in readdir responses We were reporting mounted_on fileid instead of fileid in readdir responses. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2159, 2005-01-04 21:45:08-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: rpcsec_gss: comparing pointer to 0 instead of NULL Just noticed while fixing some other sparse-related stuff. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2158, 2005-01-04 21:44:55-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: fix open_downgrade decode error. Fix open downgrade decode error. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2157, 2005-01-04 21:44:42-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: svcrpc: share code duplicated between auth_unix and auth_null Call a helper function from svcauth_unix_accept() and svcauth_null_accept() instead of duplicating code. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2156, 2005-01-04 21:44:30-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: svcrpc: auth_null fixes Fix some discrepencies between the server-side auth_null and auth_unix rpc code: in particular, make sure we return an auth error in the auth_null case instead of dropping when we fail to match an export entry, and make sure such responses are encoded correctly. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2155, 2005-01-04 21:44:16-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd_translate_wouldblocks -EAGAIN has a special treatment in the nfsd code since it's used to indicate that an upcall has been initiated and that a request should be dropped pending the upcall result. But when the break_lease functions return -EWOULDBLOCK (==-EAGAIN on most architectures), we actually prefer to return nfserr_jukebox. So translate -EAGAIN returns to -ETIMEDOUT (which will be translated to nfserr_jukebox). Undo the mapping of -EWOULDBLOCK to nfserr_jukebox, since on most architectures that has the undesireable effect of mapping -EAGAIN to nfserr_jukebox. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2154, 2005-01-04 21:44:04-08:00, penberg@cs.helsinki.fi [PATCH] oprofile: minor cleanups This patch has the following cleanups to oprofile: - Remove spurious casts - vfree() accepts NULL pointers so remove redundant test - The parameter for __free_cpu_buffer() is not used so merge the function with free_cpu_buffer() Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2153, 2005-01-04 21:43:51-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update sparc64 for api changes oprofile sparc64 arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2152, 2005-01-04 21:43:39-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update sh for api changes oprofile sh arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2151, 2005-01-04 21:43:26-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update s390 for api changes oprofile s390 arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2150, 2005-01-04 21:43:13-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update parisc for api changes oprofile parisc arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2149, 2005-01-04 21:43:03-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update ppc for api changes oprofile ppc64 arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2148, 2005-01-04 21:42:50-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update arm for api changes oprofile arm arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2147, 2005-01-04 21:42:37-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update alpha for api changes oprofile alpha arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2146, 2005-01-04 21:42:25-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: ia64 support for oprofile stack trace sampling oprofile ia64 arch updates, including some internal API changes and support for stack trace sampling. Signed-off-by: John Levon Signed-off-by: Keith Owens Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2145, 2005-01-04 21:42:11-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: i386 support for stack trace sampling oprofile i386 arch updates, including some internal API changes and support for stack trace sampling. (akpm: I added a nasty hack to fix the x86_64 build. However the feature is untested on x86_64 and probably doesn't work yet). Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2144, 2005-01-04 21:41:57-08:00, gnb@sgi.com [PATCH] oprofile: backtrace operation does not initialized Allow stack tracing to work when sampling on timer is forced using the timer=1 boot option. Reported by Akinobu Mita. Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2143, 2005-01-04 21:41:45-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: arch-independent code for stack trace sampling oprofile arch-independent updates, including some internal API changes and support for stack trace sampling. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2142, 2005-01-04 21:41:31-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: add check_user_page_readable() Add check_user_page_readable() for kernel modules which need to follow user space addresses but can't use get_user(). Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2141, 2005-01-04 21:41:17-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: eliminate unaligned accesses by policy loading code This patch rewrites the SELinux next_entry() function and all callers to copy entry data from the binary policy into properly aligned buffers, eliminating unaligned accesses. This patch is in response to a bug report from Prarit Bhargava for SELinux and ia64, and he has confirmed that this patch eliminates the unaligned access warnings. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2140, 2005-01-04 21:41:04-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: add member node to selinuxfs This patch adds a member node to selinuxfs to export the security_member_sid interface to userspace for obtaining security polyinstantiation decisions. Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2139, 2005-01-04 21:40:51-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: enhance SELinux control of executable mappings This patch adds new permission checks to the SELinux mmap and mprotect hooks to enable control over the ability to make executable a mapping that can contain data not covered by the existing file-based permission checks. The task->self execmem permission controls the ability to create an executable anonymous mapping or a writable executable private file mapping. The task->file execmod permission controls the ability to make executable a previously written private file mapping, e.g. for text relocations. Thanks to Roland McGrath for input and feedback on earlier versions of this patch. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2138, 2005-01-04 21:40:39-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: add dynamic context transition support to SELinux This patch for adds dynamic context transition support to SELinux via writes to the existing /proc/pid/attr/current interface. Previously, SELinux only supported exec-based context transitions. This functionality allows privileged applications to apply privilege bracketing without necessarily being refactored to an exec-based model (although such a model has advantages in least privilege and isolation). A process must have setcurrent permission to use this mechanism at all, and the dyntransition permission must be granted between the old and new security contexts. Multi-threaded processes are not allowed to use this operation, as it will yield an inconsistency among the security contexts of the threads sharing the same mm. Ptrace permission is revalidated against the new context if the process is being ptraced. Author: Darrel Goeddel Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2137, 2005-01-04 21:40:25-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: audit task comm if exe cannot be determined This patch ensures that the comm is included in the audit message if avc_audit is unable to determine the exe due to the mmap_sem being held. This is helpful in tracking down the causes of permission denials that occur in the mmap/mprotect hooks. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136, 2005-01-04 21:40:12-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: update selinux_task_setscheduler This patch updates the selinux_task_setscheduler hook function to use the standard helper for task permission checks since it is now safe to audit from this hook (due to the upstream change to setscheduler() to not hold the runqueue lock during the security hook call). Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2135, 2005-01-04 21:39:59-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: regenerate SELinux module headers This patch regenerates the SELinux module headers to use a new format and updates their use by the AVC. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2134, 2005-01-04 21:39:47-08:00, jmorris@redhat.com [PATCH] SELinux scalability: AVC statistics and tuning This patch adds an selinuxfs based API to the AVC, to allow monitoring of the cache, and tuning of the cache size. The latter is mediated via the new setsecparam permission. AVC statistics may be monitored via the avcstat utility: http://people.redhat.com/jmorris/selinux/perf/avcstat.c Signed-off-by: James Morris Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2133, 2005-01-04 21:39:34-08:00, jmorris@redhat.com [PATCH] SELinux: atomic_dec_and_test() bug Atomic underflow debugging in this kernel exposed a bug in the AVC RCU code, fix below. The effect of this bug would be delayed node reclamation. Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2132, 2005-01-04 21:39:21-08:00, jmorris@redhat.com [PATCH] SELinux scalability: convert AVC to RCU The following patch improves the scalability of SELinux by replacing the global avc_lock with an RCU based scheme by Kaigai Kohei. The size of the cache is made tunable, to allow administrators to tune systems for different workloads, while statistics are exported via selinuxfs to allow AVC performance to be monitored at a low level. AVC nodes are also allocated now via a slab cache, and AVC references have been removed from the code. This code has been extensively tested and benchmarked (see benchmark results below). Baseline performance is not improved, although it is clear that dramatic scalability improvements are achieved. Baseline performance and networking scalability are areas where work is ongoing (in particular, we need to add caching of some network security objects so that we don't fallback to policy database lookups on each permission call). Benchmark results: =============================================================================================== System: 4 node 16-way IA64 NUMA - 'Stream' is based on http://www.cs.virginia.edu/stream/ , HPC memory bandwidth test, higher result is better. - Hackbench: scheduler scalability benchmark by Rusty, lower is better. Standard kernel: 2.6.9-1.648_EL SELINUX=0 : Stream 6159.987MB/s HackBench 53.144 2.6.9-1.648_EL SELINUX=1 : Stream 5872.529MB/s HackBench 1043.132 Kernel with RCU/AVC patches: 2.6.9-1.689_avcrcu.root SELINUX=0 : Stream 8829.647MB/s HackBench 53.976 2.6.9-1.689_avcrcu.root SELINUX=1 : Stream 8817.117MB/s HackBench 50.975 =============================================================================================== System: 8-way PIII 900Mhz Xeon with 9GB RAM Fileystem: ext2 for all testing. Notes: AVC was reset before tests, so avc was flushed. System was run in enforcing mode. Key: std-nolsm: standard kernel with LSM disabled std-lsmcap: standard kernel with LSM enabled, capabilities LSM std-sel-strict: standard kernel with SELinux enabled, capabilities secondary LSM rcu-sel-strict: as above with RCU & AVC stats patches ChangeSet@1.2131, 2005-01-04 21:39:08-08:00, jmorris@redhat.com [PATCH] SELinux scalability: add spin_trylock_irq and spin_trylock_irqsave This patch from Kaigai Kohei adds irq and irqsave trylock spinlock variants for use by the SELinux AVC RCU patch. Signed-off-by: Kaigai Kohei Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2130, 2005-01-04 21:38:55-08:00, oleg@tv-sign.ru [PATCH] uninline/kill __exit_mm() __exit_mm() is an inlined version of exit_mm(). This patch unifies them. Saves 356 byte in exit.o. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2129, 2005-01-04 21:38:42-08:00, roland@redhat.com [PATCH] task_struct.exit_state usage I just did a quick audit of the use of exit_state and the EXIT_* bit macros. I guess I didn't really review these changes very closely when you did them originally. :-( I found several places that seem like lossy cases of query-replace without enough thought about the code. Linus has previously said the >= tests ought to be & tests instead. But for exit_state, it can only ever be 0, EXIT_DEAD, or EXIT_ZOMBIE--so a nonzero test is actually the same as testing & (EXIT_DEAD|EXIT_ZOMBIE), and maybe its code is a tiny bit better. The case like in choose_new_parent is just confusing, to have the always-false test for EXIT_* bits in ->state there too. The two cases in wants_signal and do_process_times are actual regressions that will give us back old bugs in race conditions. These places had s/TASK/EXIT/ but not s/state/exit_state/, and now there tests for exiting tasks are now wrong and never catching them. I take it back: there is no regression in wants_signal in practice I think, because of the PF_EXITING test that makes the EXIT_* state checks superfluous anyway. So that is just another cosmetic case of confusing code. But in do_process_times, there is that SIGXCPU-while-exiting race condition back again. Signed-off-by: Roland McGrath Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2128, 2005-01-04 21:38:28-08:00, roland@redhat.com [PATCH] move waitchld_exit from task_struct to signal_struct There is really no point in each task_struct having its own waitchld_exit. In the only use of it, the waitchld_exit of each thread in a group gets woken up at the same time. So, there might as well just be one wait queue for the whole thread group. This patch does that by moving the field from task_struct to signal_struct. It should have no effect on the behavior, but saves a little work and a little storage in the multithreaded case. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2127, 2005-01-04 21:38:15-08:00, roland@redhat.com [PATCH] fix ptracer death race yielding bogus BUG_ON There is a BUG_ON in ptrace_stop that hits if the thread is not ptraced. However, there is no synchronization between a thread deciding to do a ptrace stop and so going here, and its ptracer dying and so detaching from it and clearing its ->ptrace field. The RHEL3 2.4-based kernel has a backport of a slightly older version of the 2.6 signals code, which has a different but equivalent BUG_ON. This actually bit users in practice (when the debugger dies), but was exceedingly difficult to reproduce in contrived circumstances. We moved forward in RHEL3 just by removing the BUG_ON, and that fixed the real user problems even though I was never able to reproduce the scenario myself. So, to my knowledge this scenario has never actually been seen in practice under 2.6. But it's plain to see from the code that it is indeed possible. This patch removes that BUG_ON, but also goes further and tries to handle this case more gracefully than simply avoiding the crash. By removing the BUG_ON alone, it becomes possible for the real parent of a process to see spurious SIGCHLD notifications intended for the debugger that has just died, and have its child wind up stopped unexpectedly. This patch avoids that possibility by detecting the case when we are about to do the ptrace stop but our ptracer has gone away, and simply eliding that ptrace stop altogether as if we hadn't been ptraced when we hit the interesting event (signal or ptrace_notify call for syscall tracing or something like that). Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2126, 2005-01-04 21:38:01-08:00, roland@redhat.com [PATCH] move group_exit flag into signal_struct.flags word After my last change, there are plenty of unused bits available in the new flags word in signal_struct. This patch moves the `group_exit' flag into one of those bits, saving a word in signal_struct. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2125, 2005-01-04 21:37:48-08:00, roland@redhat.com [PATCH] fix stop signal race The `sig_avoid_stop_race' checks fail to catch a related race scenario that can happen. I don't think this has been seen in nature, but it could happen in the same sorts of situations where the observed problems come up that those checks work around. This patch takes a different approach to catching this race condition. The new approach plugs the hole, and I think is also cleaner. The issue is a race between one CPU processing a stop signal while another CPU processes a SIGCONT or SIGKILL. There is a window in stop-signal processing where the siglock must be released. If a SIGCONT or SIGKILL comes along here on another CPU, then the stop signal in the midst of being processed needs to be discarded rather than having the stop take place after the SIGCONT or SIGKILL has been generated. The existing workaround checks for this case explicitly by looking for a pending SIGCONT or SIGKILL after reacquiring the lock. However, there is another problem related to the same race issue. In the window where the processing of the stop signal has released the siglock, the stop signal is not represented in the pending set any more, but it is still "pending" and not "delivered" in POSIX terms. The SIGCONT coming in this window is required to clear all pending stop signals. But, if a stop signal has been dequeued but not yet processed, the SIGCONT generation will fail to clear it (in handle_stop_signal). Likewise, a SIGKILL coming here should prevent the stop processing and make the thread die immediately instead. The `sig_avoid_stop_race' code checks for this by examining the pending set to see if SIGCONT or SIGKILL is in it. But this fails to handle the case where another CPU running another thread in the same process has already dequeued the signal (so it no longer can be found in the pending set). We must catch this as well, so that the same problems do not arise when another thread on another CPU acted real fast. I've fixed this dumping the `sig_avoid_stop_race' kludge in favor of a little explicit bookkeeping. Now, dequeuing any stop signal sets a flag saying that a pending stop signal has been taken on by some CPU since the last time all pending stop signals were cleared due to SIGCONT/SIGKILL. The processing of stop signals checks the flag after the window where it released the lock, and abandons the signal the flag has been cleared. The code that clears pending stop signals on SIGCONT generation also clears this flag. The various places that are trying to ensure the process dies quickly (SIGKILL or other unhandled signals) also clear the flag. I've made this a general flags word in signal_struct, and replaced the stop_state field with flag bits in this word. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2124, 2005-01-04 21:37:34-08:00, coywolf@gmail.com [PATCH] remove redundant sys_delete_module() Peter Chubb recently split out a standalone sys_ni.c file for the not implemented syscalls. This patch removes the redundant sys_delete_module() in module.c. Signed-off-by: Coywolf Qi Hunt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2123, 2005-01-04 21:37:20-08:00, oleg@tv-sign.ru [PATCH] fix conflicting cpu_idle() declarations cpu_idle() is referenced from generic code (init/main.c). It is declared/defined in init/main.c: void cpu_idle(void) i386/kernel/process.c void cpu_idle(void) i386/kernel/smpboot.c: int cpu_idle(void) i386/mach-voyager/voyager_smp.c: int cpu_idle(void) ppc/kernel/idle.c: int cpu_idle(void) ppc/kernel/smp.c: int cpu_idle(void *unused) ppc64/kernel/idle.c: int cpu_idle(void) ppc64/kernel/smp.c: int cpu_idle(void *unused) sparc/kernel/process.c: int cpu_idle(void) sparc64/kernel/process.c: int cpu_idle(void) sh/kernel/process.c: void cpu_idle(void *unused) sh/kernel/smp.c: int cpu_idle(void *unused) ia64/kernel/smpboot.c: int cpu_idle(void) ia64/kernel/process.c: void cpu_idle(void *unused) sh64/kernel/process.c: void cpu_idle(void *unused) s390/kernel/process.c: int cpu_idle(void) s390/kernel/smp.c: int cpu_idle(void * unused) m32r/kernel/process.c: void cpu_idle(void) m32r/kernel/smpboot.c int cpu_idle(void) Other arches beleive that cpu_idle is void(void). This patch puts 'void cpu_idle(void)' in include/linux/smp.h and fixes conflicting definitions. Also removes now unneeded declarations in x86_64, alpha, parisc. Only i386 part is tested. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2122, 2005-01-04 21:37:07-08:00, james4765@verizon.net [PATCH] lcd: fix memory leak, code cleanup This patch addresses the following issues: - Fix log-spamming and cryptic error messages, and add KERN_ constants. - Convert some ints to unsigned ints. - Add checks for CAP_SYS_ADMIN for FLASH_Burn and FLASH_Erase ioctls. - Identify use of global variable. - Fix memory leak in FLASH_Burn ioctl. - Fix error return codes in lcd_ioctl(). - Move variable "index" in lcd_ioctl() to smaller scope to reduce memory usage. - Convert cli()/sti() to spin_lock_irqsave()/spin_unlock_irqrestore(). Fix legibility issues in FLASH_Burn ioctl. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2121, 2005-01-04 21:36:54-08:00, werner@almesberger.net [PATCH] prio_tree: move general code from mm/ to lib/ Last but not least, move the general prio_tree code from mm/ to lib/. This patch also duplicates some macros, which are used in the VMA code for debugging purposes, so we can't properly separate them yet. Note that this patch conflicts with a patch in 2.6.10-rc3-mm1 (frv-better-mmap-support-in-uclinux.patch), which removes mm/prio_tree in systems without an MMU. Not making that other patch provide a dummy for prio_tree_init should resolve the conflict. (That's just from reading the patch - I haven't actually tried this.) Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2120, 2005-01-04 21:36:41-08:00, werner@almesberger.net [PATCH] prio_tree: generalization Export prio_tree functions such that they can be used by other subsystems than only VMAs. Also adds a mode to prio_tree to use it with keys explicitly included in the prio_tree meta-data. The plan is to also consider converting VMAs to use explicit keys, so that the old "raw" mode can be removed. Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2119, 2005-01-04 21:36:27-08:00, werner@almesberger.net [PATCH] prio_tree: roll call to prio_tree_first into prio_tree_next Allow prio_tree_next to be used as the only function for tree traversal, similar to how vma_prio_tree_next works. This patch isn't needed for the generalization, but since it affects the API, it's better to include it first. Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2118, 2005-01-04 21:36:15-08:00, akpm@osdl.org [PATCH] msync(): set PF_SYNCWRITE Pass the "we are doing synchronous writes" hint down from msync(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2117, 2005-01-04 21:36:02-08:00, nanhai.zou@intel.com [PATCH] compat: sigtimedwait - Merge sys32_rt_sigtimedwait function in X86_64, IA64, PPC64, MIPS, SPARC64, S390 32 bit layer into 1 compat_rt_sigtimedwait function. It will also fix a bug of copy wrong information to 32 bit userspace siginfo structure on X86_64, IA64 and SPARC64 when calling sigtimedwait on 32 bit layer. - Change all name the of siginfo_t32 structure in X86_64, IA64, MIPS, SPARC64 and S390 to the name compat_siginfo_t as used in PPC64. - Patch introduced a macro __COMPAT_ENDIAN_SWAP__ in include/asm-mips/compat.h when MIPS kernel is compiled in little-endian mode. This macro is used to do byte swapping in function sigset_from_compat. - This patch is only tested on X86_64 and IA_64. Signed-off-by: Zou Nan hai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2116, 2005-01-04 21:35:46-08:00, hch@lst.de [PATCH] remove dead ext3_put_inode prototype ext3_put_inode has been removed a while ago. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2115, 2005-01-04 21:35:33-08:00, hch@lst.de [PATCH] udf: fix reservation discarding UDF discards file preallocations on every ->put_inode which is totally bogus. It already discards them in ->release which makes sense for normal writes, so the only additional discard is in ->clear_inode so we make sure we don't leak any reservations for shared writeable mappings. This follows similar changes to ext2 and ext3. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2114, 2005-01-04 21:35:19-08:00, hch@lst.de [PATCH] udf: simplify udf_iget, fix race udf_iget calls __udf_read_inode after the inode has been unlocked and other threads could access it. Switching to iget_locked() fixes this race and nicely simplifies the code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2113, 2005-01-04 21:35:06-08:00, zwane@arm.linux.org.uk [PATCH] Remove RCU abuse in cpu_idle() Introduce cpu_idle_wait() on architectures requiring modification of pm_idle from modules, this will ensure that all processors have updated their cached values of pm_idle upon exit. This patch is to address the bug report at http://bugme.osdl.org/show_bug.cgi?id=1716 and replaces the current code fix which is in violation of normal RCU usage as pointed out by Stephen, Dipankar and Paul. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2112, 2005-01-04 21:34:52-08:00, mason@suse.com [PATCH] __getblk_slow can loop forever when pages are partially mapped When a block device is accessed via read/write, it is possible for some of the buffers on a page to be mapped and others not. __getblk and friends assume this can't happen, and can end up looping forever when pages have some unmapped buffers. Picture: lseek(/dev/xxx, 2048, SEEK_SET) write(/dev/xxx, 2048 bytes) Assuming the block size is 1k, page 0 has 4 buffers, two are mapped by __block_prepare_write and two are not. Next, another process triggers getblk(/dev/xxx, blocknr = 0); __getblk_slow will loop forever. __find_get_block fails because the buffer isn't mapped. grow_dev_page does nothing because there are buffers on the page with the correct size. madhav@veritas.com and others at Veritas tracked this down. The fix below has two parts. First, it changes __find_get_block to avoid the buffer_error warnings when it finds unmapped buffers on the page. Second, it changes grow_dev_page to map the buffers on the page by calling init_page_buffers. init_page_buffers is changed so we don't stomp on uptodate bits for the buffers. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2111, 2005-01-04 21:34:39-08:00, kaneshige.kenji@jp.fujitsu.com [PATCH] IRQ resource deallocation: ia64 This is an ia64 portion of IRQ resource deallocation. It implements pcibios_disable_device() and acpi_unregister_gsi() for ia64. o acpi_unregister_gsi() Summary of changes for implementing this interface: - Add new function iosapic_unregister_intr() into arch/ia64/kernel/iosapic.c. This function frees an interrupt vector and related data structures. - Add new function free_irq_vector() into arch/ia64/kernel/irq_ia64.c. This frees an unused vector. - Change assign_irq_vector() to be able to support free_irq_vector(). o pcibios_disable_device() This calls acpi_pci_irq_disable() to deallocate IRQ resources. Signed-off-by: Kenji Kaneshige Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2110, 2005-01-04 21:34:25-08:00, kaneshige.kenji@jp.fujitsu.com [PATCH] IRQ resource deallocation: ACPI Architecture dependent IRQ resources such as interrupt vector for PCI devices are allocated at pci_enable_device() time on i386, x86-64 and ia64 platform. Today, however, these IRQ resources are never deallocated even if they are no longer used. The following set of patches adds supports to deallocate IRQ resources at pci_disable_device() time. The motivation of the set of patches is as follows: - IRQ resources such as interrupt vectors should be freed if they are no longer used because the amount of these resources are limited. By deallocating IRQ resources, we can recycle them. - I think some hardwares will support hot-pluggable I/O units with I/O xAPICs in the near future. So I/O xAPIC hot-plug support by OS will be needed soon. IRQ resouces deallocation will be one of the most important stuff for I/O xAPIC hot-plug. For now, the following set of patches has ia64 implementation only. i386 and x86_64 implementations are TBD. This patch is ACPI portion of IRQ deallocation. This patch defines the following new interface. The implementation of this interface depends on each platform. o void acpi_unregister_gsi(u32 gsi) This is a opposite portion of acpi_register_gsi(). This has a responsibility for deallocating IRQ resources associated with the specified GSI number. We need to consider the case of shared interrupt. In the case of shared interrupt, acpi_register_gsi() is called multiple times for one gsi. That is, registrations and unregistrations can be nested. This function undoes the effect of one call to acpi_register_gsi(). If this matches the last registration, IRQ resources associated with the specified GSI number are freed. This patch also adds the following new function. o void acpi_pci_irq_disable (struct pci_dev *dev) This function is a opposite portion of acpi_pci_enable_irq(). It clears the device's linux IRQ number and calls acpi_unregister_gsi() to deallocate IRQ resources. Signed-off-by: Kenji Kaneshige Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2109, 2005-01-04 21:34:13-08:00, manfred@colorfullife.com [PATCH] fix missing wakeup in ipc/sem My patch that removed the spin_lock calls from the tail of sys_semtimedop introduced a bug: Before my patch was merged, every operation that altered an array called update_queue. That call woke up threads that were waiting until a semaphore value becomes 0. I've accidentially removed that call. The attached patch fixes that by modifying update_queue: the function now loops internally and wakes up all threads. The patch also removes update_queue calls from the error path of sys_semtimedop: failed operations do not modify the array, no need to rescan the list of waiting threads. Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2108, 2005-01-04 21:34:00-08:00, agruen@suse.de [PATCH] Ext[23]: apply umask to symlinks with ACLs configured out Keith Young has reported that when ACLs are not compiled in, the default implementation of ext[23]_init_acl applies the umask to all new files, including symlinks, which is wrong. In this case the VFS already takes care of applying the umask when needed, so ext2 and ext3 need not bother about it. Remove the superfluous statements. Signed-off-by: Andreas Gruenbacher Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2107, 2005-01-04 21:33:47-08:00, akpm@osdl.org [PATCH] get_blkdev_list() cleanup - Move prototype to genhd.h - It is only needed for /proc Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2106, 2005-01-04 21:33:34-08:00, sfr@canb.auug.org.au [PATCH] noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T Since asm-generic/siginfo.h was created, the architectures have been slowly fixed/modified until noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T any more, so this patch removes the checks for them. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2105, 2005-01-04 21:33:21-08:00, franz_pletz@t-online.de [PATCH] loop device resursion avoidance With Andries Brouwer Fix various recursion scenarios wherein it was possible to mount a loop device on itself, either directly or via intermediate loops devices. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2104, 2005-01-04 21:33:09-08:00, penberg@cs.helsinki.fi [PATCH] noop iosched: remove unused includes This patch removes unused includes from drivers/block/noop-iosched.c. Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2103, 2005-01-04 21:32:56-08:00, penberg@cs.helsinki.fi [PATCH] noop iosched: make code static This patch makes code static in drivers/block/noop-iosched.c and adds __init and __exit for module initialization and cleanup functions. Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2102, 2005-01-04 21:32:43-08:00, rddunlap@osdl.org [PATCH] cpumask: range check before using value When setting the 'cpu_isolated_map' mask, check that the user input value is valid (in range 0 .. NR_CPUS - 1). Also fix up kernel-parameters.txt for this parameter. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2101, 2005-01-04 21:32:30-08:00, zwane@holomorphy.com [PATCH] fix alt-sysrq deadlock __handle_sysrq was modified to do a spin_lock_irqsave so we were entering smp_send_stop with interrupts. So reenable interrupts to prevent the possible smp_call_function() deadlock. (It's still deadlocky if the sysrq handler is against called via an interrupt from a different device, but that seems unlikely). Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2100, 2005-01-04 21:32:17-08:00, pmeda@akamai.com [PATCH] Add PR_GET_NAME A while back we added the PR_SET_NAME prctl, but no PR_GET_NAME. I guess we should add this, if only to enable testing of PR_SET_NAME. Signed-off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2099, 2005-01-04 21:32:05-08:00, rddunlap@osdl.org [PATCH] panic_timeout: move to kernel.h Move 'panic_timeout' to linux/kernel.h. ipmi_watchdog.c wanted to know why panic_timeout isn't in some header file. However, ipmi_watchdog.c doesn't even use it, so that reference was deleted. Other references now use kernel.h instead of straight extern int. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2098, 2005-01-04 21:31:50-08:00, Matt_Domsch@dell.com [PATCH] EDD: add edd=off and edd=skipmbr options EDD: add edd=off and edd=skipmbr command line options New command line options edd=off (or edd=of) edd=skipmbr (or edd=sk) runtime options for disabling all EDD int13 calls completely, or for skipping the int13 READ SECTOR calls, respectively. These are provided to allow Linux distributions to include CONFIG_EDD=m, yet allow end-users to disable parts of EDD which may not work well with their system's BIOS. I incorporated comments from Randy Dunlap, and got an ack from Andi Kleen. Signed-off-by: Matt Domsch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2097, 2005-01-04 21:31:38-08:00, jamagallon@able.es [PATCH] make gconfig work with gtk-2.4 I need this to make gconfig work under gtk-2.4. Without this, it just coredumps. There is some problem with pixmap creation/usage from XPM in the way it is done in gconf, so I just added some stock icons. It is even prettier..;) Could someone test this still works on gtk-2.0 or 2.2 ? Changes: - change the wiget class 'button' in glade files to something known to glade (GtkToolButton) - use 'stock-id' property for toolbar buttons instead of "stock_pixmap" - change unknown signal "pressed" to "clicked" - remove manual setting of icons in gconf.c Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2096, 2005-01-04 21:31:25-08:00, rusty@rustcorp.com.au [PATCH] sys_sched_setaffinity() on UP should fail for non-zero CPUs. Return EINVAL for invalid sched_setaffinity on UP. I was a little surprised that sys_sched_setaffinity for CPU 1 didn't fail on my UP box. With CONFIG_SMP it would have. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2095, 2005-01-04 21:31:12-08:00, tvrtko.ursulin@sophos.com [PATCH] smb_file_open() retval fix Correctly propagate the return value from smb_open(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2094, 2005-01-04 21:31:02-08:00, manfred@colorfullife.com [PATCH] rcu: simplify quiescent state detection Based on an initial patch from Oleg Nesterov rcu_data.last_qsctr is not needed. Actually, not even a counter is needed, just a flag that indicates that there was a quiescent state. Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2093, 2005-01-04 21:30:48-08:00, manfred@colorfullife.com [PATCH] rcu: make two internal structs static The patch below makes two needlessly global structs static. Signed-off-by: Adrian Bunk Signed-off-by: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2092, 2005-01-04 21:30:36-08:00, oleg@tv-sign.ru [PATCH] rcu: eliminate rcu_ctrlblk.lock rcu_ctrlblk.lock is used to read the ->cur and ->next_pending atomically in __rcu_process_callbacks(). It can be replaced by a couple of memory barriers. rcu_start_batch: rcp->next_pending = 0; smp_wmb(); rcp->cur++; __rcu_process_callbacks: rdp->batch = rcp->cur + 1; smp_rmb(); if (!rcp->next_pending) rcu_start_batch(rcp, rsp, 1); This way, if __rcu_process_callbacks() sees incremented ->cur value, it must also see that ->next_pending == 0 (or rcu_start_batch() is already in progress on another cpu). Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2091, 2005-01-04 21:30:23-08:00, bunk@stusta.de [PATCH] remove ip2 programs drivers/char/ip2/ contained three programs. Besides shipping programs at this place doesn't sound like a good idea, they didn't even all compile. The patch below removes them. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2090, 2005-01-04 21:30:08-08:00, ak@suse.de [PATCH] Sync in core time granuality with filesystems This patch corrects a problem that was originally added with the nanosecond timestamps in stat patch. The problem is that some file systems don't have enough space in their on disk inode to save nanosecond timestamps, so they truncate the c/a/mtime to seconds when flushing an dirty node. In core the inode would have full jiffies granuality. This can be observed by programs as a timestamp that jumps backwards under specific loads when an inode is flushed and then reloaded from disk. The problem was already known when the original patch went in, but it wasn't deemed important enough at that time. So far there has been only one report of it causing problems. Now Tridge is worried that it will break running Excel over samba4 because Excel seems to do very anal timestamp checking and samba4 will supply 100ns timestamps over the network. This patch solves it by putting the time resolution into the superblock of a fs and always rounding the in core timestamps to that granuality. This also supercedes some previous ext2/3 hacks to flush the inode less often when only the subsecond timestamp changes. I tried to keep the overhead low, in particular it tries to keep divisions out of fast paths as far as possible. The patch is quite big but 99% of it is just relatively straight forward search'n'replace in a lot of fs. Unconverted filesystems will default to a 1ns granuality, but may still show the problem if they continue to use CURRENT_TIME. I converted all in tree fs. One possible future extension of this would be to have two time granualities per superblock - one that specifies the visible resolution, and the other to specify how often timestamps should be flushed to disk, which could be tuned with a mount option per fs (e.g. often m/atimes don't need to be flushed every second). Would be easy to do as an addon if someone is interested. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2089, 2005-01-04 21:29:47-08:00, schwidefsky@de.ibm.com [PATCH] sys_stime needs a compat function I realized that the best way to get the sys_time/sys_stime problem fixed is to make sys_time 64 bit safe by using "time_t *" instead of "int *" and to introduce two proper compat functions compat_sys_time and compat_sys_stime. The prototype change of sys_time is transparent for 32 bit architectures because both "int" and "time_t" are 32 bit. For 64 bit the type change would be wrong but luckily no 64 bit architecture uses sys_time/sys_stime in 64 bit mode. The patch makes the following change: ia64 : Remove sys32_time, use compat_sys_time and add (!!) compat_sys_stime to compat syscall table. mips : Use compat_sys_time/compat_sys_stime in 32 bit syscall table. Add #ifdef magic to compile sys_time/sys_stime and compat_sys_time/compat_sys_stime only if needed. parisc : Remove sys32_time, use compat_sys_time and compat_sys_stime. ppc64 : remove sys32_time, ppc64_sys32_stime and ppc64_sys_stime. Use common compat_sys_time, compat_sys_stime and sys_stime. s390 : Use compat_sys_stime. Add #ifdef magic to compile sys_time/sys_stime and compat_sys_time/compat_sys_stime only if needed. sparc64 : Use compat_sys_time/compat_Sys_stime in 32 bit syscall table. um : Remove um_time and um_stime. Use common functions sys_time and sys_stime. This adds a CAP_SYS_TIME check to UMs stime call. x86_64 : Remove sys32_time. Use compat_sys_time and compat_sys_stime in 32 bit syscall table. The original stime bug is fixed for mips, parisc, s390, sparc64 and x86_64. Can the arch-maintainers please take a look at this? From: Martin Schwidefsky Convert compat_time_t to time_t in 32 bit emulation for sys_stime and consolidate all the different implementation of sys_time, sys_stime and their 32-bit emulation parts. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2088, 2005-01-04 21:29:33-08:00, bunk@stusta.de [PATCH] compile with -ffreestanding For the kernel, it would be logical to use -ffreestanding. The kernel is not a hosted environment with a standard C library. The gcc option -ffreestanding is supported by both gcc 2.95 and 3.4, which covers the whole range of currently supported compilers. Regarding changes caused by this patch: Andi Kleen reported: Newer gcc rewrites sprintf(buf,"%s",str) to strcpy(buf,str) transparently. This is only true with unit-at-a-time (disabled on i386 but enabled on x86_64). The Linux kernel doesn't offer a standard C library, and such transparent replacements of kernel functions with builtins are quite fragile. Even with -ffreestanding, it's still possilble to explicitely use a gcc builtin if desired. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2087, 2005-01-04 21:29:20-08:00, alexn@dsv.su.se [PATCH] Off by one in drivers/parport/probe.c This fixes a theoretical bug indicated in: http://bugme.osdl.org/show_bug.cgi?id=240 It prevents overflow in case the required buffer is larger than the passed buffer. This I found to be the minimally intrusive change. Signed-off-by: Alexander Nyberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2086, 2005-01-04 21:29:07-08:00, alex@clusterfs.com [PATCH] ext3: support for EA in inode 1) intent of the patch is to get possibility to store EAs in the body of large inode. it saves space and improves performance in some cases 2) the patch is quite simple: it works the same way original xattr does, but using other storage (inode body). body has priority over separate block. original routines (ext3_xattr_get, ext3_xattr_list, ext3_xattr_set) are renamed to ext3_xattr_block_*. new routines that handle inode storate are added (ext3_xattr_ibody_get, ext3_xattr_ibody_list, ext3_xattr_ibody_set). routines ext3_xattr_get, ext3_xattr_list and ext3_xattr_set allow user to accesss both the storages transparently 3) the change makes sense on filesystem with inode size >= 256 bytes only. 2.4 kernels don't support such a filesystems, AFAIK. 2.6 kernels do support and ignore EAs stored in a body w/o the patch 4) debugfs and e2fsck need to be patched to deal with EAs in inode the patch will be sent later 5) testing results: a) Andrew Samba Master (tridge) has done successful tests b) we've been using ea-in-inode feature in Lustre for many months Signed-off-by: Andreas Dilger Signed-off-by: Alex Tomas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2085, 2005-01-04 21:28:54-08:00, akpm@osdl.org [PATCH] Reduce i_sem usage during file sync operations We hold i_sem during the various sync() operations to prevent livelocks: if another thread is dirtying the file, a sync() may never return. Or at least, that used to be true when we were using the per-address_space page lists. Since writeback has used radix tree traversal it is not possible to livelock the sync() operations, because they only visit each page a single time. sync_page_range() (used by O_SYNC writes) has not been holding i_sem for quite some time, for the above reasons. The patch converts fsync(), fdatasync() and msync() to also not hold i_sem during the radix-tree-based writeback. Now, we _do_ still need to hold i_sem across the file->f_op->fsync() call, because that is still based on a list_head walk, and is still livelockable. But in the case of msync() I deliberately left i_sem untaken. This is because we're currently deadlockable in msync, because mmap_sem is already held, and mmap_sem nexts inside i_sem, due to direct-io.c. And yes, the ranking of down_read() veruss down() does matter: Task A Task B Task C down_read(rwsem) down(sem) down_write(rwsem) down(sem) down_read(rwsem) C's down_write() will cause B's down_read to block. B holds `sem', so A will never release `rwsem'. So the patch fixes a hard-to-hit triple-task deadlock, but adds a possible livelock in msync(). It is possible to fix sys_msync() so that it takes i_sem outside i_mmap_sem. Later. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2084, 2005-01-04 21:28:41-08:00, akpm@osdl.org [PATCH] suppress might_sleep() if oopsing We can call might_sleep() functions on the oops handling path (under do_exit). There seem little point in emitting spurious might_sleep() warnings into the logs after the kernel has oopsed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2083, 2005-01-04 21:28:28-08:00, pmeda@akamai.com [PATCH] fork: total_forks not counted under tasklist_lock Bring the total_forks under tasklist_lock. When most of the fork code icluding nr_threads is moved to copy_process() from do_fork() code in 2.6, this is left out. Althought accuracy of total_forks is not important, it would be nice to add this. It does not involve additional cost, and the code will be cleaner if it is grouped with nr_threads. The difference is, total_forks will increase on fork, but nr_threads will increase on fork and decrease on the exit. I also moved extern decleration to sched.h from proc_misc.c. Signed-off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2082, 2005-01-04 21:28:15-08:00, shaohua.li@intel.com [PATCH] time runx too fast after S3 After resume from S3, 'date' shows time run too fast. Signed-off-by: Li Shaohua Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2081, 2005-01-04 21:28:02-08:00, colpatch@us.ibm.com [PATCH] cpumask_t initializers In the course of another patch I've been working on, I stumbled across some weirdness with some of the SD_*_INIT sched_domains initializers. A day or so of digging narrowed it down to the CPU_MASK_NONE initializer nested inside the sched_domain initializers. The errors I got were: kernel/sched.c:4812: error: initializer element is not constant kernel/sched.c:4812: error: (near initialization for `sched_domain_dummy') kernel/sched.c:4812: error: initializer element is not constant which was this line: static struct sched_domain sched_domain_dummy = SD_CPU_INIT; Janis Johnson, a GCC hacker, told me the following: ChangeSet@1.2080, 2005-01-04 21:27:49-08:00, sct@redhat.com [PATCH] ext3: handle attempted double-delete of metadata. This patch improves ext3's ability to deal with corruption on-disk. If we try to delete a metadata block twice, we confuse ext3's internal revoke error-checking, resulting in a BUG(). But this can occur in practice due to a corrupt indirect block, so we should attempt to fail gracefully. Downgrade the assert failure to a JH_EXPECT_BH failure, and return EIO when it occurs. This is easily reproduced with a sample ext3 fs image containing an inode which references the same indirect block more than once. Deleting that inode will BUG() an unfixed kernel with: Assertion failure in journal_revoke() at fs/jbd/revoke.c:379: "!buffer_revoked(bh)" With the fix, ext3 recovers gracefully. Signed-off-by: Stephen Tweedie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2079, 2005-01-04 21:27:36-08:00, sct@redhat.com [PATCH] ext3: handle attempted delete of bitmap blocks. This patch improves ext3's ability to deal with corruption on-disk. If we ever get a corrupt inode or indirect block, then an attempt to delete it can end up trying to remove any block on the fs, including bitmap blocks. This can cause ext3 to assert-fail as we end up trying to do an ext3_forget on a buffer with b_committed_data set. The fix is to downgrade this to an IO error and journal abort, so that we take the filesystem readonly but don't bring down the whole kernel. Make J_EXPECT_JH() return a value so it can be easily tested and yet still retained as an assert failure if we build ext3 with full internal debugging enabled. Make journal_forget() return an error code so that in this case the error can be passed up to the caller. This is easily reproduced with a sample ext3 fs image containing an inode whose direct and indirect blocks refer to a block bitmap block. Allocating new blocks and then deleting that inode will BUG() with: Assertion failure in journal_forget() at fs/jbd/transaction.c:1228: "!jh->b_committed_data" With the fix, ext3 recovers gracefully. Signed-off-by: Stephen Tweedie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2078, 2005-01-04 21:27:23-08:00, sct@redhat.com [PATCH] ext3: cleanup handling of aborted transactions. This patch improves ext3's error logging when we encounter an on-disk corruption. Previously, a transaction (such as a truncate) which encountered many corruptions (eg. a single highly-corrupt indirect block) would emit copious "aborting transaction" errors to the log. Even worse, encountering an aborted journal can count as such an error, leading to a flood of spurious "aborting transaction: Journal has aborted" errors. With the fix, only emit that message on the first error. The patch also restores a missing \n in that printk path. Signed-off-by: Stephen Tweedie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2077, 2005-01-04 21:27:10-08:00, bunk@stusta.de [PATCH] kill blk.h All blk.h users were converted in 2.5, and at the same time blk.h began giving a warning. The patch below removes this obsolete file. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2076, 2005-01-04 21:26:58-08:00, minyard@acm.org [PATCH] Cleanups for the IPMI driver This patch removes some unneeded cruft that Adrian found, and also turns off the shutdown of the timer when removing the module. Since the timer is shutdown when the driver is closed (unless no way out is specified) this is unnecessary and defeats the no way out option. - remove some completely unused code - make some needlessly global code static - removal of some EXPORT_SYMBOL'ed code with zero users. - Removal of the timer shutdown on module removal Signed-off-by: Adrian Bunk Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2075, 2005-01-04 21:26:45-08:00, holt@sgi.com [PATCH] Hold BKL for shorter period in generic_shutdown_super(). Testing revealed long pauses of the entire system while autofs initiated umounts as a result of timing out the mounts. It was noticed that during a umount, the BKL is held while scanning the inode_list and removing and inodes that are candidates. This patch moves locking until after the first pass had gone through the inode_list. Testing revelead that on an ia64 machine with a filesystem that had 8.4 Million inodes, there were no observable pauses during the umount. This was down from over 4 seconds without this patch. Signed-Off-By: Robin Holt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2074, 2005-01-04 21:26:32-08:00, hch@lst.de [PATCH] remove unused irq_cpustat fields The only common field in irq_cpustat is __softirq_pending, i386 and ppc have some of their own. Remove all unused obsolete fields from various architectures. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2073, 2005-01-04 21:26:18-08:00, hch@lst.de [PATCH] move irq_enter and irq_exit to common code This code is the same for all architectures with the following invariants: - arm gurantees irqs are disabled when calling irq_exit so it can call __do_softirq directly instead of do_softirq - arm26 is totally broken for about half a year, I didn't care for it - some architectures use softirq_pending(smp_processor_id()) instead of local_softirq_pending, but they always evaluate to the same This patch moves the out of line irq_exit implementation from kernel/irq/handle.c which depends on CONFIG_GENERIC_HARDIRQS to kernel/softirq.c which is always compiled, tweaks it for the arm special case and moves the irq_enter/irq_exit/nmi_enter/nmi_exit bits from asm-*/hardirq.h to linux/hardirq.h Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2072, 2005-01-04 21:26:05-08:00, rddunlap@osdl.org [PATCH] handle quoted module parameters Fix module parameter quote handling. Module parameter strings (with spaces) are quoted like so: "modprm=this test" and not like this: modprm="this test" Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2071, 2005-01-04 21:25:52-08:00, dev@sw.ru [PATCH] 4/4GB: Incorrect bound check in do_getname() This patch fixes incorrect address range check in do_getname(). Theoretically this can lead to do_getname() failure on kernel address space string on the TASK_SIZE boundary addresses when 4GB split is ON. (akpm: I don't see why this check exists at all, actually. afaict the only effect of removing it is that we'll then generate -EFAULT on a non-null-terminated pathname which ends exactly at TASK_SIZE). Signed-Off-By: Kirill Korotaev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2070, 2005-01-04 21:25:39-08:00, jlan@engr.sgi.com [PATCH] enhanced Memory accounting data collection This patch is to offer common accounting data collection method at memory usage for various accounting packages including BSD accounting, ELSA, CSA and any other acct packages that use a common layer of data collection. New struct fields are added to mm_struct to save high watermarks of rss usage as well as virtual memory usage. New struct fields are added to task_struct to collect accumulated rss usage and vm usages. These data are collected on per process basis. Signed-off-by: Jay Lan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2069, 2005-01-04 21:25:25-08:00, jlan@engr.sgi.com [PATCH] enhanced I/O accounting data patch This patch is to offer common accounting data collection method at I/O for various accounting packages including BSD accounting, ELSA, CSA and any other acct packages that use a common layer of data collection. Patch is made to fs/read_write.c to collect per process data on character read/written in bytes and number of read/write syscalls made. New struct fields are added to task_struct to store the data. These data are collected on per process basis. Signed-off-by: Jay Lan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2068, 2005-01-04 21:25:12-08:00, dhowells@redhat.com [PATCH] Cross-reference nommu VMAs with mappings The attached patch includes prio-tree support and adds cross-referencing of VMAs with address spaces back in, as is done under normal MMU Linux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2067, 2005-01-04 21:24:59-08:00, dhowells@redhat.com [PATCH] Permit nommu MAP_SHARED of memory backed files The attached patch applies some further fixes and extensions to the nommu mmap implementation: (1) /proc/maps distinguishes shareable private mappings and real shared mappings by marking the former with 's' and the latter with 'S'. (2) Rearrange and optimise the checking portion of do_mmap_pgoff() to make it easier to follow. (3) Only set VM_SHARED on MAP_SHARED mappings. Its presence indicates that the backing memory is supplied by the underlying file or chardev. VM_MAYSHARE indicates that a VMA may be shared if it's a private VMA. The memory for a private VMA is allocated by do_mmap_pgoff() from a kmalloc slab and then the file contents are read into it before returning. (4) Permit MAP_SHARED + PROT_WRITE on memory-backed files[*] and chardevs to indicate a contiguous area of memory when its get_unmapped_area() is called if the backing fs/chardev is willing. [*] file->f_mapping->backing_dev_info->memory_backed == 1 (5) Require chardevs and files that support to provide a get_unmapped_area() file operation. (6) Made sure a private mapping of /dev/zero is possible. Shared mappings of /dev/zero are not currently supported because this'd need greater interaction of mmap with the chardev driver than is currently supported. (7) Add in some extra checks from mm/mmap.c: security, file having write access for a writable shared mapping, file not being in append mode. (8) Only account the mapping memory if it's allocated here; memory belonging to a shared chardev or file is not accounted. With this patch it should be possible to map contiguous flash files directly out of ROM simply by providing get_unmapped_area() for a read-only/shared mapping. I think that it might be worth splitting do_mmap_pgoff() up into smaller subfunctions: one to handle the checking, one to handle shared mappings and one to handle private mappings. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2066, 2005-01-04 21:24:46-08:00, dhowells@redhat.com [PATCH] Fix nommu MAP_SHARED handling The attached patch does the following things: (1) It uniquifies permitted overlapping VMAs (eg: MAP_SHARED on chardevs) in nommu_vma_tree. Identical entries break the assumptions on which rbtrees work. Since we don't need to share VMAs in this case, we uniquify such VMAs by using the pointer to the VMA. They're only kept in the tree for /proc/maps visibility. (2) Extracts VMA unlinking into its own function so that the source is adjacent to the VMA linking function. (3) No longer releases memory belonging to a shared chardev or file (the underlying driver is expected to provide mappable memory). (4) Frees the file attached to a VMA whether or not that VMA is shared or is a memory-mapped I/O mapping. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2065, 2005-01-04 21:24:34-08:00, dhowells@redhat.com [PATCH] Implement nommu find_vma() The attached patch implements a nommu version of find_vma(). Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2064, 2005-01-04 21:24:21-08:00, dhowells@redhat.com [PATCH] FRV: Change PML4 -> PUD The attached patch changes the PML4 bits of the FRV arch to the new PUD way. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2063, 2005-01-04 21:24:08-08:00, dhowells@redhat.com [PATCH] FRV: FR55x CPU support fixes The attached patch fixes the following issues with support for the FR55x CPUs: (1) The FR555 has a 64-byte cacheline size; everything else that we've come across has a 32-byte cacheline size. (2) Fix machine_restart() for FR55x. (3) Fix frv_cpu_suspend() for FR55x. Signed-Off-By: David Howells Signed-off-by: Mark Salter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2062, 2005-01-04 21:23:55-08:00, dhowells@redhat.com [PATCH] FRV: pagetable handling fixes The attached patch makes the following fixes to the frv arch: (1) pte_offset() should no longer be around; the fault handler should use pte_offset_kernel() instead when fixing up vmalloc misses. (2) The PGEs/PMEs do not hold PTEs. They have greater address resolution and fewer control bits. (3) The data access error pattern in ESR15.EC should be 10000 not 10100. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2061, 2005-01-04 21:23:40-08:00, dhowells@redhat.com [PATCH] frv: accidental TLB entry write-protect fix The attached patch stops the FRV kernel-instruction-TLB-miss handler from setting the write-protect bit on a mapping entry when punting an entry from the mapping fast cache registers (DAMR1/IAMR1) to the TLB. This patch derives the WP value from the DAMPR1 register (which actually has a WP bit) rather than the IAMPR1 register (which does not). Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2060, 2005-01-04 21:23:27-08:00, dhowells@redhat.com [PATCH] frv: update the trap tables comment The attached patch updates the FRV trap tables comment to make it more appropriate. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2059, 2005-01-04 21:23:15-08:00, dhowells@redhat.com [PATCH] frv: perfctr_info syscall The attached patch gets rid of the perfctr_info syscall from the FRV arch now that its implementation has gone and it has been removed from the i386 arch and the i386 syscalls have been renumbered. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2058, 2005-01-04 21:23:02-08:00, dhowells@redhat.com [PATCH] frv: Minix & ext2 bitops fixes The attached patch does two things: (1) Implements the ext2/ext3 bitops in terms of the main bitops functions. (2) Changes the Minix bitops to use the ext2 bitops (LE) rather than the main bitops (BE). Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2057, 2005-01-04 21:22:49-08:00, dhowells@redhat.com [PATCH] FRV: debugging fixes The attached patch fixes three debugging problems in the frv arch: (1) Single-stepping in userspace steps through into the kernel-mode interrupt handler when a hardware interrupt happens, and sometimes it gets past where the debug-mode handler would normally catch it. This patch extends the range of detected PC values. (2) When setting up the kernel-mode exception frame from the debug-mode handler for a userspace debugging event, we weren't setting the LR register to generate a return to the exception handler epilogue. (3) sys_ptrace() now needs to "put" the inferior task_struct not "free" it as was done in 2.4. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2056, 2005-01-04 21:22:36-08:00, dhowells@redhat.com [PATCH] Make more syscalls available for the FR-V arch The attached patch makes more syscalls available for the FR-V arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2055, 2005-01-04 21:22:23-08:00, dhowells@redhat.com [PATCH] frv: nommu changes The attached patch changes the nommu bits of the FRV arch to incorporate the name changes made to the nommu core stuff. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2054, 2005-01-04 21:22:10-08:00, dhowells@redhat.com [PATCH] Further nommu /proc changes The attached patch changes the nommu procfs routines to match the nommu changes in patch 1/1. This is an exercise in structure renaming and handling the fact that the list of VMAs in the system is now held together by vma->vm_rb. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2053, 2005-01-04 21:21:58-08:00, dhowells@redhat.com [PATCH] Further nommu changes The attached patch further changes the nommu stuff previously changed. These new changes do the following: (0) Some additional variables have been defined to make nommu even compile. (1) Get rid of the alternate vm_area_struct. The nommu mmap now uses the normal one. There's a refcount field added to the normal one, contingent on !CONFIG_MMU. (2) vm_rb is now used to keep track of the VMAs in an rbtree rather than adding a separate list. (3) mm_tblock_struct is now vm_list_struct. (4) put_vma() now calls vma->vm_ops->close() if available on nommu. (5) A dummy generic_file_vm_ops has been provided. It does nothing, but permits tiny-shmem to compile. tiny-shmem and ramfs still need attention, such that files contained therein can be mmapped shared-writably to some extent on nommu. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2052, 2005-01-04 21:21:45-08:00, dhowells@redhat.com [PATCH] Fix some ELF-FDPIC binfmt problems The attached patch fixes the following problems in the ELF-FDPIC binfmt driver: (1) elf_fdpic_map_file() should be passed an mm_struct pointer, not NULL. (2) do_mmap() should be called with the mmap_sem held. (3) mm_struct::end_brk doesn't exist in 2.6 (debugging only). (4) Avoid debugging warnings by casting certain values to unsigned long before printing them. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2051, 2005-01-04 21:21:32-08:00, dhowells@redhat.com [PATCH] FRV: Add FDPIC ELF binary format driver The attached patch adds a new binary format driver that allows a special variety of ELF to be used that permits the dynamic sections that comprise an executable, its dynamic loader and its shared libaries and its stack and data to be located anywhere within the address space. This is used to provide shared libraries and shared executables (at least, as far as the read-only dynamic sections go) on uClinux. Not only that, but the same binaries can be run on MMU linux without a problem. This is achieved by: (1) Passing loadmaps to the dynamic loader (or to a statically linked executable) to indicate the whereabouts of the various dynamic sections. (2) Using a GOT inside the program. (3) Passing setup_arg_pages() the stack pointer to be. (4) Allowing the arch greated control over how an executable is laid out in memory in MMU Linux. (5) Rewriting mm/nommu.c to support MAP_PRIVATE on files, thus allowing _mmap_ to handle sharing of private-readonly mappings. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2050, 2005-01-04 21:21:18-08:00, dhowells@redhat.com [PATCH] Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64 The attached patch fixes the usage of setup_arg_pages() in the IA64, MIPS, S390 and Sparc64 arches. This function now takes an extra parameter: the initial top of stack. This is useful in uClinux when there's no fixed location to which the stack pointer can be initialised. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2049, 2005-01-04 21:21:04-08:00, dhowells@redhat.com [PATCH] FRV: change setup_arg_pages() to take stack pointer The attached patch changes setup_arg_pages() to take the proposed initial stack top for the new executable image. This makes it easier for the binfmt to place the stack at a non-fixed location, such as happens in !MMU configurations. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2048, 2005-01-04 21:20:51-08:00, dhowells@redhat.com [PATCH] FRV: procfs changes for nommu changes The attached patch splits some memory-related procfs files into MMU and !MMU versions and places them in separate conditionally-compiled files. A header file local to the fs/proc/ directory is used to declare functions and the like. Additionally, a !MMU-only proc file (/proc/maps) is provided so that master VMA list in a uClinux kernel is viewable. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2047, 2005-01-04 21:20:39-08:00, dhowells@redhat.com [PATCH] FRV: Better mmap support in uClinux The attached patch changes mm/nommu.c to better support mmap() when MMU support is disabled (as it is in uClinux). This was discussed on the uclibc mailing list in a thread revolving around the following message: Date: Thu, 1 Apr 2004 12:05:50 +1000 From: David McCullough To: David Howells Cc: Alexandre Oliva , uclibc@uclibc.org Subject: Re: [uClibc] mmaps for malloc should be private Message-ID: <20040401020550.GG3150@beast> The revised rules are: (1) Anonymous mappings can be shared or private, read or write. (2) Chardevs can be mapped shared, provided they supply a get_unmapped_area() file operation and use that to set the address of the mapping (as a frame buffer driver might do, for instance). (3) Files (and blockdevs) cannot be mapped shared since it is not really possible to honour this by writing any changes back to the backing device. (4) Files (or sections thereof) can be mapped read-only private, in which case the mapped bit will be read into memory and shared, and its address will be returned. Any excess beyond EOF will be cleared. (5) Files (or sections thereof) can be mapped writable private, in which case a private copy of the mapped bit will be read into a new bit memory, and its address will be returned. Any excess beyond EOF will be cleared. Mappings are per MM structure still. You can only unmap what you've mapped. Fork semantics are irrelevant, since there's no fork. A global list of VMA's is maintained to keep track of the bits of memory currently mapped on the system. The new binfmt makes use of (4) to implement shared libraries. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2046, 2005-01-04 21:20:24-08:00, dhowells@redhat.com [PATCH] FRV: Make calibrate_delay() optional The attached patch makes calibrate_delay() optional. In this architecture, it's a waste of time since we can predict exactly what it's going to come up with just by looking at the CPU's hardware clock registers. Thus far, we haven't seen a board with any clock not dependent on the CPU's clock. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2045, 2005-01-04 21:20:09-08:00, dhowells@redhat.com [PATCH] FRV: Remaining Fujitsu FR-V arch include files The attached patch provides the remaining arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2044, 2005-01-04 21:19:55-08:00, dhowells@redhat.com [PATCH] FRV: Yet more Fujitsu FR-V arch include files The attached patch provides the third 100KB or so of the arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2043, 2005-01-04 21:19:42-08:00, wli@holomorphy.com [PATCH] convert FRV to use remap_pfn_range This patch converts FRV to use remap_pfn_range() in its io_remap_page_range() function. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2042, 2005-01-04 21:19:30-08:00, dhowells@redhat.com [PATCH] FRV: More Fujitsu FR-V arch include files The attached patch provides the second 100KB or so of the arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2041, 2005-01-04 21:19:15-08:00, dhowells@redhat.com [PATCH] frv: Fix PCI config space write The attached patch makes byte and word writes to PCI config space work. The problem was that the pointer to the appropriate chunk of the config port needs to be juggled to allow for the fact that FRV is big endian in this case. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2040, 2005-01-04 21:19:03-08:00, dhowells@redhat.com [PATCH] frv: PCI DMA fixes The attached patch makes cache flushing work correctly on DMA consistent memory for the frv arch. On the FRV unmapped memory can't be flushed directly, but has to be kmapped first since the flush instructions take virtual pointers not physical ones. It also splits the MMU and !MMU versions into separate files. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2039, 2005-01-04 21:18:48-08:00, dhowells@redhat.com [PATCH] frv: emove obsolete hardirq stuff from includes The attached patch removes irq_enter() and friends from asm-frv/hardirq.h as they are now mandatorily defined in linux/hardirq.h. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2038, 2005-01-04 21:18:35-08:00, dhowells@redhat.com [PATCH] FRV: First batch of Fujitsu FR-V arch include files The attached patch provides the first 100KB or so of the arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2037, 2005-01-04 21:18:21-08:00, haveblue@us.ibm.com [PATCH] kill off highmem_start_page People love to do comparisons with highmem_start_page. However, where CONFIG_HIGHMEM=y and there is no actual highmem, there's no real page at *highmem_start_page. That's usually not a problem, but CONFIG_NONLINEAR is a bit more strict and catches the bogus address tranlations. There are about a gillion different ways to find out of a 'struct page' is highmem or not. Why not just check page_flags? Just use PageHighMem() wherever there used to be a highmem_start_page comparison. Then, kill off highmem_start_page. This removes more code than it adds, and gets rid of some nasty #ifdefs in .c files. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2036, 2005-01-04 21:18:08-08:00, dhowells@redhat.com [PATCH] Put memory in DMA zone not Normal zone in FRV arch The attached patch makes the FR-V arch put all its memory in the DMA zone rather than the Normal zone since all the memory is available as a DMA target. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2035, 2005-01-04 21:17:55-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 9 The attached patches provides part 9 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2034, 2005-01-04 21:17:41-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 8 The attached patches provides part 8 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2033, 2005-01-04 21:17:28-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 7 The attached patches provides part 7 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2032, 2005-01-04 21:17:14-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 6 The attached patches provides part 6 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2031, 2005-01-04 21:17:01-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 5 The attached patches provides part 5 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2030, 2005-01-04 21:16:47-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 4 The attached patches provides part 4 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2029, 2005-01-04 21:16:34-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 3 The attached patches provides part 3 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2028, 2005-01-04 21:16:20-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 2 The attached patches provides part 2 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2027, 2005-01-04 21:16:06-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 1 The attached patches provides part 1 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2026, 2005-01-04 21:15:53-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V arch documentation The attached patch provides the arch-specific documentation for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2025, 2005-01-04 21:15:39-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch maintainer record The attached patch supplies the maintainer record for an architecture implementation for the Fujistu FR-V CPU series. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2024, 2005-01-04 21:15:26-08:00, dhowells@redhat.com [PATCH] VM routine fixes The attached patch fixes a number of problems in the VM routines: (1) Some inline funcs don't compile if CONFIG_MMU is not set. (2) swapper_pml4 needn't exist if CONFIG_MMU is not set. (3) __free_pages_ok() doesn't counter set_page_refs() different behaviour if CONFIG_MMU is not set. (4) swsusp.c invokes TLB flushing functions without including the header file that declares them. CONFIG_SHMEM semantics: - If MMU: Always enabled if !EMBEDDED - If MMU && EMBEDDED: configurable - If !MMU: disabled Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2023, 2005-01-04 21:15:13-08:00, dhowells@redhat.com [PATCH] frv: add initdata variable spec in a header file The attached patch marks a variable as __initdata in a header file so that the FRV gcc generates the correct access method as initdata variables are too far from the GPREL pointer to access directly. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2022, 2005-01-04 21:15:00-08:00, dhowells@redhat.com [PATCH] GP-REL data support The attached patch makes it possible to support gp-rel addressing for small variables. Since the FR-V cpu's have fixed-length instructions and plenty of general-purpose registers, one register is nominated as a base for the small data area. This makes it possible to use single-insn accesses to access global and static variables instead of having to use multiple instructions. This, however, causes problems with small variables used to pinpoint the beginning and end of sections. The compiler assumes it can use gp-rel addressing for these, but the linker then complains because the displacement is out of range. By declaring certain variables as arrays or by forcing them into named sections, the compiler is persuaded to access them as if they can be outside the displacement range. Declaring the variables as "const void" type also works. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2021, 2005-01-04 21:14:46-08:00, dhowells@redhat.com [PATCH] out-of-line implementation of find_next_bit() The attached patch provides an out-of-line implementation of find_next_bit() and rearranges linux/bitops.h to avoid a dependency loop between inline functions in there and in asm/bitops.h trying to include one another. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2020, 2005-01-04 21:14:32-08:00, sfr@canb.auug.org.au [PATCH] ppc64: tidy up the htab_data structure More tidying up. The htab_data structure contained 5 fields or which two were completely unused and one other was just kept for printing at boot time. I have mode the remaining two into global variables. Built and booted on iSeries (which is always lpar) and on pSeries without partitioning. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2019, 2005-01-04 21:14:19-08:00, sfr@canb.auug.org.au [PATCH] ppc64: use c99 initializers This patch is just more clean up in the ppc64 arch. It uses c99 initializers for various iSeries structures that are used to pass information to the hypervisor. Also itLpNaca is not used by any code that could be in a module, so don't export it. Built and booted. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2018, 2005-01-04 21:14:06-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove StudlyCaps from lppaca structure This patch just renames all the fields (and the structure name) of the lppaca structure to rid us of some more StudyCaps. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2017, 2005-01-04 21:13:53-08:00, sfr@canb.auug.org.au [PATCH] ppc64: move the lppaca defining header file This patch just renames asm/iSeries/ItLpPaca.h to asm/lppaca.h as the lppaca structure is no longer just legacy iSeries specific. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2016, 2005-01-04 21:13:18-08:00, sfr@canb.auug.org.au [PATCH] ppc64: use xPMCRegsInUse This fixes an aweful piece of code that could have just referenced xPMCRegsInUse in the lppaca structure. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2015, 2005-01-04 21:13:07-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove the naca from all but iSeries This patch finally removes the naca from all architectures except legacy iSeries and in the process makes it a structure instead of a pointer. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2014, 2005-01-04 21:12:54-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove debug_switch from the naca The patch moves the debug_switch from the naca to a global variable. Also, a couple of trivial naming tidy ups. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2013, 2005-01-04 21:12:41-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove serialPortAddr from the naca The serialPortAddr field of the naca was only being used locally, remove it. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2012, 2005-01-04 21:12:28-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove the paca pointer form the naca The only place that was using the paca pointer that was in the naca was some assembler that used it to find a parameter to pass to some C code. That C code did not even declare that parameter! Remove the paca pointer. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2011, 2005-01-04 21:12:14-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove /proc/ppc64/{naca,paca/xx} This patch removes the (unused) /proc entries for the naca and the (per cpu) pacas. Also it removes a lot of no longer necessary includes of . Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2010, 2005-01-04 21:12:02-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove interrupt_controller from naca This patch just moves the interrupt_controller field of the naca into a global variable. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2009, 2005-01-04 21:11:49-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove the page table size from the naca This patch just removes the page table size field from the naca (and makes it ppc64_pft_size instead). Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2008, 2005-01-04 21:11:36-08:00, sfr@canb.auug.org.au [PATCH] ppc64: consolidate cache sizing variables This patch consolidates the variables that define the PPC64 cache sizes into a single structure (the were in the naca and the systemcfg structures). Those that were in the systemcfg structure are left there just because they are exported to user mode through /proc. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2007, 2005-01-04 21:11:24-08:00, paulus@samba.org [PATCH] ppc64: simplify timer_interrupt This patch is from Milton Miller . When the update_process_times call was moved out of do_timer for the UP case, the replicator didn't track down the hiding and just added ifndef SMP. This removes the ifdefs and the indirection of calling another file for one function in a third file. Signed-off-by: Milton Miller Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2006, 2005-01-04 21:11:12-08:00, anton@samba.org [PATCH] ppc64: remove stale prom.h code Remove some stale code in prom.h Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2005, 2005-01-04 21:10:59-08:00, anton@samba.org [PATCH] ppc64: fix some compiler warnings Fix some compiler warnings: - The first two are spurious gcc warnings, but quieten them up regardless - Add a missing include - Use register_sysrq_key instead of __sysrq_put_key_op Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2004, 2005-01-04 21:10:46-08:00, anton@samba.org [PATCH] ppc64: Clarify rtasd printk On machines with RTAS but without event-scan support we would incorrectly claim there was no RTAS on the system. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2003, 2005-01-04 21:10:33-08:00, anton@samba.org [PATCH] ppc64: catch bad xmon read/write SPR commands Protect the read/write SPR xmon commands. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2002, 2005-01-04 21:10:19-08:00, anton@samba.org [PATCH] ppc64: limit xmon dump length A number of people (myself included) have pasted bad input into xmon that it parsed as a request to dump gigabytes of memory. Place a limit of 128kB on the dump commands. Also remove a stale function prototype thats been lying around. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2001, 2005-01-04 21:10:06-08:00, serue@us.ibm.com [PATCH] capset returns -EPERM when pid==current->pid In the current kernel/capability.c:sys_capset() code, permission is denied if CAP_SETPCAP is not held and pid is positive. pid=0 means use the current process, and this is allowed. But using the current process' pid is not allowed. The man page for capsetp simply says that CAP_SETPCAP is required to use this function, and does not mention the exception for pid=0. The current behavior seems inconsistent. The attached patch also allows a process to call capset() on itself. Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2000, 2005-01-04 21:09:53-08:00, serue@us.ibm.com [PATCH] properly split capset_check+capset_set The attached patch removes checks from kernel/capability.c which are redundant with cap_capset_check() code, and moves the capset_check() calls to immediately before the capset_set() calls. This allows capset_check() to accurately check the setter's permission to set caps on the target. Please apply. Signed-off-by: Serge Hallyn Signed-off-by: Chris Wright Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1999, 2005-01-04 21:09:40-08:00, oleg@tv-sign.ru [PATCH] fix double sync_page_range() in generic_file_aio_write() generic_file_aio_write(): generic_file_aio_write_nolock(): if (SYNC) sync_page_range_nolock(); if (SYNC) sync_page_range(); I think that generic_file_aio_write() should use __generic_file_aio_write_nolock() instead. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1998, 2005-01-04 21:09:27-08:00, wli@holomorphy.com [PATCH] fix arch/x86_64/ia32/syscall32.c misdeclared pud variable pud needs to be declared as a pud_t in order to avoid an assignment from incompatible pointer type warning or two; this patch makes it so. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1997, 2005-01-04 21:09:14-08:00, heiko.carstens@de.ibm.com [PATCH] s390: fix pgd_index() compile warnings the patch below fixes a few compile warnings due to missing parenthesizes. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1996, 2005-01-04 20:15:26-08:00, rusty@rustcorp.com.au [PATCH] More ECN Fixes: make writable before writing Patrick McHardy spotted this, on top of previous fix. I neatened it. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1995, 2005-01-04 20:15:13-08:00, rusty@rustcorp.com.au [PATCH] ftp nonlinear packet fix FTP connection tracking assumes it can just dereference tcphdr; not neccessarily true now we don't linearize in ftp conntrack helper or tcp connection tracking. Also found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1994, 2005-01-04 20:15:00-08:00, rusty@rustcorp.com.au [PATCH] Fix for NAT core on nonlinear skbs The nat core calls skb_ip_make_writable() with a length too short. Found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1993, 2005-01-04 20:14:47-08:00, rusty@rustcorp.com.au [PATCH] Fix for UDP and TCP NAT on nonlinear skbs UDP and TCP refer to potentially stale pointers after calling skb_ip_make_writable(), and UDP calls it with the wrong len argument. All found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1992, 2005-01-04 20:14:34-08:00, rusty@rustcorp.com.au [PATCH] Conntrack Hash Allocation using __get_free_pages Here is a patch that just makes it use get_free_pages to test the TLB theory. Another obvious improvement would be to not use list_heads for the hash table buckets - a single pointer would likely suffice and it would cut the hash table in half, saving cache, TLB and memory. Signed-off-by: Linus Torvalds ChangeSet@1.1991, 2005-01-04 20:14:21-08:00, rusty@rustcorp.com.au [PATCH] Multiport revision with port ranges (replaces "mport") The multiport match doesn't support ranges of ports, so a new match called "mport" was written. Now we have versioning of matches and targets, we can simply put this extension in multiport revision 1. Also, removes gratuitous checking in match: we basically trust iptables userspace these days. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Rusty Russell (modified) Signed-off-by: Linus Torvalds ChangeSet@1.1990, 2005-01-04 20:14:08-08:00, rusty@rustcorp.com.au [PATCH] Add bitops to ipt_MARK without breaking compatbility Anders Fugmann wrote a patch to add bitops to ipt_MARK. I made a version based on the revision patch. Bart De Schuymer provided the idea of overriding the target type. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1989, 2005-01-04 20:13:55-08:00, rusty@rustcorp.com.au [PATCH] iptables revision getsockopt This adds a new getsockopt to iptables, which allows userspace to query the revision number of extensions. iptables 1.3.0 (to be released soon) already has support for this. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1988, 2005-01-04 20:13:42-08:00, rusty@rustcorp.com.au [PATCH] Steal a Character To Create a Revision Number Pablo Neira came up with the idea of stealing the last byte in the (already nul-terminated) name of a target/match to create a version. That patch motivated me to clean up the match and target searching in ip_tables, which makes this patch more trivial. I also renamed "version" to "revision" since the word "version" was used for iptables itself. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1987, 2005-01-04 20:13:30-08:00, rusty@rustcorp.com.au [PATCH] Clean up the kmod handling code in iptables.c We now have a convenient kmod macro try_then_request_module(). 1) Split our current "generic" function into separate find_target_lock(), find_table_lock() and find_match_lock() functions explicitly. 2) Have those functions do try_module_get() for us, and fix up the one caller who didn't do that anyway. 3) Have the caller use try_then_request_module(). 4) Remove __ipt_mutex_up() and __ipt_find_target_lock() which weren't used (even in patch-o-matic AFAICT). This cleanup takes us closer to using standard list macros everywhere, and makes the version patch simpler. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1986, 2005-01-04 20:13:17-08:00, rusty@rustcorp.com.au [PATCH] Remove Randomness in Selecting NAT IP Address We currently choose a "random" IP address to NAT to, where we have a range. Martin Josefsson pointed out that he uses the SAME target in iptables because changing IP addresses breaks Internet banking sites (among others) which assume the customer will be coming from a consistent IP address. In fact, we spend a fair bit of effort trying to balance the number of connections we NAT to each IP address. We can come pretty damn close just hashing the source and destination IP addresses, and it has the consistency property which is so desirable, as well as being faster. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1985, 2005-01-04 20:13:04-08:00, rusty@rustcorp.com.au [PATCH] Warn when old code would have done extra mangling Now we no longer do extra mangling, warn in that case. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1984, 2005-01-04 20:12:51-08:00, rusty@rustcorp.com.au [PATCH] Remove do_extra_mangle: double NAT on LOCAL_OUT On NF_IP_LOCAL_OUT, when destination NAT changes the destination interface, we also change the source address, so the packet is the same as if it were generated to go that way in the first place. This is not strictly necessary, I believe. This patch rips that code out to see what breaks. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1983, 2005-01-04 20:12:38-08:00, rusty@rustcorp.com.au [PATCH] Don't try too hard to NAT to unique tuple On NF_IP_LOCAL_OUT or NF_IP_PRE_ROUTING, if destination NAT is not sufficient to create a unique tuple, we try changing the source port as well. However, this is also not strictly necessary: if the tuple is not unique, we will also try to change the source on the NF_IP_POST_ROUTING hook. When we finally confirm the connection, if the tuple is still not unique the packet will be dropped (this is required anyway as we could race: the conntrack is not placed in the hash until the packet is about to leave the box anyway). In fact, we only need best effort *everywhere*. This patch rips that code out to see what breaks. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1982, 2005-01-04 20:12:25-08:00, rusty@rustcorp.com.au [PATCH] ip_conntrack_alter_reply doesn't need to loop ip_conntrack_alter_reply checks that the reply isn't already taken, but there's little point, since there's *still* a race after it is called (which we handle at confirm time anyway). Signed-off-by: Linus Torvalds ChangeSet@1.1981, 2005-01-04 20:12:12-08:00, rusty@rustcorp.com.au [PATCH] Remove NAT to multiple ranges The NAT code has the concept of multiple ranges: you can say "map this connection onto IP 192.168.1.2 - 192.168.1.4, 192.168.1.7 ports 1024-65535, and 192.168.1.10". I implemented this because we could. But it's not actually *used* by many (any?) people, and you can approximate this by a random match (from patch-o-matic) if you really want to. It adds complexity to the code. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1980, 2005-01-04 20:11:59-08:00, rusty@rustcorp.com.au [PATCH] When ipt_ECN needs TCP, check it is not inverted Writing the nfsim testcase for the ECN target revealed a hole in the rule checking: when checking whether the rule specified TCP, you need to check it isn't inverted. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1979, 2005-01-04 20:11:46-08:00, rusty@rustcorp.com.au [PATCH] ipt_REJECT Target nonlinear fixes nfsim now generates non-linear packets: when run under valgrind it finds linear assumptions very nicely. This is the second thing I tried, and it found a real bug. In this case, checking the UDP checksum is correct, but overkill, and like the ICMP header handling, does not handle non-linear packets. Remove UDP checksum, fix ICMP error. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1978, 2005-01-04 15:59:03-08:00, chrisw@osdl.org [PATCH] fix up dummy security module code merge OK, somehow I managed to botch this one. It happens to work fine, but I should have been more careful with forward porting this 1+ year old patch. The exec-time calc should go in bprm_apply_creds, not bprm_free_security. Thanks to Stephen for spotting my mistake. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds ChangeSet@1.1977, 2005-01-04 15:57:57-08:00, torvalds@ppc970.osdl.org Merge bk://nfsclient.bkbits.net/linux-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1975.1.2, 2005-01-04 15:57:25-08:00, brugolsky@telemetry-investments.com [PATCH] NFS client O_DIRECT error case fix The NFS direct-io error return path for request sizes greater than MAX_DIRECTIO_SIZE fails to initialize the returned page struct array pointer to NULL. Discovered using AKPM's ext3-tools: odwrite -ko 0 16385 foo Signed-off-by: Bill Rugolsky Signed-off-by: Linus Torvalds ChangeSet@1.1938.466.6, 2005-01-04 22:45:01+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2347/1: PXA SSP PSP bit definition Patch from Liam Girdwood This patch adds a bit definition for the SSP port PSP mode. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.1938.466.5, 2005-01-04 22:39:50+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2346/1: Update IXP4xx documentation Patch from Deepak Saxena This patch updates the IXP4xx documentation with information about the latest chipsets and supported devices. Supercedes 2308/1 Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.466.4, 2005-01-04 22:34:56+00:00, ben-linux@org.rmk.(none) [ARM PATCH] 2345/1: S3C24XX - serial init depending on cpu detected Patch from Ben Dooks Use the cpu-type detected in arch/arm/mach-s3c2410/cpu.c to work out which uart initialisation routine to call, instead of relying on the one called within mach-xxxx.c. This allows one machine-type to run with either an 2410 or 2440 cpu installed. Thanks to Dimitry Andric for the original patch. Signed-off-by: Ben Dooks Signed-off-by: Russell King ChangeSet@1.1938.466.3, 2005-01-04 22:29:29+00:00, ben-linux@org.rmk.(none) [ARM PATCH] 2344/1: S3C2440 - fix mapping of watchdog for reboot Patch from Ben Dooks Ensure the watchdog timer is mapped for use with the reboot code. Also fixes minor comment typo. Signed-off-by: Dimitry Andric Signed-off-by: Ben Dooks Signed-off-by: Russell King ChangeSet@1.1975, 2005-01-04 14:28:02-08:00, Andries.Brouwer@cwi.nl [PATCH] remove duplicated patch fragment Acked-by: Chris Wright Signed-off-by: Linus Torvalds ChangeSet@1.1938.466.2, 2005-01-04 22:24:26+00:00, ben-linux@org.rmk.(none) [ARM PATCH] 2343/1: S3C2410 / S3C2440 MAINTAINERS entries Patch from Ben Dooks Mainter entries for ARM/S3C2410 and ARM/S3C2410 ARM Architectures, mainted by Ben Dooks on behalf of Simtec Electronics. Signed-off-by: Ben Dooks Signed-off-by: Russell King ChangeSet@1.1974, 2005-01-04 13:54:13-08:00, chrisw@osdl.org [PATCH] track capabilities in default dummy security module code Switch dummy logic around to set cap_* bits during exec and set*uid based on basic uid check. Then check cap_* bits during capable() (rather than doing basic uid check). This ensures that capability bits are properly initialized in case the capability module is later loaded. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds ChangeSet@1.1938.466.1, 2005-01-04 20:03:09+00:00, rmk@flint.arm.linux.org.uk [ARM] Fix slab corruption issues triggered with pud_t integration. When the page tables are wrapped from 4 levels to 2 levels, the new MM code requires PMD_SHIFT to match PUD_SHIFT, which must also match PGDIR_SHIFT. If PMD_SHIFT is smaller than PUD_SHIFT, we risk freeing a still-in-use table (== page) which can then get re-used for the slab cache. Testing and inspection shows that there isn't any real benefit from keeping PMD_SHIFT set to 20. In addition, add some comments concerning the granularity of alloc_init_section() and fix a missing PMD assignment in the rebooting code. Somehow we managed to get away with that, although it is actually wrong. Maybe I've just been lucky until now. Signed-off-by: Russell King ChangeSet@1.1971.1.35, 2005-01-04 19:49:09+01:00, trond.myklebust@fys.uio.no RPC: call_verify Don't label all retries as "server seeing garbage". Report correct error for buffer overflows. Fix incorrect buffer overflow test that was masking AUTH_REJECTEDCRED, AUTH_REJECTEDVERF,... errors. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.34, 2005-01-04 19:48:45+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: incorrect "df" results Description: Fix an NFS client bug introduced in 2.6.9-rc1. The "df" command was reporting the size of NFS file systems incorrectly. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.33, 2005-01-04 19:48:17+01:00, trond.myklebust@fys.uio.no NFS: Ensure ACCESS caches are invalidated together with the attribute cache. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.32, 2005-01-04 19:47:52+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: use attribute timeout instead of "noac" mount option The behavior enabled by the "noac" mount option should be precisely equivalent to setting acreg{min,max} or acdir{min,max} to zero via mount options. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.31, 2005-01-04 19:47:24+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Direct reads and writes need to flush dirty cache pages Other parts of the NFS client invoke nfs_wb_all() when they want to flush dirty cache pages. The direct path needs to do that, too. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.30, 2005-01-04 19:47:00+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Use parallel read operations to do direct read requests The initial implementation of NFS direct reads was entirely synchronous. The direct read logic issued one NFS READ operation at a time, and waited for the server's reply before issuing the next one. For large direct read requests, this is unnecessarily slow. This patch changes the NFS direct read path to dispatch NFS READ operations for a single direct read request in parallel and wait for them once. The direct read path is still synchronous in nature, but because the NFS READ operations are going in parallel, the completion wait should be much shorter. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.29, 2005-01-04 19:46:31+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Direct read path allocates nfs_read_data on the stack Reduce stack utilization in the NFS direct read path by using a dynamically allocated nfs_read_data structure instead of allocating one on the stack. This reduces stack utilization of nfs_direct_read_seg from over 900 bytes to less than 100 bytes. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.28, 2005-01-04 19:46:04+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Direct write path allocates nfs_write_data on the stack Reduce stack utilization in the NFS direct write path by using a dynamically allocated nfs_write_data structure instead of allocating one on the stack. This reduces stack utilization of nfs_direct_write_seg from over 900 bytes to less than 100 bytes. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.27, 2005-01-04 19:45:37+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: better handling of short writes in direct write path Immediately return control to the application if a short NFS write is detected in the NFS client's direct write path. This is better behavior than what the direct write path does today, which could result in data appearing at the wrong offset in the file. Eventually this code path should retry short writes at least once before giving up. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.26, 2005-01-04 19:45:13+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Use sizeof() instead of C macro Replace a C macro with sizeof(). Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.25, 2005-01-04 19:44:43+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] RPC: display XIDs in host order Description: Ethereal and other tools display RPC XIDs in host order. This patch changes the RPC trace messages that display XIDs to print them in host order so they can be easily matched to XIDs that appear in Ethereal. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.24, 2005-01-04 19:44:19+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: report return code on GETATTR and SETATTR Improve trace debugging messages for NFSv2/3 GETATTR and SETATTR procedures. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.23, 2005-01-04 19:43:50+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: short write warning Recently a patch set was accepted to allow the Linux NFS client to handle short writes by retrying the unwritten portion of the request. The only case that now results in an error is when the server makes no progress; that is, writes zero bytes. This patch changes the kernel log warning that is generated in that case to reflect the error condition more accurately. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.22, 2005-01-04 19:43:24+01:00, trond.myklebust@fys.uio.no NFS: Fix dentry refcount accounting error which causes unnecessary sillyrenames when renaming to an existing file. Signed-off-by: Greg Banks Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.21, 2005-01-04 19:42:56+01:00, trond.myklebust@fys.uio.no NFS: when we mount with the "nolock" flag we need to use local locking. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.20, 2005-01-04 19:42:30+01:00, trond.myklebust@fys.uio.no VFS: Remove LOCK_USE_CLNT. It should no longer be necessary. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.19, 2005-01-04 19:42:03+01:00, trond.myklebust@fys.uio.no RPC: Optimize away unnecessary del_timer_sync() operations, when we know there are no pending timers. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.18, 2005-01-04 19:41:37+01:00, trond.myklebust@fys.uio.no VFS: Avoid dentry aliasing problems in filesystems like NFS, where inodes may be marked as stale in one instance (causing the dentry to be dropped) then re-enabled in the next instance. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.17, 2005-01-04 19:41:11+01:00, trond.myklebust@fys.uio.no NFSv2/v3/v4: ESTALE should not be a permanent condition on directories. Although it usually means that someone has deleted a file on the server, the ESTALE error may also indicate that the sysadmin has used exportfs to deny our client access to the server. Most NFS implementations therefore consider it a non-permanent condition, and allow inodes to "recover" when the sysadmin re-enables access. If, however, you want to work with broken servers, like unfsd, that reuse filehandles for new files after the original file gets deleted, then "recovery" is impossible, since it may be that the filehandle now points to a different file. Note that this is broken server behaviour that may happen even without us ever seeing the ESTALE error. In order to minimize (but we can never eliminate entirely) this race condition on unfsd servers, Linux has traditionally made ESTALE a permanent condition on all filehandles except the root filehandle. The problem is that if we apply this strict staleness criterion to directories (particularly so for he current directory), then all processes will need to re-walk the path starting from the mount point, in order to recover from the sysadmin intervention case. As this is not usual on other *NIX implementations, and may in any case be undermined by caching rules etc, this is being seen as a usability problem. This patch makes ESTALE a non-permanent condition on directories, but preserves the current behaviour for non-directories. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.16, 2005-01-04 19:40:47+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Sync NFS writes still use kmalloc Replace the kmalloc() and kfree() calls in this path with appropriate invocations of nfs_writedata_alloc() and nfs_writedata_free(). This makes nfs_writepage_sync match all the other write paths in fs/nfs/write.c. Category: Maintainability, performance Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.15, 2005-01-04 19:40:18+01:00, trond.myklebust@fys.uio.no RPCSEC_GSS: Miscellaneous cleanup of auth_gss.c: we're passing something as a void * when we know perfectly well what it is. And we're passing some arguments that we don't actually use. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.14, 2005-01-04 19:39:55+01:00, trond.myklebust@fys.uio.no RPC: The RPCAUTH_CRED_DEAD flag had been unused for some time before I unwisely revived it for use with the gss code. Having removed that use from the gss code, it's time to remove all references to it. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.13, 2005-01-04 19:39:27+01:00, trond.myklebust@fys.uio.no RPC: Instead of setting a flag (RPCAUTH_CRED_DEAD) in the cred to indicate failure of an upcall to get a gss context for that cred, set the status of waiting tasks to indicate failure. This solves problems e.g. with creds with the CRED_DEAD flag set never being refreshed, which caused krb5 mounts to fail after the context used to do RENEWS expired. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.12, 2005-01-04 19:39:01+01:00, trond.myklebust@fys.uio.no RPCSEC_GSS: When the gss code notices that a cred has expired, mark the cred containing the context non-uptodate, triggering creation of a new context. Note that on the send-side operations (get_mic, wrap), we mark the cred as not uptodate, but continue trying to use it; the server can complain if it wants to, and the next time through we'll refresh it. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.11, 2005-01-04 19:38:37+01:00, trond.myklebust@fys.uio.no NFSv4: Convert the NFSv4 close and open_downgrade operations to use asynchronous RPC calls. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.10, 2005-01-04 19:38:13+01:00, trond.myklebust@fys.uio.no NFSv4: setattr, close and open_downgrade should use the state_owner's credentials when they are available. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.9, 2005-01-04 19:37:47+01:00, trond.myklebust@fys.uio.no NFSv4: Make nfs4_do_open() take a dentry argument. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.8, 2005-01-04 19:37:20+01:00, trond.myklebust@fys.uio.no NFS: Change rpc_ops->create() to take a dentry argument rather than a qstr. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.7, 2005-01-04 19:36:52+01:00, trond.myklebust@fys.uio.no NFS: The fact that readdirplus calls now create dentries from within readdir calls renders nfs_cached_lookup() obsolete. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.6, 2005-01-04 19:36:29+01:00, trond.myklebust@fys.uio.no NFS: Make readdirplus create dentries on the fly when we're running through the directory. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.5, 2005-01-04 19:36:01+01:00, trond.myklebust@fys.uio.no RPC: Add missing calls to flush_dcache_page() in net/sunrpc/xdr.c Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.4, 2005-01-04 19:35:39+01:00, trond.myklebust@fys.uio.no RPC: More aggressive RPC debugging code. People are worrying about spinlock deadlocks in the debugging code, without actually worrying about the bugs that triggered the debugging code in the first place. Convert to BUG_ON() in order to ensure that bugs are reported. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.3, 2005-01-04 19:35:12+01:00, trond.myklebust@fys.uio.no RPC: Fix a bug in rpc_killall_tasks(). Shirly Ma reported seeing problems with rpc_killall_tasks() causing the task->tk_magic debugging test to trigger. It turns out we may be killing tasks that are not yet running or even initialized. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.2, 2005-01-04 19:34:47+01:00, trond.myklebust@fys.uio.no RPC: Remove the rpc_queue_lock global spinlock. Replace it with per-rpc_queue spinlocks. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.1, 2005-01-04 19:34:21+01:00, trond.myklebust@fys.uio.no RPC: Convert rpciod into a work queue for greater flexibility. Signed-off-by: Trond Myklebust ChangeSet@1.1972, 2005-01-04 10:06:07-08:00, torvalds@ppc970.osdl.org Mark HPUSBSCSI scanner broken. You're supposed to use libusb. ChangeSet@1.1971, 2005-01-04 08:16:58-08:00, torvalds@ppc970.osdl.org Hide question about SERIO_LIBPS2 unless there is some remote reason the user migth want to see it. Under any normal use it gets auto-selected by PS/2 mouse or ATKBD support anyway, and if those aren't selected there's no reason to select this one either unless you have some very special uses. ChangeSet@1.1938.465.1, 2005-01-04 08:03:51-08:00, torvalds@ppc970.osdl.org Merge bk://linux-sam.bkbits.net/kbuild into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.1.205, 2005-01-04 15:46:20+01:00, dwmw2@shinybook.infradead.org Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 ChangeSet@1.1969, 2005-01-04 09:06:19+01:00, vojtech@suse.cz Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input ChangeSet@1.1938.451.10, 2005-01-04 06:48:44+01:00, akpm@osdl.org bk-kbuild-in_gate_area_no_task-warning-fix arch/x86_64/mm/init.c: In function `in_gate_area_no_task': arch/x86_64/mm/init.c:656: warning: suggest parentheses around && within || In file included from include/asm/numa.h:5, from arch/x86_64/kernel/setup.c:60: Signed-off-by: Andrew Morton Signed-off-by: Sam Ravnborg ChangeSet@1.1938.463.186, 2005-01-03 21:21:57-08:00, zwane@arm.linux.org.uk [PATCH] NX: Fix noexec kernel parameter noexec_setup runs too late to take any effect, so parse it earlier. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.185, 2005-01-03 21:16:56-08:00, heiko.carstens@de.ibm.com [PATCH] s390: SCLP device driver cleanup From: Peter Oberparleiter sclp: core driver cleanup Details: - moved signal shutdown (quiesce) handling into a separate file - cleanup of SCLP core driver: . introduced driver states instead of bits . introduced request retry count and retry limit . sclp_add_request now returns an error code if a request couldn't be started . introduced separate request structure for init_mask requests to simplify code . request timer is now manually checked in sclp_sync_wait because timer interrupts are disabled in this context . removed busy timer - request timer now handles both cases . split up sclp_start_request into __sclp_start_request and sclp_process queue . removed sclp_error_message (unused) . introduced sclp_check_handler function to split up initial init mask test from standard init mask request processing . introduced sclp_deactivate and sclp_reactivate for simplified reboot event handling (and potential use in suspend/resume scenario) . added protection against multiple concurrent init mask calls - minor changes in SCLP core driver: . updated comments . renamed functions to be consistent with "function name starts with __ => needs lock" . renamed internal functions for consistency reasons . introduced inlined helper functions to simplify code . moved EXPORT_SYMBOL definitions next to function definition - changes in sclp console driver . removed callback recursion to prevent stack overflow - changes to CPI module . added check for sclp_add_request return code . changed printks to specify a message level - changes to generic sclp tty layer . removed timed buffer retry after error (timers may not work in some situations) . introduced return code for sclp_emit_buffer - changes to sclp tty driver . removed callback recursion - changes to sclp vt220 driver . removed callback recursion . removed timed buffer retry after error - modified sclp_init_mask to prevent problems with some compiler versions Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.184, 2005-01-03 21:16:43-08:00, heiko.carstens@de.ibm.com [PATCH] s390: DCSS driver cleanup fix From: Carsten Otte - Fix codingstyle. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.183, 2005-01-03 21:16:29-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Character device drivers From: Peter Oberparleiter From: Stefan Bader character device driver changes: - tape: Correct module count usage. - 3270: Use mod_timer only when timer is pending. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.182, 2005-01-03 21:16:16-08:00, heiko.carstens@de.ibm.com [PATCH] s390: DASD driver From: Peter Oberparleiter dasd driver changes: - Modify format analysis routine to use block size provided by on-disk label. - Search data structures when referencing use_diag/ro attribute values. - Correct return code checking when allocating memory. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.181, 2005-01-03 21:16:02-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Network device driver patches From: Ursula Braun-Krahl From: Peter Tiedemann From: Thomas Spatzier From: Frank Pavlic - ctc: make sysfs attribute buffer early available. - ctc: remove memory leak for channel ccw struct. - qeth: remove redundant info card->info.ifname. - qeth: enable recovery with retries in qeth_hardsetup_card after unit check. - qeth: do not allow to set layer2 attribute on IQD devices. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.180, 2005-01-03 21:15:47-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Common I/O layer From: Cornelia Huck common i/o layer changes: - Cope with changed cdev->handler. - Split clearing of subchannels from reipl function and declare it in header. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.179, 2005-01-03 21:15:33-08:00, heiko.carstens@de.ibm.com [PATCH] s390: core patches s390 core changes: - Disable pfault pseudo page faults before stopping a cpu. - Add exception table for diag10 instruction. - Move initialization of active_mm of idle task to smp_create_idle. - Regenerate default configuration. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.178, 2005-01-03 21:15:20-08:00, schwidefsky@de.ibm.com [PATCH] s390: remove compat setup_arg_pages32 Remove the s390 version of setup_arg_pages32 function and use the generic setup_arg_pages function instead. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.177, 2005-01-03 21:15:06-08:00, kraxel@bytesex.org [PATCH] uml: sysfs support for the uml block devices. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.176, 2005-01-03 21:14:52-08:00, kraxel@bytesex.org [PATCH] uml: sysfs support for uml network driver. Add sysfs support to the uml network driver. Also comment the eth_init function, I think that one is never ever needed as the devices are initialized when the underlying transport mechanism registeres. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.175, 2005-01-03 21:14:36-08:00, kraxel@bytesex.org [PATCH] uml: raise tty limit Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.174, 2005-01-03 21:14:23-08:00, kraxel@bytesex.org [PATCH] uml: fix umldir init order Fixup initialization order when creating the $HOME/.uml/ directory and the files therein, also make the error messages more useful. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.173, 2005-01-03 21:14:09-08:00, kraxel@bytesex.org [PATCH] uml: symbol export export a missing symbol, IIRC xfs needs that one. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.172, 2005-01-03 21:13:54-08:00, jdike@addtoit.com [PATCH] uml: Fix highmem compilation Remove a reference to an unused variable. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.171, 2005-01-03 21:13:41-08:00, jdike@addtoit.com [PATCH] uml: Remove bogus __NR_sigreturn check Before Bodo's signal fixes and my signal delivery rework, it was possible for a process to execute UML code by running the default signal restorer. This is no longer possible, so this check can be removed from the sanity test for UML accidentally tracing itself. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.170, 2005-01-03 21:13:28-08:00, jdike@addtoit.com [PATCH] uml: declare ptrace_setfpregs Add a declaration for ptrace_setfpregs Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.169, 2005-01-03 21:13:13-08:00, jdike@addtoit.com [PATCH] uml: use SYSEMU_SINGLESTEP This implements using the new ptrace option SYSEMU_SINGLESTEP in UML (advanced sysemu) in SKAS and TT modes. To have a fast selection of the appropriate ptrace option to use next, a 2 dimensional arry is used and singlestepping() is modified to return 0,1 or 2: 0 = don't do singlestepping 1 = singlestep a syscall 2 = singlestep a "non syscall" instruction In do_syscall() writing of the syscall number is supressed, if the advanced sysemu is in use (that does it itself). Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.168, 2005-01-03 21:12:59-08:00, jdike@addtoit.com [PATCH] uml: detect SYSEMU_SINGLESTEP From: Bodo Stroesser This implements checking for the new ptrace option SYSEMU_SINGLESTEP (advanced sysemu) and allows the values 0,1,2 for /proc/sysemu, if advanced sysemu is available: 0 = don't use sysemu 1 = use sysemu, but don't use advanced sysemu 2 = use sysemu and advanced sysemu Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.167, 2005-01-03 21:12:43-08:00, jdike@addtoit.com [PATCH] uml: fix update_process_times call From: Bodo Stroesser In call to update_process_times() set parameter user correctly. (was from for SKAS). Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.166, 2005-01-03 21:12:30-08:00, jdike@addtoit.com [PATCH] uml: correctly restore extramask in sigreturn From: Bodo Stroesser Restoring of current->blocked in sys_sigreturn is wrong. The first (long ) of the mask correctly is fetched from sc->oldmask. The further longs again come from there, but correctly should be taken from frame->extramask. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.165, 2005-01-03 21:12:17-08:00, jdike@addtoit.com [PATCH] uml: SYSEMU fixes From: Bodo Stroesser Usage of SYSEMU in TT mode is modified, so that always the same method is used in do_syscall as has been used before in ptrace(PTRACE_SYSCALL/SYSEMU, ...) Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.164, 2005-01-03 21:12:04-08:00, jdike@addtoit.com [PATCH] uml: Allow vsyscall code to build on 2.4 From: Bodo Stroesser This patch fixes compilation on 2.4 hosts by not relying on macros from 2.6 host kernel headers in one userspace file. It's about AT_SYSINFO_* macros. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.163, 2005-01-03 21:11:51-08:00, jdike@addtoit.com [PATCH] uml: Fix setting of TIF_SIGPENDING From: Bodo Stroesser My older patch, that sets TIF_SIGPENDING after an ptrace-interception in syscall_trace() is wrong. Some syscalls want to be called without any signal pending. If a signal is pending on syscall-entry, they immediately return with -ERESTARTNOINTR. Thus, on return to user, the pending signals can be processed and the kernel will lower eip by 2 to have the syscall restarted after that. Since my change sets TIF_SIGPENDING on the entry and exit interception, stracing such a syscall looped! Try "strace ls" to see what happens. Fix: set TIF_SIGPENDING on the exit interception only. This avoids the loop and is enough for security. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.162, 2005-01-03 21:11:38-08:00, jdike@addtoit.com [PATCH] uml: system call restart fixes From: Bodo Stroesser The implementation of sys_sigreturn() and sys_rt_sigreturn() in UML must be changed. This is necessary, since the return value of sys_*_sigreturn() is the value of eax in the thread, that was interrupted by the signal handler. If accidentaly eax contains -ERESTART_*, orig_eax *must* be -1 to avoid syscall restart processing in kern_do_signal(). If orig_eax is >=0, eip might be lowered by 2, the process will fail. In UML PT_REGS_SYSCALL_NR() or UPT_SYSCALL_NR() have to be used instead of orig_eax. While writing and testing an exploit for this, I saw that for most interrupts, the syscall number is undefined. So even on a return from interrupt a wrong syscall restart handling could happen. And also: UML resumes a process with ptrace(PTRACE_SYSCALL/SYSEMU/SINGLESTEP when a syscall in UML in SKAS mode has been processed. But since there is a valid syscall number in the host's orig_eax, the host could do a wrong syscall restarting if the syscall in UML was a sigreturn() returning -ERESTART* To avoid this, in SKAS -1 should be written to regs.orig_eax before restore_registers(). Signed-off-by: Bodo Stroesser Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.161, 2005-01-03 21:11:23-08:00, jdike@addtoit.com [PATCH] uml: export end_iomem From: Bodo Stroesser some modules need end_iomem to be exported. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.160, 2005-01-03 21:11:10-08:00, jdike@addtoit.com [PATCH] uml: small vsyscall fixes From: Bodo Stroesser As Jeff pointed out, the check for address wrapping in access_ok_skas was wrong. Also, change vsyscall_ehdr and vsyscall_end to be unsigned long and export them, since modules need them for access_ok_skas Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.159, 2005-01-03 21:10:59-08:00, jdike@addtoit.com [PATCH] uml: defconfig update Update defconfig for 2.6.10-rc2-mm4. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.158, 2005-01-03 21:10:46-08:00, jdike@addtoit.com [PATCH] uml: kill host processes properly This patch changes how UML kills ptraced processes in order to be more correct in the presence of the ptrace changes in 2.6.9. It used to be that ptrace stopped processes could simply be killed and they would go away. Now, there's a new run state for ptraced processes which doesn't receive signals until they are PTRACE_KILLed or PTRACE_CONTinued. So, this patch kills the process, as usual, then PTRACE_KILL and PTRACE_CONT. This is done in os_kill_ptrace_process() for use from skas mode, and in tracer() when it sees a child process getting a SIGKILL. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.157, 2005-01-03 21:10:34-08:00, jdike@addtoit.com [PATCH] uml: Add TRACESYSGOOD support From: Bodo Stroesser Patch 1/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. Insert a check for availability and function of ptrace(PTRACE_SETOPTIONS,,,PTRACE_O_TRACESYSGOOD) into the normal ptrace checks at startup. Patch 2/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. This patch makes SKAS-mode use PTRACE_O_TRACESYSGOOD and fixes the problems in SKAS. Patch 3/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. This patch makes TT-mode use PTRACE_O_TRACESYSGOOD and fixes the problems in TT. I'm not quite sure, that this patch doesn't cause problems with debugger usage. It should be testet by someone, who has more know how about TT-mode debugger. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.156, 2005-01-03 21:10:21-08:00, jdike@addtoit.com [PATCH] uml: include vsyscall page in core dumps From: Bodo Stroesser Complete the dump with the vsyscall-information, if a vsyscall-page is available. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.155, 2005-01-03 21:10:08-08:00, jdike@addtoit.com [PATCH] uml: make vsyscall page into process page tables From: Bodo Stroesser To make the vsyscall-page available for copy_from_user() and ptrace(), we should use kernel's "gate-vma" mechanism. Therefore we need a valid page structure. To have this, one page (or more) is allocated at boot time, the contents of the vsyscall-page is copied into this page and the page's pte is inserted in swapper's pagetables. Now it will be copied into the pagetables of all processes. Note: this alone doesn't work, since FIXADDR_USER_START and FIXADDR_USER_END are not yet defined correctly. Also access_ok_skas() does not yet grant read accesses to pages not in the normal user area. Risks: Please check the first hunk! I don't know, whether this change is OK. Maybe fixrange_init() is wrong anyway with 3-level-pagetables? Here access_ok_skas() and FIXADDR_USER_XXXX are fixed. Now everything should work fine, while the processes are running. But if a process crashes, the vsyscall-page will not be dumped. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.154, 2005-01-03 21:09:55-08:00, jdike@addtoit.com [PATCH] uml: add elf vsyscall support From: Bodo Stroesser This is the first patch of a series of four. These patches allow the use of sysenter-systemcalls in UML if the host support sysenter. Some facts have to be noted: - the sysenter instruction does not save anything, not even the return address. Thus the host-kernel builds a stackframe with an fixed return address for the backjump to the vsyscall-page. All kernels that support sysenter thus must have a vsyscall-page - The hosts vsyscall-page is visible in all memory-contexts on the host, even in those of the processes running on UML. This cannot be changed. So the best way to implement sysenter is to integrate the host's vsyscall-page into UML, if available. This patch creates a new source file containing an UML initialization function. The function scans the Elf-auxiliary vector that is prepared by the host for relevant information about: - vsyscall elf-header - vsyscall entry - machine type (called "platform", e.g. "i586" or "i686") - hardware capabilities These informations are inserted into the Elf-auxiliary-vector that is generated if an UML process calls "execXX()". If the information from the auxiliray-vector is not complete, UML uses the previos default values, with one exception: if the host has no vsyscall-page, UML now does no longer insert AT_SYSINFO or AT_SYSINFO_EHDR elements. (I think, that's better than writing dummies) Since the host's vsyscall-page is always visible to UML processes, this change is enough to let UML with an i686-compiled glibc use sysenter. what's missing: - is_syscall() in SKAS cannot access the code in the vsyscall-page via copy_from_user(), thus singlesteppers still could break out. (Note: that's not new, if someone jumps willingly to the sysenter-entry in the vsyscall-page, he can do that without the patch, too). - a debugger cannot access the code in the vsyscall-page via ptrace( PEEKTEXT, ...) Risks: could there by any feature of the host's processor, that is indicated in the hardware capabilities, but must not be used in UML? Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.153, 2005-01-03 21:09:42-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: finish fixing run_helper failure path Fix some bugs left in the failure path of run_helper by the previous patch: it was missing one os_close_file(fds[1]) which is conditional. To use the goto handling model, I set the fd to -1 if it's already closed (I don't want to check if keeping one more pipe-end open is no problem). Also do some cosmethic cleanup: * "err" was what we returned even on success, so just use a neutral "ret". * use tabs, not spaces. * a little more comments. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.152, 2005-01-03 21:09:29-08:00, blaisorblade_spam@yahoo.it [PATCH] Uml: first part rework of run_helper() and users. With Jeff Dike , Fixed a file descriptor leak in the network driver when changing an IP address. Fixed the error handling in run_helper. Paolo notes: Actually, this is part one of the change, the exact one extracted from Jeff Dike's incrementals tree before 2.6.9-rc big UML merge. There is some changes must be done, so I'm also sending a second patch with this one, too. Separated for tracking purposes. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.151, 2005-01-03 21:09:16-08:00, kraxel@bytesex.org [PATCH] uml: terminal cleanup This is a major cleanup of the uml terminal drivers and console handling (console as in "where the kernel messages go to", not as in "linux virtual terminals"). The changes in detail: (1) There is a new console driver calles "stderr" which (as the name implies) simply dumps all kernel messages to stderr. That one is registered very early in the boot process via console_initcall() and will print every almost kernel message instantly: Both very early in the boot process and very late in shutdown. Note that this is not enabled by default, see below for details. (2) Ditched the early-console-init hackery in stdio_console.c (open_console(NULL) + related stuff) into the waste basket, not needed any more as you can use the new stderr console driver to get the kernel messages if your kernel crashes very early in the boot process. (3) Handle console initialitation for the uml stdio console and virtual serial lines the normal way using the console->setup() function. Now all kernel messages appear on your console device once it is initialized without any dirty tricks. (4) The (2) changes allow a number of further cleanups: As we don't open a line without a tty_struct any more we can ... * hook struct line into tty->driver_data * pass around tty_struct instead of struct line everythere * get rid of some trivial wrappers in ssl.c and stdio_console.c because we can get struct line via tty_struct all the time now. (5) Change the ordering in the arch/um/drivers/Makefile and thus the link and initialization order to make sure the stdio console and not the virtual serial line is the default console device. (6) Fixed a number of Documentation/CodingStyle issues within the code (not systematically, but usually just the places I was touching anyway or where it bugged me while browsing the code because it was hard to read). Looks like that cleanup also fixed some strange tty issues I've seen in the past (like console getty not responding to input sometimes, suse's /sbin/blogd causing trouble). Finally some usage notes for using the new stderr console: If the stderr console is enabled, then it is the default console device because it registeres very early in the boot process. But as it isn't linked to a tty device this makes init unhappy, you'll see "can't open initial console" error messages. Because you usually don't want that the stderr console is turned off by default. That also maintains the behavior that /dev/tty0 is the first console device registered and thus the default console. There are basically two useful use cases for the stderr console: (1) Your kernel dies before the normal console device is initialized and thus you don't see any messages. Just enable the stderr console to see them by adding "stderr=1" to the kernel command line. (2) You want to have the kernel messages on both stderr and your console terminal device. Try something like this: $ ./linux stderr=1 console=stderr console=ttyS0 ssl0=xterm This example sets up the console on a virtual serial line and pops up an xterm for that. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.150, 2005-01-03 21:09:02-08:00, blaisorblade_spam@yahoo.it [PATCH] hostfs: uml: add some other pagecache methods This is a follow-up to my previous "hostfs - uml: set .sendfile to generic_file_sendfile" patch. I was asking whether other methods should have been added, and comparing with ext3 I found some more ones. However, I have not specific clues about them: I know they use the pagecache, which relies on *page methods, which are defined by hostfs. So I think it could work. I have a doubt, whether hostfs needs the commented out method below: static struct address_space_operations hostfs_aops = { .writepage = hostfs_writepage, .readpage = hostfs_readpage, /* .set_page_dirty = __set_page_dirty_nobuffers, */ .prepare_write = hostfs_prepare_write, .commit_write = hostfs_commit_write }; Hostfs does not have a underlying device (and I have some rough idea that buffers cache block devices data), so I wonder if that is needed or not. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.149, 2005-01-03 21:08:49-08:00, blaisorblade_spam@yahoo.it [PATCH] hostfs: uml: set .sendfile to generic_file_sendfile Make hostfs use the generic sendfile implementation. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.148, 2005-01-03 21:08:33-08:00, jdike@addtoit.com [PATCH] uml: unregister signal handlers at reboot From: Bodo Stroesser In most cases reboot failed on my system. After "Restarting system.", UML exited without further messages. I found an SIGIO being processed by sig_handler() resp. sig_handler_common_skas(). Don't know, why this exits, maybe the context is no longer valid at this time. So, I changed the sequence in the reboot part of main() to stop the timers and disable the fds before unblocking the signals. Since this wasn't enough, I also added set_handler(SIGXXX, SIG_IGN) calls to disable_timer() and deactivate_all_fds(). Now reboot works fine in SKAS and it still works in TT. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.147, 2005-01-03 21:08:20-08:00, jdike@addtoit.com [PATCH] uml: free host resources associated with freed IRQs This adds a free_irq_by_irq_and_dev call which was accidentally removed when the UML free_irq was replaced by generic code. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.146, 2005-01-03 21:08:05-08:00, jdike@addtoit.com [PATCH] uml: close host file descriptors properly This process closes some file descriptors which were left open incorrectly. These are the initrd descriptor, the temporary test file used for testing /tmp for execution permission, and a descriptor used by the netork to connect to the switch. In the network case, we add network devices to the opened list as soon as they are added to UML, rather than when they are configured. This ensures that close_devices will remove the device properly on shutdown. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.145, 2005-01-03 21:07:51-08:00, jdike@addtoit.com [PATCH] uml: fix sigreturn to not copy_user under a spinlock Fix sys_sigreturn and sys_rt_sigreturn to avoid calling copy_from_user inside a spinlock. We copy the blocked signal mask into a local sigset_t before the spinlock and then just assign from it inside the lock. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.144, 2005-01-03 21:07:36-08:00, jdike@addtoit.com [PATCH] uml: remove a quilt-induced duplicity This piece appears to have gone in twice. Signed-off-by: Milton Miller Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.143, 2005-01-03 21:07:23-08:00, jdike@addtoit.com [PATCH] uml: unistd.h cleanup From: Chris Wedgewood: this removes unnecessary cruft from unistd.h Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.142, 2005-01-03 21:07:08-08:00, jdike@addtoit.com [PATCH] uml: make restorer match i386 From: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.141, 2005-01-03 21:06:56-08:00, jdike@addtoit.com [PATCH] uml: redo the signal delivery mechanism This patch rips out the old signal delivery mechanism and replaces it with a sane one. Specifically, UML used to capture a host signal frame and use it as a template for its own signal frames. This was a worthy idea, because it promised a degree of architecture-independence for this part of UML, but impractical. There are some environments, notably 32 bit emulation on a 64 bit box, where you can't use the host signal frame as a template for your own. Plus, this code is as complicated, even to someone who understands what it's doing, as the standard fill-in-a-structure-and-write-it-to-the-stack. For everyone else, it is incomprehensible. So, this reimplements signal handling in the way that everyone else does. It gives up on architecture independence, and moves this code into the x86-specific stuff. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.140, 2005-01-03 21:05:26-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: fix some ptrace functions returns values From: Jeff Dike This patch adds ptrace_setfpregs and makes these functions return -errno on failure. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.139, 2005-01-03 21:05:13-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: fix __wrap_free comment Reworded the comment about __wrap_free detection of the allocator used to allocate the pointer (it can free a pointer created by either the host malloc(), kmalloc() or vmalloc()). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.138, 2005-01-03 21:05:00-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: remove most devfs_mk_symlink calls Remove uses of devfs_mk_symlink(). We didn't do this before to avoid breaking most user setups, but this patch should be quite harmless. I've excluded the hottest part, i.e. the ubd symlink, while removing the other; I released a end-user tree with this patch and there was a good number of people using the symlink rather than the preferred name. That part will be merged later, I think. Since now we have evidence of less and less users using devfs, we think that it will not cause too much problems. Acked-by: Jeff Dike Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.137, 2005-01-03 21:04:47-08:00, takata@linux-m32r.org [PATCH] m32r: Update include/asm-m32r/mmu_context.h This patch updates include/asm-m32r/mmu_context.h. * include/asm-m32r/mmu_context.h: - Add #ifdef __KERNEL__ - Change __inline__ to inline for __KERNEL__ portion. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.136, 2005-01-03 21:04:34-08:00, takata@linux-m32r.org [PATCH] m32r: Update include/asm-m32r/system.h This patch updates include/asm-m32r/system.h. * include/asm-m32r/system.h: - Use barrier() as mb(). - Change __inline__ to inline. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.135, 2005-01-03 21:04:21-08:00, takata@linux-m32r.org [PATCH] m32r: Use generic hardirq framework This patch is for employing the generic hardirq framework for m32r. Now CONFIG_GENERIC_HARDIRQS is set to Y by default. - Update to use GENERIC_HARDIRQ framework. - Fix PREEMPT_ACTIVE definition (changeset 1.2000.16.20) Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.134, 2005-01-03 21:04:08-08:00, takata@linux-m32r.org [PATCH] m32r: Make kernel headers for mutual exclusion Here is a patch to update kernel headers for mutual exclusion, atomic.h, bitops.h and semaphore.h of m32r. This patch is for making these headers publishable to userland. * include/asm-m32r/assembler.h (M32R_LOCK, M32R_UNLOCK): Define M32R_LOCK and M32R_UNLOCK macros. For SMP configuration, these macros are expanded to m32r's LOCK and UNLOCK instructions. While, for UP configuration, these are simply expanded to m32r's LD(load) and ST(store) instructions, respectively. * include/asm-m32r/atomic.h, include/asm-m32r/bitops.h, include/asm-m32r/semaphore.h: - Change macros from LOAD and STORE to M32R_LOCK and M32R_UNLOCK, respectively. It is because LOAD and STORE are too generic words. - Change inline to __inline__. Retrieve __inline__ modifiers for functions which are placed outside of __KERNEL__ region in these headers, because those functions might be included and used from ISO C program in userland. Currently, it seems that these headers are allowed to be included from userland. Indeed, they are kernel stuff, but these headers provide useful definitions and functions even for userland applications, I think. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.133, 2005-01-03 21:03:55-08:00, takata@linux-m32r.org [PATCH] m32r: Use kmalloc for m32r stacks - Use kmalloc for m32r stacks (cf. changeset 1.1046.533.10) - Update for CONFIG_DEBUG_STACK_USAGE This modification was taken from include/asm-i386/thread_info.h. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.132, 2005-01-03 21:03:42-08:00, takata@linux-m32r.org [PATCH] m32r: include/asm-m32r/thread_info.h minor updates - Use THREAD_SIZE for __ASSEMBLY__ portion. - Update comments. - Fix a typo: user-thead --> user-thread. NOTE: Now there are two THREAD_SIZE definitions in the following patch, one is in C part and the other is in __ASSEMBLY__ part. I'm going to consolidate these THREAD_SIZE definitions. So, I have to change PAGE_SIZE definition of include/asm-m32r/page.h to be includable into asm portion... Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.131, 2005-01-03 21:03:29-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up include/asm-m32r/pgtable-2level.h - Add #ifdef __KERNEL__ - Change __inline__ to inline for __KERNEL__ portion. - Remove RCS ID string. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.130, 2005-01-03 21:03:16-08:00, takata@linux-m32r.org [PATCH] m32r: Remove PAGE_USER - Remove _PAGE_USER bit from pte. - The m32r doesn't support _PAGE_USER bit by hardware. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.129, 2005-01-03 21:03:04-08:00, takata@linux-m32r.org [PATCH] m32r: Support PAGE_NONE - Support PAGE_NONE attribute for memory protection. - Add _PAGE_PROTNONE bit to pte (software bit). Signed-off-by: NIIBE Yutaka Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.128, 2005-01-03 21:02:51-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up include/asm-m32r/pgtable.h - Change PAGE_*_X to PAGE_*_EXEC for good readability. - Add #include __KERNEL__ - Change __inline__ to inline for the __KERNEL__ portion. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.127, 2005-01-03 21:02:38-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up arch/m32r/mm/fault.c - Fix a typo: ACE_USEMODE --> ACE_USERMODE. - Update copyright statement, and so on. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.126, 2005-01-03 21:02:25-08:00, takata@linux-m32r.org [PATCH] m32r: Don't encode ACE_INSTRUCTION in address - To be more comprehensive, keep ACE_INSTRUCTION (access exception on instruction execution) information in thread_info->flags, instead of encoding it into address parameter. Signed-off-by: NIIBE Yutaka Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.125, 2005-01-03 21:02:12-08:00, takata@linux-m32r.org [PATCH] m32r: Cause SIGSEGV for nonexec page execution - Cause a segmentation fault for an illegal execution of a code on non-executable memory page. Signed-off-by: Naoto Sugai Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.124, 2005-01-03 21:01:59-08:00, takata@linux-m32r.org [PATCH] m32r: Update ptrace.c for multithread debugging This patch updates ptrace.c to support multithread debugging. So far, only one breakpoint's location was kept by kernel, however, in the multithreaded application's debug, it is required to kept multi-point breakpoint locations by kernel. In this implementation, maximum number of MAX_TRAPS(=10 (by default)) breakpoint's information will be kept in the "debug_trap" member of the thread_struct for each thread. * include/asm-m32r/processor.h: Modify debug_trap struct to keep multipoint breakpoint locations for multithread debugging. * arch/m32r/kernel/ptrace.c: - Update to support multithread debugging. - Remove unused functions, withdraw_debug_trap_for_signal() and embed_debug_trap_for_signal(). Signed-off-by: Kei Sakamoto Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.123, 2005-01-03 21:01:46-08:00, takata@linux-m32r.org [PATCH] m32r: Support pgprot_noncached() This patch updates include/asm-m32r/pgtable.h to add pgprot_noncached(). It is required to fix a problem of an userspace application, which mmaps io registers. This patch also modifies drivers/video/fbmem.c to support noncachable framebuffer access for m32r. In this routine, pgprot_writecombine() is used hopefully, even though the current m32r never does write-combining or write-coalescing... Please apply this. * include/asm-m32r/pgtable.h (pgprot_noncached, pgprot_writecombine): Newly added. * drivers/video/fbmem.c (fb_mmap): Add m32r support. Signed-off-by: Mamoru Sakugawa Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.122, 2005-01-03 21:01:33-08:00, takata@linux-m32r.org [PATCH] m32r: Add new relocation types to elf.h include/asm-m32r/elf.h: Add relocations R_M32R_GOTOFF_HI_ULO, R_M32R_GOTOFF_HI_SLO, and R_M32R_GOTOFF_LO. These relocations are required to implement GOTOFF support for m32r. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.121, 2005-01-03 21:01:20-08:00, akpm@osdl.org [PATCH] swsusp-try_to_freeze-to-make-freezing-hooks-nicer fix In file included from include/linux/ptrace.h:77, from arch/ppc64/lib/sstep.c:12: include/linux/sched.h: In function `freeze_processes': include/linux/sched.h:1189: warning: no return statement in function returning non-void Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.120, 2005-01-03 21:01:05-08:00, pavel@ucw.cz [PATCH] swsusp: try_to_freeze to make freezing hooks nicer This moves refrigerator changes to sched.h, so that every file user of refrigerator does not have to include suspend.h, and makes refrigerator support easier by introducing try_to_freeze. Adapted from patch by Nigel Cunningham Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.119, 2005-01-03 21:00:51-08:00, pavel@ucw.cz [PATCH] swsusp: Kill O(n^2) algorithm in swsusp Some machines are spending minutes of CPU time during suspend in stupid O(n^2) algorithm. This patch replaces it with O(n) algorithm, making swsusp usable to some people. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.118, 2005-01-03 21:00:38-08:00, pavel@ucw.cz [PATCH] swsusp: Small cleanups This adds statics at few places and fixes stale references to pmdisk. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.117, 2005-01-03 21:00:25-08:00, pavel@ucw.cz [PATCH] swsusp: kill one-line helpers, handle read errors swsusp contains few one-line helpers that only make reading/understanding code more difficult. Also warn the user when something goes wrong, instead of waking machine with corrupt data. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.116, 2005-01-03 21:00:12-08:00, pavel@ucw.cz [PATCH] swsusp: kill unused variable Variable used only for writing is bad idea. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.115, 2005-01-03 20:59:56-08:00, pavel@ucw.cz [PATCH] fix naming in swsusp At few points we still reference to swsusp as "pmdisk"... it might confuse someone not knowing full history. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.114, 2005-01-03 20:59:43-08:00, rmk+lkml@arm.linux.org.uk [PATCH] typeof(dev->power.saved_state) arch/arm/common/sa1111.c: In function `sa1111_suspend': arch/arm/common/sa1111.c:816: warning: assignment from incompatible pointer type This is a rather annoying, and IMHO pointless warning. First question: what is the reasoning for using an array of unsigned bytes here? Are we expecting to power manage devices which only have byte wide registers? In reality, devices have half-word and word sized registers as well, which means that dev->power.saved_state actually points to device specific data (or even device driver specific data) for the device. As such, it makes far more sense for this to be a 'void *'. I'd rather not go around the ARM kernel tree adding pointless casts to 'u8 *' and back again because the wrong type for this was picked in the structure definition, so here's a patch which changes this to void *. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.113, 2005-01-03 20:59:29-08:00, bjorn.helgaas@hp.com [PATCH] ia64: remove HCDP support for early printk This is only used by the ia64 early_printk patch, which isn't in the mainline tree. If anybody is still using that patch, hcdp_early_uart() should be incorporated into it. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.112, 2005-01-03 20:59:13-08:00, spyro@f2s.com [PATCH] arm26: better unistd.h (reimplemented based on arm32) Some long overdue updates to this file. newer macros taken from arm32. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.111, 2005-01-03 20:59:00-08:00, spyro@f2s.com [PATCH] arm26: better put_user macros. Better put_user macro. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.110, 2005-01-03 20:58:49-08:00, spyro@f2s.com [PATCH] arm26: TLB update A keep-it-compiling patch based on the arm32 code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.109, 2005-01-03 20:58:33-08:00, spyro@f2s.com [PATCH] arm26: replace arm32 time handling code with smaller version ARM26 systems only have one possible clock, thus we can merge all this into one source file and drop the ability to dynamically alter it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.108, 2005-01-03 20:58:20-08:00, spyro@f2s.com [PATCH] arm26: update system.h to some semblance of recentness. The arm26 version of this had become horribly out of date. this is a sideways-port of the arm32 version, dropping the unwanted stuff and adjusted for arm26 compatability. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.107, 2005-01-03 20:58:07-08:00, spyro@f2s.com [PATCH] arm26: softirq update New irq exit handler (part of the softirq changes) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.106, 2005-01-03 20:57:54-08:00, spyro@f2s.com [PATCH] arm26: remove shark (arm32) from arm26 Drop shark support from arm26 (shark isn't arm26 based) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.105, 2005-01-03 20:57:41-08:00, spyro@f2s.com [PATCH] arm26: move some files to better locations This diff effects a restructuring of arm26s directory layout. A number of files can now move to more logical locations, since there are no machine specific directories anymore. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.104, 2005-01-03 20:51:11-08:00, spyro@f2s.com [PATCH] arm26: new execve code This pulls in the execve changes made in arm32. Also, drops some old arm32 power management stuff thats no longer relevant in process.c. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.103, 2005-01-03 20:50:56-08:00, spyro@f2s.com [PATCH] arm26:cleanup trap handling assembly This removes some unneeded definitions and makes the naming used within the file more consistent. Also adds some macros to make it easier to see how the interrupt handler is structured. The assembled output is identical to the original. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.102, 2005-01-03 20:50:42-08:00, spyro@f2s.com [PATCH] arm26: necessary compilation fixes for 2.6.10 Various trivial fixes required to get a clean compile. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.101, 2005-01-03 20:50:29-08:00, spyro@f2s.com [PATCH] arm26: update comments, headers, notes Add and update comments all throughout the arm26 tree. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.100, 2005-01-03 20:50:15-08:00, spyro@f2s.com [PATCH] arm26 build system updates - Updates to makefiles required by the other changes in this patchset. - Also add some entries to the linker scripts. The linker scripts really ought to be merged into one script but that will have to wait. - Add a comment for building xipImages Update the compiler flags used to build arm26 so gcc 3.4 doesnt barf. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.99, 2005-01-03 20:49:59-08:00, spyro@f2s.com [PATCH] arm26: update the atomic ops Replace the macros for atomic ops and bring arm26 up to current definitions. make the arm26 mm code use the proper macros also. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.98, 2005-01-03 20:49:46-08:00, spyro@f2s.com [PATCH] arm26: remove arm32 cruft This patch drops some more stuff left over from the old combined arm26/32 architecture. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.97, 2005-01-03 20:49:33-08:00, ysato@users.sourceforge.jp [PATCH] H8/300 new systemcall support Signed-off-by: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.96, 2005-01-03 20:49:20-08:00, ak@suse.de [PATCH] x86_64: Eliminate some useless printks in ACPI numa.c Eliminate some useless printks in ACPI numa.c They trigger all the time on x86-64 with CONFIG_ACPI_NUMA Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.95, 2005-01-03 20:49:07-08:00, ak@suse.de [PATCH] x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch Add x86_64 support for Jack Steiner's SLIT sysfs patch Make Jack's code compile on x86-64 and add x86-64 low level support to save the SLIT pointer and a node_distance() implementation. Requires the previous SRAT patch. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.94, 2005-01-03 20:48:54-08:00, ak@suse.de [PATCH] x86_64: Add SLIT (inter node distance) information to sysfs. Add SLIT (inter node distance) information to sysfs. [This is Jack's patch that he submitted on l-k. I'm submitting it for him because I need it for my x86-64 followon SLIT patch. Hope I don't stomp onto his toes with that one. If you already merged it please ignore] From: Jack Steiner Here is an update patch to externalize the SLIT information. I think I have encorporated all the comments that were posted previously) For example: # cd /sys/devices/system # find . ./node ./node/node5 ./node/node5/distance ./node/node5/numastat ./node/node5/meminfo ./node/node5/cpumap # cat ./node/node0/distance 10 20 64 42 42 22 # cat node/*/distance 10 20 64 42 42 22 20 10 42 22 64 84 64 42 10 20 22 42 42 22 20 10 42 62 42 64 22 42 10 20 22 84 42 62 20 10 Signed-off-by: Jack Steiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.93, 2005-01-03 20:48:43-08:00, ak@suse.de [PATCH] x86_64: Remove unneeded ifdef in hardirq.h Remove unneeded ifdef in hardirq.h I can't see any reason for the #ifdef CONFIG_X86 introduced to the x86_64 hardirq.h as part of the generic irq subsystem changes. Signed-off-by: Adrian Bunk Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.92, 2005-01-03 20:48:28-08:00, ak@suse.de [PATCH] x86_64: Fix EM64T config description Fix EM64T config description From: Xose Vazquez Perez Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.91, 2005-01-03 20:48:15-08:00, ak@suse.de [PATCH] x86_64: Fix some outdated assumptions that CPU numbers are equal numbers. Fix some outdated assumptions that CPU numbers are equal numbers. Depends on the unlimited cpus patch. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.90, 2005-01-03 20:48:03-08:00, ak@suse.de [PATCH] x86_64: Fix a warning in the CMP support code for !CONFIG_NUMA Fix a warning in the CMP support code for !CONFIG_NUMA Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.89, 2005-01-03 20:47:50-08:00, ak@suse.de [PATCH] x86_64: Allow to configure more CPUs and nodes. Allow to configure more CPUs and nodes. With clustered mode and AMD's big flat APIC mode there is no reason anymore to limit the max number of CPUs to 8. Increase the limit to 256 for now, which is the current APIC limit. Untested for now. Also increase the max number of nodes to 64. Remove the MAXNODE define and replace it with MAX_NUMNODES everywhere or the constant if the hardware limits the number of nodes. Also remove some obsolete comments. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.88, 2005-01-03 20:47:37-08:00, ak@suse.de [PATCH] x86_64: Export phys_proc_id Export phys_proc_id This is useful for the powernow-k8 driver which needs to know that two CPUs share a die. It cannot use cpu_sibling_map anymore, so this is an alternative. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.87, 2005-01-03 20:47:24-08:00, ak@suse.de [PATCH] x86_64: Always print segfaults for init. Always print segfaults for init. This gives better debugging output when something is really wrong with the kernel. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.86, 2005-01-03 20:47:11-08:00, ak@suse.de [PATCH] x86_64: Add a missing newline in /proc/cpuinfo Add a missing newline in /proc/cpuinfo Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.85, 2005-01-03 20:46:58-08:00, ak@suse.de [PATCH] x86_64: Add a missing __iomem pointed out by Linus. Add a missing __iomem pointed out by Linus. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.84, 2005-01-03 20:46:45-08:00, ak@suse.de [PATCH] x86_64: Scheduler support for AMD CMP Scheduler support for AMD CMP AMD dual core looks like HT but isn't really. Hide it from the scheduler. This works around problems with the domain scheduler. Also probably gives slightly better scheduling and disables SMT nice which is harmful on dual core. We still display it like HT in /proc/cpuinfo. This is to make it appear the same to license managers so that they count dual cores only as a single physical CPU. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.83, 2005-01-03 20:46:32-08:00, ak@suse.de [PATCH] x86_64: Rename HTVALID to CMP_LEGACY Rename HTVALID to CMP_LEGACY AMD renamed the HTVALID CPUID flag to CMP_LEGACY and reverted its meaning. Follow this for /proc/cpuinfo Needed for the followon CMP patches. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.82, 2005-01-03 20:46:17-08:00, ak@suse.de [PATCH] x86_64: Remove debug information for vsyscalls Remove debug information for vsyscalls This helps gdb apparently because it doesn't like code with debugging information before other code (?) Via the kgdb folks. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.81, 2005-01-03 20:46:04-08:00, ak@suse.de [PATCH] x86_64: Allow a kernel debugger to hide single steps in more cases. Allow a kernel debugger to hide single steps in more cases. Apparently helps the kgdb people. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.80, 2005-01-03 20:45:51-08:00, ak@suse.de [PATCH] x86_64: Update uptime after suspend Update uptime after suspend Derived from i386 Adjust jiffies after suspend to keep uptime. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.79, 2005-01-03 20:45:38-08:00, ak@suse.de [PATCH] x86_64: Add SRAT NUMA discovery to x86-64. Add SRAT NUMA discovery to x86-64. Previously the NUMA nodes on Opteron systems were directly read from the hardware registers of the northbridge. This version also supports reading it from the more generic ACPI SRAT table. This allows to support NUMA on all kinds of systems and in general gives more flexibility, but needs a bit of BIOS support. This implementation was not done before because the SRAT specification had a bad license from Microsoft that didn't allow to implement it on other OS. Now that ACPI 3.0 is released and SRAT is part of it that isn't a concern anymore. One side effect of this is that holes not described in SRAT (e.g. usually the 640K DOS and 4GB PCI memory holes) will not included in the nodes and won't get mem_map entries allocated. This may have side effects for some drivers. Some support for handling dual core AMD CPUs is included. SLIT parsing is done in a later patch. Depends on earlier patches to split up the ACPI boot parsing and to add better CMP support on x86-64. Can be disabled with numa=noacpi Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.78, 2005-01-03 20:45:23-08:00, ak@suse.de [PATCH] x86_64: Split ACPI boot table parsing Split ACPI boot table parsing Split ACPI boot table parsing into two parts. First a acpi_boot_table_init() call that initializes the basic ACPI table parsing machinery and discovers the RSDP, and then another call to actually parse the various boot tables. This is needed for a followon patch that implements SRAT support, because nodes need to be set up before the other ACPI tables can be parsed. On x86-64 I moved the early initialization very early because that is needed for the SRAT parser. On i386 it should be a nop. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.77, 2005-01-03 20:45:08-08:00, ak@suse.de [PATCH] x86_64: Handle NX correctly in pageattr Handle NX correctly in pageattr Second attempt to try to fix an long standing NX bug in change_page_attr. Hopefully this version will be better. The kernel text mapping aliases part of the physical memory and needs its caching attributes changed too. But when doing this one has to be very careful to handle the NX bit correctly. A previous slightly different version of this broke the X server on some RH systems. I hope this version will be better, but if you have X server problems please revert this one. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.76, 2005-01-03 20:44:54-08:00, ak@suse.de [PATCH] x86_64: Collected ioremap fixes Collected ioremap fixes - Call change_page_attr correctly - Fix a race during iounmap - Handle mmio holes without mem_map correctly (needed for SRAT patch) - Some cleanups Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.75, 2005-01-03 20:44:39-08:00, ak@suse.de [PATCH] x86_64: Add reboot=force Add reboot=force reboot=force doesn't wait for any other CPUs on reboot. This is useful when you really need a system to reboot on its own. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.74, 2005-01-03 20:44:26-08:00, ak@suse.de [PATCH] x86_64: Remove BIOS reboot code Remove BIOS reboot code Remove the never quite working BIOS reboot code. This gets rid of a lot of code. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.73, 2005-01-03 20:44:13-08:00, ak@suse.de [PATCH] x86_64: Remove duplicated FAKE_STACK_FRAME macro. Remove duplicated FAKE_STACK_FRAME macro. FAKE_STACK_FRAME macro is defined twice. The one that gets used is in arch/x86_64/kernel/entry.S, and is slightly different codewise, although should have the same end result (uses pushq rather than addq %rsp + movq and has the extra dwarf annotations). Signed-off-by: Chris Wright Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.72, 2005-01-03 20:44:00-08:00, ak@suse.de [PATCH] x86_64: Reenable MGA DRI on x86-64 Reenable MGA DRI on x86-64 Has been reported as working. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.71, 2005-01-03 20:43:47-08:00, pbadari@us.ibm.com [PATCH] x86_64: numa_add_cpu() fix Problem is with "c - cpu_data" arthimetic. "c" could be "boot_cpu_data" or "cpu_data". Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.70, 2005-01-03 20:43:34-08:00, ak@suse.de [PATCH] x86_64: Fix bugs in the AMD K8 CMP support code. Fix bugs in the AMD K8 CMP support code. Check the correct cpuid level and move numa_add_cpu to the correct place. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.69, 2005-01-03 20:43:21-08:00, ak@suse.de [PATCH] x86_64: Add a real pfn_valid Add a real pfn_valid This adds a real pfn_valid. Needed together with the SRAT patch which can generated memmap less holes for mmio. In general it will help to handle memory holes better. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.68, 2005-01-03 20:43:08-08:00, prasanna@in.ibm.com [PATCH] x86_64: do_general_protection() retval check This patch adds the return value check for the exception notifiers at do_general_protection as pointed out by Chuck Ebbert. Signed-off-by: Prasanna S Panchamukhi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.67, 2005-01-03 20:42:52-08:00, zwane@linuxpower.ca [PATCH] Intel thermal monitor for x86_64 Patch adds support for notification of overheating conditions on intel x86_64 processors. Tested on EM64T, test booted on AMD64. Hardware courtesy of Intel Corporation Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.66, 2005-01-03 20:42:35-08:00, hpa@zytor.com [PATCH] /proc/sys/kernel/bootloader_type This patch exports to userspace the boot loader ID which has been exported by (b)zImage boot loaders since boot protocol version 2. It is needed so that update tools that update kernels from vendors know which bootloader file they need to update; eg right now those tools do all kinds of hairy heuristics to find out if it's grub or lilo or .. that installed the kernel. Those heuristics are fragile in the presence of more than one bootloader (which isn't that uncommon in OS upgrade situations). Tested on i386 and x86-64; as far as I know those are the only architectures which use zImage/bzImage format. Signed-Off-By: H. Peter Anvin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.65, 2005-01-03 20:42:19-08:00, hpa@zytor.com [PATCH] i386 boot loader IDs This patch adds some i386 boot loader IDs that were used but never officially recorded as assigned. This makes them nice and official. Signed-Off-By: H. Peter Anvin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.64, 2005-01-03 20:42:05-08:00, vgoyal@in.ibm.com [PATCH] Secondary cpus boot-up for non default location built kernels This patch fixes the problem of secondary cpus not coming up over a reboot. This problem was seen when a kernel compiled for non default (16MB) location is booted. Signed-off-by: Vivek Goyal Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.63, 2005-01-03 20:41:53-08:00, haveblue@us.ibm.com [PATCH] remove pfn_to_pgdat() on x86 This function is unused on i386. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.62, 2005-01-03 20:41:40-08:00, hpa@zytor.com [PATCH] Trivial cleanup in arch/i386/kernel/head.S Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.61, 2005-01-03 20:41:26-08:00, zwane@arm.linux.org.uk [PATCH] NX: Triple fault with 4k kernel mappings and PAE Booting with NX, CONFIG_X86_PAE and CONFIG_DEBUG_PAGEALLOC or mem=nopentium triple faults really early during boot as it appears to be tripping over pages from PAGE_OFFSET -> PAGE_OFFSET + 0x100000 not being marked as executable. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.60, 2005-01-03 20:41:13-08:00, zwane@linuxpower.ca [PATCH] Cyrix MII cpuid returns stale %ecx This patch is for the following bug, thanks to Ondrej Zary for reporting, testing and submitting a patch. http://bugzilla.kernel.org/show_bug.cgi?id=3767 It appears that the Cyrix MII won't touch %ecx at all resulting in stale data being returned as extended attributes, so clear ecx before issuing the cpuid. I have also made the capability print code display all the capability words for easier debugging in future. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.59, 2005-01-03 20:41:00-08:00, venkatesh.pallipadi@intel.com [PATCH] x86: remove data-header and code overlap in boot/setup.S The setup.S data and code is not cleanly separated. The current space reserved for setup header is not enough to fit the complete header. As a result, part of the header (EDDBUF) will overwrite the initial code. I haven't seen any negative impact of this bug. As, by the time the setup code is overwritten, we would have finished executing it anyway. But, I think it is better to separate the header and code and prevent this data_overwriting_the_code condition. The atatched patch adds some space in the header to fit all the data listed in Documentation/i386/zero-page.txt for both i386 and x86_64 (and updates zero-page.txt). Signed-off-by:: "Venkatesh Pallipadi" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.58, 2005-01-03 20:40:47-08:00, mbligh@aracnet.com [PATCH] Assign PKMAP_BASE dynamically Badari hit a problem when configuring PAE off (ie CONFIG_4G) where the pkmap area could end up overlapping the fixmap area. For some reason, PKMAP_BASE was defined statically, which seems rather pointless, and asking for trouble. Patch below definines it dynamically, under the fixmap area. The ordering of the VMALLOC_RESERVE space is: FIXADDR_TOP fixed_addresses FIXADDR_START temp fixed addresses FIXADDR_BOOT_START Persistent kmap area PKMAP_BASE VMALLOC_END Vmalloc area VMALLOC_START high_memory Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.57, 2005-01-03 20:40:34-08:00, dhowells@redhat.com [PATCH] IDE_ARCH_OBSOLETE_INIT fix The attached patch fixes the IDE driver to initialise correctly in the case that IDE_ARCH_OBSOLETE_INIT is not defined. Not defining this macro would seem to be the correct thing to do since it includes the word "obsolete" in its name. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.56, 2005-01-03 20:40:21-08:00, dhowells@redhat.com [PATCH] Termio userspace access error handling The attached patch creates a generic set of termio userspace access functions with proper error handling. None of the current archs check for errors in this case. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.55, 2005-01-03 20:40:08-08:00, ananth@in.ibm.com [PATCH] Kprobes: wrapper to define jprobe.entry Here is a patch that adds a wrapper for defining jprobe.entry to make t easy to handle the three dword function descriptors defined by the PowerPC ELF ABI. x86, ppc64 and x86_64 are also updated. Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.54, 2005-01-03 20:39:55-08:00, david@gibson.dropbear.id.au [PATCH] ppc64: tweaks to ppc64 cpu sysfs information Currently the ppc64 sysfs code registers an entry for each possible cpu in sysfs, rather than just online cpus. That makes sense, since the sysfs entries are needed to control onlining of the cpus. However, this is done even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable (DLPAR) machine, which is a bit misleading. Secondly it also registers all the other sysfs entries (mostly performance monitoring controls) on all possible cpus, although they are quite meaningless on non-online cpus. This patch alters the code to only register sysfs directories at boot for cpus which are either online or could be onlined (cpu is possible, and CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart from 'online' itself and 'physical_id' are only registered for online CPUs (and deregistered again if a cpu goes offline). Currently the ppc64 sysfs code registers an entry for each possible cpu in sysfs, rather than just online cpus. That makes sense, since the sysfs entries are needed to control onlining of the cpus. However, this is done even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable (DLPAR) machine, which is a bit misleading. Secondly it also registers all the other sysfs entries (mostly performance monitoring controls) on all possible cpus, although they are quite meaningless on non-online cpus. This patch alters the code to only register sysfs directories at boot for cpus which are either online or could be onlined (cpu is possible, and CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart from 'online' itself and 'physical_id' are only registered for online CPUs (and deregistered again if a cpu goes offline). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.53, 2005-01-03 20:39:42-08:00, ananth@in.ibm.com [PATCH] ppc64: kprobes implementation Kprobes (Kernel dynamic probes) is a lightweight mechanism for kernel modules to insert probes into a running kernel, without the need to modify the underlying source. The probe handlers can then be coded to log relevent data at the probe point. More information on kprobes can be found at: http://www-124.ibm.com/developerworks/oss/linux/projects/kprobes/ Jprobes (or jumper probes) is a small infrastructure to access function arguments. It can be used by defining a small stub with the same template as the routine in kernel, within which the required parameters can be logged. Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.52, 2005-01-03 20:39:27-08:00, a.othieno@bluewin.ch [PATCH] ppc32: Resurrect Documentation/powerpc/cpu_features.txt Documentation/powerpc/cpu_features.txt mysteriously disappeared sometime when 2.5 forked off. Searching through BK logs on linux.bkbits.net didn't reveal anything, unfortunately. The only reference I could pick up from searching the available lkml archives is the 2.4.20-pre11 ChangeLog where this was first merged. Thus far, nothing indicates it was intentionally removed, and AFAICS, is still up to date with the current code. Signed-off-by: Arthur Othieno Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.51, 2005-01-03 20:39:14-08:00, mporter@kernel.crashing.org [PATCH] ppc32: fix io_remap_page_range for 36-bit phys platforms Fixes io_remap_page_range() to use the 32-bit address translator similar to ioremap(). Someday u64 start/end resources should make this unnecessary. Fixes set_pte() to handle a long long pte_t properly. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.50, 2005-01-03 20:39:01-08:00, mporter@kernel.crashing.org [PATCH] ppc32: add uImage to default targets We'd like to get a uImage when just using 'make' on many targets. After some discussion, it made sense to simply add uImage to the default targets since it adds minimal build overhead and will work on all platforms. Also, fix a dependency in the boot stuff. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.49, 2005-01-03 20:38:48-08:00, minyard@acm.org [PATCH] PPC debug setcontext syscall implementation. Add a debugging interface for PowerPC that allows signal handlers (or any jump to a context, really) to perform debug functions. It allows the a user program to turn on single-stepping, for instance, and the thread will get a trap after executing the next instruction. It can also (on supported PPC processors) turn on branch tracing and get a trap after the next branch instruction is executed. This is useful for in-application debugging. Note that you can enable single-stepping on x86 processors directly from signal handlers. Newer x86 processors have the equivalent of a branch-trace bit in the IA32_DEBUGCTL MSR and could have similar function to this syscall. Most other processors could benefit from a similar interface, except for ARM which is extraordinarily broken for debugging. Future uses of this could be adding the ability to set the hardware breakpoint registers from a signal handler. Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.48, 2005-01-03 20:38:35-08:00, mporter@kernel.crashing.org [PATCH] ppc32: remove bogus SPRN_CPC0_GPIO define This trivial patch removes long-standing typo in ibm44x.h. In fact, we already have correct DCRN_CPC0_GPIO define later in the same file. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.47, 2005-01-03 20:38:22-08:00, mporter@kernel.crashing.org [PATCH] ppc32: fix ebony.c warnings This patch removes annoying warnings in ebony.c. Fix is similar to one I made in ocotea.c before. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.46, 2005-01-03 20:38:09-08:00, galak@somerset.sps.mot.com [PATCH] Fix prototypes & externs in e500 oprofile support Remove prototypes and externs out of the .c files Signed-off-by: Andy Fleming Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.45, 2005-01-03 20:37:56-08:00, galak@linen.sps.mot.com [PATCH] ppc32: performance Monitor/Oprofile support for e500 Adds oprofile support for the e500 PowerPC core. Signed-off-by: Andy Fleming Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.44, 2005-01-03 20:33:46-08:00, mporter@kernel.crashing.org [PATCH] ppc32: PPC4xx PIC rewrite/cleanup Patch from Eugene to do some cleanup of the PPC4xx PIC code. Separates the interrupts that can have polarity/triggering modified for platform modification if necessary. Between the two of us, it's tested on most of the affected platforms. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.43, 2005-01-03 20:33:32-08:00, rvinson@mvista.com [PATCH] ppc32: add Support for IBM 750FX and 750GX Eval Boards I've added support for the IBM 750FX and 750GX Eval Boards (Chestnut/Buckeye). Signed-off-by: Randy Vinson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.42, 2005-01-03 20:33:18-08:00, mgreer@mvista.com [PATCH] ppc32: support for Artesyn Katana cPCI boards This patch adds support for the Artesyn Katana 750i, 752i, and 3750. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.41, 2005-01-03 20:33:05-08:00, mgreer@mvista.com [PATCH] ppc32: support for Force CPCI-690 board This patch adds support for the Force CPCI-690 cPCI board. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.40, 2005-01-03 20:32:51-08:00, mgreer@mvista.com [PATCH] ppc32: support for Marvell EV-64260[ab]-BP eval platform This patch adds support for a line of evaluation platforms from Marvell that use the Marvell GT64260[ab] host bridges. This patch depends on the Marvell host bridge support patch (mv64x60). Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.39, 2005-01-03 20:32:15-08:00, mgreer@mvista.com [PATCH] ppc32-marvell-host-bridge-support-mv64x60 review fixes Here is an incremental patch [hopefully] with your concerns addressed. Note that the arch/ppc/boot code is not kernel code and only exists for a short period of time before execution jumps to the kernel. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.38, 2005-01-03 20:32:01-08:00, mgreer@mvista.com [PATCH] ppc32: Marvell host bridge support (mv64x60) This patch adds core support for a line of host bridges from Marvell (formerly Galileo). This code has been tested with a GT64260a, GT64260b, MV64360, and MV64460. Patches for platforms that use these bridges will be sent separately. The patch is rather large so a link is provided. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.37, 2005-01-03 20:20:09-08:00, trini@kernel.crashing.org [PATCH] ppc32: Switch to KBUILD_DEFCONFIG The following patch switches ppc32 from using arch/ppc/defconfig to arch/ppc/configs/common_defconfig as a defconfig. These files are supposed to be identical, but always end up out of sync. This also updates the common_defconfig with current options. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.36, 2005-01-03 20:19:56-08:00, galak@somerset.sps.mot.com [PATCH] ppc32: refactor common book-e exception code Moves common handling of InstructionStorage, Alignment, Program, and Decrementer exceptions handlers for Book-E processors (44x & e500) into common code. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.35, 2005-01-03 20:19:43-08:00, galak@somerset.sps.mot.com [PATCH] ppc32: freescale Book-E MMU cleanup Updates the Freescale Book-E MMU usage to match the architecture spec. This is mainly growing the widths of fields in various registers to match the architecture spec instead of the implementation. Signed-off-by: Becky Gill Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.34, 2005-01-03 20:19:30-08:00, gandalf@netfilter.org [PATCH] Fix broken RST handling in ip_conntrack Here's a patch that fixes a pretty serious bug introduced by a recent "bugfix". The problem is that RST packets are ignored if they follow an ACK packet, this means that the timeout of the connection isn't decreased, so we get lots of old connections lingering around until the timeout expires, the default timeout for state ESTABLISHED is 5 days. This needs to go into -bk as soon as possible. The bug is present in 2.6.10 as well. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.33, 2005-01-03 20:19:17-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix cleanup in ipt_recent should ipt_registrater_match error When ipt_registrater_match() fails, ipt_recent doesn't remove its proc entry. Found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.32, 2005-01-03 20:19:04-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Remove copy_to_user Warnings in Netfilter After changing firewall rules, we try to return the counters to userspace. We didn't fail at that point if the copy failed, but it doesn't really matter. Someone added a warn_unused_result attribute to copy_to_user, so we get bogus warnings. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.31, 2005-01-03 20:18:48-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Remove IPCHAINS and IPFWADM compatibility We've been threatening to do this for ages: remove the backwards compatibility code. We can now combine ip_conntrack_core.c and ip_conntrack_standalone.c, likewise for the NAT code, but that will come later. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.30, 2005-01-03 20:18:31-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Add comment above remove_expectations in destroy_conntrack() I removed this code in a previous patch, and Patrick McHardy explained what was wrong. Add a comment. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.29, 2005-01-03 20:18:18-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() Several places use ip_ct_selective_cleanup() as a general iterator, which it was not intended for (it takes a const ip_conntrack *). So rename it, and make it take a non-const argument. Also, it missed unconfirmed connections, which aren't in the hash table. This introduces a potential problem for users which expect to iterate all connections (such as the helper deletion code). So keep a linked list of unconfirmed connections as well. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.28, 2005-01-03 20:18:05-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix ip_conntrack_proto_sctp exit on sysctl fail On failure from register_sysctl_table, we return with exit 0. Oops. init and fini should also be static. nfsim found these. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.27, 2005-01-03 20:17:52-08:00, rusty@rustcorp.com.au [PATCH] netfilter: fix return values of ipt_recent checkentry Peejix's nfsim test for ipt_recent, written two days ago, revealed this bugs with ipt_recent: checkentry() returns true or false, not an error. (Maybe it should, but that's a much larger change). Also, make hash_func() static. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.26, 2005-01-03 20:17:39-08:00, bcasavan@sgi.com [PATCH] TCP hashes: NUMA interleaving Modifies the TCP ehash and TCP bhash to enable the use of vmalloc to alleviate boottime memory allocation imbalances on NUMA systems, utilizing flags to the alloc_large_system_hash routine in order to centralize the enabling of this behavior. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.25, 2005-01-03 20:17:25-08:00, bcasavan@sgi.com [PATCH] filesystem hashes: NUMA interleaving The following patch modifies the dentry cache and inode cache to enable the use of vmalloc to alleviate boottime memory allocation imbalances on NUMA systems, utilizing flags to the alloc_large_system_hash routine in order to centralize the enabling of this behavior. In general, for each hash, we check at the early allocation point whether hash distribution is enabled, and if so we defer allocation. At the late allocation point we perform the allocation if it was not earlier deferred. These late allocation points are the same points utilized prior to the addition of alloc_large_system_hash to the kernel. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.24, 2005-01-03 20:17:12-08:00, bcasavan@sgi.com [PATCH] alloc_large_system_hash: NUMA interleaving NUMA systems running current Linux kernels suffer from substantial inequities in the amount of memory allocated from each NUMA node during boot. In particular, several large hashes are allocated using alloc_bootmem, and as such are allocated contiguously from a single node each. This becomes a problem for certain workloads that are relatively common on big-iron HPC NUMA systems. In particular, a number of MPI and OpenMP applications which require nearly all available processors in the system and nearly all the memory on each node run into difficulties. Due to the uneven memory distribution onto a few nodes, any thread on those nodes will require a portion of its memory be allocated from remote nodes. Any access to those memory locations will be slower than local accesses, and thereby slows down the effective computation rate for the affected CPUs/threads. This problem is further amplified if the application is tightly synchronized between threads (as is often the case), as they entire job can run only at the speed of the slowest thread. Additionally since these hashes are usually accessed by all CPUS in the system, the NUMA network link on the node which hosts the hash experiences disproportionate traffic levels, thereby reducing the memory bandwidth available to that node's CPUs, and further penalizing performance of the threads executed thereupon. As such, it is desired to find a way to distribute these large hash allocations more evenly across NUMA nodes. Fortunately current kernels do perform allocation interleaving for vmalloc() during boot, which provides a stepping stone to a solution. This series of patches enables (but does not require) the kernel to allocate several boot time hashes using vmalloc rather than alloc_bootmem, thereby causing the hashes to be interleaved amongst NUMA nodes. In particular the dentry cache, inode cache, TCP ehash, and TCP bhash have been changed to be allocated in this manner. Due to the limited vmalloc space on architectures such as i386, this behavior is turned on by default only for IA64 NUMA systems (though there is no reason other interested architectures could not enable it if desired). Non-IA64 and non-NUMA systems continue to use the existing alloc_bootmem() allocation mechanism. A boot line parameter "hashdist" can be set to override the default behavior. The following two sets of example output show the uneven distribution just after boot, using init=/bin/sh to eliminate as much non-kernel allocation as possible. Without the boot hash distribution patches: Nid MemTotal MemFree MemUsed (in kB) 0 3870656 3697696 172960 1 3882992 3866656 16336 2 3883008 3866784 16224 3 3882992 3866464 16528 4 3883008 3866592 16416 5 3883008 3866720 16288 6 3882992 3342176 540816 7 3883008 3865440 17568 8 3882992 3866560 16432 9 3883008 3866400 16608 10 3882992 3866592 16400 11 3883008 3866400 16608 12 3882992 3866400 16592 13 3883008 3866432 16576 14 3883008 3866528 16480 15 3864768 3848256 16512 ToT 62097440 61152096 945344 Notice that nodes 0 and 6 have a substantially larger memory utilization than all other nodes. With the boot hash distribution patch: Nid MemTotal MemFree MemUsed (in kB) 0 3870656 3789792 80864 1 3882992 3843776 39216 2 3883008 3843808 39200 3 3882992 3843904 39088 4 3883008 3827488 55520 5 3883008 3843712 39296 6 3882992 3843936 39056 7 3883008 3844096 38912 8 3882992 3843712 39280 9 3883008 3844000 39008 10 3882992 3843872 39120 11 3883008 3843872 39136 12 3882992 3843808 39184 13 3883008 3843936 39072 14 3883008 3843712 39296 15 3864768 3825760 39008 ToT 62097440 61413184 684256 While not perfectly even, we can see that there is a substantial improvement in the spread of memory allocated by the kernel during boot. The remaining uneveness may be due in part to further boot time allocations that could be addressed in a similar manner, but some difference is due to the somewhat special nature of node 0 during boot. However the uneveness has fallen to a much more acceptable level (at least to a level that SGI isn't concerned about). The astute reader will also notice that in this example, with this patch approximately 256 MB less memory was allocated during boot. This is due to the size limits of a single vmalloc. More specifically, this is because the automatically computed size of the TCP ehash exceeds the maximum size which a single vmalloc can accomodate. However this is of little practical concern as the vmalloc size limit simply reduces one ridiculously large allocation (512MB) to a slightly less ridiculously large allocation (256MB). In practice machines with large memory configurations are using the thash_entries setting to limit the size of the TCP ehash _much_ lower than either of the automatically computed values. Illustrative of the exceedingly large nature of the automatically computed size, SGI currently recommends that customers boot with thash_entries=2097152, which works out to a 32MB allocation. In any case, setting hashdist=0 will allow for allocations in excess of vmalloc limits, if so desired. Other than the vmalloc limit, great care was taken to ensure that the size of TCP hash allocations was not altered by this patch. Due to slightly different computation techniques between the existing TCP code and alloc_large_system_hash (which is now utilized), some of the magic constants in the TCP hash allocation code were changed. On all sizes of system (128MB through 64GB) that I had access to, the patched code preserves the previous hash size, as long as the vmalloc limit (256MB on IA64) is not encountered. There was concern that changing the TCP-related hashes to use vmalloc space may adversely impact network performance. To this end the netperf set of benchmarks was run. Some individual tests seemed to benefit slightly, some seemed to be harmed slightly, but in all cases the average difference with and without these patches was well within the variabilty I would see from run to run. The following is the overall netperf averages (30 10 second runs each) against an older kernel with these same patches. These tests were run over loopback as GigE results were so inconsistent run to run both with and without these patches that they provided no meaningful comparison that I could discern. I used the same kernel (IA64 generic) for each run, simply varying the new "hashdist" boot parameter to turn on or off the new allocation behavior. In all cases the thash_entries value was manually specified as discussed previously to eliminate any variability that might result from that size difference. HP ZX1, hashdist=0 ================== TCP_RR = 19389 TCP_MAERTS = 6561 TCP_STREAM = 6590 TCP_CC = 9483 TCP_CRR = 8633 HP ZX1, hashdist=1 ================== TCP_RR = 19411 TCP_MAERTS = 6559 TCP_STREAM = 6584 TCP_CC = 9454 TCP_CRR = 8626 SGI Altix, hashdist=0 ===================== TCP_RR = 16871 TCP_MAERTS = 3925 TCP_STREAM = 4055 TCP_CC = 8438 TCP_CRR = 7750 SGI Altix, hashdist=1 ===================== TCP_RR = 17040 TCP_MAERTS = 3913 TCP_STREAM = 4044 TCP_CC = 8367 TCP_CRR = 7538 I believe the TCP_CC and TCP_CRR are the tests most sensitive to this particular change. But again, I want to emphasize that even the differences you see above are _well_ within the variability I saw from run to run of any given test. In addition, Jose Santos at IBM has run specSFS, which has been particularly sensitive to TLB issues, against these patches and saw no performance degredation (differences down in the noise). This patch: Modifies alloc_large_system_hash to enable the use of vmalloc to alleviate boottime allocation imbalances on NUMA systems. Due to limited vmalloc space on some architectures (i.e. x86), the use of vmalloc is enabled by default only on NUMA IA64 kernels. There should be no problem enabling this change for any other interested NUMA architecture. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.23, 2005-01-03 20:16:59-08:00, alex.williamson@hp.com [PATCH] collect page_states only from online cpus I noticed the function __read_page_state() curiously high in a q-tools profile of a write to a software raid0 device. Seems this is because we're checking page_states for all possible cpus and we have NR_CPUS possible when CONFIG_HOTPLUG_CPU=y. The default config for ia64 is now NR_CPUS=512, so on a little 8-way box, this is a significant waste of time. The patch below updates __read_page_state() and __get_page_state() to only count page_state info for online cpus. To keep the stats consistent, the page_alloc notifier is updated to move page_states off of the cpu going offline. On my profile, this dropped __read_page_state() back into the noise and boosted block write performance by 5% (as measured by spew - http://spew.berlios.de). Signed-off-by: Alex Williamson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.22, 2005-01-03 20:16:46-08:00, manfred@colorfullife.com [PATCH] slab: Add more arch overrides to control object alignment Add ARCH_SLAB_MINALIGN and document ARCH_KMALLOC_MINALIGN: The flags allow the arch code to override the default minimum object aligment (BYTES_PER_WORD). Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.21, 2005-01-03 20:16:33-08:00, akpm@osdl.org [PATCH] do_anonymous_page() use SetPageReferenced mark_page_accessed() is more heavyweight than we need: the page is already headed for the active list, so setting the software-referenced bit is equivalent. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.20, 2005-01-03 20:16:19-08:00, miquels@cistron.nl [PATCH] mark_page_accessed() for read()s on non-page boundaries When reading a (partial) page from disk using read(), the kernel only marks the page as "accessed" if the read started at a page boundary. This means that files that are accessed randomly at non-page boundaries (usually database style files) will not be cached properly. The patch below uses the readahead state instead. If a page is read(), it is marked as "accessed" if the previous read() was for a different page, whatever the offset in the page. Testing results: - Boot kernel with mem=128M - create a testfile of size 8 MB on a partition. Unmount/mount. - then generate about 10 MB/sec streaming writes for i in `seq 1 1000` do dd if=/dev/zero of=junkfile.$i bs=1M count=10 sync cat junkfile.$i > /dev/null sleep 1 done - use an application that reads 128 bytes 64000 times from a random offset in the 64 MB testfile. 1. Linux 2.6.10-rc3 vanilla, no streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.22s system 5% cpu 4.456 total 2. Linux 2.6.10-rc3 vanilla, streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.16s system 2% cpu 7.667 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.37s system 1% cpu 23.294 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.99s system 1% cpu 1:11.52 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.21s system 2% cpu 10.273 total 3. Linux 2.6.10-rc3 with read-page-access.patch , streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.21s system 3% cpu 7.634 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.04s user 0.22s system 2% cpu 9.588 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.12s system 24% cpu 0.563 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.13s system 98% cpu 0.163 total As expected, with the read-page-access.patch, the kernel keeps the 8 MB testfile cached as expected, while without it, it doesn't. So this is useful for workloads where one smallish (wrt RAM) file is read randomly over and over again (like heavily used database indexes), while other I/O is going on. Plain 2.6 caches those files poorly, if the app uses plain read(). Signed-Off-By: Miquel van Smoorenburg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.19, 2005-01-03 20:16:04-08:00, haveblue@us.ibm.com [PATCH] make sure ioremap only tests valid addresses When CONFIG_HIGHMEM=y, but ZONE_NORMAL isn't quite full, there is, of course, no actual memory at *high_memory. This isn't a problem with normal virt<->phys translations because it's never dereferenced, but CONFIG_NONLINEAR is a bit more finicky. So, don't do virt_to_phys() to non-existent addresses. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.18, 2005-01-03 20:15:51-08:00, haveblue@us.ibm.com [PATCH] kill off highmem_start_page People love to do comparisons with highmem_start_page. However, where CONFIG_HIGHMEM=y and there is no actual highmem, there's no real page at *highmem_start_page. That's usually not a problem, but CONFIG_NONLINEAR is a bit more strict and catches the bogus address tranlations. There are about a gillion different ways to find out of a 'struct page' is highmem or not. Why not just check page_flags? Just use PageHighMem() wherever there used to be a highmem_start_page comparison. Then, kill off highmem_start_page. This removes more code than it adds, and gets rid of some nasty #ifdefs in .c files. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.17, 2005-01-03 20:15:37-08:00, Andries.Brouwer@cwi.nl [PATCH] mm: overcommit updates Alan made overcommit mode 2 and it doesnt work at all. A process passing the limit often does so at a moment of stack extension, and is killed by a segfault, not better than being OOM-killed. Another problem is that close to the edge no other processes can be started, so that a sysadmin has problems logging in and investigating. Below a patch that does 3 things: (1) It reserves a reasonable amount of virtual stack space (amount randomly chosen, no guarantees given) when the process is started, so that the common utilities will not be killed by segfault on stack extension. (2) It reserves a reasonable amount of virtual memory for root, so that root can do things when the system is out-of-memory (3) It limits a single process to 97% of what is left, so that also an ordinary user is able to use getty, login, bash, ps, kill and similar things when one of her processes got out of control. Since the current overcommit mode 2 is not really useful, I did not give this a new number. The patch is just for playing, not to be applied by Linus. But, Andrew, I hope that you would be willing to put this in -mm so that people can experiment. Of course it only does something if one sets overcommit mode to 2. The past month I have pressured people asking for feedback, and now have about a dozen reports, mostly positive, one very positive. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.16, 2005-01-03 20:15:21-08:00, andrea@novell.com [PATCH] mempolicy optimisation Some optimizations in mempolicy.c (like to avoid rebalancing the tree while destroying it and by breaking loops early and not checking for invariant conditions in the replace operation). Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.15, 2005-01-03 20:15:08-08:00, linuxram@us.ibm.com [PATCH] Simplified readahead congestion control Reinstate the feature wherein readahead will be bypassed if the underlying queue is read-congersted. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.14, 2005-01-03 20:14:55-08:00, slpratt@austin.ibm.com [PATCH] Simplified readahead With Ram Pai - request size is now passed into page_cache_readahead. This allows the removal of the size averaging code in the current readahead logic. - readahead rampup is now faster (especially for larger request sizes) - No longer "slow read path". Readahead is turn off at first random access, turned back on at first sequential access. - Code now handles thrashing, slowly reducing readahead window until thrashing stops, or min size reached. - Returned to old behavior where first access is assumed sequential only if at offset 0. - designed to handle larger (1M or above) window sizes efficiently Benchmark results: machine 1: 8 way pentiumIV 1GB memory, tests run to 36GB SCSI disk (Similar results were seen on a 1 way 866Mhz box with IDE disk.) TioBench: tiobench.pl --dir /mnt/tmp --block 4096 --size 4000 --numruns 2 --threads 1(4,16,64) 4k request size sequential read results in MB/sec Threads 2.6.9 w/patches %diff diff ChangeSet@1.1938.463.13, 2005-01-03 20:14:42-08:00, nickpiggin@yahoo.com.au [PATCH] mm: teach kswapd about higher order areas Teach kswapd to free memory on behalf of higher order allocators. This could be important for higher order atomic allocations because they otherwise have no means to free the memory themselves. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.12, 2005-01-03 20:14:29-08:00, nickpiggin@yahoo.com.au [PATCH] mm: higher order watermarks Move the watermark checking code into a single function. Extend it to account for the order of the allocation and the number of free pages that could satisfy such a request. From: Marcelo Tosatti Fix typo in Nick's kswapd-high-order awareness patch Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.11, 2005-01-03 20:14:14-08:00, nickpiggin@yahoo.com.au [PATCH] mm: keep count of free areas Keep track of the number of free pages of each order in the buddy allocator. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.10, 2005-01-03 20:14:02-08:00, rjmx@rjmx.net [PATCH] CS461x gameport code isn't being included in build With Cal Peake I've found a typo in drivers/input/gameport/Makefile in kernel 2.6.9 which effectively prevents the CS461x gameport code from being included. Signed-off-by: Ron Murray Signed-off-by: Cal Peake Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.9, 2005-01-03 20:13:49-08:00, akpm@osdl.org [PATCH] vmscan: total_scanned fix We haven't been incrementing local variable total_scanned since the scan_control stuff went in. That broke kswapd throttling. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.8, 2005-01-03 20:13:31-08:00, jack@suse.cz [PATCH] Allow disabling quota messages to console Allow disabling of quota messages to console (they can disturb other output). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.7, 2005-01-03 20:13:18-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: reiserfs Implement quota journaling and quota reading and writing functions for reiserfs. Solves also several other deadlocks possible for reiserfs due to the lock inversion on journal_begin and quota locks. From: Vladimir Saveliev When CONFIG_QUOTA is defined reiserfs's finish_unfinished sets and clears MS_ACTIVE bit in s_flags field of super block. If that bit was set already it should not be set. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.6, 2005-01-03 20:13:03-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: ext3 Implementation of quota reading and writing functions for ext3. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.5, 2005-01-03 20:12:49-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: ext2 Implementation of quota reading and writing functions for ext2. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.4, 2005-01-03 20:12:36-08:00, jack@suse.cz [PATCH] quota umount race fix Fix possible races between umount and quota on/off. Finally I decided to take a reference to vfsmount during vfs_quota_on() and to drop it after the final cleanup in the vfs_quota_off(). This way we should be all the time guarded against umount. This way was protected also the old code which used filp_open() for opening quota files. I was also thinking about other ways of protection but there would be always a window (provided I don't want to play much with namespace locks) where vfs_quota_on() could be called while umount() is in progress resulting in the "Busy inodes after unmount" messages... Get a reference to vfsmount during quotaon() so that we are guarded against umount (as was the old code using filp_open()). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.3, 2005-01-03 20:12:24-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: quota core The four patches in this series fix deadlocks with quotas of pagelock (the problem was lock inversion on PageLock and transaction start - quota code needed to first start a transaction and then write the data which subsequently needed acquisition of PageLock while the standard ordering - PageLock first and transaction start later - was used e.g. by pdflush). They implement a new way of quota access to disk: Every filesystem that would like to implement quotas now has to provide quota_read() and quota_write() functions. These functions must obey quota lock ordering (in particular they should not take PageLock inside a transaction). The first patch implements the changes in the quota core, the other three patches implement needed functions in ext2, ext3 and reiserfs. The patch for reiserfs also fixes several other lock inversion problems (similar as ext3 had) and implements the journaled quota functionality (which comes almost for free after the locking fixes...). The quota core patch makes quota support in other filesystems (except XFS which implements everything on its own ;)) unfunctional (quotaon() will refuse to turn on quotas on them). When the patches get reasonable wide testing and it will seem that no major changes will be needed I can make fixes also for the other filesystems (JFS, UDF, UFS). This patch: The patch implements the new way of quota io in the quota core. Every filesystem wanting to support quotas has to provide functions quota_read() and quota_write() obeying quota locking rules. As the writes and reads bypass the pagecache there is some ugly stuff ensuring that userspace can see all the data after quotaoff() (or Q_SYNC quotactl). In future I plan to make quota files inaccessible from userspace (with the exception of quotacheck(8) which will take care about the cache flushing and such stuff itself) so that this synchronization stuff can be removed... The rewrite of the quota core. Quota uses the filesystem read() and write() functions no more to avoid possible deadlocks on PageLock. From now on every filesystem supporting quotas must provide functions quota_read() and quota_write() which obey the quota locking rules (e.g. they cannot acquire the PageLock). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.2, 2005-01-03 20:12:10-08:00, jack@suse.cz [PATCH] Fix reiserfs quota debug messages Attached patch fixes debug messages of quota code in reiserfs so that they compile. Chris Mason agreed the patch. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.463.1, 2005-01-03 20:11:57-08:00, jack@suse.cz [PATCH] Expose reiserfs_sync_fs() Attached patch exposes reiserfs_sync_fs(). This call is needed by the new quota code to write data to disk on quotaoff so that userspace can see them afterwards. Chris Mason agrees with the patch. Make reiserfs provide the sync_fs() function so that the quota code has a way to reliably force a transaction to disk. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.462.1, 2005-01-03 22:48:10+00:00, mzzhgg@de.rmk.(none) [SERIAL] support for another Rockwell PNP modem From: Lennart Poettering Trivial patch against Linux 2.6.10 which adds PNP support for a certain kind of Rockwell 28.8/ISA modems. ChangeSet@1.1938.461.2, 2005-01-03 18:56:59+00:00, rmk@flint.arm.linux.org.uk [MMC] Remove deprecated data->req Since all users of this have now been eliminated, we can eliminate the element itself. MMC host drivers now operate only on the scatter lists passed to them, rather than needing knowledge of block devices. Signed-off-by: Russell King ChangeSet@1.1938.461.1, 2005-01-03 18:37:35+00:00, drzeus-list@cx.rmk.(none) [MMC] Fix warning in wbsd From: Pierre Ossman Cleanup that fixes a warning in the wbsd module. ChangeSet@1.1938.1.203, 2005-01-03 18:28:00+00:00, rmk@flint.arm.linux.org.uk [ARM] Fix some pointer/integer conversion warnings for RiscPC. Signed-off-by: Russell King ChangeSet@1.1938.1.202, 2005-01-03 18:07:07+00:00, rmk@flint.arm.linux.org.uk [ARm] Silence a couple of compiler warnings. Signed-off-by: Russell King ChangeSet@1.1938.1.201, 2005-01-03 17:02:08+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2342/1: Support PXA SSP configuration changes when port is open Patch from Liam Girdwood This patch allows the PXA SSP port configuration to be changed without the need to close the port. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.1938.1.200, 2005-01-03 16:33:30+00:00, rmk@flint.arm.linux.org.uk [ARM] Swap DOMAIN_USER and DOMAIN_KERNEL indicies This changes kernel domains to use domain 0 rather than domain 1, in preparation to supporting supersection mappings. Signed-off-by: Russell King ChangeSet@1.1938.1.199, 2005-01-03 16:13:30+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2340/1: Added PXA27x SSP port 3 to kernel io address range Patch from Liam Girdwood This patch adds the PXA27x SSP port 3 configuration register space (Phys 0x41900000) to the kernel memory table. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.1968, 2005-01-03 14:13:22+01:00, dtor_core@ameritech.net Input: i8042 - fix "debug" parameter sysfs permissions. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik ChangeSet@1.1967, 2005-01-03 13:15:38+01:00, vojtech@suse.cz Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input ChangeSet@1.1938.1.198, 2005-01-02 17:51:04-08:00, nickpiggin@yahoo.com.au [PATCH] ia64 4-level pgtable fix Fix a 4-level page table bug that slipped through (introduced by me, not Andi). Compiles and boots on ia64 and 2-level i386. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.197, 2005-01-02 17:49:03-08:00, torvalds@evo.osdl.org x86 single-step: fix up comments and cleanup. Pretty much all the TF-related comments were stale, and had been for a long time. Fix them up, clean up code. ChangeSet@1.1938.1.196, 2005-01-02 17:17:29-08:00, torvalds@ppc970.osdl.org x86 ptrace: remove long stale (and bitrotted) test for PT_DTRACE without PT_PTRACED. Long ago, the "D" in PT_DTRACE meant "Delayed", and it was used as a flag to mark that we had ptrace'd the process but no longer did so. That hasn't been true in a while now, and the flag should probably be renamed, but in the meantime the test for PT_PTRACED being cleared had been corrupted into something totally nonsensical. Pointed out by Andi Kleen. ChangeSet@1.1938.460.1, 2005-01-02 20:27:25+00:00, rmk@flint.arm.linux.org.uk [MMC] Fix UNSTUFF_BITS Quieten down compiler warnings, and fix an off-by-one bug when deciding whether to include the next word. ChangeSet@1.1938.451.9, 2005-01-02 21:17:55+01:00, kaos@ocs.com.au kallsyms: Avoid kallsyms corner case on _etext and _einittext Avoid kallsyms corner case on _etext and _einittext with CONFIG_KALLSYMS_ALL=n. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.1.193, 2005-01-02 11:45:13-08:00, torvalds@evo.osdl.org acpi video device enumeration: fix incorrect device list allocation It didn't allocate space for the final terminating entry, which caused it to overwrite the next slab entry, which in turn sometimes ended up being a slab array cache pointer. End result: total slab cache corruption at a random time afterwards. Very nasty. ChangeSet@1.1938.1.192, 2005-01-02 10:49:42-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] diskonchip missing iomem annotations some trivial iomem annotations were still missing Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.191, 2005-01-02 10:49:27-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] pc300 portability fixes local variable used to store flags after spin_lock_irqsave() should be unsigned long, not u32. That should complete the 64bit cleanups in there. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.190, 2005-01-02 10:49:14-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc uaccess annotations - get_user() __gu_val should be unsigned long (same as with i386 patch) - __copy_to_user() et.al. didn't have proper type checking - documented the casts in __copy_tofrom_user() calls with __force. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.189, 2005-01-02 10:47:03-08:00, rusty@rustcorp.com.au [PATCH] Fix cleanup path when sysctl registration fails nfsim gains sysctl support, and sure enough, --failtest uncovered an unregister when the registration had failed. Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.188, 2005-01-02 10:46:04-08:00, rusty@rustcorp.com.au [PATCH] Fix proc removal in ip_conntrack_standalone Someone thought it would be clever if proc code ignores removal of non-existent entries. Hence, we missed that /proc/net/stat/ip_conntrack is never removed on module removal or init failure. Found by nfsim. Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.187, 2005-01-02 09:49:29-08:00, rddunlap@osdl.org [PATCH] parport_pc: don't mix module parameter styles Somehow parport_pc.c ended up with mixed old-style and new-style module parameters, but mixing them is not allowed. Use module_param() instead of MODULE_PARM() -- cannot be mixed. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.186, 2005-01-02 09:49:16-08:00, wli@holomorphy.com [PATCH] sparc32: fix blank screen problem in cg6.c Although the CG6 framebuffer is detected and initialized, without this patch all it displays is a blank screen. Tested on an Ultra 1 with a TGX+. Originally from Bob Breuer for the CG14. Signed-off-by: Adam Kropelin Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.185, 2005-01-02 09:49:03-08:00, wli@holomorphy.com [PATCH] sparc32: remove conflicting definition of _exit() sparc32 had a conflicting _exit, removed the line from asm- sparc/unistd.h. This is the same change that DaveM made to sparc64 here: http://linux.bkbits.net:8080/linux-2.6/diffs/include/asm- sparc64/unistd.h@1.33 Warning was: In file included from include/linux/unistd.h:9, from init/main.c:45: include/asm/unistd.h:489: warning: conflicting types for built-in function '_exit' Signed-off-by: Tom 'spot' Callaway Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.184, 2005-01-02 09:48:52-08:00, wli@holomorphy.com [PATCH] sparc32: fix incomplete irqreturn_t sweep in include/asm-sparc/floppy.h Squelch the floppy compile warning: include/asm/floppy.h: In function `sun_fd_request_irq': include/asm/floppy.h:276: warning: passing arg 2 of `request_fast_irq' from incompatible pointer type Signed-off-by: Tom 'spot' Callaway Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.183, 2005-01-02 09:48:39-08:00, wli@holomorphy.com [PATCH] sparc32: fix missing handling for VM fault codes Fix missing cases for vm fault codes in sparc32 fault handling, and convert the entire file to using symbolic fault codes. This fixes a latent bug where an allocation failure returns to the kernel instead of delivering an error as expected. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.182, 2005-01-02 09:48:26-08:00, wli@holomorphy.com [PATCH] sparc32: fix sbus rtc warnings Add a sparc #ifdef to drivers/char/rtc.c and iomem annotations to drivers/sbus/char/rtc.c Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.181, 2005-01-02 09:48:13-08:00, wli@holomorphy.com [PATCH] sparc32: unused variable in sunsu.c serio is unused except in the #ifdef CONFIG_SERIO paths. To kill the warning, make the declaration conditional on the same. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.180, 2005-01-02 09:48:00-08:00, wli@holomorphy.com [PATCH] sparc32: arch/sparc/kernel/pcic.c iomem annotations arch/sparc/kernel/pcic.c trips numerous warnings due to iomem annotations. This patch adds various needed iomem annotations. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.179, 2005-01-02 09:47:47-08:00, wli@holomorphy.com [PATCH] sparc32: fix missing return value for svr4_setcontext() sparc32 svr4_setcontext() needs to return a value in the SIGSEGV path. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.178, 2005-01-02 09:47:34-08:00, wli@holomorphy.com [PATCH] sparc32: fix initrd memcpy problem The latter hunk of the forwarded patch has already been applied, so please apply the patch as it appears in the un-forwarded part. I've taken some liberties in adding the Acked/Signed-off lines in what I hope is an agreeable way. On Sun, Nov 14, 2004 at 11:16:40PM -0500, Jurij Smakov wrote: > As a followup: I have tried fiddling more with the memcpy() routine. > Insight from Rob Radez and comments in arch/sparc/lib/blockops.S suggest, > that __copy_1page assumes that the memory regions copied are aligned on a > double-word boundary. I have checked, that in the cramfs case it wasn't > true, the destination was not aligned on the double-word boundary. So, I > have implemented a simple workaround (see patch below), which together > with Bob Breuer's iommu.c fix [0] made 2.6.8 kernel to boot on my > machine (SS10 with Ross Hypersparc CPU)! I also confirm, that adding the > suggested fix to the srmmu.c also [1] breaks sunlance on my machine. With > that "fix" the line 'eth0: Memory error, status 88c3, addr 3713ba' is > displayed continuously during boot, when it comes to configuring network > interfaces. The successful patch for me is: Acked-by: William Irwin Acked-by: Dave Miller Signed-off-by: Jurij Smakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.177, 2005-01-02 09:47:21-08:00, wli@holomorphy.com [PATCH] sparc32: sun4d update Chris Newport and Thomas Bogendoerfer have been working to get the sun4d port functional again. This patch updates 2.6.10-rc3 to a current snapshot of their work. It does the following 3 things: (1) add sun4d hook to sbus_bus_ranges_init() (2) fix up pgd_offset() call in sun4d iommu code (3) fix up sun4d's definition of current Signed-off-by: Chris Newport Signed-off-by: Thomas Bogendoerfer Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.176, 2005-01-02 09:47:08-08:00, wli@holomorphy.com [PATCH] sparc32: fix hypersparc dvma DVMA is having aliasing problems. Bob originally sent in the following description: At some point in the past, Bob Breuer wrote: > Here's the preliminary patch. This time around, both the hme > and esp drivers are working for me. This replaces my previous > patch and is against the vanilla 2.6.9 kernel. I've tried to > reduce the amount of unnecessary cache flushing, therefore this > will need some testing on non-hypersparc cpus also. It needs > some cleanup yet, and will be rediffed against a later kernel. > I'm looking for comments and feedback. This patch represents one of those subsequent rediffings. Signed-off-by: Bob Breuer Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.175, 2005-01-02 09:46:55-08:00, akpm@osdl.org [PATCH] floppy build fix drivers/block/floppy.c: In function `init_module': drivers/block/floppy.c:4598: error: parse error before "UTS_RELEASE" Not sure what went wrong here - just kill the thing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.174, 2005-01-02 09:46:42-08:00, akpm@osdl.org [PATCH] fix inet6_sk for non IPV6 builds again The recent ipv6 "fix" broke the build: security/selinux/avc.c: In function `avc_audit': security/selinux/avc.c:581: warning: implicit declaration of function `inet6_sk' security/selinux/avc.c:581: warning: initialization makes pointer from integer without a cast Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.173, 2005-01-02 09:46:29-08:00, michal@logix.cz [PATCH] Add Michal Ludvig to CREDITS Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.172, 2005-01-02 09:46:16-08:00, michal@logix.cz [PATCH] VIA PadLock compilation fixes This patch contains two fixes for VIA PadLock compilation with GCC 2.95.3 and GCC 3.4.3 (original patch was tested with 3.3.4 only). Signed-off-by: Michal Ludvig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.171, 2005-01-02 09:46:03-08:00, akpm@osdl.org [PATCH] ia64 PTRS_PER_PGD build fix mm/memory.c:1944:6: missing binary operator before token "long" The preprocessor doesn't like the typecast.... PTRS_PER_PGD isn't used in assembly code, so this looks to be safe enough.. This patch helps, but the ia64 build is still broken. There is no implementation of __pmd_alloc(). Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.170, 2005-01-02 09:45:50-08:00, akpm@osdl.org [PATCH] sparc64 pmd_offset() fix mm/memory.c: In function `zeromap_pud_range': mm/memory.c:1053: warning: suggest parentheses around + or - inside shift mm/memory.c: In function `remap_pud_range': mm/memory.c:1170: warning: suggest parentheses around + or - inside shift Parenthesize this macro arg. Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.169, 2005-01-02 09:45:38-08:00, akpm@osdl.org [PATCH] setup_pci.c build fix On sparc64: drivers/ide/setup-pci.c:310: error: `DMA_32BIT_MASK' undeclared (first use in this function) drivers/ide/setup-pci.c:310: error: (Each undeclared identifier is reported only once drivers/ide/setup-pci.c:310: error: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.168, 2005-01-02 09:40:33-08:00, rusty@rustcorp.com.au [PATCH] ipt_ECN corrupt checksum fix Nasty bug, caught while writing the ECN target test. Corrupts checksums of packets when target is used on them. Let this be a warning on the evils of casts. Signed-off-by: Linus Torvalds ChangeSet@1.1938.459.1, 2005-01-02 20:08:59+11:00, airlied@starflyer.(none) drm: mark ffb as broken because it actually is The ffb driver has been broken since 2.6.8 at least, so mark it as so. This also contains some fixes so it at least compiles. Signed-off-by: Dave Airlie ChangeSet@1.1938.1.167, 2005-01-01 14:02:07-08:00, ak@suse.de [PATCH] convert x86_64 to 4 level page tables Converted to true 4levels. The address space per process is expanded to 47bits now, the supported physical address space is 46bits. Lmbench fork/exit numbers are down a few percent because it has to walk much more pagetables, but some planned future optimizations will hopefully recover it. See Documentation/x86_64/mm.txt for more details on the memory map. Signed-off-by: Andi Kleen Converted to pud_t by Nick Piggin. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.166, 2005-01-01 14:01:54-08:00, nickpiggin@yahoo.com.au [PATCH] convert ia64 to generic nopud header Convert ia64 architecture over to handle 4 level pagetables. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.165, 2005-01-01 14:01:39-08:00, ak@suse.de [PATCH] convert i386 to generic nopud header i386 works with 2 and 3 levels Signed-off-by: Andi Kleen Converted to use pud_t by Nick Piggin Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.164, 2005-01-01 14:01:24-08:00, nickpiggin@yahoo.com.au [PATCH] introduce fallback header Add a temporary "fallback" header so architectures can run with the 4level patgetables patch without modification. All architectures should be converted to use the folding headers (include/asm-generic/pgtable-nop?d.h) as soon as possible, and the fallback header removed. Make all architectures include the fallback header, except i386, because that architecture has earlier been converted to use pgtable-nopmd.h under the 3 level system, which is not compatible with the fallback header. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.163, 2005-01-01 14:01:09-08:00, ak@suse.de [PATCH] convert Linux to 4-level page tables Extend the Linux MM to 4level page tables. This is the core patch for mm/*, fs/*, include/linux/* It breaks all architectures, which will be fixed in separate patches. The conversion is quite straight forward. All the functions walking the page table hierarchy have been changed to deal with another level at the top. The additional level is called pml4. mm/memory.c has changed a lot because it did most of the heavy lifting here. Most of the changes here are extensions of the previous code. Signed-off-by: Andi Kleen Converted by Nick Piggin to use the pud_t 'page upper' level between pgd and pmd instead of Andi's pml4 level above pgd. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.162, 2005-01-01 14:00:55-08:00, nickpiggin@yahoo.com.au [PATCH] introduce 4-level nopud folding header Generic headers to fold the 4-level pagetable into 3 levels. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.161, 2005-01-01 14:00:42-08:00, nickpiggin@yahoo.com.au [PATCH] replace clear_page_tables with clear_page_range Rename clear_page_tables to clear_page_range. clear_page_range takes byte ranges, and aggressively frees page table pages. Maybe useful to control page table memory consumption on 4-level architectures (and even 3 level ones). Possible downsides are: - flush_tlb_pgtables gets called more often (only a problem for sparc64 AFAIKS). - the opportunistic "expand to fill PGDIR_SIZE hole" logic that ensures something actually gets done under the old system is still in place. This could sometimes make unmapping small regions more inefficient. There are some other solutions to look at if this is the case though. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.160, 2005-01-01 14:00:27-08:00, ak@suse.de [PATCH] split copy_page_range Split copy_page_range into the usual set of page table walking functions. Needed to handle the complexity when moving to 4 levels. Signed-off-by: Andi Kleen Split out from Andi Kleen's 4level patch by Nick Piggin. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.159, 2005-01-01 14:00:15-08:00, nickpiggin@yahoo.com.au [PATCH] convert i386 to generic nopmd header Adapt the i386 architecture to use the generic 2-level folding header. Just to show how it is done. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.158, 2005-01-01 14:00:01-08:00, nickpiggin@yahoo.com.au [PATCH] generic 3-level nopmd folding header Generic headers to fold the 3-level pagetable into 2 levels. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.157, 2005-01-01 13:59:48-08:00, nickpiggin@yahoo.com.au [PATCH] parentheses to x86-64 macro Add parentheses to x86-64's pgd_index's arguments Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.156, 2005-01-01 13:47:42-08:00, torvalds@evo.osdl.org x86: single-step over "popf" without corrupting state. This still leaves "pushf" able to see that somebody is single-stepping us, but that is at least something you can work around. ChangeSet@1.1938.1.155, 2005-01-01 13:11:08-08:00, torvalds@evo.osdl.org x86: be a lot more careful about TF handling. This should fix Wine for some games that otherwise seem to think that they run under a debugger. ChangeSet@1.1938.1.154, 2005-01-01 12:24:01-08:00, torvalds@evo.osdl.org x86: common send_sigtrap helper for debug event SIGTRAP's, and use that for system call single-step events. This one also gets the user mode test right, and makes sure the siginfo is not leaking any stack contents. ChangeSet@1.1938.1.153, 2005-01-01 12:21:12-08:00, torvalds@evo.osdl.org Now that sparse looks into asms, fix the fake anti-optimizer cast macro to use the right address space. ChangeSet@1.1938.458.3, 2005-01-01 19:02:55+00:00, rmk@flint.arm.linux.org.uk [ARM] Remove static mapping for RTC on Integrator/AP ChangeSet@1.1938.458.2, 2005-01-01 18:08:52+00:00, rmk@flint.arm.linux.org.uk [ARM] Update Integrator RTC driver. This updates the Integrator RTC driver to use the ARM common RTC interface, and converts the driver to behave as a standard AMBA peripheral driver. ChangeSet@1.1938.458.1, 2005-01-01 16:29:07+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2338/1: IXP465 and IXDPG465 header file updates Patch from Deepak Saxena Update IXP4xx header files with new registers for IXP46x CPU family. Replaces 2306/1 Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.1.152, 2005-01-01 23:20:59+11:00, airlied@starflyer.(none) drm: core changes broke i810/830 Reported by Joseph Fannin during -mm, revert incorrect change. Signed-off-by: Dave Airlie ChangeSet@1.1938.1.151, 2004-12-31 18:36:38+11:00, airlied@starflyer.(none) drm: make reclaim_buffers take dev argument Allow drivers to override reclaim_buffers in an OS-independent way by passing drm_device_t* as first parameter, like in the BSD version. From: Felix Kuehling Signed-off-by: Dave Airlie ChangeSet@1.1938.1.150, 2004-12-31 18:24:53+11:00, airlied@starflyer.(none) drm: use spin_lock_init instead of SPIN_LOCK_UNLOCKED From: Jon Smirl Signed-off-by: Dave Airlie ChangeSet@1.1938.1.149, 2004-12-31 18:18:54+11:00, airlied@starflyer.(none) drm: correct historic mis-attribution of copyright From: Keith Withwell Signed-off-by: Dave Airlie ChangeSet@1.1938.1.148, 2004-12-31 18:15:21+11:00, airlied@starflyer.(none) Make 1-bit fields be unsigned (no sign bit :). sparse complains about them: drivers/char/drm/sis_ds.h:88:12: warning: dubious one-bit signed bitfield drivers/char/drm/sis_ds.h:89:16: warning: dubious one-bit signed bitfield Signed-off-by: Randy Dunlap Signed-off-by: Dave Airlie ChangeSet@1.1938.457.1, 2004-12-31 12:46:36+11:00, airlied@starflyer.(none) drm: Use wbinvd macro instead of assembly for it, From: Stefan Dirsch Signed-off-by: Dave Airlie ChangeSet@1.1938.454.13, 2004-12-31 00:26:38+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2307/1: Add IXP46x and IXDPG465 implementation Patch from Deepak Saxena Patch adds implementation details for IXP46x CPUs and new IXDPG465 reference platform. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.454.12, 2004-12-31 00:20:31+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2339/1: Don't mask IRQ_STATUS with IXP2000_VALID_IRQ_MASK Patch from Deepak Saxena Supersedes 2226/1 According to the IXP Programmer's Reference Manual, a read from IRQ_STATUS can only return '1' for IRQ sources that have been explicitly enabled in IRQ_ENABLE. So if we never enable 'invalid' IRQ sources, we don't actually have to mask off IRQ_STATUS with IXP2000_VALID_IRQ_MASK. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.454.11, 2004-12-31 00:14:52+00:00, rmk@flint.arm.linux.org.uk [ARM] Add missing end of comment. ChangeSet@1.1938.1.145, 2004-12-30 15:23:01-08:00, torvalds@ppc970.osdl.org Merge bk://bart.bkbits.net/ide-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.1.144, 2004-12-30 15:21:16-08:00, acme@conectiva.com.br [PATCH] Fix net/core/sock.o build failure This fixes a build failure that happens when you don't select IPV6. Signed-off-by: Linus Torvalds ChangeSet@1.1938.452.11, 2004-12-30 22:40:35+01:00, bzolnier@trik.(none) [patch] Intel ICH7 DID's, PIRQ and PATA support From: Jason Gaston This patch adds the Intel ICH7 DID's to the pci_ids.h file and updates the piix driver and related files for PATA support. bart: this patch also adds PIRQ support Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.10, 2004-12-30 20:29:23+01:00, bzolnier@trik.(none) [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} - nothing clever here: the most noticeable change is the change of returned value for (*init_setup) in struct ide_pci_device_s which goes from void to int. Anything else is editing and checking for errors in the output of the compiler; - pci_disable_device() added for the error path in pci_init_sgiioc4(); - BUG() removed in amd74xx_probe(): good old printk() is enough. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.9, 2004-12-30 20:16:30+01:00, bzolnier@trik.(none) [ide] propagate the error status in ide_pci_enable/ide_setup_pci_controller - no need to overwrite the status code returned by the pci_xyz() functions; - jump into the new century and use DMA_32BIT_MASK; - misc cleanup in the error paths. It should not add a huge value in ide_pci_enable() due to the FIXME comment but it should not bite too hard either. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.8, 2004-12-30 20:08:53+01:00, bzolnier@trik.(none) [ide] clean up error path in do_ide_setup_pci_device() ide_setup_pci_controller() puts the device in a PCI enabled state. The patch adds a small helper to balance it when things go wrong. Actually the helper does not *exactly* balance the setup: if it can not do a better job, ide_setup_pci_controller() may only enable some BARS whereas the new counterpart will try to disable everything. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.7, 2004-12-30 19:26:14+01:00, bzolnier@trik.(none) [ide] propagation of error code in PCI IDE setup - Change the return value and the prototype of do_ide_setup_pci_device Due to lack of appropriate return status code, the current clients of do_ide_setup_pci_device() can not distinguish a failing invocation from a successfull one. The patch modify do_ide_setup_pci_device() so that it can propagate some of the errors from the lower layers. - Make ide_setup_pci_device() aware of the change and propagate the news itself. I only gave a quick sight to create_proc_ide_interfaces() (and ide_remove_proc_entries()) but they do seem sane and it should not matter if it fails or not. - ide_setup_pci_devices(): mostly the same thing than ide_setup_pci_device(). do not look trivially suspect. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.6, 2004-12-30 19:07:00+01:00, bzolnier@trik.(none) [ide] fix return codes in the generic PCI IDE driver From: Alan Cox This patch updates ide/pci/generic.c to fix the incorrect returns causing PCI devices to be left reserved wrongly by the driver. From: Francois Romieu Use -ENODEV instead of -EAGAIN. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.5, 2004-12-30 19:00:56+01:00, bzolnier@trik.(none) [ide] it8172: incorrect return from it8172_init_one() From: Alan Cox Several IDE drivers return positive values as errors in the PCI setup code. Unfortunately the PCI layer considers positive values as success so the driver skips the device but still claims it and things then go downhill. This fixes the IT8172 driver. From: Francois Romieu Use -ENODEV instead of -EAGAIN. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.454.10, 2004-12-29 17:32:38-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] i386 uaccess annotations get_user() stores result in a local variable that later gets cast to integer or pointer type. The proper type for that is unsigned long. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.452.4, 2004-12-29 23:21:55+01:00, bzolnier@trik.(none) [ide] fix cleanup_module() in ide.c DMA should be already released by ide_unregister() (unless interface is still busy). Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.3, 2004-12-29 23:11:22+01:00, bzolnier@trik.(none) [ide] ide-proc: kill destroy_proc_ide_interfaces() /proc interface entries should be already unregistered by ide_unregister() (unless interface is still busy). Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.454.8, 2004-12-29 21:00:56+00:00, davis_g@com.rmk.(none) [ARM PATCH] 2327/1: Thumb ld/st alignment fault fixups Patch from George G. Davis Adds support for Thumb ld/st alignment fault fixups via conversion of Thumb ld/st instruction forms into equivalent ARM instructions and reusing ARM alignment fault handler for Thumb instructions. This implementation was inspired by and initially based on the algorithm found in gdb/sim/arm/thumbemu.c. I've backed out the silly 'T' suffix on PC in this version as requested by RMK. At this point, I prefer to avoid making any of the other changes discussed, e.g. dump_instr() for bad instruction cases, in order to get the basic Thumb support change committed. Thanks! Signed-off-by: George G. Davis Signed-off-by: Russell King ChangeSet@1.1938.454.7, 2004-12-29 20:39:53+00:00, tony@com.rmk.(none) [ARM PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The highlights of the patch are: - Add OMAP board specific low-level init functions for smc91x Ethernet - DMA audio functions by Nishant Menon - Remove references to OMAP specific serial.h This is an updated version of ARM patch 2331/1 with extra comments added to the omap_get_dma_src_pos() and omap_get_dma_dst_pos() functions as recommended by RMK. Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.455.15, 2004-12-29 10:43:28-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - ->cfg_addr ->cfg_addr is an iomem pointer; annotated as such, setup_indirect_pci() cleaned up. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.14, 2004-12-29 10:43:15-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - openpic Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.13, 2004-12-29 10:43:02-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - gg2 gg2_pci_config_base is an iomem pointer. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.12, 2004-12-29 10:42:49-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - ->cfg_data struct pci_controller ->cfg_data annotated as iomem pointer; users modified accordingly... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.11, 2004-12-29 10:42:36-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] av7110_hw __user annotations fix Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.10, 2004-12-29 10:42:23-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] dib3000 portability fix size_t is %zd, not %d... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.9, 2004-12-29 10:42:10-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] tda80xx.c portability fix should include asm/irq.h, not linux/irq.h Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.8, 2004-12-29 10:41:57-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] more isa-ectomy switch to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.7, 2004-12-29 10:41:44-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] hotplug NULL noise removal Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.6, 2004-12-29 10:41:31-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc io.h annotations * prototypes converted to standard ones * bunch of useless casts killed in ioread*/iowrite* Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.5, 2004-12-29 10:41:18-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] x86_64 io.h annotations x86-64 memcpy_toio(), memcpy_fromio(), memset_io() and read{b,w,l,q}(), switched to standard prototypes. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.4, 2004-12-29 10:41:06-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] cinergy __user annotations __user annotations in new code. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.3, 2004-12-29 10:40:52-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] mxser annotations and compile fixes a) __user annotations b) NULL noise removals c) added missing ifdef CONFIG_PCI around the loop over mxser_pcibrds during init. d) declaration of CMSPAR in case if it had been undefined moved up prior to the first use Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.2, 2004-12-29 10:40:39-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] zatm fix Repairs the breakage introduced in gcc4 fixes. Original had expanded to ((struct zatm_dev *)(dev)->dev_data) = zatm_dev; and that's what gcc4 had complained about (cast-as-lvalue). Proper fix is, of course, dev->dev_data = zatm_dev; What we have in 2.6.10 is dev = (struct atm_dev *)zatm_dev; which doesn't cause complaints, but doesn't do anything good (leak + corruption at the very least). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.455.1, 2004-12-29 10:40:24-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] affs headers cleanup kernel-only stuff moved from affs headers in include/linux to fs/affs/affs.h; includes in fs/affs/*.c sanitized. That's the patch that had been ACKed by Roman + move of function-like macros from amigaffs.h (also ACKed) + removal of ancient #if 0'ed junk from declaration of affs_inode_info (spotted and suggested by Roman). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.453.2, 2004-12-29 10:25:36-06:00, domen@coderock.org JFS: delete unused file Remove nowhere referenced file. (egrep "filename\." didn't find anything) Signed-off-by: Domen Puncer Signed-off-by: Dave Kleikamp ChangeSet@1.1938.454.6, 2004-12-29 15:41:46+00:00, tony@com.rmk.(none) [ARM PATCH] 2329/1: Update Kconfig for OMAP processor options Patch from Tony Lindgren Updates processor specific Kconfig options for OMAP Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.454.5, 2004-12-29 15:36:14+00:00, tony@com.rmk.(none) [ARM PATCH] 2328/1: ARM Kconfig updates for OMAP leds Patch from Tony Lindgren ARM Kconfig updates for OMAP leds Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.454.4, 2004-12-29 15:30:34+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2326/1: Fix IXP2000 timer implementation Patch from Deepak Saxena This patch fixes two issues with the IXP2000 timer implementation: - We currently to not account for lost timer interrupts - We currently do not check for rollover within gettimeoffset() Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.454.3, 2004-12-29 15:25:09+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2325/1: Cleanup IXP2000 reset handling Patch from Deepak Saxena On IXDP2801 we need to write a magic sequence to the CPLD to ensure a full system reset instead of just CPU reset. Also cleanup some comments and copyrights while we are in here. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.454.2, 2004-12-29 15:20:01+00:00, davis_g@com.rmk.(none) [ARM PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants Patch from George G. Davis Convert ARM proc files to use manifest constants defined in pgtable.h and domain.h. This is a prelude to allow renumbering domains. The domain renumbering is required to implement support for ARMv6 MMU super sections where domain 0 is implied. Although this is technically only required for ARMv6, it seemed reasonable to clean up all proc files while here. I did a test build with and without this patch applied and confirmed that all proc file binaries are unchanged when this patch is applied. Signed-off-by: George G. Davis Signed-off-by: Russell King ChangeSet@1.1938.454.1, 2004-12-29 15:02:36+00:00, tony@com.rmk.(none) [ARM PATCH] 2332/1: OMAP update 1/2: Include files Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The patch mostly contains minor fixes and extra register definitions by various OMAP developers. Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.1.141, 2004-12-28 23:28:15-08:00, drm.adm@bkbits.net Merge bkbits.net:/repos/l/linux/linux-2.5 into bkbits.net:/repos/d/drm/drm-2.6 ChangeSet@1.1938.451.8, 2004-12-29 00:15:39+01:00, sam@mars.ravnborg.org kbuild: Use -isystem `gcc --print-file-name=include` Using "-nostdinc -isystem `gcc --print-file-name=include" let us see full path to compiler specific files when compiling with make V=1 Furthermore it lets us use same definition for sparse (CHECKFLAGS) and the kernel. Tested with gcc 3.3.4 only. Signed-off-by: Sam Ravnborg ChangeSet@1.1938.451.7, 2004-12-28 23:00:28+01:00, ahaas@airmail.net kbuild: Trivial Makefile patch The comment doesn't match the function name. From: "Art Haas" Signed-off-by: Sam Ravnborg ChangeSet@1.1938.451.6, 2004-12-28 22:59:46+01:00, sam@mars.ravnborg.org kbuild: skip localversion files with '~' anywhere in their name Idea from: Blaisorblade Signed-off-by: Sam Ravnborg ChangeSet@1.1938.451.5, 2004-12-28 22:42:36+01:00, mpm@selenic.com kbuild: make kernelrelease This patch makes it easy to programmatically get at the kernel makefile's idea of the kernel version from external scripts and makefiles with something like V=`make kernelrelease`. Alternatives include parsing Makefile (errorprone and broken by things like localversion) and running the C preprocessor on version.h (which requires a) building version.h somewhere and b) is really ugly). From: Matt Mackall Signed-off-by: Sam Ravnborg ChangeSet@1.1938.451.4, 2004-12-28 22:16:26+01:00, kaos@ocs.com.au kallsyms: gate page is part of the kernel, honour CONFIG_KALLSYMS_ALL * Treat the gate page as part of the kernel, to improve kernel backtraces. * Honour CONFIG_KALLSYMS_ALL, all symbols are valid, not just text. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.451.3, 2004-12-28 22:16:00+01:00, kaos@ocs.com.au kallsyms: Add in_gate_area_no_task() Add in_gate_area_no_task() for use in places where no task is valid (e.g. kallsyms). If you have a valid task, use in_gate_area() as before. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.451.2, 2004-12-28 22:15:34+01:00, kaos@ocs.com.au kallsyms: Clean up x86-64 special casing of in_gate_area() x86-64 has special case code for in_gate_area(), but it is not clean. * Replace CONFIG_ARCH_GATE_AREA with __HAVE_ARCH_GATE_AREA. ARCH_GATE_AREA is not a config option. * The definitions of get_gate_vma() and in_gate_area() are identical in include/asm-x86_64/page.h and include/linux/mm.h. Fold the duplicate definitions into include/linux/mm.h. Does not affect kallsyms directly, this patch just creates a clean base for patch 2. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.452.2, 2004-12-28 22:05:31+01:00, bzolnier@trik.(none) [ide] serverworks: add support for CSB6 RAID From: Alan Cox The ServerWorks chips include a RAID variant that the 2.6 driver didn't support. This enables support for this and removes a pile of #if and other pointless obfuscations. This removes the need to use various vendor binary only drivers for CSB6 RAID. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.452.1, 2004-12-28 20:35:01+01:00, bzolnier@trik.(none) [ide] add "ide=nodma" to documentation Here's a quick patch to add the currently-undocumented ide=nodma option to the Documentation/ide.txt file. Since the code does not mark this option as obsolete as far as I can see, I can only assume that it should be in the documentation Signed-off-by: Vadim Lobanov Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.451.1, 2004-12-28 19:12:15+01:00, sam@mars.ravnborg.org kbuild: drop use of /usr/bin/env in top-level Makefile The use of env is not needed, and caused the output makefile to be created in some setups where it was not supposed to. Seems to be an issue with GNU sh-utils version of env. One user also reported env to be located in another place (/usr/local/bin/..). This patch fixes bug: http://bugme.osdl.org/show_bug.cgi?id=3953 Thanks to "Mark Williams (MWP)" for helping tracking this down. Signed-off-by: Sam Ravnborg ChangeSet@1.1938.448.4, 2004-12-27 22:45:18-08:00, davem@nuts.davemloft.net [SPARC64]: Include infiniband driver config and update defconfig. Signed-off-by: David S. Miller ChangeSet@1.1938.448.3, 2004-12-27 22:30:04-08:00, davem@nuts.davemloft.net Merge nuts.davemloft.net:/disk1/BK/ib-2.6 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.1938.450.24, 2004-12-27 22:26:29-08:00, roland@topspin.com [INFINIBAND]: InfiniBand MAINTAINERS entry Add OpenIB maintainers information to MAINTAINERS. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.23, 2004-12-27 22:25:37-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand Documentation files Add files to Documentation/infiniband that describe the tree under /sys/class/infiniband, the IPoIB driver and the userspace MAD access driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.22, 2004-12-27 22:24:37-08:00, roland@topspin.com [INFINIBAND]: Document InfiniBand ioctl use Add the 0x1b ioctl magic number used by ib_umad module to Documentation/ioctl-number.txt. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.21, 2004-12-27 22:23:44-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB userspace MAD support Add a driver that provides a character special device for each InfiniBand port. This device allows userspace to send and receive MADs via write() and read() (with some control operations implemented as ioctls). All operations are 32/64 clean and have been tested with 32-bit userspace running on a ppc64 kernel. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.20, 2004-12-27 22:22:21-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB multicast and partition code Add functions for handling IPoIB multicast and multiple partitions. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.19, 2004-12-27 22:21:15-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver Add a driver that implements the (IPoIB) IP-over-InfiniBand protocol. This is a network device driver of type ARPHRD_INFINIBAND (and addr_len INFINIBAND_ALEN bytes). The ARP/ND implementation for this driver is not completely straightforward, because InfiniBand requires an additional path lookup be performed (through an IB-specific mechanism) after a remote hardware address has been resolved. We are very open to suggestions of a better way to handle this than the current implementation. Although IB has a special multicast group join mode intended to support IP multicast routing (non member join), no means to identify different multicast styles has yet been determined, so all joins by the driver are currently full member joins. We are looking for guidance in how to solve this. The IPoIB protocol/encapsulation is described in the Internet-Drafts http://www.ietf.org/internet-drafts/draft-ietf-ipoib-architecture-04.txt http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.18, 2004-12-27 22:19:47-08:00, roland@topspin.com [INFINIBAND]: IPoIB IPv6 support Add ipv6_ib_mc_map() to convert IPv6 multicast addresses to IPoIB hardware addresses, and add support for autoconfiguration for devices with type ARPHRD_INFINIBAND. The mapping for multicast addresses is described in http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Nitin Hande Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.17, 2004-12-27 22:18:50-08:00, roland@topspin.com [INFINIBAND]: IPoIB IPv4 multicast Add ip_ib_mc_map() to convert IPv4 multicast addresses to IPoIB hardware addresses. Also add so INFINIBAND_ALEN has a home. The mapping for multicast addresses is described in http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.16, 2004-12-27 22:17:23-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (MAD) Add MAD (management datagram) code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.15, 2004-12-27 22:16:33-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) Add code for remaining InfiniBand objects (address vectors, multicast groups, memory regions and protection domains) Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.14, 2004-12-27 22:15:37-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (QP/CQ) Add CQ (completion queue) and QP (queue pair) code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.13, 2004-12-27 22:14:43-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (initialization) Add device initializaton code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.12, 2004-12-27 22:13:44-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (EQ) Add event queue code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.11, 2004-12-27 22:12:48-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (FW commands) Add firmware command processing code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.10, 2004-12-27 22:11:50-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (midlayer interface) Add midlayer interface code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.9, 2004-12-27 22:10:49-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver Add a low-level driver for Mellanox MT23108 and MT25208 HCAs. The MT25208 is only fully supported when in MT23108 compatibility mode; only the very beginnings of support for native MT25208 mode (required for HCAs without local memory) is present. (As a side note, I believe this driver would be the first in-tree consumer of the PCI MSI/MSI-X API) Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.8, 2004-12-27 22:09:20-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand SA (Subnet Administration) query support Add support for sending queries to the SA (Subnet Administration). In particular the PathRecord and MCMember (multicast group member) used by the IP-over-InfiniBand driver are implemented. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.7, 2004-12-27 22:07:43-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD SMI support Add MAD layer SMI (Subnet Management Interface) code. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.6, 2004-12-27 22:06:34-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support (private headers) Add MAD layer private implementation headers. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.5, 2004-12-27 22:05:25-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support Add support for handling InfiniBand MADs (management datagrams), including sending and receiving MADs as well as passing MADs on to local agents. This is required for an SM (subnet manager) to discover and configure the host, since the SM's query MADs must be passed to the local SMA (subnet management agent). In addition, this support is used by upper level protocols to send queries to and receive responses from the SM. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.4, 2004-12-27 22:03:33-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support (public headers) Add public headers for handling InfiniBand MADs (management datagrams), including sending and receiving MADs as well as passing MADs on to local agents. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.3, 2004-12-27 22:02:08-08:00, roland@topspin.com [INFINIBAND]: Hook up drivers/infiniband Add the appropriate lines to drivers/Kconfig and drivers/Makefile so that the kernel configuration and build systems know about drivers/infiniband. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.2, 2004-12-27 21:58:49-08:00, roland@topspin.com [INFINIBAND]: Add core InfiniBand support Add implementation of core InfiniBand support. This can be thought of as a midlayer that provides an abstraction between low-level hardware drivers and upper level protocols (such as IP-over-InfiniBand). Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.450.1, 2004-12-27 21:57:29-08:00, roland@topspin.com [INFINIBAND]: Add core InfiniBand support (public headers) Add public headers for core InfiniBand support. This can be thought of as a midlayer that provides an abstraction between low-level hardware drivers and upper level protocols (such as IP-over-InfiniBand). Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.448.2, 2004-12-27 21:30:55-08:00, davem@nuts.davemloft.net Merge bk://kernel.bkbits.net/acme/connection_sock-2.6 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.1938.449.34, 2004-12-27 21:26:00-08:00, tgraf@suug.ch [PKT_SCHED]: dsmark should ignore ECN bits Taking ECN bits into account doesn't make sense. The two bits were still unused at the time the code was written so this brings back the old behaviour. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller ChangeSet@1.1938.449.33, 2004-12-27 21:25:02-08:00, oleg@tv-sign.ru [NET]: Use prefetching in skb_queue_walk(). This patch changes skb_queue_walk() in the same manner as in list_for_each() prefetch optimization, see http://marc.theaimsgroup.com/?l=linux-kernel&m=110399132418587 Signed-off-by: Oleg Nesterov Signed-off-by: David S. Miller ChangeSet@1.1938.449.32, 2004-12-27 21:12:16-08:00, davem@nuts.davemloft.net [LLC]: llc_sap_list_lock really does need to be exported. For the case where CONFIG_LLC2 is modular and thus llc_proc.c needs to get at this symbol. Signed-off-by: David S. Miller ChangeSet@1.1938.449.31, 2004-12-27 21:08:40-08:00, davem@nuts.davemloft.net [SPARC64]: Fix typo in previous change, s/IS_SOCK/S_ISSOCK/ Signed-off-by: David S. Miller ChangeSet@1.1938.449.30, 2004-12-27 21:04:56-08:00, davem@nuts.davemloft.net [IRDA]: More staticization becomes possible in ircomm_ttp.c Signed-off-by: David S. Miller ChangeSet@1.1938.449.29, 2004-12-27 20:55:17-08:00, matthew@wil.cx [SPARC64]: Stop referencing i_sock directly. Use S_ISSOCK() instead. Signed-off-by: Matthew Wilcox Signed-off-by: David S. Miller ChangeSet@1.1938.449.28, 2004-12-27 20:54:03-08:00, juhl-lkml@dif.dk [IRDA]: Kill useless parens from return statements in irnet.h Signed-off-by: Jesper Juhl Signed-off-by: David S. Miller ChangeSet@1.1938.449.27, 2004-12-27 20:52:34-08:00, bunk@stusta.de [IPVS]: Remove subscribers-only mailing list from MAINTAINERS. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.26, 2004-12-27 20:51:40-08:00, bunk@stusta.de [PKT_SCHED]: Staticize and other cleanups. The patch below contans the following possible cleanups: - make some needlessly global code static - sch_htb.c: #undef HTB_DEBUG Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.25, 2004-12-27 20:50:34-08:00, bunk@stusta.de [RXRPC]: Staticize and remove unused globals and exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global function: - transport.c: rxrpc_clear_transport - remove the following unneeded EXPORT_SYMBOL: - rxrpc_syms.c: rxrpc_call_flush Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.24, 2004-12-27 20:49:18-08:00, bunk@stusta.de [ROSE]: Staticize and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.23, 2004-12-27 20:48:19-08:00, bunk@stusta.de [NETROM]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.22, 2004-12-27 20:46:42-08:00, bunk@stusta.de [LLC]: Staticize and remove unnecessary functions and exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - lc_c_ac.c: llc_conn_ac_report_status - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag - lc_c_ac.c: llc_conn_ac_set_f_flag_p - llc_c_ev.c: llc_conn_ev_conn_resp - llc_c_ev.c: llc_conn_ev_rst_resp - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy - llc_c_ev.c: llc_conn_ev_any_tmr_exp - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received - llc_if.c: llc_build_and_send_reset_pkt - llc_pdu.c: llc_pdu_decode_cr_bit - remove the following unneeded EXPORT_SYMBOL: - llc_core.c: llc_sap_list_lock Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.21, 2004-12-27 20:45:07-08:00, bunk@stusta.de [IRDA]: Staticize and remove unnecessary exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - discovery.c: irlmp_find_device - ircomm/ircomm_param.c: ircomm_param_flush - irda_device.c: irda_device_set_dtr_rts - irda_device.c: irda_device_change_speed - irda_device.c: irda_device_set_mode - iriap.c: iriap_getinfobasedetails_request - iriap.c: iriap_getinfobasedetails_confirm - iriap.c: iriap_getobjects_request - iriap.c: iriap_getobjects_confirm - iriap.c: iriap_getvalue - irlan_client.c: irlan_client_reconnect_data_channel - irlap_frame.c: irlap_send_frmr_frame - irlmp.c: irlmp_status_request - remove the follwong unused global variables: - irnet/irnet_ppp.c: irnet_ppp_ops - irsysctl.c: sysctl_compression - qos.c: #ifndef CONFIG_IRDA_DYNAMIC_WINDOW irlap_requested_line_capacity Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.20, 2004-12-27 20:34:31-08:00, kaber@trash.net [IPV4]: Let people know where to obtain the ss tool from. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller ChangeSet@1.1938.449.19, 2004-12-27 19:50:18-08:00, bunk@stusta.de [IPV4]: Staticize and remove unneeded exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - fib_rules.c: fib_rules_map_destination - xfrm4_policy.: xfrm4_fini - remove the following unneeded EXPORT_SYMBOL: - tcp_timer.c: tcp_timer_bug_msg Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.18, 2004-12-27 18:54:21-08:00, bunk@stusta.de [IPX]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.17, 2004-12-27 18:49:21-08:00, bunk@stusta.de [IPVS]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.16, 2004-12-27 18:41:46-08:00, bunk@stusta.de [AF_PACKET]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.15, 2004-12-27 18:40:25-08:00, bunk@stusta.de [NETLINK]: Staticize and remove unused functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.14, 2004-12-27 18:38:23-08:00, bunk@stusta.de [AF_NET]: Mark pfkey_table static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.13, 2004-12-27 18:36:20-08:00, bunk@stusta.de [NET]: Mark eth_header_parse static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.12, 2004-12-27 18:33:52-08:00, bunk@stusta.de [XFRM]: Staticize, and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.11, 2004-12-27 18:32:23-08:00, bunk@stusta.de [X25]: Staticize, and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.10, 2004-12-27 18:30:49-08:00, bunk@stusta.de [AF_UNIX]: Mark needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.9, 2004-12-27 18:29:36-08:00, bunk@stusta.de [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.8, 2004-12-27 18:25:23-08:00, bunk@stusta.de [NET]: No need to export sock_readv_writev Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.7, 2004-12-27 18:24:18-08:00, bunk@stusta.de [AX25]: Staticize functions, and remove unused global function. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.6, 2004-12-27 18:23:16-08:00, bunk@stusta.de [APPLETALK]: Make some code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.449.5, 2004-12-27 18:18:32-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/auth_gss/sunrpcgss_syms.c Signed-off-by: David S. Miller ChangeSet@1.1938.449.4, 2004-12-27 18:15:09-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/svcauth_des.c Signed-off-by: David S. Miller ChangeSet@1.1938.449.3, 2004-12-27 18:12:59-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/auth_gss/gss_pseudoflavors.c Signed-off-by: David S. Miller ChangeSet@1.1938.449.2, 2004-12-27 18:08:07-08:00, chas@cmf.nrl.navy.mil [ATM]: small atm cleanups (from Adrian Bunk ) Signed-off-by: Chas Williams Signed-off-by: David S. Miller ChangeSet@1.1938.449.1, 2004-12-27 18:06:57-08:00, tgraf@suug.ch [PKT_SCHED]: Validate policer configuration TLVs. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller ChangeSet@1.1938.448.1, 2004-12-27 23:57:10-02:00, acme@conectiva.com.br [INET] move inet_sock into inet_opt and rename it to inet_sock With this we can remove all the cut'n'pasted layouts in all inet_sock derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller ChangeSet@1.1938.447.5, 2004-12-27 15:41:28-05:00, stkn@gentoo.org [libata] add #include (fixes 2.4 alpha build) ChangeSet@1.1938.447.3, 2004-12-27 15:29:14-05:00, albertcc@tw.ibm.com [libata] verify ATAPI DMA for a given request is OK After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot work reliably with specific request buffer sizes under ATAPI DMA mode. Detailed test result: 4096, 2048, 1024, 512, 256: OK 384, 257, 255, 128, 96, 64, 32: failed (irq lost) It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. Attached please find the patch to fix the pdc2027x ATAPI DMA problem. Changes: 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " when the the command is received. 2. ATAPI DMA is off by default if the callback function is not provided by the driver If the callback function is not provided by the driver, the ATAPI DMA should be as is. The ATAPI DMA is already controlled by dev->flags. BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, not impacting libata core . Signed-off-by: Albert Lee ChangeSet@1.1938.447.2, 2004-12-27 15:24:53-05:00, albertcc@tw.ibm.com [libata] PIO error handling improvement Tested burning CD-RW with libata-dev-2.6 and cdrecord: 1. ATAPI DMA mode - tested OK 2. ATAPI PIO mode - test failed when cdrecord finishes burning and issues MODE_SELECT to the device. After checking the log, it showed that MODE_SELECT caused ata_pio_complete() to return error. However, the error is not handled by ata_pio_task(). Attached please find the patch for ata_pio_task() error handling for your review. (The patch is against the libata-dev-2.6 tree. ) Changes in the patch: 1. End the PIO task when PIO_ST_IDLE state is entered 2. End the PIO task after PIO_ST_TMOUT and PIO_ST_ERR state handled by ata_pio_error() 3. Remove the first "if" statement to handle the error condition returned from ata_pio_block(), ata_pio_complete() and ata_pio_poll(). Change #2 is not so necessary since ata_pio_error() will put the cmd to PIO_ST_IDLE state after the error condition is handled. The change just saves a function call to queue_work(). Tested OK on on my machine with pdc20275 and ASUS CD-RW drive. Signed-off-by: Albert Lee ChangeSet@1.1938.447.1, 2004-12-27 15:22:51-05:00, albertcc@tw.ibm.com [libata] use PIO mode for request sense Signed-off-by: Albert Lee ChangeSet@1.1938.446.3, 2004-12-27 15:13:29-05:00, bunk@stusta.de [PATCH] drivers/char/hw_random.c: make a variable static Signed-off-by: Jeff Garzik ChangeSet@1.1938.446.2, 2004-12-27 15:13:16-05:00, james4765@verizon.net [PATCH] hw_random: Minor cleanup to hw_random.c Clean up in drivers/char/hw_random.c: Make debug #defines a little easier to understand. Small whitespace cleanup. Change some printk()'s into pr_info()'s. Add KERN_ constant to debug printk(). Signed-off-by: James Nelson Signed-off-by: Jeff Garzik ChangeSet@1.1938.430.63, 2004-12-27 10:28:42-08:00, torvalds@ppc970.osdl.org Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.430.62, 2004-12-27 10:24:28-08:00, arjan@infradead.org [PATCH] drivers/acpi/ibm_acpi.o .init.text refers to .exit.text the ibm_acpi.c driver references acpi_ibm_exit() from it's __init function, which means the exit function isn't allowed to be __exit since __exit functions are not part of vmlinux while __init functions are. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds ChangeSet@1.1938.430.61, 2004-12-27 10:21:04-08:00, torvalds@ppc970.osdl.org Merge bk://linux-voyager.bkbits.net/mca-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.430.60, 2004-12-27 10:19:24-08:00, torvalds@ppc970.osdl.org Revert duplicate AC97 id's. They were already there, properly sorted too. ChangeSet@1.1938.389.42, 2004-12-27 10:06:23-06:00, jejb@mulgrave.(none) SCSI: fix compile warning in fc transport class CC [M] drivers/scsi/scsi_transport_fc.o drivers/scsi/scsi_transport_fc.c: In function `fc_stat_show': drivers/scsi/scsi_transport_fc.c:634: warning: long long unsigned int format, long unsigned int arg (arg 4) To us %llx on a 64 bit platform we have to cast u64 to unsigned long long. Signed-off-by: James Bottomley ChangeSet@1.1938.389.41, 2004-12-27 09:52:25-06:00, jejb@mulgrave.(none) SCSI: Add FC transport host attributes From: James.Smart@Emulex.Com This patch updates the fc_transport with attributes for local FC ports (e.g. Hosts). The port attributes are defined per HBAAPI v2.0 definitions. This patch results in the following in /sys/class: ----------------------------------------------------- [jsmart@elxware class]$ cd /sys/class [jsmart@elxware class]$ ls fc_host graphics misc pci_bus scsi_host usb_host fc_transport input net scsi_device tty vc firmware mem netlink scsi_generic usb [jsmart@elxware class]$ cd fc_host [jsmart@elxware fc_host]$ ls host4 [jsmart@elxware fc_host]$ cd host4 [jsmart@elxware host4]$ ls device host_port_maxframe_size host_port_supported_speeds host_fabric_name host_port_name host_port_symbolic_name host_link_down_tmo host_port_speed host_port_type host_node_name host_port_state host_tgtid_bind_type host_port_active_fc4s host_port_supported_classes statistics host_port_id host_port_supported_fc4s [jsmart@elxware host4]$ ls -ld * lrwxrwxrwx 1 root root 0 Oct 13 18:24 device -> ../../../devices/platform/host4 -r--r--r-- 1 root root 4096 Oct 13 18:24 host_fabric_name -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_link_down_tmo -r--r--r-- 1 root root 4096 Oct 13 18:24 host_node_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_active_fc4s -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_id -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_maxframe_size -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_speed -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_state -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_classes -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_fc4s -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_speeds -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_symbolic_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_type -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_tgtid_bind_type drwxr-xr-x 2 root root 0 Oct 13 18:24 statistics Using the following script (/tmp/show_attributes): #!/bin/sh FILES=`ls *` for file in $FILES; do if [ -f $file ] ; then echo "$file : " `cat $file` fi done Here's a sample of querying the attributes: [jsmart@elxware /]$ cd /sys/class/fc_host/host4 [jsmart@elxware host4]$ /tmp/show_attributes host_fabric_name : 0x33334444ffeeddcc host_link_down_tmo : 30 host_node_name : 0x78563412aabbccdd host_port_active_fc4s : hex: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f host_port_id : 0x789abc host_port_maxframe_size : 2511 bytes host_port_name : 0xefcdab9011223344 host_port_speed : 2 Gbit host_port_state : Online host_port_supported_classes : Class 2, Class 3 host_port_supported_fc4s : hex: 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f host_port_supported_speeds : 2 Gbit, 4 Gbit, 10 Gbit host_port_symbolic_name : LP9052 Dual Port Adapter host_port_type : NPort (fabric via point-to-point) host_tgtid_bind_type : wwpn (World Wide Port Name) Signed-off-by: James Bottomley ChangeSet@1.1938.389.40, 2004-12-27 09:13:20-06:00, sleddog@us.ibm.com [PATCH] ibmvscsi: replace schedule_timeout() with msleep() Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Originally submitted to linux-scsi by the janitors, and resubmitted by boutcher (after testing :-) Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Dave Boutcher Signed-off-by: James Bottomley ChangeSet@1.1938.445.3, 2004-12-27 10:58:39+00:00, dvrabel@com.rmk.(none) [ARM PATCH] 2323/1: Expand IXP4XX_WATCHDOG config help text Patch from David Vrabel Expand the IXP4XX_WATCHDOG (IXP4xx internal watchdog) config option help text with a note about its ineffectiveness. Signed-off-by: David Vrabel Signed-off-by: Russell King ChangeSet@1.1938.445.2, 2004-12-27 10:53:36+00:00, catalin.marinas@com.rmk.(none) [ARM PATCH] 2322/1: Enable ARM922T configuration option for Integrator Patch from Catalin Marinas This patch enables the ARM922T configuration option for the Integrator platforms (there is an Excalibur core module available). Signed-off-by: Catalin Marinas Signed-off-by: Russell King ChangeSet@1.1938.445.1, 2004-12-27 10:48:52+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2264/1: Move platform-specific code out of entry-armv.S Patch from Deepak Saxena This patch borrows from the uclinux source where they have moved the per-platform code for get_irqnr_and_base, disable_fiq, and irq_prio_table out of entry-armv.S. However, instead of putting the macros in arch/arm/mach-$(MACHINE)/entry-header.S, we just have it in the machine's incdir. This means we don't need the extra complexity of creating symlink at build time. The patch also removes the irq_prio_table as a requirement for all machines and makes it specific to IOC/IOMD machines. This patch drastically shrinks entry-armv.S and allows us to delete and add machines without having to touch generic code (there were two dead machines laying around in entry-armv.S). Tested on IXP4xx and test-built for just about every defconfig. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.430.59, 2004-12-27 04:31:00-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/janitor into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.430.58, 2004-12-27 04:29:21-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/misc into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.430.56, 2004-12-27 04:26:39-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/viro-eth1 into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1966, 2004-12-27 10:21:15+01:00, vojtech@suse.cz Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input ChangeSet@1.1938.430.52, 2004-12-26 22:20:57-08:00, alan@lxorguk.ukuu.org.uk [PATCH] Early ALI watchdog support Originally submitted by Mike Waychison in August but apparently lost. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.430.51, 2004-12-26 22:20:44-08:00, alan@lxorguk.ukuu.org.uk [PATCH] quiet scsi ioctls warnings SCSI ioctls can ask for a lot of memory and fail. We don't need to vomit in the log file for this case. Again taken from the Red Hat minor patches applied for FC3. Original-patch: Arjan van de Ven Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.430.50, 2004-12-26 22:20:32-08:00, alan@lxorguk.ukuu.org.uk [PATCH] Paul Laufer CREDITS address update Paul Laufer informed the list that he had changed address and his change of address had been ignored so CREDITS was still wrong although other files had been updated. Fix this. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.430.49, 2004-12-26 22:20:19-08:00, alan@lxorguk.ukuu.org.uk [PATCH] make microcode text less confusing Red Hat got some confused customers due to this message. The confused user case is when they update the BIOS and all of a sudden we have "no suitable data" yet we did before. We (Arjan van de Ven) thus changed it to "No new microcode" which is much much clearer. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.430.48, 2004-12-26 22:20:06-08:00, alan@lxorguk.ukuu.org.uk [PATCH] i810 more AC97 tunings Add some more funky AC97 knowledge to the intel8x0 driver. These come from Red Hat and its partners and are included in our shipping code. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.430.47, 2004-12-26 22:15:27-08:00, torvalds@ppc970.osdl.org Merge bk://linux-dj.bkbits.net/agpgart into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.444.2, 2004-12-26 22:14:57-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/s2io into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.444.1, 2004-12-26 22:13:59-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/r8169 into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.430.45, 2004-12-25 13:54:06-08:00, davem@nuts.davemloft.net Merge nuts.davemloft.net:/disk1/BK/net-2.6.11 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.1938.430.44, 2004-12-24 13:26:21-08:00, torvalds@ppc970.osdl.org Linux 2.6.10 Merry Christmas everyone. Ho ho ho! TAG: v2.6.10