.52 to v2.5.53
============================================
<gibbs@overdrive.btc.adaptec.com>
Update aic7xxx driver to 6.2.10. Add aic79xx U320 SCSI driver version
1.1.1
<gibbs@overdrive.btc.adaptec.com>
Final 1.1.1 aic79xx driver updates
<gibbs@overdrive.btc.adaptec.com>
Bring in some deltas that were missed in the aic79xx 1.1.1 and aic7xxx
6.2.10 updates. The aic79xx driver now also supports mid-layer induced
ordered tag operations.
<davidm@tiger.hpl.hp.com>
ia64: Make mremap() work properly when returning "negative" addresses.
Based on patch by Matt Chapman.
<davidm@tiger.hpl.hp.com>
ia64: Define new "arch_switch" macros so that the tasklist_lock can
be released during the (low-level) context-switch. Patch by
Erich Focht.
<davidm@tiger.hpl.hp.com>
ia64: Fix efi_memmap_walk() to work with more complicated memory maps.
Fix ACPI_ACQUIRE_GLOBAL_LOCK and ACPI_RELEASE_GLOBAL_LOCK.
Both bugs reported by Charles Sluder.
<tony.luck@intel.com>
[PATCH] ia64: mca logging bug fixes
I've attached a version of Jenna Hall's mca logging fixes,
updated for 2.5.45. Jenna listed the benefits as:
1. Simplifies and fixes date reporting during MCA log printing
(patch from Matthew Wilcox)
2. Fixes nested MCA handling
3. Fixes clearing of fatal error records from SAL logs upon reboot
4. Fixes returning the PAL min-state address upon return from OS_MCA
Item #1 was already in 2.5.45.
In addition to Jenna's changes, I deleted some unused debug code
(and associated data min_state_labels[]), and dropped the
#warning about save_and_cli() that you had added.
<ahaas@airmail.net>
[PATCH] ia64: C99 designated initializer for arch/ia64/sn/
Here's a trivial patch for one file deep in the ia64 tree. The patch is
against 2.5.47.
<mikal@stillhq.com>
[PATCH] ia64: [Trivial Patch] scsi_register-001-002
Via Rusty Russell: Updated patches to scsi_register patches against the 2.5.45 tree.
<davidm@tiger.hpl.hp.com>
ia64: Rename __flush_tlb_all() to local_flush_tlb_all().
<davidm@tiger.hpl.hp.com>
ia64: Make flush_tlb_mm() work for multi-threaded address-spaces on SMP machines.
<arun.sharma@intel.com>
[PATCH] ia64: ia32 emulation fixes for 2.5.45
I found that Linux 2.5.45 had some problems passing arguments to ia32
programs running on ia64 in emulation mode.
The attached patch fixes the problems.
<davidm@tiger.hpl.hp.com>
ia64: Make it easier to set a breakpoint in the Ski simulator right before
starting the kernel (based on patch by Peter Chubb).
<sridhar@dyn9-47-18-140.beaverton.ibm.com>
[SCTP] MSG_PEEK support for recvmsg().
<sridhar@x1-6-00-10-a4-8b-06-f6.attbi.com>
[SCTP] Fix for bad dereference in sctp_cmd_assoc_failed().
<jgrimm@touki.austin.ibm.com>
[SCTP] Last of the v4/v6 partioning (for now)
Mostly code on the bind path, splitting out to pf and af family
specific functions. Minor code cleanups/fixes mixed in.
<perex@suse.cz>
ALSA update
- CS46xx
- SPDIF channel status implementation
- mixer name cleanups
- Trident
- added S/PDIF device for SiS 7018
- CS4281
- fixed broken loops in suspend/resume routines
- ENS1370
- fixed driver names and rights for IEC958 Playback Mask
- ICE1712
- added possibility to lock the rate (pro-pcm device)
- usbaudio
- fixed rawmidi
<sridhar@dyn9-47-18-86.beaverton.ibm.com>
[SCTP] SCTP_INITMSG socket option.
<davidm@tiger.hpl.hp.com>
ia64: Patch by Venkatesh Pallipadi to fix IA-32 signal handling to restore
instruction and data pointers.
<sridhar@dyn9-47-18-86.beaverton.ibm.com>
[SCTP] Fix for memcpy() in sctp_sendmsg() that can copy too much.
<davidm@tiger.hpl.hp.com>
ia64: Delete arch/ia64/sn/configs/ files on request by John Hesterberg.
<davidm@tiger.hpl.hp.com>
ia64: For ia32 emulation, do not turn on O_LARGEFILE automatically
on open(). Reported by Andi Kleen.
<venkatesh.pallipadi@intel.com>
[PATCH] ia64: IA32 ptrace bug-fixes
The changes done in the patch include:
1) Support for xmm registers.
At present xmm registers are not saved/restored during
ptrace and gdb wont show them. Patch adds new ptrace
options (IA32_PTRACE_GETFPXREGS and IA32_PTRACE_SETFPXREGS,
used by gdb to get/set fp+xmm state).
2) Bug fix in getting 'tag' field of fpstate
(fsr>>16 in place of fsr>>32)
3) Bug fix in calculating fp TOS
(it is a 3 bit field in fsr. Using (fsr>>11) & 7 in place
of (fsr>>11) & 3)
Also, I had to add new structures in ia32.h, corresponding to
the way gdb is expecting the data. Gdb uses structures
defined in sys/user.h
<davidm@tiger.hpl.hp.com>
ia64: Decode feature bits added by SDM2.1 (spontaneous deferral &
16-byte atomic ops).
<perex@suse.cz>
ALSA update
- Added hotplug support - disconnection of devices
- usbaudio
- added hotplug support
- added support for resolution to ALSA mixer
- ALI5451
- added initialization for ALi 7101
- via82xx
- added rate initialization for all AC97 streams
- RME HDSP
- fixed multiface initialization
- ICE1712
- spin-lock cleanups
<davidm@tiger.hpl.hp.com>
ia64: Sync up with 2.5.50 (Ski simulator has been tested only so far).
<sridhar@dyn9-47-18-86.beaverton.ibm.com>
[SCTP] sctp_v6_xmit() cleanup.
<perex@suse.cz>
ALSA update
- control API - replace global control lock with semaphore
- ac97 - added VT1616 support
- add code for PC98 architecture
- ENS1370/1371 - added gameport code
- HDSP - fixed oops when device is not detected
- replace __SMP__ with CONFIG_SMP
<perex@suse.cz>
ALSA update
- ALS4000 - improved mixer support
- ICE1712 - added ICE1724 (Envy24HT code)
- fixed Delta410 support
- usbaudio - added quirks for more Yamaha devices
<sridhar@dyn9-47-18-86.beaverton.ibm.com>
[SCTP] Stale cookie support. (ardelle.fan)
<sridhar@dyn9-47-18-86.beaverton.ibm.com>
[SCTP] Register a notifier for v6 address additions/deletions.
<eranian@hpl.hp.com>
[PATCH] Please apply this cleanup patch to your 2.5.50. The patch is made
using 2.4.45 but the file has not changed since. It cleans up the
initialization and some text alignment problems. Initial patch by Chris Wilson.
<efocht@ess.nec.de>
[PATCH] ia64: Configurable NUMA node memory size
following the requests from Xavier and Jesse I introduced a
configuration parameter for the maximum memory per NUMA node. The
DIG_BANKSHIFT is set accordingly, the current choices are:
512MB/bank: 16GB/node,
2048MB/bank: 64GB/node,
8192MB/bank: 256GB/node.
The patch is for 2.5.50+ia64. Please consider applying it.
<zaitcev@redhat.com>
[SPARC]: missing free_irq in sunsu driver.
<davidm@tiger.hpl.hp.com>
ia64: Manual merge of Erich's NUMA node-size changes.
<jbarnes@sgi.com>
[PATCH] ia64: SN update
David, here's a patch to update SN support in the ia64 tree. I had to
make a few mods outside arch/ia64/sn and include/asm-ia64/sn to get
CONFIG_IA64_SGI_SN2 to compile.
<davem@nuts.ninka.net>
[SCTP]: Add MAINTAINERS entry.
<davidm@tiger.hpl.hp.com>
ia64: Fix unaligned memory access handler.
<sam@ravnborg.org>
[PATCH] ia64: arch makefiles update
Second try ready.
Other architectures does not practice this, but I added a rule to
copy vmlinux.gz + bootloader to root of kernel-tree.
bootloader is build when needed, therefore the boot: target has not been
re-introduced.
Complete summary of changes:
o Copy vmlinux-gz + bootloader to root of kernel-tree
o Fix make
<davidm@tiger.hpl.hp.com>
ia64: Manual Makefile cleanup merge.
<davidm@tiger.hpl.hp.com>
ia64: Merge with 2.5.50.
<davidm@tiger.hpl.hp.com>
ia64: Avoid holding tasklist_lock across routines that do IPIs (such as flush_tlb_all()).
<sfr@canb.auug.org.au>
[PATCH] ia64: arch-specific part of 1st compat clean up
Just in case you need it, here it is against recent Linus' BK tree
that has the generic part applied.
<davej@codemonkey.org.uk>
Fix XFree86 brain damage.
we can't go to 1.0 until they fix some real stupidity in XFree86.
It's only by chance we can bump past 0.99 at all due to some boolean logic error.
<ganadist@nakyup.mizi.com>
[AGP] kconfig tweaks & missing exports.
<davej@codemonkey.org.uk>
don't allow to be opened twice.
This allows us to early_init using a direct agp_init() call for the i810fb.
<gibbs@overdrive.btc.adaptec.com>
Update to aic7xxx 6.2.22 and aic79xx 1.3.0_ALPHA2
<gibbs@overdrive.btc.adaptec.com>
Remove generated file.
<bjorn_helgaas@hp.com>
[PATCH] ia64: Fix typo in unaligned memory access handler (no functional change).
Fix typo (no functional change).
<davej@codemonkey.org.uk>
oops. missed a part of the double init patch
<davidm@tiger.hpl.hp.com>
First part of 2.5.51 syncup.
<gibbs@overdrive.btc.adaptec.com>
Complete aic7xxx 6.2.22 and aic79xx 1.3.0_ALPHA2 update.
<davidm@tiger.hpl.hp.com>
New file asm-ia64/intrinsics.h.
<sridhar@dyn9-47-18-140.beaverton.ibm.com>
[SCTP] Fixes for gcc 3.2 compiler issues and warnings.
<sridhar@dyn9-47-18-140.beaverton.ibm.com>
[SCTP] Move the registration of v6 address event notifier to ipv6.c.
<gibbs@overdrive.btc.adaptec.com>
Enable highmem_io.
<Kai.Makisara@kolumbus.fi>
[PATCH] SCSI tape driver fix for 2.5.51
The SCSI tape driver in 2.5.51 does not find any devices. The
following patch fixes this (and adds a missing unlocking call).
Kai
<davem@nuts.ninka.net>
[PROMCON]: Fix type in vc_resize call.
<rml@tech9.net>
missing typecast
<perex@suse.cz>
ALSA update
- CS46xx
- volume bug fixes and phase reversal fix
- AC3 stuff...
- SPDIF input fix
- init.c
- used workqueue for the disconnection job
- CMIPCI
- S/PDIF output / PLL updates
- ICE1712
- fixed reversed volume for AK4524 and AK4528 codecs
- added support for Hoontech STA DSP24 Media 7.1
- USB audio
- various mixer fixes
- quirks for Edirol PCR-30/50 keyboards and Midiman hardware
<jejb@mulgrave.(none)>
Fix the max_sectors warning afflicting some host adapter drivers
Also merge in missing printk \n's noticed by Robert Love
<davej@codemonkey.org.uk>
don't allow backend to unload if in use by a chipset driver.
<perex@suse.cz>
HP100 network driver - Pavel Machek <pavel@suse.cz>
- TRUE/FALSE removal
- detection of Coaxial wire
<perex@suse.cz>
ALSA update
- fixed compilation problems for rawmidi, sb16, ac97_codec, ens1370
- ES1968 - added use_pm parameter
- USB audio
- complete callback follows 2.5
- fixed support for FU and PU controls (mixer)
- updated SB Extigy comments
<davidm@napali.hpl.hp.com>
AGPGART fixes for HP ZX1 and Intel I460
<wrlk@riede.org>
OSST tape driver fix for 2.5.51
The patch to osst.c below is needed to fix an oops and at the same time
brings in some bug fixes discovered in the 2.4 version.
<arun.sharma@intel.com>
[PATCH] ia64: ia32 emulation layer bug fix
sys32_mprotect code isn't dropping ia32_mmap_sem before returning. This
affects both 2.4 and 2.5.
<gibbs@overdrive.btc.adaptec.com>
o Kill host template files.
o Move readme files into the Documentation SCSI directory
o Enable highmem_io
o Split out Kconfig files for aic7xxx and aic79xx
Host template and large disk changes provided or inspired by:
Christoph Hellwig <hch@sgi.com>
<davej@codemonkey.org.uk>
[AGP] small c99/inlining cleanups
<davej@codemonkey.org.uk>
[AGP] Remove unused prototypes
<davej@codemonkey.org.uk>
[AGP] Add AGP 3.0 support and I7505 chipset driver.
<davej@codemonkey.org.uk>
[AGP] fix bogus casts.
<gibbs@overdrive.btc.adaptec.com>
Complete the upgrade to aic7xxx 6.2.23 and aic79xx 1.3.0_ALPHA3.
<davidm@tiger.hpl.hp.com>
ia64: efivars fix by Matt Domsch and Peter Chubb.
<rth@are.twiddle.net>
[ALPHA] Change EH mechanism to be pc-relative instead of gp-relative.
This eliminates one variable and simplfies the code when trying to
resolve the fault.
<ink@jurassic.park.msu.ru>
[PATCH] typos in asm-alpha/dma.h
This fixes Alcor and Sable build.
Ivan.
<akpm@digeo.com>
[PATCH] Fix filesystems that cannot do mmap writeback
The writepage-removal patch broke filesystems which do not want to
support writeable mappings.
Fix that up by making those filesystems point their mmap vector at the
new generic_file_readonly_mmap().
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: move ioctl numbers to a sane place.
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: proper error checking
An error value was not being checked correctly in open_dev().
[Kevin Corry]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: fix error number
Return -ENOTBLK if lookup_device() finds the inode, but it
is not a block device. [Cristoph Hellwig]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: REMOVE_ALL parameter checking
No need to validate the parameters if we are doing a
REMOVE_ALL command.
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: fix check_device_area compare
check_device_area was comparing the bytes with sectors.
[Stefan Lauterbach]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: check chunksize before allocation
minor change for dm-stripe.c. Tests for correct chunksize before it allocates
the stripe context. [Heinz Mauelshagen]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: stripe constructor validity check
There's a bug in the dm-stripe.c constructor failing top check if enough
destinations are handed in. [Heinz Mauelshagen]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: per-device mempools
Give each device its own io mempool to avoid a potential
deadlock with stacked devices. [HM + EJT]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: check correct flag in queue_io()
queue_io() was checking the DMF_SUSPENDED flag rather than the new
DMF_BLOCK_IO flag. This meant suspend could deadlock under load.
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: dm_suspend locking fix
dm_suspend(): Stop holding the read lock around the while loop that
waits for pending io to complete.
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: flush pending IO before dm_suspend
Add a blk_run_queues() call to encourage pending io to flush
when we're doing a dm_suspend().
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: avoid unnecessary locking
dec_pending(): only bother spin locking if io->error is going to be
updated. [Kevin Corry]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: fix md->pending count
md->pending was being incremented for each clone rather than just
once. [Kevin Corry]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: fix bio duplication
Some fields in the duplicated bio weren't being set up properly in
__split_page(). [Kevin Corry]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: remove highmem paranoia
Remove some paranoia in highmem.c
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: remove verbose debug message
Remove verbose debug message 'Splitting page'.
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: fix/simplify endio
o If there's an error you still need to call bio_endio with bio->bi_size
as the 'done' param.
o Simplify clone_endio.
[Kevin Corry]
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: bio split fix.
<joe@fib011235813.fsnet.co.uk>
[PATCH] dm: fix sector calculation
The linear target was getting the start sector wrong when doing a
dm_get_device(). [Kevin Corry]
<perex@suse.cz>
ALSA update
- fixes in ALI5451 initalization
- added snd_pci_alloc_page() workaround
- FM801 - fixed PCI device identification
- USB mixer - fixed min values for some types
<david-b@pacbell.net>
[PATCH] ehci-hcd (1/2): portability (2.4), tasklet,
This should be innocuous; I expect most folk won't notice anything
better (or worse) from this patch unless they're using Intel EHCI.
removing tasklet
- parts of davem's patch (passing pt_regs down)
- remove 'max_completions'
- update cleanup after hc died
- fix an urb unlink oops (null ptr) that happens more often this way
talking to hardware
- fixes for some short read issues (may still be others)
* use qtd->hw_alt_next to stop qh processing after short reads
* detect/report short reads differently
- longer reset timeout (it was excessively short, broke Intel)
other
- simpler diagnostics portability to 2.4: wrap dev_err() etc
- urb unlink wait and non-wait unlink codepaths share most code
- don't try ehci_stop() in interrupt context (bug from hcd layer)
- minor stuff, including
* some "after hc died" paths were wrong
* verbose debug messages compile again
* don't break error irq count
<david-b@pacbell.net>
[PATCH] ehci-hcd (2/2): rest of tasklet remove
This is the rest of the work to remove the tasklet: the non-syntax
portions which affect work scheduling. It's not quite davem's version;
it's got locking updates, which among other things prevent a hang when
the timer kicks in.
This scheduling change is split out from the other parts in case more
problems like that unlink race (fixed in my previous patch) show up.
It doesn't fix (or help fix) any ehci bugs, but simpler code is fine.
<david-b@pacbell.net>
[PATCH] usbnet: zaurus, oops, etc
This patch:
- Removes Pavel's Zaurus-private crc32 code; the base patch
was from Pavel.
- Addresses two issues Toby Milne reported against the Zaurus:
(a) if skbs had extra framing added (z, net1080, gl620a),
the original size (now too small) was used on tx;
(b) added FLAG_FRAMING_Z so rx packets had enough space
- Removes an oops from the driver model conversion (saved
the wrong pointer). Disconnecting wasn't healthy.
- Forward-ports some ethtool support from the 2.4 version:
PDAs are always connected, so report them that way.
- Stubs in some PXA-250 support for non-Zaurus PDAs.
This is currently commented out; so far those PDAs
only run Linux for bleeding edge developers.
- Minor cleanups.
<david-b@pacbell.net>
[PATCH] ehci misc patches
small fixes flushed by the hunt for bigger game:
- terminate td lists with dummy, not list end marker
- use alt_next only for real short control reads
- un-halt async qhs before scheduling
- deletes unused debug code, pointless assignments
- surely nobody ever sees that memleak
- terminate two related "while" loops the same way
<spse@secret.org.uk>
[PATCH] 2.5.51 More typedef removal from usbvideo
This patch against 2.5.51 removes the remaining typedefs from usbvideo
typedef enum { .. } ScanState_t -> enum ScanState
typedef enum { .. } ParseState_t -> enum ParseState
typedef enum { .. } FrameState_t -> enum FrameState
typedef enum { .. } Deinterlace_t -> enum Deinterlace
typedef struct { .. } usbvideo_t -> struct usbvideo
<nemosoft@smcc.demon.nl>
[PATCH] USB: PWC 8.10 for 2.5.51
Well, two patches in one... These patches will bring the PWC (Philips
Webcam) driver in both 2.4.20 and 2.5.51 up to version 8.10. Functionally,
the two branches are the same (about 70% of the code is shared), but the
differences in kernel architecture are too large to handle with a few
#ifdefs.
This patch fixes the following (this are only the differences between 8.9
and 8.10):
* Fixed ID for QuickCam Notebook pro
* Added GREALSIZE ioctl() call
* Fixed bug in case PWCX was not loaded and invalid size was set
<mdharm-usb@one-eyed-alien.net>
[PATCH] usb-storage: fixup interpret_urb_result()
This patch fixes interpret_urb_result in two major ways:
(1) Uses a switch() instead of nested if() statements
(2) Handle -EREMOTEIO to indicate a short scatter-gather transfer
<agrover@groveronline.com>
ACPI: Fix oops on module insert/remove (Matthew Tippett)
<davej@codemonkey.org.uk>
[AGP] Hopefully get the KT400 working in AGP3.0 mode.
<sridhar@dyn9-47-18-86.beaverton.ibm.com>
[SCTP] Window update SACK support.
<oliver@oenone.homelinux.org>
[PATCH] USB: speedtouch driver memory allocation deadlock fix
<davidm@tiger.hpl.hp.com>
ia64: More 2.5.51/2.5.52 sync up.
<greg@kroah.com>
[PATCH] USB: usbserial: Add a short_name field to work better with sysfs.
This cleans up the bus/usb-serial/drivers/ directory
<davidm@tiger.hpl.hp.com>
Add VIRTUAL_MEM_MAP config option.
<sfr@canb.auug.org.au>
[PATCH] ia64: consolidate sys32_times
<davidm@tiger.hpl.hp.com>
ia64: consolidate sys32_new[lf]stat. Patch by Stephen Rothwell.
<torvalds@home.transmeta.com>
Add "sysenter" support on x86, and a "vsyscall" page.
Instead of doing a "int 0x80" instruction for system calls,
user space can do a "call 0xfffff000" which will do the right
thing regardless of what kind of system call support the CPU
has.
<greg@kroah.com>
[PATCH] USB: keyspan_pda: fix up the short names, as they were too big.
<perex@suse.cz>
HP100
- fixed compilation problem when debug is active
<bzzz@gerasimov.net>
remove 2TB limit in sd
modern storage boxes support >2TB arrays, but READ CAPACITY
may return 2TB only (with 512 bytes blocksize). According to
SBC, target may return 0xffffffff as device size in order to
notify initiator that device size can't fit into 32 bits and
that initiator should use Long READ CAPACITY with 64bits LBA
field. Following patch implements this logic.
<davej@codemonkey.org.uk>
indentation fixes.
<agrover@groveronline.com>
ACPI: remove non-Linux revision on files, and make types more Linux-like
<davej@codemonkey.org.uk>
[AGP] Use compatability mode of KT400 if detected
<agrover@groveronline.com>
ACPI: More cosmetic changes to make the code more Linux-like
<akpm@digeo.com>
[PATCH] fix the build for old gcc's
Older gcc's do not support that form of ellipsis in a macro.
<torvalds@home.transmeta.com>
Allow KALLSYMS even without kernel debugging
<torvalds@home.transmeta.com>
Export the 'vsyscall' address to user space with the AT_SYSINFO
elf AUX-table entry.
Move the 'vsyscall' page to 0xffffe000, leaving a hole at the top
of the address space.
<davej@codemonkey.org.uk>
[AGP] Clean up capability pointer detection.
This has to be done differently on some chipsets, so I moved it back into the
chipset drivers for now. This cleanup also fixed a few bugs, which may also make
the hammer gart start working again.
<bunk@fs.tum.de>
[PATCH] fix the compilation of eata_pio_proc.c
The change to eata_pio_proc.c contained a typo: a semicolon instead of a
comma.
<bunk@fs.tum.de>
[PATCH] MSNDCLAS_HAVE_BOOT and MSNDPIN_HAVE_BOOT shouldn't ask questions
2.5.50 included a change from -ac which changed MSNDCLAS_HAVE_BOOT and
MSNDPIN_HAVE_BOOT to asked questions. This is wrong (I know since I was
the one who wrote the patch Alan picked up...).
They shouldn't ask questions, the following patch reverts my buggy
change.
<stern@rowland.harvard.edu>
[PATCH] USB: usb-storage bugfix
Don't try to dereference the interrupt endpoint if it doesn't exist.
<oliver@neukum.name>
[PATCH] USB: clean kernel thread exit for speedtouch
this makes sure that the kernel thread is dead and gone on module unload.
- use a completion to wait for the kernel thread's death
<oliver@neukum.name>
[PATCH] USB: speedtouch: eliminate sleep_on
<oliver@neukum.name>
[PATCH] USB: fix an unlinking race in speedtouch driver
checking for -EINPROGRESS is wrong.
<oliver@neukum.name>
[PATCH] USB: proper error return for usblcd
unknown ioctls return -ENOTTY and nothing else.
<david-b@pacbell.net>
[PATCH] hub driver uses dev_info(), less log clutter
This patch converts most common hub diagnostics to use the
device model diagnostic macros ... not all, someone should
reduce the number of err() strings for "bogus hub" cases,
and ideally streamline some of the dozen or so "here's what's
special about this new hub" dbg() messages.
So the messages become more useful: they id the port (and
implicitly the device) involved, using a kernel-wide standard
convention. Size overhead is smaller too.
For folk running with USB debugging enabled, it also cuts
the useless chatter on connections by deleting the per-poll
success messages and a partial dup message when things change.
And it deletes a newish diagnostic on a (non-hub) unlink path.
It also makes Pete's new debounce message use the right
port number -- one-based, not zero-based.
My main issue with this patch is that it doesn't change
more messages, but it seems reasonable to merge it anyway.
<greg@kroah.com>
[PATCH] USB: whiteheat: fix some gcc 3.2 warning messages
<wli@holomorphy.com>
[PATCH] vm86 IRQ bugfix
vm86 does broken tasklist scanning for matching task_struct pointers,
which is oopsable. This registers a notifier for it to GC vm86 IRQ's in
release_thread() and removes the broken tasklist scanning.
This bugfix is in 2.4.x and has been in 2.5.x-dj for an extended period
of time.
<torvalds@home.transmeta.com>
Make six-argument system calls work with the fast system call
trampoline.
Here's how: we re-load %ebp (arg6) in the kernel sysenter handler
from the stack, and on system call re-play we jump back in user
space to re-initialize %ebp to point to the stack pointer before
re-doing the sysenter instruction.
<greg@kroah.com>
[PATCH] USB: warn users that they should not be using the usbdevfs name.
<david-b@pacbell.net>
[PATCH] ehci, more small fixes
- some access to urb->hcpriv and urb->status needed to be
locked using urb->lock
- paranoia: don't depend on two values being in lock-step.
<perex@suse.cz>
ALSA update
- intel8x0 - added NVidia NForce2 Audio PCI ID
- USB driver - clenaups in the disconnect routine
- added ALSA-Configuration.txt and ControlNames.txt documents
<davej@codemonkey.org.uk>
[AGP] __init audit after Rusty found a bug.
<davej@codemonkey.org.uk>
[AGP] Missing bits of David Mosberger's cleanups.
<torvalds@home.transmeta.com>
Merge with DRI CVS tree.
- add support for sending a signal on vblank
- remove unhelpful AGP chipset strings
- update radeon texture cache handling
<torvalds@penguin.transmeta.com>
Fix the remaining known problems (NMI and debugging) with
fast system calls. They should now be fully comparable to
traditional system calls.
Fix SEP stack allocation to look like a real thread stack.
This fixes the "Trap on first sysenter instruction" problem,
which can happen either as a result of an NMI or a breakpoint
trap (TF bit set).
Also make the user trampoline save and restore EFLAGS, so that
the TF bit gets restored after a fast system call (it will have
been cleared to avoid trap faults in the kernel).
<sfr@canb.auug.org.au>
[PATCH] Fix bad interaction with APM and the new sysenter segment layout
This fixes the APM GDT entry allocation issue. Confirmed by Andrew
Morton.
<rddunlap@osdl.org>
[PATCH] fix intermezzo build
This simple intermezzo Makefile change allows it to build.
OK'ed by Peter Braam.
<greg@kroah.com>
LSM: changed the dummy code to use the default operations logic.
<wli@holomorphy.com>
[PATCH] converting cap_set_pg() to for_each_task_pid()
cap_set_pg() wants to find all processes in a given process group. This
converts it to use for_each_task_pid().
<greg@kroah.com>
LSM: Fix up the description of the root_plug code to try to make it clearer.
<greg@kroah.com>
LSM: update the copyright dates for my entry.
<arnd@bergmann-dalldorf.de>
[PATCH] namespace pollution in STV0680 camera driver
Variables should not be defined in a header file.
This slightly improves the driver by making them
static instead of global.
<arnd@bergmann-dalldorf.de>
[PATCH] namespace pollution in ibmcam driver
The variable 'cams' should be static.
Don't initialize to 0, while we're here.
<oliver@neukum.name>
[PATCH] USB: simplify spinlocks in send path for speedtouch
irqsave spinlocks in an interrupt handler are superfluous.
Simple spinlocks are sufficient and quicker. As this is in
interrupt context, every cycle counts.
<oliver@neukum.name>
[PATCH] USB: more spinlock work for speedtouch
- simple spinlocks will do
<oliver@neukum.name>
[PATCH] USB: speedtouch remove error handling with usb_clear_halt
usb_clear_halt cannot be used from a completion handler because it sleeps
As that code path would have crashed the driver, it's obviously not needed
and can be removed.
<oliver@neukum.name>
[PATCH] USB: speedtouch reentrancy race through usbfs
speedtouch povides an ioctl handler through usbfs.
It must not be reentered. A semaphore ensures that.
<oliver@neukum.name>
[PATCH] USB: remove obviously broken code from the speedtouch disconnect handler
I am not sure what this code was supposed to do, but it can stop khubd
indefinitely. It has to go.
<oliver@neukum.name>
[PATCH] USB: speedtouch possible deadlock in atm_close path
this removes the spinlocks in close, so that
the synchronous unlinking is safe.
<oliver@neukum.name>
[PATCH] USB cdc-acm: missed a GFP_KERNEL in interrupt
the patch turns it into GFP_ATOMIC.
<oliver@neukum.name>
[PATCH] USB cdc-ether: GFP_KERNEL in interrupt
cdc-ether has the same problem as cdc-acm.
- usb_submit_urb() under spinlock or in interrupt must use GFP_ATOMIC
<davej@codemonkey.org.uk>
[AGP] Export agp3 routines and link to module if needed.
<davidm@tiger.hpl.hp.com>
ia64: More merge fixes.
<greg@kroah.com>
[PATCH] USB: fix the spelling of "deprecated".
Thanks to Randy Dunlap for pointing this out.
<levon@movementarian.org>
[PATCH] oprofile update
This makes the following changes :
o headers cleanup
o remove deprecated kernel_only
o mention minimum oprofile version
o correct initialise stats
o remove racy debug check (wli saw this oops)
o remove pointless simple_open
o add dump functionality
o remove pessimising FASTCALL
It fixes a critical race.
".
<davej@codemonkey.org.uk>
[AGP] agp_frontend_initialize() now gets called when a chipset driver registers, so it can't be __init any more.
<davej@codemonkey.org.uk>
[AGP] Readd module_exit function so that agpgart.ko can be unloaded.
<davej@codemonkey.org.uk>
[AGP] misplaced setting of bridge device.
<jejb@mulgrave.(none)>
correct compile warnings without Large Block Device support
Based on a patch from Andrew Morton.
Also checks to see if the sd device is bigger than the kernel can
support and prints out a warning in that case
<hch@sgi.com>
[XFS] remove xfs_dm_send_create_event
SGI Modid: 2.5.x-xfs:slinx:135038a
<lord@sgi.com>
[XFS] rework iocore infrastructure, remove some code and make it more
orthogonal. In addition, add some of the hooks for unwritten extents.
SGI Modid: 2.5.x-xfs:slinx:134603a
<hch@sgi.com>
[XFS] remove unused debugging code
SGI Modid: 2.5.x-xfs:slinx:135137a
<hch@sgi.com>
[XFS] more dead code removal
SGI Modid: 2.5.x-xfs:slinx:135153a
<nathans@sgi.com>
[XFS] Fix size check for realtime devices.
SGI Modid: 2.5.x-xfs:slinx:135199a
<nathans@sgi.com>
[XFS] Some cleanup, some more unwritten extent related changes.
SGI Modid: 2.5.x-xfs:slinx:135207a
<milli@acmeps.com>
[AGP] Make i845g use correct initialisation routine.
<hch@sgi.com>
[XFS] remove references to i_dev, it's gone in recent kernels
SGI Modid: 2.5.x-xfs:slinx:135308a
<hch@sgi.com>
[XFS] fix an out-of-date comment
SGI Modid: 2.5.x-xfs:slinx:135307a
<nathans@sgi.com>
[XFS] Fix up setting up of sector size for the superblock buffer after the
very first read on mount. Make some of the surrounding code dealing
with buffers consistent.
SGI Modid: 2.5.x-xfs:slinx:135452a
<nathans@sgi.com>
[XFS] Fix some setxattr compiler warnings (const).
SGI Modid: 2.5.x-xfs:slinx:135453a
<sandeen@sgi.com>
[XFS] Change some %x formats to %p for pointers
SGI Modid: 2.5.x-xfs:slinx:135454a
<cattelan@sgi.com>
[XFS] "merge" the 2.4 fsx fix for block size < page size to 2.5. This needed
major changes to actually fit.
SGI Modid: 2.5.x-xfs:slinx:132210a
<gibbs@overdrive.btc.adaptec.com>
Update to aic7xxx version 6.2.24 and aic79xx version 1.3.0_ALPHA5.
<dledford@flossy.devel.redhat.com>
aic7xxx_old: improve usage of pci_request_regions due to device contention
<dledford@flossy.devel.redhat.com>
Change all uses of device->request_queue (was struct, now pointer)
Update scsi_scan so that we don't pass around a scsi_device struct for
scanning. Instead, we pass around a request_queue during
scanning and create and destroy device structs as needed. This
allows us to have a 1:1 correlation between scsi_alloc_sdev()
and scsi_free_sdev() calls, which we didn't have before.
<dledford@flossy.devel.redhat.com>
aic7xxx_old/aic7xxx.h: Run time warning fix
<davem@nuts.ninka.net>
[SPARC64]: Update ioctl32 for fb changes.
<davem@nuts.ninka.net>
[SPARC64]: Add sbus_{read,write}q.
<davem@nuts.ninka.net>
[SPARC]: Update asm/fbio.h for fb changes.
<davem@nuts.ninka.net>
[ATYFB]: Fix build error in sparc specific sections.
<davem@nuts.ninka.net>
[FB]: Add readq/writeq for sparc.
<davem@nuts.ninka.net>
[SPARC64]: Convert for stat/utime compat syscall changes.
<jmorris@intercode.com.au>
[SPARC64]: Define COMPAT_USER_HZ and compat_clock_t.
<davem@nuts.ninka.net>
[SPARC64]; Convert over to compat_clock_t and compat_sys_times.
<jmorris@intercode.com.au>
[SPARC]: Update for new do_coredump args.
<davem@nuts.ninka.net>
[SPARC64]: Un-static cp_compat_stat.
<davem@nuts.ninka.net>
[SPARC64]: Fix some circular include deps.
<davem@nuts.ninka.net>
[SPARC64]: Some more compat stat syscall entry conversions.
<davem@nuts.ninka.net>
[SOUND]: ioctl32/{ioctl32,rawmidi32,seq32,timer32}.c needs linux/fs.h
<ak@muc.de>
[PATCH] Some i386 cleanups - MTRR, bootflag
This does:
- fix one warning in bootflag.c
- change a few longs to int and int to long in the MTRR driver
to make it 64bit clean (should be a NOP for 32bit i386, but is needed
for x86-64)
- Convert the MTRR /proc interface to seq_file and remove the broken
compute_ascii() hack. This fixes some broken code e.g. the old
mtrr_write was completely broken because the loop checking for
commands started with a "continue" - remove duplicated mtrr type
strings.
<ak@muc.de>
[PATCH] x86-64 merge
This patch depends on the i386 MTRR driver cleanup I sent earlier.
- Support non executable mappings for x86-64. data/heap are non executable
by default now.
- Beginnings of software suspend from Pavel (not working yet)
- Support generic compat functions and remove some shared code
in the 32bit emulation (Stephen Rothwell)
- Support hugetlbfs
- Some makefile updates
- Make sure all 32bit emulation functions return long, not int.
This fixes some problems with ERESTARTNOSYS.et.al. leaking to userspace.
- Add new system calls.
- Fix long standing fs/gs context switch bugs (thanks to Karsten Keil
for helping to fix that mess). Also make sure the gs selector is
set to 0 after an exec.
- Simplify TLS switching
- Paranoid CPUID check at bootup
- Reorder scatterlist to be more space efficient (Jes Soerensen)
- Enlarge 32bit address space to full 4GB.
- Beginnings of 32bit SYSCALL support (not completely working yet
and vsyscall page miss yet)
- Various merges from i386
- New module loader
- Support threaded core dump (XMM saving for 32bit programs doesn't
work, but it appears to be broken on i386 too)
- Fix bug in signal stack rounding
- Remove DRM 32bit emulation.
- Use MTRR driver from i386
- Use bootflag.c from i386
- Various other fixes and cleanups.
<ak@muc.de>
[PATCH] x86-64 relocations for elf.h
This adds the x86-64 ELF relocations to include/linux/elf.h
This is needed for the new module loader.
<ak@muc.de>
[PATCH] Add workaround for AMD8131 bug
Some revisions of the AMD8131 PCI-X bridge have a irq routing bug that appears
in IO-APIC mode. To work around it a bit needs to be set in this case.
<davej@codemonkey.org.uk>
[PATCH] Cyrix 3 gcc options changed.
Newer gcc changes alignment flags from a -m to -f
<davej@codemonkey.org.uk>
[PATCH] swap.h doesn't use prefetching
<davej@codemonkey.org.uk>
[PATCH] i2c size_t fix
<davej@codemonkey.org.uk>
[PATCH] make cpu serial number disable generic
This check needs to happen for all CPUs that support PN,
not just Intel.
From hpa and Pat Mochel.
<trond.myklebust@fys.uio.no>
[PATCH] Clean up NFSv4 READ xdr path
This creates a clean XDR path for the NFSv4 read requests instead of
routing through encode_compound()/decode_compound(). This eliminates
the intermediate step of setting up a struct nfs4_compound before
proceeding to XDR encoding, and removes the large 'switch()' statements
from the codepath altogether.
<trond.myklebust@fys.uio.no>
[PATCH] Clean up NFSv4 WRITE xdr path
The following patch creates a clean XDR path for the NFSv4 write requests
instead of routing through encode_compound()/decode_compound().
<trond.myklebust@fys.uio.no>
[PATCH] Support for NFSv4 READ + WRITE attribute cache consistency
Retrieve the post-operation attribute changes for NFSv4 READ and
WRITE operations. Unlike for NFSv2 and NFSv3, we do not retrieve the
full set of file attributes. The main reason for this is that
interpreting attributes is a much heavier task on NFSv4 (requiring, for
instance, translation of file owner names into uids ...). Hence
For a READ request, we retrieve only the 'change attribute' (for cache
consistency checking) and the atime.
For a WRITE request, we retrieve the 'change attribute' and the file size.
In addition, we retrieve the value of the change attribute prior to the
write operation, in order to be able to do weak cache consistency checking.
<randy.dunlap@verizon.net>
[PATCH] Patch for affs: pr_debug() usage
pr_debug() is defined to print using KERN_DEBUG already,
so uses of it don't need to repeat KERN_DEBUG.
<wli@holomorphy.com>
[PATCH] Fix CPU bitmask truncation
Fix task->cpus_allowed bitmask truncations on 64.bit architectures.
Originally by Bjorn Helgaas for 2.4.x.
<miles@lsi.nec.co.jp>
[PATCH] Update v850 includes for slimmed-down sched.h
Adds extra includes needed because sched.h doesn't include them anymore,
and removes includes of sched.h where they're not really necessary.
<miles@lsi.nec.co.jp>
[PATCH] Make some symbol exports conditional on CONFIG_MMU
A few symbols are only defined when CONFIG_MMU=y, but are exported
(by kernel/ksyms.c) unconditionally. This patch makes them conditional.
<miles@lsi.nec.co.jp>
[PATCH] Add v850 support for `sys_restart_syscall'
<miles@lsi.nec.co.jp>
[PATCH] Add some v850 elf constants
These are used for the new in-kernel module loader (actually not all the
relocation types are used right now, but are included for completeness).
Only the EM_CYGNUS_V850 macro, which is in a global namespace, is added
to <linux/elf.h>; the relocation types, which are private to the v850,
are added to <asm-v850/elf.h>. [Perhaps some other archs can do a
similar split, to reduce the bloat in <linux/elf.h>]
<miles@lsi.nec.co.jp>
[PATCH] Pass extra signal handler args correctly on the v850
The old code seems completely wrong; I guess it was just left over from
whichever architecture this code was copied from.
<miles@lsi.nec.co.jp>
[PATCH] Reduce redundancy in v850 linker scripts
This moves most of the duplicated text in the various v850 platform-
specific linker scripts (each of which was previously completely
standalone) into cpp macros in vmlinux.lds.S, which are then used by the
platform linker scripts as appropriate. This should make the scripts a
lot easier to maintain.
Also, a number of linker-script bugs are fixed.
<cel@citi.umich.edu>
[PATCH] use kmap_atomic instaed of kmap in NFS client
Description:
andrew morton suggested there are places in the NFS client that could
make use of kmap_atomic instead of vanilla kmap in order to improve
scalability on 8-way and higher SMP systems.
Test status:
Passes all Connectathon '02 tests with v2 and v3, UDP and TCP; passes
NFS torture tests on a UP HIGHMEM x86 system.
<cel@citi.umich.edu>
[PATCH] give NFS client a "set_page_dirty" address space op.
Description:
The default set_page_dirty address space op is too heavyweight for NFS,
which doesn't use buffers.
<cel@citi.umich.edu>
[PATCH] cleanup: simplify req_offset function in NFS client
Description:
everywhere the NFS client uses the req_offset() function today, it adds
req->wb_offset to the result. this patch simply makes "+req->wb_offset"
a part of the req_offset() function.
Test status:
Passes all Connectathon '02 tests with v2, v3, UDP and TCP. Passes
NFS torture tests on an x86 UP highmem system.
<ctindel@cup.hp.com>
[BONDING]: Update to version 2.4.20-20021210.
<arnd@bergmann-dalldorf.de>
[PKTGEN]: Mark some functions static.
<torvalds@home.transmeta.com>
Make NFS compile even without NFS_V4 support
<torvalds@home.transmeta.com>
Ignore ".ko" files - kernel module objects.
<krkumar@us.ibm.com>
[IPV6]: Missing in6_dev_put in router discovery.
<davidm@tiger.hpl.hp.com>
ia64: Finish 2.5.52+ merge.
<davidm@tiger.hpl.hp.com>
ia64: Fix printing of memory attributes.
<davej@codemonkey.org.uk>
[AGP] Make things compile again if AGP3=n
<manfred@colorfullife.com>
[PATCH] new attempt at sys_poll allocation (was: Re: Poll patches..)
This replaces the dynamically allocated two-level array in sys_poll with
a dynamically allocated linked list. The current implementation causes
at least two alloc/free calls, even if only one or two descriptors are
polled. This reduces that to one alloc/free, and the .text segment is
around 220 bytes shorter. The microbenchmark that polls one pipe fd is
around 30% faster. [1140 cycles instead of 1604 cycles, Celeron mobile
1.13 GHz]
<ink@jurassic.park.msu.ru>
[PATCH] PCI: setup-xx fixes
Don't disable PCI devices before changing the BARs, as discussed
recently. Disabling PCI_COMMAND_MASTER bit is an obvious bug.
Further, pdev_enable_device() is a leftover from very old (2.0, I guess)
alpha PCI code. It's used in pci_assign_unassigned_resources() to
enable *every* PCI device in the system. So, if we have two graphic
cards on the same bus, both with legacy VGA IO... oops.
Actually, only alpha relied on that due to the lack of
pcibios_enable_device (which has been already fixed).
<torvalds@home.transmeta.com>
Get rid of silly printk's in recent mtrr driver changes.
<hch@lst.de>
[AF_KEY]: Fix comment typo.
<torvalds@home.transmeta.com>
Sysenter cleanups (originals by Brian Gerst, updated and expanded by me):
- set up kernel stack pointer for sysenter at each context switch.
- disable sysenter while in vm86 mode.
- clean up mtrr number defines and SEP feature testing
<akpm@digeo.com>
[PATCH] sync_fs deadlock fix
Running a `mount -o remount' against ext3 deadlocks if there is heavy
write activity. It's a sort of AB/BA deadlock caused by calling
log_wait_commit() under lock_super(). The caller holds lock_super()
and is waiting for a commit, but the commit cannot complete because
lock_super() is also used in the block allocator.
The way we fixed this in tha past is to drop the superblock lock inside
ext3. The way this patch fixes it is to arrange for lock_super() to
not be held around the ->sync_fs() call.
Also: sync_filesystems is on the sys_sync() path and is racy wrt
unmount. Check sb->s_root after taking sb->s_umount.
<akpm@digeo.com>
[PATCH] fix a page dirtying race in vmscan.c
There's a small window in which another CPU could dirty the page after
we've cleaned it, and before we've moved it to mapping->dirty_pages().
The end result is a dirty page on mapping->locked_pages, which is
wrong.
So take mapping->page_lock before clearing the dirty bit.
<akpm@digeo.com>
[PATCH] fix use-after-free bug in move_vma()
move_vma() calls do_munmap() and then uses the memory at *new_vma.
But when starting X11 it just happens that the memory which do_munmap
unmapped had the same start address and the range at *new_vma. So new_vma
is freed by do_munmap().
This was never noticed before because (vm_flags & VM_LOCKED) evaluates
false when vm_flags is 0x5a5a5a5a. But I just changed that to 0x6b6b6b6b
and boom - we call make_pages_present() with start == end == 0x6b6b6b6b and
it goes BUG.
So I think the right fix here is for move_vma() to not inspect the values
of any vma's after it has called do_munmap().
The patch does that, for `new_vma'.
The local variable `vma' is also being used after the call do do_munmap(),
and this may also be a bug. Proving that this is not so, and adding a
comment to explain why is hereby added to Hugh's todo list ;)
<akpm@digeo.com>
[PATCH] more informative slab poisoning
slab poisons objects with 0x5a both when they are constructed and when
they are freed. So it is not possible to tell whether a deref of
0x5a5a5a5a was a use-before-initialisation bug or a use-after-free bug.
The patch changes it so that
1) A deref of 0x5a5a5a5a means use-of-uninitialised-memory
2) A deref of 0x6b6b6b6b means use-of-freed-memory.
<akpm@digeo.com>
[PATCH] Add generic_file_readonly_mmap() for nommu
Add a generic_file_readonly_mmap() for !CONFIG_MMU.
<akpm@digeo.com>
[PATCH] misc fixes
- A C99 initialiser in drivers/char/mem.c
- Remove unneeded deref in madvise_willneed()
<akpm@digeo.com>
[PATCH] Remove PF_NOWARN
We keep getting in a mess with the current->flags setting and
unsetting.
Remove current->flags:PF_NOWARN and create __GFP_NOWARN instead.
<akpm@digeo.com>
.
<akpm@digeo.com>
[PATCH] ext2/3 commentary and cleanup
- Add some (much-needed) commentary to the ext2/ext3 block allocator
state fields.
- Remove the SEARCH_FROM_ZERO debug code. I wrote that to trigger
some race and it hasn't been used in a year.
<akpm@digeo.com>
[PATCH] ext2/3: better starting group for S_ISREG files
ext2 places non-directory objects into the same blockgroup as their
directory, as long as that directory has free inodes. It does this
even if there are no free blocks in that blockgroup (!).
This means that if there are lots of files being created at a common
point in the tree, they _all_ have the same starting blockgroup. For
each file we do a big search forwards for the first block and the
allocations end up getting intermingled.
So this patch will avoid placing new inodes in block groups which have
no free blocks.
So far so good. But this means that if a lot of new files are being
created under a directory (or multiple directories) which are in the
same blockgroup, all the new inodes will overflow into the same
blockgroup. No improvement at all.
So the patch arranges for the new inode locations to be "spread out"
across different blockgroups if they are not going to be placed in
their directory's block group. This is done by adding parent->i_ino
into the starting point for the quadratic hash. i_ino was chosen so
that files which are in the same directory will tend to all land in the
same new blockgroup.
<akpm@digeo.com>
[PATCH] ext3: smarter block allocation startup
When an ext3 (or ext2) file is first created the filesystem has to
choose the initial starting block for its data allocations. In the
usual (new-file) case, that initial goal block is the zeroeth block of
a particular blockgroup.
This is the worst possible choice. Because it _guarantees_ that this
file's blocks will be pessimally intermingled with the blocks of
another file which is growing within the same blockgroup.
We've always had this problem with files in the same directory. With
the introduction of the Orlov allocator we now have the problem with
files in different directories. And it got noticed. This is the cause
of the post-Orlov 50% slowdown in dbench throughput on ext3 on
write-through caching SCSI on SMP. And 25% in ext2.
It doesn't happen on uniprocessor because a single CPU will not exhibit
sufficient concurrency in allocation against two or more files.
It will happen on uniprocessor if the files are growing slowly.
It has always happened if the files are in the same directory.
ext2 has the same problem but it is siginficantly less damaging there
because of ext2's eight-block per-inode preallocation window.
The patch largely solves this problem by not always starting the
allocation goal at the zeroeth block of the blockgroup. We instead
chop the blockgroup into sixteen starting points and select one of those
based on the lower four bits of the calling process's PID.
The PID was chosen as the index because this will help to ensure that
related files have the same starting goal. If one process is slowly
writing two files in the same directory, we still lose.
Using the PID in the heuristic is a bit weird. As an alternative I
tried using the file's directory's i_ino. That fixed the dbench
problem OK but caused a 15% slowdown in the fast-growth `untar a kernel
tree' workload. Because this approach will cause files which are in
different directories to spread out more. Suppressing that behaviour
when the files are all being created by the same process is a
reasonable heuristic.
I changed dbench to never unlink its files, and used e2fsck to
determine how many fragmented files were present after a `dbench 32'
run. With this patch and the next couple, ext2's fragmentation went
from 22% to 13% and ext3's from 25% to 10.4%.
<akpm@digeo.com>
[PATCH] ext2: smarter block allocation startup
The same thing, for ext2.
<akpm@digeo.com>
[PATCH] rename locals in ext2_new_block()
Renames the local variables `bh2', `i', `j', 'k', and `tmp' to
something meanigful. This brings ext2_new_block() into line with
ext3_new_block().
<akpm@digeo.com>
[PATCH] ext3 use-after-free bugfix
If ext3_add_nondir() fails it will do an iput() of the inode. But we
continue to run ext3_mark_inode_dirty() against the potentially-freed
inode. This oopses when slab poisoning is enabled.
Fix it so that we only run ext3_mark_inode_dirty() if the inode was
successfully instantiated.
<akpm@digeo.com>
[PATCH] ext3: fix buffer dirtying
This is a forward-port from 2.4. One of Stephen's recent fixes. I
managed to merge up only half of it. Here is the rest. It should fix
the asserton failure reported by Robert Macaulay
<robert_macaulay@dell.com>
"There was a race window in buffer refiling where we could temporarily
expose the journal's internal BH_JBDDirect flag as BH_Dirty, which is
visible to the rest of the VFS. That doesn't affect the journaling,
because we hold journal_head locks while the buffer is in this
transient state, but bdflush can see the buffer and write it out
unexpectedly, causing ext3 to find the buffer in an unexpected state
later."
The fix simply keeps the dirty bits clear during the internal buffer
processing, restoring the state to the private BH_JBDDirect once
refiling is complete."
<akpm@digeo.com>
[PATCH] hugetlb bugfixes
From Rohit Seth
1) Bug fixes (mainly in the unsuccessful attempts of hugepages).
i) not modifying the value of key for unsuccessful key
allocation
ii) Correct usage of mmap_sem in free_hugepages
iii) Proper unlocking of key->lock for partial hugepage
allocations
2) Include the IPC_LOCK for permission to use hugepages via the
syscall interface. This brings the syscall interface into line with
the hugetlbfs interface.
It also adds permits users who are in the superuser group to
access hugetlb resources. This is so that database servers can run
without elevated permissions.
3) Increment the key_counts during forks to correctly identify the
number of processes references a key.
<akpm@digeo.com>
[PATCH] hugetlb: report shared memory attachment counts
From Rohit Seth
Attached is a patch that passes the correct information back to user
land for number of attachments to shared memory segment. I could have
done few more changes in a way nattach is getting set for regular cases
now, but just want to limit it at this point.
<akpm@digeo.com>
[PATCH] hugetlbfs: set inode->i_size
An `ls' in hugetlbfs currently shows all files having zero size.
So, part-cosmetic, part-informative, we here set i_size to represent the
index of the highest present page in the mapping, plus one.
<akpm@digeo.com>
[PATCH] don't cacheline-align radix_tree_nodes
They are 260 bytes. We can get 15 per page without cacheline
alignment. But we're currently only getting ten per page on P4.
<akpm@digeo.com>
[PATCH] remove memclass()
From hch. Nothing is using the memclass() predicate.
<akpm@digeo.com>
[PATCH] remove unused macro MAP_ALIGN()
Patch from Christoph Hellwig <hch@lst.de>
remove unused macro MAP_ALIGN()
<torvalds@home.transmeta.com>
More mtrr/if.c fixes
- printk is not an acceptable substitute for errors
- fix indentation of mtrr_close()
- fix duplicate mtrr "release" fn pointer initializer
<jejb@raven.il.steeleye.com>
generic device DMA API
add dma_ API to mirror pci_ DMA API but phrased to use struct
device instead of struct pci_dev.
See Documentation/DMA-API.txt for details
<jejb@raven.il.steeleye.com>
allow pci primary busses to have parents in the device model
<torvalds@home.transmeta.com>
Remove old pci_dma_supported(), this is done by the generic
device DMA now (see <linux/pci.h> for the compat wrapper).
.
<jkenisto@us.ibm.com>
[PATCH] dev_printk macro
<rth@dorothy.sfbay.redhat.com>
[ALPHA] Add __param support to link script.
<jejb@raven.il.steeleye.com>
remove PCI_NEW_DMA_COMPAT_API
use a #include mechanism for generic implementations of the pci_
API in terms of the dma_ one
<manfred@colorfullife.com>
[PATCH] reorder 'rep;nop;' in the spinlock macro
According to Intel's recommendation, 'rep;nop; should be called before
testing if the lock variable was modified (i.e. rep nop;cmp;jcc). The
current implementation does it the wrong way around: first test, then
wait, then branch. I've asked Asit Mallik from Intel, and he recommended
to change it.
It should be at least consistent: Right now, spinlock uses
'cmp;rep nop;jcc', rwlock uses 'rep nop;cmp;jcc'
<ak@muc.de>
[PATCH] Make mem=nopentium clear cpu_has_pse
"mem=nopentium" would clear the PSE bit in boot_cpu_data, but the CPU
detection later would overwrite it again from CPUID.
The large pages would be correctly disabled, but cpu_has_pse was lying.
This patch makes sure it stays clear when the option is given.
I also took the liberty to remove these obnoxious cpu capability
printks who give no use information (the data can be either gotten
from CPUID in user space in raw form or from /proc/cpuinfo processed)
<ak@muc.de>
[PATCH] Fix pageattr with mem=nopentium
This fixes a hang in change_page_attr() that occured with mem=nopentium.
Make sure a non large page kernel mapping is handled correctly.
Previously the page reference counter was handled incorrectly in this
case.
Also hardens change_page_attr against bogus addresses. You get an
EINVAL now.
<rusty@rustcorp.com.au>
[PATCH] honour init= bootparm
Restore the accidentally dropped code to handle "init=xxx"
<manfred@colorfullife.com>
[PATCH] Avoid overwriting boot_cpu_data from trampoline code
boot_cpu_data should contain the common capabilities of all cpus in the
system. identify_cpu [arch/i386/kernel/cpu/common.c] tries to enforce
that. But right now, the SMP trampoline code [arch/i386/kernel/head.S]
overwrites boot_cpu_data when the secondary cpus are started, i.e.
boot_cpu_data contains the capabilities from the last cpu that booted :-(
The attached patch adds a new, __initdata variable for the asm code.
<torvalds@home.transmeta.com>
Handle single-stepping over fast system calls without polluting
the fast case with a pushf/popf, by having the kernel debug trap
set the TIF_SINGLESTEP flag and causing the return path to dtrt.
<andersg@0x63.nu>
[TCP]: Fix infinite loop when reading /proc/net/tcp with ipv6-sockets.
<mostrows@speakeasy.net>
[PPPOE]: Fix connect handling.
<dipankar@in.ibm.com>
[IPV4]: lockfree ipv4 route cache
<kaber@trash.net>
[Netfilter]: Forgotten dev_put for bridge-devices in nf_reinject.
<jejb@mulgrave.(none)>
[SCSI 53c700] remove no_module_init again, sigh
<hch@infradead.org>
[PATCH] Re: scsi_scan.c complaints...
On Fri, Dec 20, 2002 at 08:29:23PM -0500, Doug Ledford wrote:
> And I was right. One little q = NULL; is all that was missing. Anyway,
> here's a printout of what startup looks like with this patch in place
> under 2.5.52. This should make you happy Justin ;-)
Okay, I looked at the patches that are in mainline and they look pretty
cool to me. When looking over the code (in preparation of implementing
Justin's suggestion to get rid of the highmem_io flag) I found quite
a bit small stuff to make the code in that area a lot cleaner:
- new helper scsi_calculate_bounce_limit to calculate the bounce
limit for a scsi host, remove a copy of that code ni st.c
- scsi_initialize_queue gets replace with scsi_alloc_queue, this
one now takes only a struct Scsi_Host and returns the request queue,
it's paired with a small scsi_free_queue helper.
Diffstat:
hosts.h | 3 -
scsi.c | 43 ----------------------
scsi.h | 1
scsi_scan.c | 113 ++++++++++++++++++++++++++++++++++--------------------------
scsi_syms.c | 5 ++
st.c | 16 +-------
6 files changed, 73 insertions(+), 108 deletions(-)
<mbligh@aracnet.com>
[PATCH] x86 subarch header files
Patch from John Stultz.
This reorganises the subarch files to put all the headers under the
include dir, instead of mixing them up with the C files. The only
interesting part is the top section where he makes it fall back from the
subarch dir to the default dir if there's no .h file under the subarch
dir.
This means we can create multiple subarches without copying every single
file that any subarch wants into all the directories. And is much
tidier, IMHO.
<mbligh@aracnet.com>
[PATCH] NUMA-Q subarch directory
This adds a shell of a NUMA-Q subarch directory, and copies
mach-default/mach_apic.h into it. I then edited the default version to
remove the NUMA-Q stuff, and the NUMA-Q version to remove the default
stuff.
<mbligh@aracnet.com>
[PATCH] abstract out clustered APIC code
Code originally by James Cleverdon.
This abstracts out some sections that were switched by
clustered_apic_mode into the following functions:
- apic_id_registered()
- init_apic_ldr()
- multi_timer_check()
Changes the return check in balance_irq from testing clustered_apic_mode
to testing "no_balance_irq" to be more general.
The removal of:
entry.dest.logical.logical_dest = TARGET_CPUS;
is because it's a duplicate (we do it twice in the same function for
no reason).
<mbligh@aracnet.com>
[PATCH] abstract out mpparse code
Most of code originally by James Cleverdon.
Abstracts out code from the mpparse stuff into:
- mpc_apic_id()
- apicid_to_cpu_present()
instead of using clustered_apic_mode switching.
<mbligh@aracnet.com>
[PATCH] mpparse cleanups
Most of code originally by James Cleverdon.
More stuff reformed in the mpparse sections - this time not apic stuff,
so we create mach_mpparse.h and stick it in there.
Abstracts out:
- mpc_oem_bus_info() - stores mappings between buses and nodes/quads.
- mpc_oem_pci_bus() - stores mappings between global and local pci bus numbers
Changes summit_check() into mps_oem_check() to generalise it.
<mbligh@aracnet.com>
[PATCH] cleanup IPI code
Reformat the IPI stuff, specifically send_IPI_mask, send_IPI_allbutself,
and send_IPI_all. Though the way they work is pretty silly for NUMA-Q,
I do an equivalent transform here, and fix the code in a seperate patch
(next one). Goes into mach_ipi.h
<mbligh@aracnet.com>
[PATCH] clustered IPI cleanups
This one fixes up the IPI code to do something more sensible. Sorry,
was just too ugly to leave it alone ... but I did keep it seperated out
;-) Though this is not an equivalent transform it will only affect
NUMA-Q & summit - same op twice because some twit just split it out in
the last patch for both NUMA-Q & Summit.
Because clustered apic logical mode can't do arbitrary broadcasts of
addressing (it's not just a bitmap), I have to do send IPI instructions
as a sequence of unicasts. However, there's already a loop in the
generic send_IPI_mask code to do that ... there's no need to call
send_IPI_mask once for each CPU. The comment I wrote at the time even
noted that this was silly.
<mbligh@aracnet.com>
[PATCH] more clustered-apic-mode work
Code mostly originally by James Cleverdon.
Abstracts out more clustered_apic_mode gunk into
- ioapic_phys_id_map()
- wakeup_secondary_cpu()
- setup_portio_remap()
<jejb@mulgrave.(none)>
[SCSI 53c700] update to new generic device dma_ API
<dougg@torque.net>
[PATCH] scsi_debug version 1.67 for lk 2.5.52
This patch uses the module_param() facility introduced in
lk 2.5.52 (see linux/moduleparam.h) to simplify boot time
and module load time parameters for the scsi_debug driver.
The intent of module_param() is to unify
- boot time parameters
- module load time parameters
- sysfs driver parameters
into a few simple calls (seen from the driver's point of view).
The sysfs capability hasn't been implemented yet. Using
module_param() removes over 100 lines of boilerplate code
from the scsi_debug driver.
Following the conventions suggested by Rusty, scsi_debug's
kernel boot time options have been changed to this form:
scsi_debug.num_devs=2
while the module load options are now like this:
modprobe scsi_debug num_devs=2
This patch also updates the Kconfig entry for the scsi_debug
driver.
<jejb@mulgrave.(none)>
[SCSI] update lasi700 for new parisc device model
<wrlk@riede.org>
ide-scsi changes for new mid level api and error handling in 2.5.52
Here is my proposal for bringing ide-scsi in line with the current kernel.
The attached patch does:
1. Change from old style initialization to the new hotplug initialization model.
It involves declaring both a parent device and bus kernel object, which feels
a bit awkward, but hey, it works.
2. Make ide-scsi request sense itself when CHECK_CONDITION is asserted. This
change particularly makes ide-scsi run much smoother on my test box.
3. Implement eh_abort_handler and eh_device_reset_handler. I have no real way
to thoroughly test these new routines, so for this part particularly I ask
for peer review.
<torvalds@home.transmeta.com>
Fix sysenter restart backwards jump, add offset comments,
and make the alignment of the return point
be saner.
<torvalds@home.transmeta.com>
Remove bogus duplicated (and wrong) function declaration.
<torvalds@home.transmeta.com>
Linux v2.5.53
Linux is a registered trademark of Linus Torvalds