Summary of changes from v2.6.5 to v2.6.6
============================================
<stevef@linux.local>
Can not mount from cifs vfs client built with gcc 3.3.1 due to compiler
optimization of unsafe global variable. Remove unsafe global variable.
<stevef@linux.local>
Fix problem reconnecting additional mounts to the same server after
session failure.
<stevef@stevef95.austin.ibm.com>
Fix invalid dentry when race in mkdir between two clients
<stevef@linux.local>
fix oops in send_sig on unmount of cifs vfs due to sending signal to
demultiplex thread after it has exited.
Do not treat invalid handle warning in response to oplock break (of file
that is now closed) as an error.
<stevef@linux.local>
Fix EIO caused by network timeouts on changing file size.
To avoid spurious oplock breaks from server, in the case
of inodes that we already have open, avoid doing path
based setting of file size if we can do it by handle.
This keeps our caching token (oplock) and avoids
timeouts when the local oplock break takes longer to flush
writebehind data than the SMB timeout for the SetPathInfo
request would allow
<stevef@stevef95.austin.ibm.com>
fix to not retime out the same session twice since it can invalidate the
newly reestablished session unnecessarily
<stevef@smfhome.smfdom>
Do not return buffer if request has already timed out.
<stevef@stevef95.austin.ibm.com>
move bad smb session retry to correct location, up one level in cifs vfs code
<stevef@steveft21.austin.ibm.com>
fix endian bug in lockingX and add retry on EAGAIN
<stevef@stevef95.austin.ibm.com>
have to reconnect open files safely, one at a time, as needed
<stevef@stevef95.austin.ibm.com>
finish off move from reopening all files on reconnection (which takes too
long under heavy stress) to reopen file as needed after reconnection to
server.
<stevef@stevef95.austin.ibm.com>
correct retry on remaining handles based calls
<stevef@steveft21.austin.ibm.com>
Fix compile error
<stevef@stevef95.austin.ibm.com>
Missing soft vs. hard retry mount option
<stevef@stevef95.austin.ibm.com>
Do not grab i_sem (already taken in filemap.c across commit write calls)
during reopen of invalidated file handle.
<stevef@linux-udp14619769uds.austin.ibm.com>
Fix oops in mount error path when unload_nls called with bad pointer.
<stevef@stevef95.austin.ibm.com>
Avoid smb data corruption under heavy stress
<stevef@stevef95.austin.ibm.com>
missing message on timed out requests
<stevef@stevef95.austin.ibm.com>
rcvtimeout set improperly for some cifs servers
<stevef@steveft21.ltcsamba>
invalidate locally cached pages when server breaks oplock. Do not loop
reconnecting for servers that drop tcp session rather than sending smb
negprot response
<stevef@steveft21.ltcsamba>
Oops on reopen files when dentry already freed
<stevef@steveft21.ltcsamba>
invalidate cached pages when last local instance closed so we do
not use stale data while someone may be modifying the file on the
server.
<stevef@steveft21.ltcsamba>
fix double incrementing of transaction counter
<stevef@steveft21.ltcsamba>
Fix check of filldir return code during readdir to avoid incomplete search
results displayed on very large directories. Fix cleanup of proc entries.
Add config parm to allow disabling negotiating Linux extensions
<stevef@steveft21.ltcsamba>
allow disabling cifs Linux extensions via proc
<stevef@steveft21.ltcsamba>
Fix an incorrect mapping of open flags to cifs open disposition. Fix
blocking byte range locks. These fix breakages that were notice running lock
tests 1 and 7 of the connectathon posix file api tests
<stevef@steveft21.ltcsamba>
set byte range locktimeouts properly
<stevef@steveft21.ltcsamba>
fix cifs readme
<stevef@stevef95.austin.ibm.com>
gracefully exit on failed mounts to win98 (which closes tcp session rather
than erroring on smb protocol negotiation)
<stevef@stevef95.austin.ibm.com>
fix failed mounts to win98 part II
<stevef@stevef95.austin.ibm.com>
Fix global kernel name space pollution
<romieu@fr.zoreil.com>
[netdrvr r8169] Conversion of Rx/Tx descriptors to consistent DMA:
- use pci_alloc_consistent() for Rx/Tx descriptors in rtl8169_open()
(balanced by pci_free_consistent() on error path as well as in
rtl8169_close());
- removal of the fields {Rx/Tx}DescArrays in struct rtl8169_private
as there is no need to store a non-256 bytes aligned address any more;
- fix for rtl8169_open() leak when RxBufferRings allocation fails.
Said allocation is pushed to rtl8169_init_ring() as part of an evil
cunning plan.
<romieu@fr.zoreil.com>
[netdrvr r8169] Conversion of Rx data buffers to PCI DMA
- endianness is kept in a fscked state as it is in the original code
(will be adressed in a later patch);
- rtl8169_rx_clear() walks the buffer ring and releases the allocated
data buffers. It needs to be used in two places:
- rtl8169_init_ring() failure path;
- normal device release (i.e. rtl8169_close);
- rtl8169_free_rx_skb() releases a Rx data buffer. Mostly an helper
for rtl8169_rx_clear(). As such it must:
- unmap the memory area;
- release the skb;
- prevent the ring descriptor from being used again;
- rtl8169_alloc_rx_skb() prepares a Rx data buffer for use.
As such it must:
- allocate an skb;
- map the memory area;
- reflect the changes in the ring descriptor.
This function is balanced by rtl8169_free_rx_skb().
- rtl8169_unmap_rx() simply helps with the 80-columns limit.
- rtl8169_rx_fill() walks a given range of the buffer ring and
try to turn any descriptor into a ready to use one. It returns the
count of modified descriptors and exits if an allocation fails.
It can be seen as balanced by rtl8169_rx_clear(). Motivation:
- partially abstract the (usually big) piece of code for the refill
logic at the end of the Rx interrupt;
- factorize the refill logic and the initial ring setup.
- simple conversion of rtl8169_rx_interrupt() without rx_copybreak
(will be adressed in a later patch).
<romieu@fr.zoreil.com>
[netdrvr r8169] rtl8169_start_xmit fixes:
- it forgot to update stats if the skb couldn't be expanded;
- it didn't free it either if the descriptor was not available;
- move the spin_unlock nearer of the exit point instead of duplicating
it in the new branch.
<romieu@fr.zoreil.com>
[netdrvr r8169] Conversion of Tx data buffers to PCI DMA:
- endianness is kept in a fscked state as it is in the original code
(will be adressed in a later patch);
- buf_addr of an unmapped descriptor is always set to the same value
(cf rtl8169_unmap_tx_skb);
- nothing fancy, really.
<romieu@fr.zoreil.com>
[netdrvr r8169] Rx copybreak for small packets.
- removal of rtl8169_unmap_rx() (unneeded as for now).
<romieu@fr.zoreil.com>
[netdrvr r8169] Add {mac/phy}_version.
- change of identification logic in rtl8169_init_board();
- {chip/rtl_chip}_info are merged in rtl_chip_info;
- misc style nits (lazy braces, SHOUTING MACROS from realtek converted to
functions).
<romieu@fr.zoreil.com>
[netdrvr r8169] Merge of changes done by Realtek to rtl8169_init_one():
- phy capability settings allows lower or equal capability as suggested
in Realtek's changes;
- I/O voodoo;
- no need to s/mdio_write/RTL8169_WRITE_GMII_REG/;
- s/rtl8169_hw_PHY_config/rtl8169_hw_phy_config/;
- rtl8169_hw_phy_config(): ad-hoc struct "phy_magic" to limit duplication
of code (yep, the u16 -> int conversions should work as expected);
- variable renames and whitepace changes ignored.
<romieu@fr.zoreil.com>
[netdrvr r8169] Merge of timer related changes from Realtek:
- changed their timeout value from 100 to HZ to trigger rtl8169_phy_timer();
- s/TX_TIMEOUT/RTL8169_TX_TIMEOUT/ to have RTL8169_{TX/PHY}_TIMEOUT.
<romieu@fr.zoreil.com>
[netdrvr r8169] Merge of changes from Realtek:
- register voodoo in rtl8169_hw_start().
<romieu@fr.zoreil.com>
[netdrvr r8169] Driver forgot to update the transmitted bytes counter.
Originally done in rtl8169_start_xmit() by Realtek.
<romieu@fr.zoreil.com>
[netdrvr r8169] Modification of the interrupt mask (RealTek).
<romieu@fr.zoreil.com>
[netdrvr r8169] Suspend/resume code (Fernando Alencar Marótica).
<romieu@fr.zoreil.com>
[netdrvr r8169] fix RX
Brown paper bag time: the Rx descriptors are contiguous and EORbit only
marks the last descriptor in the array. OWNbit implicitly marks the end
of the Rx descriptors segment which is owned by the nic.
<romieu@fr.zoreil.com>
[netdrvr r8169] Endianness update (original idea from Alexandra N.
Kossovsky):
- descriptors status (bitfields enumerated as _DescStatusBit);
- address of buffers stored in Rx/Tx descriptors.
<romieu@fr.zoreil.com>
[netdrvr r8169] Stats fix (Fernando Alencar Marótica <famarost@unimep.br>).
<romieu@fr.zoreil.com>
[PATCH] 2.6.1-rc1-mm1 - typo of death in the r8169 driver
silly bug in the r8169 driver.
<romieu@fr.zoreil.com>
[netdrvr r8169] fix oops by removing __devinitdata marker
<romieu@fr.zoreil.com>
[netdrvr r8169] fix rx counter masking bug
<romieu@fr.zoreil.com>
[netdrvr r8169] fix phy initialization loop init
<stevef@smfhome.smfdom>
Check return on failed dentry allocation. Suggested by Randy Dunlap
<stevef@steveft21.ltcsamba>
Allow null password string pointer and passwords longer than 16 bytes
<stevef@steveft21.ltcsamba>
finish handling commas in passwords
<romieu@fr.zoreil.com>
[netdrvr r8169] fix TX race
- possible tx descriptor index overflow (assume tp->dirty_tx = NUM_TX_DESC/2,
tp->cur_tx = NUM_TX_DESC - 1 and watch TxDescArray for example);
- the status of an inadequate descriptor is checked.
NB: the bug will not necessarily noticed when tx_left == 1.
<stevef@steveft21.ltcsamba>
finish off mount parm sep override
<stevef@stevef95.austin.ibm.com>
Fix caching problem with multiply open files from different clients
<stevef@stevef95.austin.ibm.com>
Relax requested CIFS permissions on open to simply request GENERIC_READ and
GENERIC_WRITE (instead of GENERIC_ALL which
can unnecessarily conflict with share permissions by asking implicitly for
take ownership and other unneeded flags)
<stevef@stevef95.austin.ibm.com>
fix remoting caching part 2
<stevef@stevef95.austin.ibm.com>
remove spurious debug messages
<stevef@stevef95.austin.ibm.com>
fix problem not connecting to server when port not specified explicitly and
port field unitialized
<stevef@stevef95.austin.ibm.com>
reset searches properly when filldir fails
<stevef@steveft21.ltcsamba>
ipv6 enablement for cifs vfs fixes
<stevef@smfhome.smfdom>
Spurious white space and duplicated line cleanup
<aia21@cantab.net>
NTFS: Set i_generation in VFS inode from seq_no in NTFS inode.
<aia21@cantab.net>
NTFS: Make ntfs_lookup() NFS export safe, i.e. use d_splice_alias(), etc.
<aia21@cantab.net>
NTFS: Make it compile...
<stevef@steveft21.ltcsamba>
improve resume key resetting logic when filldir returns error and filename
is in unicode
<stevef@smfhome.smfdom>
allow nosuid mounts
<aia21@cantab.net>
NTFS: Release 2.1.7 - Enable NFS exporting of mounted NTFS volumes.
- Implement ntfs_get_parent() and ntfs_get_dentry() as the NTFS specific
export operations ->get_parent() and ->get_dentry() respectively.
<aia21@cantab.net>
NTFS: Add missing return -EOPNOTSUPP; in
fs/ntfs/aops.c::ntfs_commit_nonresident_write().
<stevef@stevef95.austin.ibm.com>
fix problem with inode revalidation and cache page invalidation
<stevef@stevef95.austin.ibm.com>
Fix the exec, suid, dev mount parms to not log warnings when specified
<romieu@fr.zoreil.com>
[netdrvr r8169] Rx wrap bug:
- rtl8169_rx_interrupt() can wrap and process an Rx descriptor that it has
invalidated a few iterations before. The patch limits the number of
allowed descriptors between two invocations of the Rx refill function;
- rtl8169_rx_interrupt() now looks similar to rtl8169_tx_interrupt to
highlight the issue.
<stevef@steveft21.ltcsamba>
fix caching data integrity problem
<stevef@stevef95.austin.ibm.com>
use safer i_size_write mechanism to update i_size
<aia21@cantab.net>
NTFS: Fix off by one error in ntfs_get_parent().
<kberg@linux1394.org>
[IEEE1394/OHCI]: Deal with some OHCI implementations that have an invalid
max_rec field.
<weihs@linux1394.org>
IEEE1394/Lynx(r1182): Explicitly set LCtrl bit in phy register set.
<aia21@cantab.net>
NTFS: Enforce no atime and no dir atime updates at mount/remount time
as they are not implemented yet anyway.
<trini@kernel.crashing.org>
PPC32: Add CONFIG_MPC10X_BRIDGE.
From: Adrian Cox <adrian@humboldt.co.uk>.
<trini@kernel.crashing.org>
PPC32: In some cases we need to make all pages _PAGE_COHERENT.
Controll this via the cpu_table flags since it's a requirement
in some CPU and host bridge combinations.
From: Adrian Cox <adrian@humboldt.co.uk>
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [1/15] qla2xxx: Update copyright banner
Update copyright banner for all source files.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [2/15] qla2xxx: Track DSDs used by an SRB
Track the number of DSDs and request entries required for an
SRB in case of a request-entry or command-slot shortage.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [3/15] qla2xxx: Increase MBX IOXB timeout
Fix a problem where during heavy I/O the driver would
improperly timeout an outstanding MBX IOCB before the
firmware itself had a chance to issue and wait for the
command to timeout.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [4/15] qla2xxx: Endianess fix while reading stats
Return firmware statistics retrieved from
qla2x00_get_link_status() in host-endian form.
<andrew.vasquez@qlogic.com>
[PATCH] RE: PATCH [5/15] qla2xxx: request entries update
For now, I'd say keep everything in the original patch except the
hunk that changes SG_ALL -> 32, revised patch attached.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [6/15] qla2xxx: Track error-state of SBRs
Consistenly track the error-state of a failed SRB.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [7/15] qla2xxx: Misc. updates with FO resync
Misc. updates due to resync with non-embedded (failover-aware) driver.
o Add ancillary support definitions.
o Remove extraneous *_IOCTL #ifs.
o Make qla2x00_cmd_timeout() and its support routines visible to the
non-embedded driver.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [8/15] qla2xxx: Use proper HA references
Fix issue where the driver would reference the incorrect HA
during loop state check.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [9/15] qla2xxx: NVRAM id-list updates
Resync with latest NVRAM subsystem ID list.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [10/15] qla2xxx: Use fcports list for targets
Consistently use the fcports list of an HA to iterate through the
known target devices.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [11/15] qla2xxx: Add login-retry-count override
Add a module parameter to override the NVRAM's login retry count
value.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [12/15] qla2xxx: Restore update state during resync
Restore the UPDATE state of the HA if a resync event occurs during
a device (re)discovery.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [13/15] qla2xxx: Device reset fix
During a back-door device reset call, hold off execution of
commands until the reset is complete.
<jejb@mulgrave.(none)>
PATCH [14/15] qla2xxx: 23xx/63xx firmware updates
Andrew Vasquez <andrew.vasquez@qlogic.com>
Resync with latest released firmware -- 3.02.26.
<andrew.vasquez@qlogic.com>
[PATCH] PATCH [15/15] qla2xxx: Update driver version
Update version number to 8.00.00b11-k (to indicate embedded driver).
<davej@redhat.com>
[PATCH] USB multi-card reader blacklist updates
Here's a couple more blacklist entries.
Seems everyone suddenly rushed out and bought one of these multi-card
readers.
Dave
<James.Bottomley@steeleye.com>
[PATCH] Fix error handler offline behaviour
No-one seems to have noticed, but there's a bug in our offline handling
which can cause the eh to loop forever when it tries to offline a device
(basically offline I/O rejections are done in prep, which doesn't work
for already prepped commands).
The attached fixes this, and also sweeps offline up into a fairly fully
fledged scsi state model.
With this applied I can now offline my root device under load without
causing a SCSI hang (ext2 BUG()s rather unhappily but at least that's
not a SCSI problem).
<markh@osdl.org>
[PATCH] aacraid reset handler update
This is an update from the Adaptec version of the driver to the aacraid
reset handler. The current code has a logic error that is fixed by this
version. This builds against 2.6.5-rc1.
<patmans@us.ibm.com>
[PATCH] Replace scsi_host flags with scsi_device sdev_bflags
Replace the scsi_host flags with scsi_device sdev_bflags. Change USB to
set sdev_bflags in its new slave_alloc function.
<patmans@us.ibm.com>
[PATCH] Add 192 byte MODE SENSE flag
Add a BLIST_MS_192_BYTES_FOR_3F flag. If it is set, sends a 192 byte MODE
SENSE in sd.c.
<jejb@mulgrave.(none)>
SCSI: correct blacklist entry
<mchan@broadcom.com>
[TG3]: Jumbo frames and FTQ reset patch.
1. Set extended packet length bit in phy register 0x18 shadow register 0
on all chips that support jumbo frames (i.e. all chips except 5705 and
its variants). Jumbo frame reception is less reliable (more CRC errors)
if this bit is not set. This bit can be set regardless of the current
MTU setting.
2. Remove FTQ reset during chip init. This is the best fix for the ASF
race condition problem that I mentioned a few months ago. The FTQ reset
is redundant as it is already reset during GRC reset.
<davem@nuts.davemloft.net>
[TG3]: Just completely delete the disabled FTQ reset code.
<davej@redhat.com>
[CPUFREQ] If ->init fails, unregister cpufreq driver.
Some cpufreq drivers can only tell whether they work while the per-CPU
->init() function is executed [e.g. the acpi driver]. So that cpufreq_driver
isn't blocked by such stale drivers, unload them unless the driver sets a
special flag.
<davej@redhat.com>
[CPUFREQ] Use KERN_WARNING for warning.
<davej@redhat.com>
[CPUFREQ] Move the centrino table matching into an own function
Only the FEATURE_EST bit for CPU 0 is checked in module_init() directly.
As cpufreq drivers aren't sticky any longer (see previous patch),
this will not change user-visible behaviour.
<davej@redhat.com>
[CPUFREQ] Merge ACPI perflib.
Use ACPI _PSS data to determine valid frequency and voltage pairs on Enhanced
SpeedStep-capable processors. An original form of such ACPI-PentiumM-cpufreq
interaction was sent to the cpufreq list by David Moore in June last year;
the
attached patch utilizes his code to set _PDC.
The new ACPI "P-States library" is utilized to obtain the correct frequency
and MSR value pairs for the speedstep-centrino driver. Only if no such proper
table exists (!CONFIG_ACPI, broken ACPI tables, etc.), fall back to the
existing hard-coded table.
If anyone has a better idea for the Kconfig section, please tell me so.
This version of this patch has proper acpi_state setting included, and also
has a hint in the banner of the centrino_cpu_init_acpi() function, as Jeremey
Fitzhardinge suggested.
<davej@redhat.com>
[CPUFREQ] Export an array of available frequency settings of the centrino
driver.
<davej@redhat.com>
[CPUFREQ] Fix up centrino initcall level
centrino_init needs to be late_initcall so that the ACPI processor module
is completely up and running.
<davej@redhat.com>
[CPUFREQ] SPEEDSTEP_RELAXED_CAP_CHECK option.
A few SpeedStep-capable systems don't perform according to specification: the
CPUID and/or some MSRs don't tell us the CPU is SpeedStep capable even though
it definitely is. Allow a relaxed checking for one such issue by a module
parameter only available if a config option is turned on. This is done to
avoid the risk of doing invalid speedstep instructions on systems which do
not support it, and which might even lead to (hardware) failure.
Patch originally from Andres Aeriksson (?) aeriksson at fastmail (dot) fm
<davej@redhat.com>
[CPUFREQ] Fix an off-by-10 value in the detection of the Pentium M processor
frequency.
<davej@redhat.com>
[CPUFREQ] Extra __init section function for longrun driver.
From Luiz Fernando Capitulino
<davej@redhat.com>
[CPUFREQ] Extra __init section function for longhaul driver.
From Luiz Fernando Capitulino
<greg@kroah.com>
Driver Core: fix spaces instead of tabs problem in the Kconfig file.
<greg@kroah.com>
add sysfs support for vc devices.
<greg@kroah.com>
VC: fix bug in vty_init() where vcs_init() was not called early enough.
It was being used before initialized, not nice :(
<khali@linux-fr.org>
[PATCH] I2C: w83781d fan_div code refactoring
Quoting myself:
> This tends to increase the size of the three set_store_regs_fan_div
> functions, and I am considering refactoring them at some point. Later
> though.
Here is the promised refactoring. Tested on my AS99127F rev.1, seems to
work. As for the previous patch, there is a part that I cannot test with
the AS99127F, so additional testing is welcome.
I agree this makes the code slightly less readable, but this saves 60
lines of code (1754 bytes, around 3% of the driver total), and is
actually far less complex that I first feared.
<aurelien@aurel32.net>
[PATCH] I2C: add new chip driver: pcf8574
Please find below a patch against kernel 2.6.5-rc1 to add the pcf8574
driver (an I/O expander for the I2C bus). I have ported it from the 2.4
version, and it includes some fixes and simplifications.
It has been reviewed by Jean Delvare on IRC.
<greg@kroah.com>
Driver class: remove possible oops
This happens when the device associated with a class device goes away before
the class does.
<hannal@us.ibm.com>
[PATCH] QIC-02 tape drive hookup to classes in sysfs
Here is a patch to hook up the qic02 tape device to have class
support in sysfs. I have verified it compiles. I do not have access to
the hardware to test. Could someone who does please verify?
From the file:
* This is a driver for the Wangtek 5150 tape drive with
* a QIC-02 controller for ISA-PC type computers.
* Hopefully it will work with other QIC-02 tape drives as well.
<hannal@us.ibm.com>
[PATCH] add class support to floppy tape driver zftape-init.c
Here is a patch to add class support to zftape-init.c:
MODULE_DESCRIPTION(ZFTAPE_VERSION " - "
"VFS interface for the Linux floppy tape driver. "
"Support for QIC-113 compatible volume table "
"and builtin compression (lzrw3 algorithm)");
I have verified it compiles but do not have the hardware to test it.
<akpm@osdl.org>
[PATCH] Fix scsi_transport_spi.c for gcc-2.95.3
Work around the gcc-2.95 token pasting bug.
<uwe.koziolek@gmx.net>
[libata] Add driver for SiS 964/180 SATA.
<jgarzik@redhat.com>
[libata sata_sis] minor cleanups
<James.Bottomley@steeleye.com>
[PATCH] More domain validation fixes and additions
Following testing in more extreme situations, the following problems
turned up:
- The error handler can offline the device during DV (most particularly
true when transport parameters are undetectably mismatched). Fixed by
modifying the state model to allow this and then having DV set the
device back online for the retry.
- DV needs to be serialised. Fixed by introducing a per device
semaphore.
- Cosmetically, it's nice to trigger DV from userland, so added a
revalidate sysfs entry.
<kronos@kronoz.cjb.net>
[PATCH] Sysfs for framebuffer
the following patch (against 2.6.5-rc2) teaches fb to use class_simple.
With this patch udev will automagically create device nodes for each
framebuffer registered. Once all drivers are converted to
framebuffer_{alloc,release} we can switch to our own class.
This is what sysfs dir looks like:
notebook:~# tree /sys/class/graphics/
/sys/class/graphics/
`-- fb0
`-- dev
<jgarzik@redhat.com>
Remove mention of non-existent tulip.txt from Doc/netwrk/00-INDEX
<jgarzik@redhat.com>
[BK] ignore build-generated files in scripts/basic/ and drivers/md/
<jgarzik@redhat.com>
[MAINTAINERS] remove mention of defunct linux-via mailing list
Noticed by Adrian Bunk.
<jgarzik@redhat.com>
[libata] use new pci_dma_error() to check for pci_map_single() failure
<jgarzik@redhat.com>
[libata] use kmap_atomic() rather than kmap()
<jgarzik@redhat.com>
[libata ata_piix] do not disable SATA port on module unload
We were disabling the SATA port, but not enabling it on module load.
So, modprobe+rmmod+modprobe would fail.
<jgarzik@redhat.com>
[libata ata_piix] clean up combined mode handling
<jgarzik@redhat.com>
[libata ata_piix] fix combined mode device detection
SATA port detection should not have assumed that a single SATA port
mapped to a single struct ata_port. Combined mode breaks this
assumption.
Change code to simply detect if one or more devices are present
on the struct ata_port, which is what we really wanted to do.
<jgarzik@redhat.com>
[libata sata_promise] check for PATA port on PDC20375
We don't handle it yet, but this prints out a message in its presence,
permitting verification of the check and informing users why their
PATA device is not recognized.
<jgarzik@redhat.com>
[libata] set up some of the per-command data beforehand
The data transfer mode and the set of read/write commands we generate
during normal operation remains constant until we change the data
transfer mode.
This removes a series of branches in the read/write fast path,
and in general cleans up that particular spot of code.
<jgarzik@redhat.com>
[libata] consolidate data transfer mode handling
The various ways you can send data to/from your ATA device is
known as the ATA taskfile protocol: PIO single sector, PIO
multiple sector, DMA, DMA TCQ, DMA NCQ, ...
Prior to this change, the data direction (read/write) was encoded
implicitly into the ATA_PROT_xxx value itself. This increased
complexity in some areas, and inhibited flexibility in others.
This change separates data direction from taskfile protocol, and also
moves the data direction flag (ATA_QCFLAG_WRITE) down to a lower
level (ATA_TFLAG_WRITE).
<jgarzik@redhat.com>
[ata] move some generic stuff linux/libata.h -> linux/ata.h
struct ata_taskfile is generic, and so far its flags (ATA_TFLAG_xxx)
Also, move ATA_PROT_xxx definitions into their own enum.
<hannal@us.ibm.com>
[PATCH] added class support to stallion.c
Here is a patch to add class support to the Stallion multiport
serial driver.
<hannal@us.ibm.com>
[PATCH] added class support to istallion.c
Here is a patch to add class support to the Stallion Intelligent multiport
serial driver.
<khali@linux-fr.org>
[PATCH] I2C: Discard out-of-date comment in adm1021 driver
This simple patch discards an out-of-date comment in the adm1021 driver.
I've done the same in our CVS repository where many more drivers were
affected.
I agree it's not very important, but I prefer it to be done before any
driver with the error is used as a base to port a new driver, and the
misinformation spreads.
<khali@linux-fr.org>
[PATCH] I2C: initialize fan_mins in w83781d, asb100 and lm78
Quoting myself:
> While testing, I found a corner case that isn't handled properly. It
> doesn't seem to be handled by the lm78 and the asb100 either. Setting
> fanN_div before ever reading from the chip or setting fanN_min will
> make use of fanN_min while it was never initialized.
The following patch addesses the issue. Tested to work on my AS99127F
rev.1 (which means that only the changes to the w83781d driver were
actually tested). Testers welcome.
<mail@gude.info>
[PATCH] USB: FTDI 232BM "USB-RS232 OptoBridge"
we (the german company Gude Analog und Digitalsysteme GmbH,
http://www.gude.info) have manufactored a USB<->RS232 adapter with
galvanic isolated RS232 Interface. Data is transmitted by optical
signals only.
The Product's name is "USB-RS232 OptoBridge".
We used the FTDI 233BM Chip with PID 0xE889 (VID 0x0403).
The Product will be released this Cebit 2004.
Could you please extend the ftdi_sio code with this PID.
You find a .diff file attached which I have tested with kernel 2.6.4
At http://ftdi-usb-sio.sourceforge.net/ I saw that you provide a patch
for 2.4.x kernels. Will our PID also find it's way in this back-ported
driver patch?
In the future (in the next 10 month), our company will have some more
Products using the FTDI Chip. The PID's FTDI already allocated for us
are: E888 to E88F and E808 to E80F
Thank you very much,
Martin Bachem
<mikal@stillhq.com>
[PATCH] USB: kernel-doc comment tweak
Correct kernel-doc comment with incorrect parameters documented
<david-b@pacbell.net>
[PATCH] USB: gadget zero does endpoint autoconfig
Here's where all those preceding autoconfig patches start
to fit together: one gadget driver gets rid of almost all
the controller-specific #ifdeffery.
Two of the other gadget drivers can do the same thing,
and just as easily: file storage, and serial. (I'll
hope their maintainers do those changes though.)
The "ether.c" gadget driver is a lot more complicated to
do this way since it has to cope with some differences
by switching to alternate protocols (CDC Ethernet vs
a subset) and soon be able to handle RNDIS. So that'll
be a while yet.
Gadget Zero learns to autoconfigure.
- Gets rid of remaining controller-specific #ifdeffery. Now
hardware choices can be made at run time too (not just
compile time).
- Simplifies its use of the "DEBUG" CPP symbol.
- Force device to report itself consistently as self-powered.
<petkan@nucleusys.com>
[PATCH] USB: rtl8150 update
adds two more vid/did and better packet error statistics. Link
detection also has been added.
<jgarzik@redhat.com>
[libata] pci_dma_error() was renamed to pci_dma_mapping_error()
<jgarzik@redhat.com>
[libata] reduce diff with 2.4 libata backport
<jgarzik@redhat.com>
[libata] use scsi host lock
In 2.4 we release io_request_lock and take our own per-host lock,
in the ->queuecommand() hook. In 2.6, the SCSI layer provides a
useful to simply use the lock we already have, via scsi_assign_lock().
<erik@rigtorp.com>
[PATCH] USB: new cypress thermometer driver
<greg@kroah.com>
[PATCH] USB: add cytherm driver to the build
<david-b@pacbell.net>
[PATCH] USB: USB gadgets can autoconfigure endpoints
This adds some code that gadget drivers can call from
driver initialization, to simplify the "configure against
this hardware" step.
Add endpoint autoconfiguration for gadget drivers.
Endpoint selection is currently being done with conditional compilation.
That doesn't look nice, but more importantly it doesn't work well with
the model that some distributions won't be custom-matched to hardware.
Say, a PDA distro running on iPaq (pxa2xx_udc) or Axim (mq11xx_udc).
This code just makes it easier for drivers to match to hardware at
run-time. It's a convenience function for something they could have
been doing already, but weren't.
<jgarzik@redhat.com>
[libata] documentation, and a couple tiny cleanups
Add more per-function source code documentation. Some of this stuff
is esoteric ATA crapola, and definitely needed to be documented.
Also, two tiny cleanups spotted while documenting:
* kill unused arg from internal function ata_dev_try_classify()
* kill unused return value from ata_dev_id_string()
<stern@rowland.harvard.edu>
[PATCH] USB: Improve core/config.c error messages
This patch improves error reporting in the configuration parsing routines.
It also adds a few extra minor tweaks.
#include linux/config.h and make the usual DEBUG settings
available.
Use the driver-model dev_xxx() macros for log output.
Be much more explicit about the nature of errors, including
configuration, interface, and altsetting numbers where
appropriate.
Log fatal problems as errors, non-fatal ones as warnings.
Remove a #define'd constant that is already set in linux/usb.h.
Fix some variables declared as pointer to char that really
should be pointers to unsigned char.
Replace a whole bunch of "out-of-memory" error messages with
a single message.
Wrap source lines that are longer than 80 columns (but not
log output lines!).
Clean up the logic for detecting errors when retrieving a
configuration descriptor.
Apart from the log messages themselves, this introduces no functional
changes.
<stern@rowland.harvard.edu>
[PATCH] USB: Code improvements for core/config.c
This patch makes some improvements to the code in config.c.
Create a subroutine to handle the repeated task of skipping
forward to the next descriptor of a certain type.
Remove some fairly useless debugging messages (they could
never even have been enabled in the pre-as221 code).
Verify that endpoint descriptors don't have an address
equal to 0 (as well as not being above 15).
Rename some local variables so they are a little more
consistent and meaningful.
Despite all the changes, the functionality should remain the same.
Please apply.
<david-b@pacbell.net>
[PATCH] USB: fix osdl bugid 481 (USB boot messages)
Some boot-time messages were obnoxiously long because
they used "old-style" diagnostics.
OSDL bugid 481
Get rid of most remaining "old style" diagnostics from usbcore.
Most messages use driver model style diagnostics. Messages that
don't have an associated device use the standard kernel printk
wrappers and label themselves as from "usbcore". (Except that
there's no such wrapper for KERN_ERR.)
This doesn't touch usbfs, "config.c" (Alan's patches do this), or
usb_reset_device() (needs a more substantial overhaul). Or any
other USB drivers (notably HID).
<david-b@pacbell.net>
[PATCH] USB: fix osdl bugid 2006 (timer init and fault paths)
Need to initialize timers a bit earlier to handle
certain initialization faults.
OSDL bug 2006
Need to initialize some timers a bit earlier to clean up safely
after very early init HCD failures.
Those early init faults were needlessly mysterious since they
didn't emit diagnostics except at HCD discretion.
<stern@rowland.harvard.edu>
[PATCH] USB: Unusual_devs update
On Tue, 16 Mar 2004, John Katzmaier wrote:
> Hi,
>
> Just wanted to let you know that when using my Panasonic PV-SD4090 digital
> camera with kernel 2.6.3, I found this entry in my logs:
>
> Mar 16 21:43:27 rocket kernel: usb-storage: Vendor: Panasonic
> Mar 16 21:43:27 rocket kernel: usb-storage: Product: LS-120 Camera
> Mar 16 21:43:27 rocket kernel: usb-storage: This device (04da,0901,0109 S
00 P
> 00) has an unneeded Protocol entry in unusual_devs.h
> Mar 16 21:43:27 rocket kernel: Please send a copy of this message to
> <linux-usb-devel@lists.sourceforge.net>
>
> I thought it might be best to follow its instructions and so I did.
>
> Thanks.
>
> -John Katzmaier
Thank you for sending this in. An update will appear in a forthcoming
kernel.
Greg, here's the patch.
<stern@rowland.harvard.edu>
[PATCH] USB: Regularize unusual_devs entries for Genesys Logic
I saw that you just added another unusual_devs.h entry submitted by
Henning Schild, for vendor ID 0x05e3. It turns out this is our old friend
Genesys Logic.
A recent message from Brad Campbell included a Windows driver file by
Genesys, and it included these lines:
USB\VID_05E3&PID_0700.DeviceDesc="USB Card Reader"
USB\VID_05E3&PID_0701.DeviceDesc="USB Optical Device"
USB\VID_05E3&PID_0702.DeviceDesc="USB Mass Storage Device"
Based on this information, we can clean up the 0x05e3 entries in
unusual_devs.h. This patch puts all three entries into a regularized
form.
<mikal@stillhq.com>
[PATCH] USB: kernel-doc comment tweak in vicam.c
Correct kernel-doc comment with incorrect parameters documented
<stevef@stevef95.austin.ibm.com>
fixes for fsx truncate/readahead/writebehind bug
<thoffman@arnor.net>
[PATCH] USB: fix race in ati_remote and small cleanup
On Thu, 2004-03-18 at 07:44, Oliver Neukum wrote:
> Hi,
>
> you must use set_current_state() only after usb_submit_urb() with
GFP_KERNEL
> as second argument, because it may sleep to allocate memory and is woken up
> resetting the state to TASK_RUNNING. In that case you had a busy polling
loop.
> Furthermore, always use wake_up unconditionally. It checkes anyway.
Thanks for reviewing this code, I'm new to Linux driver development and
more eyes on my work is a good thing. I've actually been working on
some more cleanups to the driver to fix the race between open and
disconnect, and was just about to send it in...
So, the attached patch against 2.6.5-rc1-mm1 includes a mutex to lock
the open/disconnect paths, modelled after the usb-skeleton driver. It
includes Oliver Neukum's fixes and other cleanups as well.
<stern@rowland.harvard.edu>
[PATCH] USB: Unusual_devs.h update
On Thu, 18 Mar 2004, Urban Borstnik wrote:
> The 2.6.4 and 2.6.3 (and possibly some earlier) kernels log the
> following message when I plug in a Lexar CompactFlash Reader:
>
> usb-storage: This device (05dc,b002,0113 S 06 P 50) has unneeded
> SubClass and Protocol entries in unusual_devs.h
> Please send a copy of this message to
<linux-usb-devel@lists.sourceforge.net>
>
> Otherwise it has been working very well with the devepment kernels on at
> least 4 machines ever since a trivial fix was introduced for this device
> to unusual_devs.c over a year ago.
>
> Best regards,
> Urban.
Thank you for sending this in. An update will appear soon.
<oliver@neukum.org>
[PATCH] USB: race condition in open of w9968cf
there's a race in how open handles multiple openers.
You implement exclusive opening and wait for close
in case of further openers. However if there are more than one
waiter, only one of them must be allowed to proceed.
<stern@rowland.harvard.edu>
[PATCH] USB: Don't trust raw descriptor length in devioc.
This is a very minor point, unlikely ever to come up. But just in case...
It's conceivable that a device might transmit different values for a
configuration descriptor's wTotalLength the first time we ask for it (in
order to get the length) and the second time (to get the entire
descriptor). Should that improbable event occur, the rawdescriptor buffer
could be allocated using a size that's smaller than the length recorded in
the rawdescriptor itself. This patch protects devio.c against such a
problem.
If you feel this sequence of events is too unlikely to worry about, then
don't bother to apply the patch.
<stern@rowland.harvard.edu>
[PATCH] USB: UHCI: Do short packet detection correctly
This patch makes some simple changes to the way the UHCI driver does short
packet detection. The current implementation is incorrect in several
ways:
The Short-Packet-Detect flag is set for OUT transfers, which
yields undefined behavior according to the UHCI spec.
It's not set for URBs with URB_SHORT_NOT_OK, which is just the
opposite of what we want! Those are the ones where short packets
do matter.
It is set for the last packet in a transfer, which causes an
unnecessary pause in the data flow (except of course that the
pause _is_ necessary when URB_SHORT_NOT_OK is set).
The patch also implements the URB_NO_INTERRUPT flag for bulk transfers,
which can help improve system performance by reducing interrupt overhead.
<stern@rowland.harvard.edu>
[PATCH] USB: UHCI: Improved handling of short control transfers
This patch simplies the way the UHCI driver handles short control
transfers. When a transfer is short the HC will stop handling that
endpoint, and it's necessary to get it going again so that the status
stage of the control transfer can take place. Currently the driver does
this by allocating a new QH for the transfer and setting its element
pointer to point at the final status TD. The old QH is recycled. But
it's not necessary to go to all that trouble; the element pointer in the
original QH can be updated directly.
Normally the element pointer is supposed to be owned by the HC, and it's
not safe to just change its value since the HC may overwrite it at any
time. But when a transfer is stopped because of a short packet, the
current TD is marked inactive and the HC will not update the element
pointer. To write an unchanged pointer value back to memory would be a
waste of PCI bus cycles. Now the UHCI spec doesn't say explicitly that an
HC _can't_ do this, but I've tested both Intel and VIA hardware and
neither of them does.
As a side effect of this change, some of the code for removing QHs can be
eliminated.
<stern@rowland.harvard.edu>
[PATCH] USB: UHCI: Get rid of excessive spinlocks
This patch introduces a major simplification into the UHCI driver by
replacing its multiple spinlocks with a single one. The protected area of
code is slightly larger and there's more possibilities for contention on
an SMP system, but I think that shouldn't be a problem. Stephen Hemminger
has been kind enough to test this on his SMP computer and he hasn't
encountered any difficulties.
<oliver@neukum.org>
[PATCH] USB: fix error paths in kobil_sct
some error codes are incorrect and there's an URB leak in an error path.
<arjanv@redhat.com>
[PATCH] USB: usb hiddev stack usage patch
Patch below fixes some obscenely high stack uage;
struct hiddev_usage_ref_multi is well over 4Kb in size so really doesn't
belong on the stack.
<davidm@tiger.hpl.hp.com>
ia64: Patch by Stephane Eranian: remove irq_stat from cpuinfo_ia64.
irq_stat isn't needed anymore since its members got rolled into
thread_info.preempt_count.
<jgarzik@redhat.com>
[libata sata_promise] minor initialization updates
* remove incorrect PATA port check
* enable undocumented bit 13 in flash control register,
because the Promise driver does so.
* wait 10 ms after setting TBG mode, for the same reason.
<jgarzik@redhat.com>
[libata] clean up command queue/submit path a bit
This change is part of a series that compartmentalizes and consolidates
ATA taskfile submission.
Here, the device-location-related checks are moved out of the
->queuecommand()
hook and into an inline helper function.
<jgarzik@redhat.com>
[libata] more command queue path cleanup
A new helper ata_scsi_xlat_possible(), and the command queue path
gets a bit more compact.
As side effects we kill the 'cmd_size' argument from two functions,
and mark ata_scsi_rw_queue() as static, as its only needed
in libata-scsi.c.
<jgarzik@redhat.com>
[libata] more cmd queue path cleanups
Final part in tonight's series of changes to clean up the
command queueing path.
The simulate-ATA-over-SCSI code is moved to a new function,
ata_scsi_simulate(), and ata_scsi_rw_queue() is renamed to
ata_scsi_translate(). With the SCSI CDB debugging dump function
also moved into its own function, the queue-command path is now
nice, compact, and readable.
<patrick.boettcher@desy.de>
[PATCH] USB: fix bug in usb-skeleton.c
<oliver@neukum.org>
[PATCH] USB: fix DMA to stack in ftdi driver
this driver is doing DMA to the stack. Here's the obvious fix.
<oliver@neukum.org>
[PATCH] USB: cleanup of st5481
you are using __devinit which must not be used with USB drivers,
in addition you are using some false GFP values and fail to check
some error codes.
- check for unlink due to removal of controller
- correct GFP values
- no __devinit in USB
<oliver@neukum.org>
[PATCH] USB: fix typo in previous patch
I screwed up. This corrects it.
<oliver@neukum.org>
[PATCH] USB: fix hfc_usb sleeping in irq
you are using GFP_KERNEL in irq and __devinit with hotpluggable code.
- use proper GFP flags
- kill __devinit
<mochel@digitalimplant.org>
[PATCH] USB: Fix drivers/usb/net/Kconfig
This allows the pegasus driver to actually be seen as a config option.
Apparently it's not that popular, though I have confirmed that it still
works on at least the netgear fv101.
<arjanv@redhat.com>
[PATCH] USB: fix race in whiteheat serial driver
Patch below fixes an obvious race in the whiteheat usb serial driver...
<david-b@pacbell.net>
[PATCH] USB: define USB feature bit indices
This patch provides standard symbols for the various USB
device and endpoint feature bits, so that drivers can
use symbolic names for them. It also changes the code
relating to endpoint halts so it uses those symbols.
<david-b@pacbell.net>
[PATCH] USB: usbnet, minor probe() fault fix
Some hardware had the poor taste to misbehave during probe(),
which turned up a minor bug. This fixes it: don't try to
free a network device that hasn't been registerd.
<david-b@pacbell.net>
[PATCH] USB: g_ether does endpoint autoconfig too
Here's an update for the Ethernet gadget that corresponds
to the earlier one for Gadget Zero ... it gets rid of almost
all the remaining controller-specific #ifdefs in this driver.
(And also lets the driver initialize using "dummy_hcd".)
This is a significant step towards doing hardware-specific
configuration at run time (or at least init-time) rather
than compile time, but other patches will be needed to take
it the rest of the way there. (Especially considering the
RNDIS support...) The runtime footprint of the driver shrank
a bit, mostly because things moved into the init section.
<mroos@linux.ee>
[PATCH] USB: fix whiteheat USB serial compile failure on PPC
> Bah, looks like PPC doesn't ever define CMSPAR :(
>
> How about adding something like:
> #ifndef CMSPAR
> #define CMSPAR 0
> #endif
> To the beginning of the driver like the cdc-acm.c driver does? If that
> works, care to send me a patch?
Yes, it compiles.
<greg@kroah.com>
USB: mark pwc driver as broken, as it is.
And the maintainer doesn't seem to want to fix it :(
<stern@rowland.harvard.edu>
[PATCH] USB: Add dummy_hcd to the main kernel
This is a resubmission of as225, together with appropriate changes for the
g_serial driver. David Brownell's latest g_ether update makes it
unnecessary to change that file or gadget_chips.h.
dummy_hcd is simultaneously a host controller driver and a device
controller driver. It creates a simulated HC together with a simulated
UDC plugged into it. Gadget drivers can run under the simulated UDC and
will appear as regular USB devices on the simulated HC. The simulation is
reasonably (although not totally) realistic.
It's a wonderful tool for testing and developing gadget drivers without
the need for lots of additional hardware: Both the host driver and the
gadget driver can run on the same computer. It's been available for quite
some time in David's gadget-2.6 tree and it works well. I couldn't have
gotten the file-storage gadget running in any reasonable length of time
without it.
<info@gudeads.com>
[PATCH] USB: more ftdi_sio ids
<greg@kroah.com>
USB: ftdi_sio merge fixups.
<coreyed@linxtechnologies.com>
[PATCH] USB: add ftdi_sio product ids
<greg@kroah.com>
USB: fix compiler warning in whiteheat driver.
<khali@linux-fr.org>
[PATCH] I2C: adm1021 (probably) does something VERY,VERY BAD
Quoting myself:
> 3* Drop adm1021's limit init. This was already done in the 2.4 driver
> and should have been done in 2.6 as well.
Here is a patch that does that. It also prevents bit 7 (and unused bits)
of configuration register from being reset, as was discussed before:
http://archives.andrew.net.au/lm-sensors/msg04593.html
That second part needs to be backported to the 2.4 driver, and I will do
so.
Additionally, we get rid of a useless label.
The patch is untested (I don't own any supported chip) but quite
straightforward IMHO.
<khali@linux-fr.org>
[PATCH] I2C: Setting w83627hf fan_div preserves fan_min
Here is a patch that updates the w83627hf driver in the exact same way I
did recently for the w83781d driver. There were two problems:
1* Fan divisor storing code was ugly, badly ripped from the 2.4 w83627hf
driver and/or the 2.6 w83781d driver.
2* Setting fan divisors wouldn't preserve fan mins.
Exactly the same as w83781d:
http://archives.andrew.net.au/lm-sensors/msg06952.html
http://archives.andrew.net.au/lm-sensors/msg07008.html
No surprise since the w83627hf driver is a fork of the w83781d driver.
Since the two drivers are strongly similar, I took the code directly
from the updated w83781d driver. I cannot test the w83627hf driver
(testers welcome BTW) but this makes me feel confident that the code is
correct.
To make it clear, this single patch is the w83627f equivalent of the
three patches I submitted for the w83781d:
* Cleanup
* Refactoring
* Setting fan_div preserves fan_min
All in one (much better looking BTW).
<romain@lievin.net>
[PATCH] tipar char driver (divide by zero)
A patch about the tipar.c char driver has been sent on lkml by Sebastien
Bourdeau. It fixes a divide-by-zero error when we try to read/write data
after setting the timeout to 0.
<dsaxena@plexity.net>
[PATCH] IXP425 -> IXP4XX conversion for USB-gadget
The 2.6 code for Intel's IXP4xx NPU line has been updated to
remove all references to IXP42x or IXP425 and replace it
with IXP4XX, including config options and file names. This
patch updates the USB-gadget pxa-udc driver with these changes.
<david-b@pacbell.net>
[PATCH] USB: ohci misc updates
Mostly from Benjamin Herrenschmidt:
- prevent usbcore from asking the HCD root hub code
to read registers on one more suspend path (some
hardware gets upset in those cases);
- try handling a "device died" cleanup case better
- add some wmb() calls in spots that could matter
on some hardware
<stevef@stevef95.austin.ibm.com>
clean up compiler warnings
<stern@rowland.harvard.edu>
[PATCH] USB: Altsetting update for USB input drivers
This patch continues the update process for the cur_altsetting change.
The drivers in usb/input were all in good shape and needed only minimal
changes.
<trini@kernel.crashing.org>
PPC32: Remove an unneeded include in arch/ppc/boot/
<trini@kernel.crashing.org>
PPC32: Add more useful information to the oops output.
<trini@kernel.crashing.org>
PPC32: Fix two typos in arch/ppc/boot/
From: Arthur Othieno <a.othieno@bluewin.ch>
<jgarzik@redhat.com>
[libata] more documentation
libata-scsi.c should now be fully documented.
<greg@kroah.com>
PCI: add ability to access pci extended config space for PCI Express devices
Patch originally written by Intel, cleaned up and made sane by
Matthew Wilcox <willy@debian.org> and then tweaked a bit more by me.
From Matt's original email:
- Add cfg_size to struct pci_dev.
- Use it in sysfs and procfs.
- Introduce pci_find_ext_capability() for finding extended capabilities.
- Change the PCI_X_STATUS defines to match the spec (mea culpa there).
- Add defines for the extended capabilities.
<dlsy@snoqualmie.dp.intel.com>
[PATCH] PCI: Updates for PCI Express hot-plug driver
<willy@debian.org>
[PATCH] PCI Hotplug: Don't up() twice in acpiphp
On the error path, we currently try to up() a semaphore twice.
There was also a typo in an error message.
<willy@debian.org>
[PATCH] PCI Hotplug: Rewrite acpiphp detect_used_resource
There are two unrelated problems in acpiphp that are fixed by this patch.
First, acpiphp can be a module, so it is unsafe to probe the BARs of each
device while it initialises -- the device may be active at the time.
Second, it does not know about PCI-PCI bridge registers and so it reads
garbage for the last 4 registers of the PCI-PCI bridge card and doesn't
take into account the ranges that are forwarded by the bridge.
This patch avoids all that by using the struct resources embedded in
the pci_dev. Note that we no longer need to recurse as all the devices
on the other side of a PCI-PCI bridge have their resources entirely
contained within the PCI-PCI bridge's ranges.
<jgarzik@redhat.com>
[libata sata_promise] better locking and error handling
* Prefer spin_lock() to spin_lock_irq() in interrupt handler
* Reset each port, before probing the SATA phy
* Reset port when every time an error occurs
<jgarzik@redhat.com>
[libata] fix bug with READ(6) and WRITE(6) SCSI commands
Must set the LBA bit on all transfers, not just {read,write}{10,16}
scsi commands.
<jgarzik@redhat.com>
[libata] remove synchronize-cache dead code
Just a placeholder, and now that a better way to do this is coming,
we don't even need the [unused] placeholder anymore.
<jbarnes@sgi.com>
[PATCH] ia64: implement SN2 version of dma_mapping_error()
On sn2, dma_mapping_error is trivial. pci_map_single was already returning
0
in case of failure (0 is an invalid DMA address on sn2), so make
dma_mapping_error check for that.
<jbarnes@sgi.com>
[PATCH] ia64: only scan SN2 PCI busses that exist
sn_pci_init was unconditionally scanning 255 PCI busses, even though
only a few are actually present on most systems. This patch adds a
check to make sure a given bus exists before doing the scan, which
saves a little memory and also makes /sys/devices reflect reality a
bit more closely.
<akpm@osdl.org>
[PATCH] stack reduction: aic7xxx_old
From: Arjan van de Ven <arjanv@redhat.com>
aic7xxx_old: constant array of PCI ID's can be static since it's read only
<mort@wildopensource.com>
[PATCH] Update FC transport attributes API
This patch brings the FC transport attributes up to date with the SPI
attributes API.
The only major change I made was to separate read-only attributes
from read-write attributes.
<mort@wildopensource.com>
[PATCH] Add FC transport attributes support to qla2xxx
Here is a patch that adds FC transport attributes to the qla2xxx driver.
The patch should apply cleanly to a recent 2.6 kernel with the FC
attributes update that I just sent to linux-scsi.
<jejb@mulgrave.(none)>
MPT Fusion driver 3.01.03 update
From: "Moore, Eric Dean" <Emoore@lsil.com>
Changelog for mpt version 3.01.03:
(1) Fix fifo memory allocation under 64bit systems
by merging 3 seperate memory allocations into one call.
Before this fix, it was possible that these seperate
pci_alloc_consistent() calls were crossing the 4GB
hardware boundary.
Delete the MPTBASE_MEM_ALLOC_FIFO_FIX logic.
Backout recent ak@muc.de workaround.
(2) Replace wrappers for CHIPREG_XXX with defines;
per request from Jeff Garzik [jgarzik@pobox.com]
(3) Remove support for FC909.
(4) Remove PortIo modules parameter.
(5) Move procmpt_destroy function before pci_unregister_driver,
as the memory allocated for the proc was not being deallocated.
(6) Remove mptscshi_reset_timeouts function. The timer was
already expired when mod_timer is called.
(7) Fix small bug in slave_destroy, which could prevent domain
validation on hidden drive in a RAID volume.
----------------------------------------------------------------------
Changelog for mpt version 3.01.02:
(1) Andi Kleen[ak@suse.de]
put warning "Device (0:0:0) reported QUEUE_FULL!" into debug messages
(2) Alexander Stohr[Alexander.Stohr@gmx.de]
fix warnings from mptscsih_setup when driver isn't compiled as module
(3) Randy.Dunlap[rddunlap@osdl.org]
Remove unnecessary min/max macros and change calls to
use kernel.h macros instead.
<jejb@mulgrave.(none)>
ServeRAID ( ips ) 7.00.15
ith the completion of testing at Adaptec and IBM, the latest version of
the ServeRAID Linux device driver ( ips Version 7.00.15 )is now
available. Attached is the patches against the previous ServeRAID
releases. Basically, this is a convergence to a common ips driver code
base for the 2.4 and 2.6 kernels.
This driver is based on the driver currently in 2.6, so you while there
appears to be lots of changes to the 2.4 driver, the changes to the
current 2.6 driver are trivial ( the only changes are version number
changes and the addition of some new adapter ID's ). For 2.4, this was
primarily a testing effort to ensure that the 2.6 driver code was stable
when built for a 2.4 kernel.
<mort@wildopensource.com>
[PATCH] Fix template size calculation in transport attributes
This small patch fixes the template size calculation in
{spi,fc}_attach_transport().
<davem@nuts.davemloft.net>
[TG3]: Kill 'force' arg to tg3_phy_reset, it is always set.
<davem@nuts.davemloft.net>
[TG3]: At start of tg3_phy_copper_begin, force phy out of loopback mode.
<davem@nuts.davemloft.net>
[TG3]: Do not allow illegal ethtool advertisement bits.
<jgarzik@redhat.com>
[libata] back out duplicated upstream fix
We already fixed this bug locally, so fix up the automerge
by removing the upstream change.
<laforge@netfilter.org>
[NETFILTER]: Optimization of ip_conntrack_proto_tcp:tcp_packet()
A: Pablo Neira
D: This patch cleans up tcp_packet(). No semantical change, just juggling
D: code pieces.
<laforge@netfilter.org>
[NETFILTER]: Locking optimization in ip_conntrack_core
A: Pablo Neira
D: This patch puts tightens up a lock protected section in
D: ip_ct_refresh()
<laforge@netfilter.org>
[NETFILTER]: Cleanup conntrack helper API
A: Pablo Neira
D: This patch changes the conntrack helper API. Rather than having the
D: helper allocate an expect on the stack and then have the core
D: kmalloc and memcpy, it is now the job of a helper to call
D: ip_conntrack_expect_alloc()
<laforge@netfilter.org>
[NETFILTER]: Add nf_log handler, from Jozsef Kadlecsik.
<davem@nuts.davemloft.net>
[NETFILTER]: Missed these files in nf_log commit.
<laforge@netfilter.org>
[NETFILTER]: Add 'raw' table, from Jozsef Kadlecsik.
<david-b@pacbell.net>
[PATCH] USB; minor usbfs locking updates
These are "obvious" locking fixes: using the right lock
to protect interface claim/release (should be the driver
model bus lock, not BKL).
<david-b@pacbell.net>
[PATCH] USB: usb/core/config.c null pointers after kfree
Prevents an oops with some other patchsets.
Clear some pointers after the memory is kfreed, to avoid
making some other patch combinations oops.
<david-b@pacbell.net>
[PATCH] USB: ohci unlink tweaks
Minor unlink tweaks, including a case where SMP could oops
if it were abused, as if from 'usbtest' or 'stir4200'.
<david-b@pacbell.net>
[PATCH] USB Gadget: RNDIS/Ethernet Gadget Driver (1/2)
This patch adds the RNDIS message engine and kbuild/kconfig
support for it. This is currently labeled EXPERIMENTAL.
Patch contributed by Robert Schwebel, and developed with
support from Auerswald GmbH.
<david-b@pacbell.net>
[PATCH] USB Gadget: RNDIS/Ethernet Gadget Driver (2/2)
This updates the existing Ethernet gadget driver to
support an additional RNDIS configuration on all
current USB controllers that can support one.
It also includes a bit more work to address the complex
autoconfiguration of this driver. Needs testing on PXA.
Patch (mostly) contributed by Robert Schwebel, and developed
with support from Auerswald GmbH.
<david-b@pacbell.net>
[PATCH] USB: set_configuration locking cleanups
I've posted all these before, the only notable change is
treating that one gphoto2 case as warn-and-continue rather
than return-with-failure.
usb_set_configuration() cleanup
* Remove it from the USB kernel driver API. No drivers need it now,
and the sysadmin can change bConfigurationValue using sysfs (say,
when hotplugging an otherwise problematic device).
* Simpler/cleaner locking: caller must own dev->serialize.
* Access from usbfs now uses usb_reset_configuration() sometimes,
preventing sysfs thrash, and warns about some dangerous usage
(which gphoto2 and other programs may be relying on). (This is
from Alan Stern, but I morphed an error return into a warning.)
* Prevent a couple potential "no configuration" oopses. (Alan's?)
* Remove one broken call from usbcore, in the "device morphed" path
of usb_reset_device(). This should be more polite now, hanging
that one device rather than khubd.
<jgarzik@redhat.com>
[libata] fix broken delay
Due to rounding and HZ==100, sometimes delays would not occur for
the desired length of time, or even at all.
Fix call to schedule_timeout() to ensure we delay -at least- for
the correct amount of time.
<akpm@osdl.org>
[PATCH] USB: drivers/usb/gadget/epautoconf.c gcc-3.5 build fix
drivers/usb/gadget/epautoconf.c: In function `ep_matches':
drivers/usb/gadget/epautoconf.c:175: error: `typeof' applied to a bit-field
<pmarques@grupopie.com>
[PATCH] USB: ftdi_sio.c: not unlinking urb on ftdi_close
This patch fixes a bug in ftdi_sio.c where the driver wouldn't unlink the
read urb if the user application cleared the HUPCL flag on termios->c_cflag.
<Andries.Brouwer@cwi.nl>
[PATCH] USB Storage: datafab fix and unusual devices
datafab.c has an often-seen bug: the SCSI READ_CAPACITY command
does not need the number of sectors but the last sector.
I just tried the CF and SM parts of a 5-in-1 card reader.
The CF part works with US_PR_DATAFAB when the bug mentioned is fixed.
The SM part works with US_PR_SDDR55.
(Revision Number is 17.08 - that in case the 0000-ffff
should prove to be too optimistic.)
We still must discuss what setup to use for readers like this -
I have several of them - that require different drivers for
different LUNs. As it is now one has to compile usb-storage
twice, once with CONFIG_USB_STORAGE_DATAFAB defined and once
without, and remove one usb-storage.ko and insert the other
to go from CF to SM. (And that hangs with 2.6.4 so a reboot
is required..)
<davej@redhat.com>
[PATCH] USB: kill off CONFIG_USB_BRLVGER detritus.
This died a while ago, but lingers on in defconfigs.
<david-b@pacbell.net>
[PATCH] USB: RNDIS/Ethernet Gadget Driver comment changes
Whoops, I missed something. You should apply this patch too.
The RNDIS spec license agreement does NOT require tacking any
GPL-incompatible restrictions on the results of _using_ the
spec:
"... may be used solely for the purpose of implementing
the RNDIS protocol message set to interface with ..."
(the two cases identified in the text)
And that's all the implementation does -- end of story.
<marcel@holtmann.org>
[PATCH] USB: Rename the USB HID driver
> > I like to see this rename as soon as possible. So if nobody minds I send
> > a patch to LKML and ask Linus for inclusion.
>
> Go ahead, but also please patch all relevant documentation in the
> kernel.
the attached patch should do the renaming everywhere hid or hid.o was
mentioned. It also removes all references to *.o module names.
<alessandro.zummo@towertech.it>
[PATCH] USB: omninet patch
here's a small patch for omninet.c .
<khali@linux-fr.org>
[PATCH] I2C: Prevent misdetections in adm1021 driver
Yet another patch for the adm1021 chip driver. I refined the detection
code a bit in order to prevent chip misdetection. Some chips handled
by the adm1021 driver are hard to detect and identify (LM84 and
MAX1617) so we tend to accept any chip it the valid I2C address range
as one of these. It has caused much, much trouble already. See these
threads for example:
http://archives.andrew.net.au/lm-sensors/msg04448.html
http://archives.andrew.net.au/lm-sensors/msg04624.html
http://archives.andrew.net.au/lm-sensors/msg05560.html
http://archives.andrew.net.au/lm-sensors/msg05871.html
http://archives.andrew.net.au/lm-sensors/msg06754.html
http://archives.andrew.net.au/lm-sensors/msg07181.html
And this ticket:
http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=1434
So I thought it would be good to prevent this kind of problems if
possible, and read the 8 datasheets again in search for ways to refine
the detection method.
I changed it in sensors-detect already, and had positive feedback from
one user. I will also backport the changes to the driver to the 2.4
version we have in CVS.
What the patch does:
* Use unused bits of two more registers (configuration and conversion
rate) to reduce misdetections.
* Return with -ENODEV if the detection fails.
* Change the order in which we try to identify the chips. We better
finish with the LM84 and the MAX1617, in this order, because they are
harder to identify and are more likely to result in false positives.
* Refine LM84 detection. The LM84 has less features than the other
chips(chip cannot be stopped, conversion rate cannot be set, no low
limits) so it has extra unused bits.
* Do not intialize the chip if it was detected as an LM84. This one
cannot be stopped so why would we try to start it again? And as said
right before, conversion rate isn't changeable either.
Note that I couldn't test the changes on any supported chip since I
don't own any. Still I believe that they should be applied, since the
current code already broke one system and seriously harmed several
others. I believe it's not critical if it turns out that we reject
valid chips (which shouldn't happen if the datasheets are correct,
anyway). People will simply let us know and we'll be less restrictive.
In the meantime they can force the driver. That said, testers are
welcome, as usual.
<khali@linux-fr.org>
[PATCH] I2C: i2c documentation update (1/2)
Here is an update to my 2.4 to 2.6 i2c client porting guide. The changes
were inspired by the feedback I got with the drivers that have been
ported so far.
<khali@linux-fr.org>
[PATCH] I2C: i2c documentation update (2/2)
Here is a patch to Documentation/i2c/sysfs-interface. This is mostly my
intent to make the document more readable. There are also a few
incorrectnesses fixed, and some comments added.
<khali@linux-fr.org>
[PATCH] I2C: Incorrect memset in eeprom.c
Quoting Ralf Roesch:
> currently I'm only working with Linux MIPS 2.4 kernel,
> so it would be nice if you could forward the patch for 2.6.
OK, so here we are. Greg, this is the port to 2.6 of Ralf patch that
fixes an incorrect memset while initializing the eeprom driver. Please
apply.
<khali@linux-fr.org>
[PATCH] I2C: Discard pointless comment in via686a
The simple patch below discards a comment in via686a referencing a file
that doesn't belong to the Linux tree. Now that I tell people not to do
that in my porting guide, we better follow our own advice.
<jejb@mulgrave.(none)>
SCSI: Add noretry check to the error handler path
This still doesn't give us complete fast fail on
the eh path because we still get delayed to recover
the transport.
<davej@redhat.com>
[PATCH] USB: w9968cf driver misplaced ;
<david-b@pacbell.net>
[PATCH] USB: fix dvb-ttusb-budget driver due to set_configuration locking
cleanups
> Oops, you forgot to grep:
>
> CC [M] drivers/media/dvb/ttusb-dec/ttusb_dec.o
> drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c: In function
`ttusb_setup_interfaces':
> drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c:1011: warning: implicit
declaration of function `usb_set_configuration'
Well, when I did the grep that bug wasn't there; it
was just integrated on Feb 26!
> Care to send a patch to fix it up before Andrew gets grumpy with me for
> breaking his build? :)
The first part makes it use usb_reset_configuration() like
it did before ... I'm surprised this driver hasn't been
generating "it deadlocks during probe" reports.
The second part prints a diagnostic if the configuration
wasn't set right; the fix would use hotplug and sysfs.
<greg@kroah.com>
Cset exclude: jgarzik@redhat.com|ChangeSet|20040323051558|61282
<rddunlap@osdl.org>
[PATCH] PCI: add DMA_{64,32}BIT constants
On Tue, 23 Mar 2004 00:23:05 -0500 Jeff Garzik <jgarzik@pobox.com> wrote:
>>Yeah well... in the intervening time, somebody on IRC commented
>>
>>"so what is so PCI-specific about those constants?"
>>
>>They probably ought to be DMA_{32,64}BIT_MASK or somesuch.
Here's an updated patch, applies to 2.6.5-rc2-bk9.
I left the DMA_xxBIT_MASK defines in linux/pci.h, although
they aren't necessarily PCI-specific. Would we prefer to
have them in linux/dma-mapping.h ?
<jgarzik@redhat.com>
[libata sata_via] Fix detection of device 1
VIA hardware thinks port 1 (second port) is "SATA primary slave".
Since the hardware rarely configures SATA to present as slave devices,
we must pretend that the second hardware port (as the user sees it)
is the third port (as the VIA PCI config registers see it).
<stern@rowland.harvard.edu>
[PATCH] USB Gadget: Use configuration-buffer library in file-storage
This patch imports the config-buffer library into the file-storage gadget,
simplifying and decreasing the amount of code needed for assembling
configuration descriptors. It also changes the driver to remove any
pretense at bus-powered operation and to use the new DUALSPEED
configuration option. This is in line with recent changes made to other
gadget drivers.
<stern@rowland.harvard.edu>
[PATCH] USB Gadget: Use automatic endpoint selection in file-storage
This patch imports the endpoint auto-config library into the file-storage
gadget, simplifying the code needed for endpoint selection and removing
almost all dependencies on the controller type from the driver. It also
changes some log messages for reporting fatal problems from INFO to ERROR.
<stern@rowland.harvard.edu>
[PATCH] USB: Complete all URBs in UHCI when releasing the bus
This patch changes the UHCI driver's bus-release routine; now it will
correctly finish all pending but not-yet-completed URBs. This fixes a
reported bug, when trying to rmmod uhci-hcd while using a USB mouse under
X. Also, the patch changes a variable name from ...hs... to ...fs...
("high speed" -> "full speed") -- something I accidentally omitted in an
earlier patch.
<stern@rowland.harvard.edu>
[PATCH] USB Gadget: Rename the dummy_hcd's gadget
When David added an entry to the gadget_chips.h file for the dummy_hcd
driver, he mistakenly used the name "dummy_udc" rather than "dummy_hcd".
The mistake is understandable, since other controllers use "_udc" in their
names and it is illogical to put "_hcd" in a _device_ controller's name.
This patch updates the dummy_hcd driver and changes the gadget name to
agree with the gadget_chips.h entry.
<davem@nuts.davemloft.net>
[TG3]: Add missing 5704 BX workaround, and fix typo in autoneg fix.
<david-b@pacbell.net>
[PATCH] USB: RNDIS/Ethernet Gadget Driver .inf file
<david-b@pacbell.net>
[PATCH] USB: remove usb_interface.driver field
Remove usb_interface.driver, and along with it the "half bound" state
previously associated with drivers binding with claim() instead of probe().
This changes usb_driver_claim_interface() semantics slightly: drivers must
now be prepared to accept disconnect() callbacks.
Fixes more locking bugs, and a claim() oops that snuck in with a
recent patch.
<davem@nuts.davemloft.net>
[TG3]: Set GRC_MISC_CFG prescaler more safely.
<greg@kroah.com>
USB: remove "released" field from struct usb_interface as it is not needed.
<davem@nuts.davemloft.net>
[TG3]: Fix serdes cfg programming on 5704.
<davem@nuts.davemloft.net>
[TG3]: When link is down, set stats coalescing ticks to zero.
<davem@nuts.davemloft.net>
[TG3]: Wait a bit for BMSR/BMCR bits to settle in PHY setup.
<greg@kroah.com>
USB: clean up usb_get_dev() as it was written quite horribly.
<greg@kroah.com>
USB: add usb_get_intf() and usb_put_intf() functions as they will be needed.
<jejb@mulgrave.(none)>
SCSI: Updates to non-sector size completion calculations
From: Jens Axboe <axboe@suse.de>, Mike Christie <mikenc@us.ibm.com>
<rddunlap@osdl.org>
[PATCH] PCI: move DMA_nnBIT_MASK to linux/dma-mapping.h
<johnrose@austin.ibm.com>
[PATCH] PCI Hotplug: RPA PCI Hotplug - redundant free
Please commit the following patch, which removes a redundant call to a
cleanup function from an error path of the module init code.
<dsaxena@plexity.net>
[PATCH] PCI: Allow arch-specific pci_set_dma_mask and friends
The patch provides the ability for architectures to have custom
implementations of pci_set_dma_mask() and friends (dac_set_dma_mask
and set_consistent_dma_mask). The reason I need this is b/c I have
a chipset (Intel ARM IXP425) that has a broken PCI interface that
only allows PCI dma to/from the bottom 64MB of system memory. To get
around this limitation, I trap a custom dma-mapping implementation that
bounces buffers outside the 64MB window. At device discover time, my
custom platform_notify() function gets called and it sets the dma_mask
to (64MB-1) and in ARM's dma-mapping code, I check for dma_mask != 0xffffffff
and if that is true, I call the special bounce helpers. This works great
except that certain drivers (e100, ide-pci) call pci_set_dma_mask()
with 0xffffffff and the generic implementation only allows for the
architecture-defined pci_dma_supported() to return true or false. There
is no method for the architecture to tell the PCI layer "I can't set
the mask to 0xffffffff, but I can set it to this other value" and there
is no way to pass that back to the driver. What this means is that if
I have pci_set_dma_supported() return failure on full 32-bit DMA, the
driver will not initialize the card; however, if I return true,
pci_set_dma_mask() will set the dma mask to full 32-bits and I can no
longer trap and will have buffers that are not dma-able and cause
PCI master aborts. Both of those are not acceptable. IMHO, the
driver shouldn't care if the architecture has to bounce DMA outside of
64MB and since this is not something most architectures have to worry
about, the easiest way to get around the issue is by allowing custom
pci_set_dma_mask() for arches that need it but keeping the generic
implementation for those that do not. In my case, it simply returns
0 to the driver but keeps the device mask set to 64MB-1 so I can trap.
<lxiep@ltcfwd.linux.ibm.com>
[PATCH] kobject_set_name() doesn't allocate enough space
<ahaas@airmail.net>
[SPARC]: Add C99 initializers to Sparc frame buffer devices.
<rvinson@linuxbox.(none)>
Renaming pplus_common.c to hawk_common.c to match gt64260_common.c, etc,
plus minor
cleanups.
<shemminger@osdl.org>
[NET]: Mark lock_sock and release_sock as FASTCALL.
<davej@redhat.com>
[AGPGART] VIA GART driver can use the new generic AGPv3 masks.
<davej@redhat.com>
[AGPGART] Efficeon GART driver can use generic masking routine.
<davej@redhat.com>
[AGPGART] SiS 746 chipset also needs extra recovery time when changing mode.
<davej@redhat.com>
[AGPGART] Fix SiS workaround printk. This happens on multiple chipsets.
<mludvig@suse.cz>
[AF_KEY]: pfkey_send_new_mapping marks dest address incorrectly.
<davem@nuts.davemloft.net>
[TG3]: Verify link advertisement correctly on 10/100 only chips.
<jbarnes@sgi.com>
[PATCH] ia64: clean up pcibr_slot.c warnings
A few warnings crept into pcibr_slot.c that this patch takes care of.
- forward declare pcibr_slot_pwr so it can be used w/o warning
- fix argument passed to pcibr_slot_attach in pcibr_slot_enable
<jbarnes@sgi.com>
[PATCH] ia64: fix sn_serial warning
In my fixes to quiet the sn_serial driver, I made sn_debug_printf only
get used when the DEBUG define was turned on in the driver but forgot
to #ifdef out the function definition, causing an 'defined but not
used' warning. This patch fixes that.
<pfg@sgi.com>
[PATCH] ia64: small SN2 interface.c patch
Change the calls to link_path_walk() to path_walk(). link_path_walk()
doesn't initialze current->total_link_count and path_walk() does.
Without the initialization, path_walks start to fail when 40 sym links
have been followed.
<dlstevens@us.ibm.com>
[IPV4]: Fix IGMP version number and timer printing for procfs.
<davej@redhat.com>
[CPUFREQ] Various updates/fixes to the powernow-k8 comment header.
<shemminger@osdl.org>
[BRIDGE]: Allow non-root to inspect the status of a bridge.
<davem@nuts.davemloft.net>
[TG3]: All 5705 chips need PHY reset on link-down.
<shemminger@osdl.org>
[BRIDGE]: Lift ioctl limits on number of bridges/ports.
Get rid of some arbitrary API restrictions that limit the kernel
to 64 bridges and 256 ports.
Retain compatibility in GET_PORT_LIST, the existing bridge API
passes 0 for the third argument, and expects 256 entries.
Note: there still is limit of 256 ports due to STP, but this
shouldn't show up in the API, it needs to be handled by the
'add port to bridge ioctl'.
<shemminger@osdl.org>
[BRIDGE]: Correctly handle up to 256 ports per bridge.
Bridge code is limited to 256 ports per bridge because the Spanning
Tree Protocol has limit of one octet for port number. This code
fixes:
* bogus unlock in error path when port list is full.
* passes different error status for out of memory, vs
port list full.
* O(n) vs O(n^2) lookup for free port number
* since port and priority are both limited to one byte
don't store them as int's
* makes limit explicit in code
<davem@nuts.davemloft.net>
[TG3]: More PHY programming fixes.
- Break out advertisement register verification into
a function, tg3_copper_is_advertising_all.
- At device probe time, reset PHY if not Serdes
and ASF is not enabled.
- Add some missing necessary PHY init to PHY probe
code as well.
<davem@nuts.davemloft.net>
[TG3]: Bump driver version and reldate.
<davej@redhat.com>
[CPUFREQ] fix compilation of speedstep-lib with DEBUG set
<davej@redhat.com>
[CPUFREQ] powernow-k8 whitespace changes.
Trying to get the diffsize down between me & Pavel.
<stevef@stevef95.austin.ibm.com>
Add missing description about how to specify credentials file
<davej@redhat.com>
[AGPGART] Actually Call the SiS workaround on SiS 746 too.
<jbarnes@sgi.com>
[PATCH] ia64: bring ia64 nodes online properly
Andi's libnuma exposed the fact that we don't bring nodes online
properly as we discover them in ia64. Here's a quick patch to fix
that. Tested with Andi's numademo program; seems to work fine.
<davej@redhat.com>
[AGPGART] EM64T driver should only run when we have a supported CPU.
Otherwise we see strange things at boottime if we compile in all drivers,
like this..
agpgart: Unsupported Intel chipset (device id: 1a30)
agpgart: Detected an Intel i845 Chipset.
<davej@redhat.com>
[CPUFREQ] Step 1 of SMP support for powernow-k8.
Move lots of code to the cpu init routine from the detection routine.
Do some SMP sanity checks in the detection routine.
<davej@redhat.com>
[CPUFREQ] powernow-k8 SMP work part 2.
Introduce a per-cpu powernow_k8_data struct, and pass it around between all
the functions that need to know about it.
<david-b@pacbell.net>
[PATCH] USB: ehci updates: CONFIG_PCI, integrated TT
Generalize the driver a bit:
- PCI-specific handling is restricted to a small chunk of
init code. Non-PCI implementations are in the pipeline.
- Merge support from ARC International (Craig Nadler) for
their integrated root hub transaction translators (on PCI).
Other implementations should be similar.
<david-b@pacbell.net>
[PATCH] USB Gadget: ethernet/rndis gadget updates
This fixes an oops during "ifconfig usb0 down" after unplug
from a Windows box. It also shrinks the driver size to something
much more reasonable by leaving out debug messaging, and adds
a few missing newlines.
<mochel@digitalimplant.org>
[PATCH] I2C: Add ALi 1563 Device ID to pci_ids.h
<mochel@digitalimplant.org>
[PATCH] I2C: Add support for the ALi 1563 in the PCI IRQ routing code.
<mochel@digitalimplant.org>
[PATCH] I2C: Add ALi 1563 i2c driver
The i2c interface on the 1563 is totally different than on both the 1533
and the 1535. It supports i2c 2.0, and happens to be nearly identical to
the interface on the i810 chipsets.
<mochel@digitalimplant.org>
[PATCH] I2C: Fix check for DEBUG in i2c-ali1563
<david-b@pacbell.net>
[PATCH] USB: usbcore blinkenlights
The per-port LEDs on the most USB 2.0 hubs are programmable.
And the USB spec describes some ways to use them, blinking
to alert users about hardware (amber) or software (green)
problems.
This patch is the infrastructure for that blinking. And
if you should happen to "modprobe usbcore blinkenlights",
the LEDs will cycle through all the ports ... which is
not a USB-standard mode, but it can certainly handy be
handy as a system heartbeat visible across the room.
<stevef@stevef95.austin.ibm.com>
Invalidate readahead data properly when file closed, but other client
changed it on server
<rvinson@linuxbox.(none)>
Updating mcpn765 for 2.6
<James.Bottomley@steeleye.com>
[PATCH] sd_shutdown cannot be called when in state SDEV_DEL
sd_remove calls sd_shutdown to finish I/O to the disc. However, the
state model puts the device in SDEV_DEL before triggering the
sd_remove (which won't allow any further I/O at all).
Fix by making SDEV_CANCEL the intermediate state and only transitioning to
SDEV_DEL after calling device_del().
<wesolows@foobazco.org>
[SPARC32]: Fix wraparound bug in bitmap allocator
<davem@nuts.davemloft.net>
[TG3]: Print list of important probed capabilities at driver load.
<davem@nuts.davemloft.net>
[TG3]: Two PHY fixes.
- Do not probe PHY ID register if ASF firmware is running.
- Fix two errors in PCI subsys to PHY ID table.
<davem@nuts.davemloft.net>
[TG3]: Kill uninitialized var warning.
<davem@nuts.davemloft.net>
[TG3]: Reset fixes.
- Put more code into common area in tg3_chip_reset()
- Set GRC_MODE, even sanes host-stackup bit, after enabling
memory arbiter.
- After every core-clock reset, reprobe ASF enabling state.
<davem@nuts.davemloft.net>
[TG3]: Update driver version and release date.
<mashirle@us.ibm.com>
[IPV6]: Add MIBs counters in MLD.
<ebrower@usa.net>
[SPARC]: Add sysctl to control serial console power-off restrictions.
<davem@nuts.davemloft.net>
[SPARC64]: hugetlbpage.c needs module.h
<tony@com.rmk.(none)>
[ARM PATCH] 1777/1: Add TI OMAP support to ARM core files
Patch from Tony Lindgren
This patch updates the ARM Linux core files to add support for
Texas Instruments OMAP-1510, 1610, and 730 processors.
OMAP is an embedded ARM processor with integrated DSP.
OMAP-1610 has hardware support for USB OTG, which might be of interest
to Linux developers. OMAP-1610 could be easily be used as development
platform to add USB OTG support to Linux.
This patch is an updated version of an earlier patch 1767/1
with the dummy Kconfig added for OMAP as suggested by Russell King
here:
http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=1767/1
This patch is brought to you by various linux-omap developers.
<tony@com.rmk.(none)>
[ARM PATCH] 1780/1: Add TI OMAP support, include files
Patch from Tony Lindgren
This patch adds the include files for Texas Instruments OMAP-1510 and
1610 processors.
OMAP is an embedded ARM processor with integrated DSP.
OMAP-1610 has hardware support for USB OTG, which might be of interest
to Linux developers. OMAP-1610 could be easily be used as development
platform to add USB OTG support to Linux.
This patch is an updated version of patch 1768/1 with Russell King's
comments fixed. This patch requires patch 1777/1 applied.
This patch is brought to you by various linux-omap developers.
<tony@com.rmk.(none)>
[ARM PATCH] 1781/1: Add TI OMAP support, arch files
Patch from Tony Lindgren
This patch adds the arch files for Texas Instruments OMAP-1510 and
1610 processors.
OMAP is an embedded ARM processor with integrated DSP.
OMAP-1610 has hardware support for USB OTG, which might be of interest
to Linux developers. OMAP-1610 could be easily be used as development
platform to add USB OTG support to Linux.
This patch is an updated version of patch 1769/1 with Russell King's
comments fixed. This patch requires patch 1777/1 applied.
This patch is brought to you by various linux-omap developers.
<garloff@suse.de>
[PATCH] SCSI sense buffer size -> 96
some SCSI devices need more than 64bytes of sense buffer.
I know about one: The IBM MagStar tapes report the necessity to be
cleaned at bytes 70 and report 96 bytes in total.
Attached patch increases the sense buffer size to 96 bytes.
<jejb@mulgrave.(none)>
Fix scsi_device_get to allow NULL devices
Modification of patch from SLES-9
<willy@debian.org>
[PATCH] sym 2.1.18j
sym 2.1.18j:
- Add SPI transport attributes (James Bottomley)
- Use generic code to do Domain Validation (James Bottomley)
- Stop using scsi_to_pci_dma_dir() (Christoph Hellwig)
- Change some constants to their symbolic names (Grant Grundler)
- Handle a race between a postponed command completing and the EH retrying
it (James Bottomley)
- If the auto request sense fails, issue a device reset (James Bottomley)
<nico@org.rmk.(none)>
[ARM PATCH] 1782/1: discontigmem support for PXA chips
Patch from Nicolas Pitre
<nico@org.rmk.(none)>
[ARM PATCH] 1783/1: more PXA reg definitions
Patch from Nicolas Pitre
<marcel@holtmann.org>
[Bluetooth] Remove architecture specific compat ioctl's
The compat ioctl definitions are now maintained in a single place, so
it is no longer needed to keep the architecture specific defines. This
patch removes the leftover Bluetooth parts from x86_64 and sparc64.
<marcel@holtmann.org>
[Bluetooth] Fix broken HCI security filter
The HCI security filter is broken on 64-bit architectures and this patch
restores the version from 2.4, which is working perfect on 32-bit and
64-bit machines.
<marcel@holtmann.org>
[Bluetooth] Allocate hdev before device configuration
The hdev structure must be allocated before the device is configured and
before any interrupt is started.
<marcel@holtmann.org>
[Bluetooth] Add UART protocol id's for 3-Wire and H4DS
This patch adds the id's for the 3-Wire and H4DS UART transport protocols.
<ben-linux@org.rmk.(none)>
[ARM PATCH] 1788/1: SC2410 include/asm-arm/arch-s3c2410 [repost of 1778/1]
Patch from Ben Dooks
This patch is a repost of 1778/1 with the memory.h file fixed.
This patch contains all the necessary include files for
include/asm-arm/arch-s3c2410 for Samsing S3C2410 SoC CPU support.
The patch also includes the support headers for IPAQ H1940, Simtec BAST and
VR1000 board support.
<ben-linux@org.rmk.(none)>
[ARM PATCH] 1793/1: S3C2410 - arch/arm/mach-s3c2410 [ repost of 1790/1 ]
Patch from Ben Dooks
Core support for S3C2410 based machines
machine support for Simtec BAST, VR1000 and
IPAQ H1940
repost of 1790/1 with configuration definition fixed
<ben-linux@org.rmk.(none)>
[ARM PATCH] 1792/1: S3C2410 - arch/arm/boot [ fix for 1789/1 ]
Patch from Ben Dooks
arch/arm/boot support for S3C2410
support for boot (and debug) messages via EmbeddedICE (CP14)
comms registers.
fixed typos from 1789/1
<ben-linux@org.rmk.(none)>
[ARM PATCH] 1794/1: S3C2410 - arch/arm/kernel patches [ repost 1791/1 ]
Patch from Ben Dooks
arch/arm/kernel patch for S3C2410 support
- default configurations for S3C2410
- build changes for S3C2410
- IRQ support for kernel entry
- debug serial support
<rmk@flint.arm.linux.org.uk>
[ARM] Clean up formatting of s3c2410 help texts.
<davej@redhat.com>
[CPUFREQ] Transmeta longrun driver fix.
(From Stelian Pop)
Upon investigation, the reason is that trying to set the performance
to 80% in longrun_determine_freqs leaves the performance to 100%.
The performance level, at least on this particular model, can be lowered
only in 33% steps. And in order to put the performance to 66%, the
code should try to set the barrier to 70%.
The following patch does even more, it tries every value from 80%
to 10% in 10% steps, until it succeeds in lowering the performance.
I'm not sure this is the best way to do it but in any case,
it works for me (and should continue to work for everybody else).
<rmk@flint.arm.linux.org.uk>
[ARM] Fix silent build error caused by undefined symbol.
Current binutils silently ignores certain undefined symbols; this
cset fixes one such instance.
<davej@redhat.com>
[AGPGART] Previous AGPv3 SiS fixes broke AGPv2 users. Oops.
<schwab@suse.de>
[PATCH] ia64: Missing overflow check in mmap
Calling mmap with len == -1 was silently accepted. The test in the generic
code was fixed in July 2003, but the fix didn't make it into the ia64-
specific code.
<schwab@suse.de>
[PATCH] ia64: Missing include in hugetlbpage.c
This fixes a missing include file in arch/ia64/mm/hugetlbpage.c in 2.6.5.
module.h is needed for EXPORT_SYMBOL.
<rmk@flint.arm.linux.org.uk>
[ARM] Add ecard_(request|release)_resources().
<petri.koistinen@fi.rmk.(none)>
[PATCH] update Compaq Personal Server URL
Patch from Petri T. Koistinen
Update of Compaq Personal Server URL.
<alex.williamson@hp.com>
[PATCH] ia64: setup max dma addr earlier on hp boxes
sba_iommu was setting up MAX_DMA_ADDRESS way too late to do any
good. This patch makes it get setup via platform_setup, so it's ready
for paging_init(). All pages should show up in zone DMA now. Against
latest 2.6.
<hugh@com.rmk.(none)>
[PATCH] make_coherent pgoff
Patch from Hugh Dickins
In wandering through the Linus 2.6 tree preparing for changeover of
i_mmap and i_mmap_shared to Rajesh's prio tree for object-based rmap...
I noticed that pgoff in make_coherent doesn't add up (plus, I think
we need to mask out the word "don't" in the comment further down).
2.4.25 looks equally wrong.
<mashirle@us.ibm.com>
[IPV6]: Provide ipv6 multicast/anycast addresses through netlink.
<manfred@colorfullife.com>
[NETLINK]: Split up netlink_unicast.
<davej@redhat.com>
[CPUFREQ] Fix up docbook parameters on x86 drivers.
From Michael Still <mikal@stillhq.com>
<davej@redhat.com>
[CPUFREQ] Grammar fix in p4-clockmod.c
Noted by Viktor Radnai.
<davej@redhat.com>
[CPUFREQ] Remove useless goto.
(Pavel Machek)
<davej@redhat.com>
[CPUFREQ] Indentation fix.
<rddunlap@osdl.org>
[NET]: Update networking config menu (v3)
Networking support/options and Networking drivers have been, uhm,
messy to navigate for some time now. BenH mentioned this
and I was already looking into options to clean it up.
This is a cleanup of Networking support/options and Networking Drivers.
It presents a more consistent interface and lists similar driver
groups and protocol groups closer together.
It also moves the IBMVETH driver so that it no longer breaks the
dependency tree, allowing other drivers (nearby in Kconfig file)
to be presented in a more linear manner.
<rvinson@linuxbox.(none)>
Merge bk://linux.bkbits.net/linux-2.5
into linuxbox.(none):/src/linux/ppc/linux-2.5/linux
<stevef@steveft21.ltcsamba>
Send NTCreateX with ATTR_POSIX if Linux/Unix extensions negotiated
with server. This allows files that differ only in case and
improves performance of file creation and file open to such servers
<sri@us.ibm.com>
[SCTP] Fix typo in entry name of the remove_proc_entry() call.
<davej@redhat.com>
[CPUFREQ] Kill off inlines in powernow-k8 driver.
Gcc should be smart enough to do this itself.
<davej@redhat.com>
[CPUFREQ] make powernow-k8 use batps from powernow data struct instead of
static struct.
<davej@redhat.com>
[CPUFREQ] Merge a bunch of extra powernow-k8 helpers.
<davej@redhat.com>
[CPUFREQ] Serialise fid/vid changes in powernow-k8 driver.
<davej@redhat.com>
[CPUFREQ] SMP fixes for powernow-k8's check_supported_cpu()
<davej@redhat.com>
[CPUFREQ] printk cleanup in powernow-k8's check_pst_table()
<davej@redhat.com>
[CPUFREQ] Add missing MSR define to fix the powernow-k8 compile.
<bcollins@debian.org>
[IEEE-1394] Sync IEEE-1394 to r1203
<davej@redhat.com>
[CPUFREQ] powernow-k8 header cleanups
remove unused defines, introduce some new ones, and generally cleanup.
<davej@redhat.com>
[CPUFREQ] fill out the powernow_k8_data table.
<davej@redhat.com>
[CPUFREQ] Use the new fill_powernow_table() to fill struct instead of doing
it inline.
<brazilnut@us.ibm.com>
[PATCH] pcnet32.c add support for 79C976
Please include this patch to add support for the 79C976 device to the
pcnet32 driver.
<brazilnut@us.ibm.com>
[PATCH] pcnet32 all printk under netif_msg
Please apply the following patch to 2.6.5.
All printk's are now done under netif_msg debug level tests.
<brazilnut@us.ibm.com>
[PATCH] pcnet32 correct name display
This displays the device name (eth%d) instead of the device type
when registering the interrupt handler.
<brazilnut@us.ibm.com>
[PATCH] pcnet32 add led blink capability
Please apply this patch to 2.6.5 to include the capability of blinking
the LED's for device identification. Ethtool -p support.
<davej@redhat.com>
[CPUFREQ] More SMP/preempt fixes, this time powernowk8_target()
Also some changes to use some helpers.
<jgarzik@redhat.com>
Remove unused compatibility-defines include wan/lmc/lmc_ver.h.
Noticed by Adrian Bunk.
<davej@redhat.com>
[CPUFREQ] Change powernow-k8 over to use its new KHz frequency helpers
<davej@redhat.com>
[CPUFREQ] Extra debugging foo.
<davej@redhat.com>
[CPUFREQ] Stuck pending bit is now checked in the init routine.
<rddunlap@osdl.org>
[PATCH] dgrs: add missing iounmaps
[resend]
Insert missing iounmap's.
From: Leana Ogasawara <ogasawara@osdl.org>
<rddunlap@osdl.org>
[PATCH] lmc header file not needed
From: Domen Puncer <domen@coderock.org>
<davej@redhat.com>
[CPUFREQ] numerous powernow-k8 cpu_init() fixes/cleanups.
<romieu@fr.zoreil.com>
[netdrvr r8169] DMA api resync.
<romieu@fr.zoreil.com>
[netdrvr r8169] ethtool driver info
Author: Krishnakumar R. <krishnakumar@naturesoft.net>
<romieu@fr.zoreil.com>
[netdrvr r8169] Barrier against compiler optimization.
<romieu@fr.zoreil.com>
[netdrvr r8169] DAC changes:
- Rx and Tx descriptors rings handled on 64 bit;
- enable DAC through use of CPlusCmd register (reserved bits apart, this is
similar to the 8139cp driver);
- use the higher 32 bits of addresses for the Rx/Tx buffers.
<romieu@fr.zoreil.com>
[netdrvr r8169] TX irq handler looping fix
If a few packets have been scheduled for Tx, it is possible to keep looping
in the Tx irq handler as soon as the irq for the first packet has been
received until the descriptor of the last packet has been sent (with
interrupts disabled btw).
<rddunlap@osdl.org>
[PATCH] remove magic '31' for netdev priv. alignment
[resend/rediff]
// linux-2.6.5
// remove magic number of '31' from net_device and private alignment;
<davej@redhat.com>
[CPUFREQ] ACPI support for powernow-k8.
We fall back on the legacy PSB table if the ACPI tables don't work out.
<pavel@ucw.cz>
[PATCH] Support newer revisions of broadcoms in b44.c
This adds support for newer revisions of the chips. The
b44_disable_ints at the beggining actually kills machine with newer
revision, but its removal has no ill effects.
<davej@redhat.com>
[CPUFREQ] Bump powernow-k8 revision.
<davej@redhat.com>
[CPUFREQ] As we're using ACPI in powernow-k8 now, we need ACPI to initialise
first.
<davej@redhat.com>
[CPUFREQ] Fix %x printk's in powernow-k8.
These are hex values. Prefix them all with 0x
<jgarzik@redhat.com>
[netdrvr] Add S2IO 10gige network driver.
Contributed by Leonid Grossman @ S2IO
<jgarzik@redhat.com>
[netdrvr s2io] correct an incorrect cleanup I made
<muizelaar@rogers.com>
[PATCH] tc35815 cleanup
<daniel.ritz@gmx.ch>
[PATCH] netdev_priv for xirc2ps_cs, nmclan_cs
s/dev->priv/netdev_priv(dev)/ for xirc2ps_cs.c and nmclan_cs.c
xircom one is tested. against 2.6.4-bk
<jgarzik@redhat.com>
[net/fc iph5526] s/rx_dropped/tx_dropped/ in TX routines
Spotted by Denis Valesko(sp?).
Maybe one day we'll either kill this driver, or someone will fix it
up for the current SCSI API.
<jgarzik@redhat.com>
[netdrvr 8139cp] rearrange priv struct, add cacheline-align markers
suggested by Jes Sorensen.
<jgarzik@redhat.com>
[netdrvr s2io] NAPI build fixes
<jgarzik@redhat.com>
[netdrvr 8139cp] locking cleanups
* s/spin_lock_irq/spin_lock_irqsave/ where it was simple and
easy to verify.
* release spinlock earlier in interrupt routine.
<jgarzik@redhat.com>
[NET] define HAVE_NETDEV_PRIV back-compat hook
<jgarzik@redhat.com>
[netdrvr 8139cp] minor cleanups
* update version, copyright date
* remove unportable "pci_dev->irq < 2" check in ->probe
* don't use ioremap_nocache() without a real reason
<jgarzik@redhat.com>
[netdrvr 8139cp] use netdev_priv()
<jgarzik@redhat.com>
[netdrvr 8139cp] complete 64-bit DMA (PCI DAC) support
<jgarzik@redhat.com>
[netdrvr 8139cp] better dev->close() handling, and misc related stuff
* don't synchronize_irq() in cp_stop_hw(). when necessary, do so
in the callers.
* call synchronize_irq() in cp_close(), after releasing the spinlock.
* move netif_stop_queue() and netif_carrier_off() calls inside lock
* flush last interrupt status write, in cp_stop_hw()
* add unlikely() check for dev==NULL, first thing in the irq handler
<jgarzik@redhat.com>
[netdrvr natsemi] correct DP83816 IntrHoldoff register offset
Spotted by Manfred Spraul.
<scott.feldman@intel.com>
[PATCH] Update MAINTAINERS with new e100/e1000/ixgb maintainers
Jeff, Adding John/Ganesh/Ayyappan for e100/e100/ixgb in 2.6. Keeping
myself on for e100 for a couple more 2.6.x releases.
-scott
<akpm@osdl.org>
[PATCH] com20020-isa.c warning fix
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
drivers/net/arcnet/com20020-isa.c:188: warning: unused variable `dev'
drivers/net/arcnet/com20020-isa.c:189: warning: unused variable `lp'
<akpm@osdl.org>
[PATCH] s2io.h: gcc-3.5 build fix
In file included from drivers/net/s2io.c:68:
drivers/net/s2io.h: In function `readq':
drivers/net/s2io.h:757: error: invalid lvalue in assignment
drivers/net/s2io.h:758: error: invalid lvalue in assignment
<sri@us.ibm.com>
[SCTP] Update sctp_ulpevent structure to include assoc pointer and
only the receive specific fields of sctp_sndrcvinfo.
<sri@us.ibm.com>
[SCTP] Use id to ptr translation service in lib/idr.c to assign and
validate ids of associations.
This patch avoids the use of virt_addr_valid() to validate the address
of associations passed by the user. Currently the address of an
association is used as its id. virt_addr_valid doesn't work as
expected when PAGEALLOC debugging is enabled.
<davej@redhat.com>
[CPUFREQ] Stop preempt count from going negative.
Broken failure path spotted by Dominik Brodowski.
<marcel@holtmann.org>
[Bluetooth] Allocate the BCM203x URB buffer seperately
The buffer shares cachelines with other fields of the structure. On
architectures which require synchronisation before or after doing DMA
to or from a buffer, any access to such fields sharing cachelines can
corrupt the content of the buffer. The allocation primitives guarantee
that cachelines are not shared.
Noticed by Oliver Neukum <oliver@neukum.org>
<khawar.chaudhry@amd.com>
Update amd8111 net driver.
version 3.04 for 2.4 kernel:
+ 1. Added set_mac_address routine for bonding driver support.
+ 2. Tested the driver for bonding support
+ 3. Bug fix: Fixed mismach in actual receive buffer lenth and lenth
+ indicated to the h/w.
+ 4. Modified amd8111e_rx() routine to receive all the received packets
+ in the first interrupt.
+ 5. Bug fix: Corrected rx_errors reported in get_stats() function.
version 3.05 for 2.6 kernel:
+ 1. Added NAPI support
<jejb@mulgrave.(none)>
Fix SCSI cdrom disconnection race
This fixes
http://bugme.osdl.org/show_bug.cgi?id=2400
<davej@redhat.com>
[AGPGART] Fix SiS 746 again.
Turns out that this chipset won't work in AGPv3 mode with the generic AGPv3
routines.
*somehow*, it works in AGPv3 mode with AGPv2 aperture sizing etc. Very, very
strange.
Still, until we get some docs from SiS, some support is better than none.
<davej@redhat.com>
[AGPGART] Whitespace cleanup in sis-agp
use spaces instead of (borked) tabs.
<stevef@steveft21.ltcsamba>
Fix 20 second hang on some deletes of reopened file due to semaphore
conflict with vfs_delete on i_sem
<jejb@mulgrave.(none)>
Add missing header changes from SCSI cdrom disconnection fix
<trini@kernel.crashing.org>
PPC32: Change all #if FOO to #ifdef FOO
<trini@kernel.crashing.org>
PPC32: Two minor Carolina PReP fixes.
From Hollis Blanchard <hollisb@us.ibm.com>.
<dlsy@snoqualmie.dp.intel.com>
[PATCH] PCI Hotplug: Fix interpretation of 0/1 for MRL in SHPC & PCI-E
hot-plug
This patch contains fixes for interpretation of 0/1 for MRL
to match pcihpview, bus speed definition in shpchp_hpc.c etc.
<david-b@pacbell.net>
[PATCH] USB: retry some descriptor fetches
This helps Linux handle certain enumeration problems better,
by retrying most stalled descriptor fetches; on some devices,
those indicate temporary problems. This match makes at least
one such (old) device enumerate reliably.
<david-b@pacbell.net>
[PATCH] USB: fix xsane breakage, hangs on device scan at launch
Disable a usbfs disconnect() synchronization hack, which recently
started deadlocking because this routine is now called in a different
context.
It shouldn't be needed any longer now that usbcore shuts down endpoints
as part of driver unbinding. (Except maybe on UHCI, which will have
canceled but not necessarily completed all requests.)
<rml@ximian.com>
[PATCH] USB: add missing usb entries to sysfs
We have found in the course of hacking on HAL that some information that
is in /proc/bus/usb/devices is not in sysfs. It would be nice to rely
only on sysfs, so the attached patch adds three files to usb devices in
sysfs: devnum, maxChild, and version.
This patch is actually by David Zuethen, the HAL maintainer - I told him
I would clean it up and get it upstream.
<greg@kroah.com>
[PATCH] USB: fix up previous sysfs patch to actually compile...
<davej@redhat.com>
[CPUFREQ] Quieten powernow-k7 in the built-in case.
The other cpufreq drivers are quiet in the 'dont have hardware' case, so
this should follow suit.
<davej@redhat.com>
[CPUFREQ] Don't bother checking if we need workarounds if we don't support
powernow.
<khali@linux-fr.org>
[PATCH] I2C: Refactor swap_bytes in i2c chip drivers
> Ick, no, we should be using the proper kernel call for this, swab16(),
> right? Care to redo this patch to just fix the drivers and get rid of
> our duplicating of this function.
Oh, I didn't know such a function existed, sorry.
Here's a new patch, hope you like it. Tested to work on my as99127f, btw
(w83781d driver).
Documentation update follows (well, tomorrow it does).
<ben-linux@org.rmk.(none)>
[ARM PATCH] 1807/1: S3C2410 - onboard serial
Patch from Ben Dooks
Serial driver for S3C2410 on board UARTs. Re-post of 1796/1
Includes BAST driver to register on-board 16550s.
<trini@kernel.crashing.org>
PPC32: Assign an interrupt for the VME chip on PReP MVME* boards.
From Lutz Rossa <lrossa@web.de>.
<elf@com.rmk.(none)>
[ARM PATCH] 1806/1: Adding barrier() to show_stack () for proper backtracing
Patch from Marc Singer
As suggested by Russell, we add a barrier() before returning from
stack_trace(). This was helpful when diagnosing a problem with a
kernel transition to user-space where the problem was a lack of
floating point support in the kernel. Without this change, the
backtrace reported an error.
It is possible that this change has already been made. I don't see it
in any of the applied patches that I can read.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix ordering of machine class selection.
The machine class should be in alphabetical order. Swap ordering
of the recently added TI and S3C2410 entries to return it to this
ordering.
<shemminger@osdl.org>
[NET]: Use const args in eth_copy_and_sum and is_valid_ether_addr.
<James.Bottomley@steeleye.com>
[PATCH] SCSI: make DV check device capabilities
the SPI transport class DV should check the data we derive from the
inquiry to see if the device is capable of supporting wide/sync before
trying to validate the settings.
<mochel@digitalimplant.org>
[PATCH] I2C: class fixup for the ali1563 driver
<akpm@osdl.org>
[PATCH] I2C: i2c-ali1563.c section fix
ali1563_shutdown() is called from __init ali1563_probe() and hence cannot be
marked __init.
<greg@kroah.com>
USB: fix pl2303 handling of status bits.
Patch originally from Kevin Watkins <kw@cmu.edu>
<greg@kroah.com>
USB: fix empty write issue in pl2303 driver.
Patch originally from Christian Groessler <cpg@aladdin.de> but cleaned up
by me.
<hannal@us.ibm.com>
[PATCH] add class support to dsp56k.c
Here is a patch that adds sysfs class support to /drivers/char/dsp56k.c
<rmk@flint.arm.linux.org.uk>
[ARM] Move definition of the kernel module space to asm-arm
Since all machine classes define module space the same way, we
move this into the common ARM code.
<hannal@us.ibm.com>
[PATCH] Add sysfs class support to fs/coda/psdev.c
Here is a patch to add class support to psdev.c.
I have verified it compiles and works.
<marcel@holtmann.org>
[Bluetooth] Fix URB unlink race in the USB drivers
The code in hci_usb_unlink_urbs() calls usb_unlink_urb() to perform a
synchronous unlink of each pending URB. It then moves each URB to the
completed list, and then frees everything on the completed list. By doing
this, the code implicitly assumes that when usb_unlink_urb() returns the
URB will have completed and be ready to be deallocated. That's not always
true. The same applies to the BlueFRITZ! USB driver.
Patch from Alan Stern <stern@rowland.harvard.edu>
<marcel@holtmann.org>
[Bluetooth] Make use of request_firmware() for the 3Com driver
The 3Com Bluetooth PCMCIA cards need a firmware download every time they
are inserted. With request_firmware() the file BT3CPCC.bin is now loaded
directly from the userspace and the external firmware loader program is
no longer needed.
<marcel@holtmann.org>
[Bluetooth] Improve NULL pointer handling
This small patch adds more checks for NULL pointers.
<marcel@holtmann.org>
[Bluetooth] Add support for Anycom CF-300
The Anycom CF-300 compact flash card contains a new Bluetooth chip and
thus it needs some special handling for the faster UART baud rate. This
patch detects this new card and does the different initialization.
<petri.koistinen@iki.fi>
[PATCH] ia64: put URLs in documentation files inside angle-brackets
Patch by Petri T. Koistinen.
<bjorn.helgaas@hp.com>
[PATCH] ia64: ACPI IRQ cleanup (arch part)
Here's the ia64 part of the ACPI IRQ cleanup I proposed here:
http://www.gelato.unsw.edu.au/linux-ia64/0403/8979.html
After the arch bits are in, I'll post the corresponding ACPI changes.
I removed the "Found IRQ" printk now because when the ACPI
change goes in, dev->irq won't be initialized until *after*
acpi_pci_irq_enable().
<bjorn.helgaas@hp.com>
[PATCH] ia64: allow simscsi to be a module
Requiring CONFIG_HP_SIMSCSI to be either "y" or "n" breaks
allmodconfig, because simscsi ends up built-in, while scsi itself
is a module. So allow simscsi to be a module also.
<eranian@hpl.hp.com>
[PATCH] ia64: perfmon update
Here is a new perfmon patch. It is important because it
fixes the problem of the close() when the file descriptor
is shared between two related processes. The good thing
is that it simplifies a lot the cleanup of the sampling
buffer.
Here is the ChangeLog:
- fix bug in pfm_close() when the descriptor is
shared between related processed. Introduce
a pfm_flush() called for each invocation of
close(). pfm_close() only called for the last
user.
- fix pfm_restore_monitoring() to also reload
the debug registers. They could be modified
while monitoring is masked.
- fix pfm_close() to clear ctx_fl_is_sampling.
- fix a bug in pfm_handle_work() which could cause
the wrong PMD to be reset.
- converted PROTECT_CTX/UNPROTECT_CTX into
local_irq_save/restore to keep context protection
but allow IPI to proceed.
- updated pfm_syswide_force_stop() to use
local_irq_save/restore now that the context
is protected from the caller side.
- updated pfm_mck_pmc_check() to check if context is
loaded before checking for special IBR/DBR combinations.
Clearing the debug registers is not needed when the context
is not yet loaded.
- updated perfmon.h to have to correct prototype definitions
for the pfm_mod_*() functions.
- got rid of the PFM_CTX_TERMINATED state.
- cleanup the DPRINT() statements to remove
explicit output of current->pid. This is done
systematically by the macros.
- added a systctl entry (expert_mode) to bypass
read/write checks on PMC/PMD. As its name indicates
this is for experts ONLY. Must be root to toggle
/proc/sys entry.
- corrected pfm_mod_*() to check against the current task.
- removed pfm_mod_fast_read_pmds(). It is never needed.
- added pfm_mod_write_ibrs() and pfm_mod_write_dbrs().
<davidm@tiger.hpl.hp.com>
ia64: Make acpi.c compile again: there was an implicit declaration
mismatch because the external declaration isn't in the arch-
independent ACPI bits yet.
<bcollins@debian.org>
[SBP2]: Fix compile for older gcc's
<bcollins@debian.org>
[Kconfig]: eth1394 requires INET
<bcollins@debian.org>
[SBP2]: Sync revision
<marcel@holtmann.org>
[Bluetooth] Allow normal users to release the previous created TTY
In the case the RFCOMM device node can't be found, the user must be able to
release the previous created TTY.
<marcel@holtmann.org>
[Bluetooth] Fix race in RX complete routine of the USB drivers
The test of the HCI_RUNNING flags bit in the RX complete routine should
be made while holding the completion lock. Otherwise there can be a race
on SMP systems in which RX complete finds the bit is set and on another
processor the close routine clears the bit, grabs and releases the lock
and then unlinks all the active URB's. Then the first processor acquires
the lock and resubmits the URB.
Patch from Alan Stern <stern@rowland.harvard.edu>
<rvinson@linuxbox.(none)>
Updating Force PCore to 2.6
<stern@rowland.harvard.edu>
[PATCH] USB: Updated unusual_dev.h entry
On Thu, 8 Apr 2004, Marcin Juszkiewicz wrote:
> usb-storage: This device (054c,0025,0100 S 04 P 01) has unneeded SubClass
and
> Protocol entries in unusual_devs.h
Thank you for sending this in.
<marcel@holtmann.org>
[PATCH] Add sysfs class support for CAPI
here is a patch that adds class support to the ISDN CAPI module. Without
it udev won't create the /dev/capi20 device node.
<hannal@us.ibm.com>
[PATCH] fix sysfs class support to fs/coda/psdev.c
--On Friday, April 09, 2004 12:02:19 AM +0200 Marcel Holtmann
<marcel@holtmann.org> wrote:
>> +static struct class_simple coda_psdev_class;
>
> I think coda_psdev_class must be a pointer.
>
> Regards
>
> Marcel
Doh! I tested on one system and fixed this there. Then accidentally mailed
out the
original. Sorry about that. Here is a patch to fix it:
<hannal@us.ibm.com>
[PATCH] Fix for patch to add class support to stallion.c
Oops. Realized I had a / in the file name in this patch too.
Please apply to correct it:
<hannal@us.ibm.com>
[PATCH] Fix class support to istallion.c
Realized I put a / in the filename of this device too.
Here is the fix:
<khali@linux-fr.org>
[PATCH] I2C: Enable changing fan_divs in lm80 driver
For some reason the original lm80 driver in 2.6 cannot set fan_divs
(while the 2.4 driver could). This patch brings support back. It was
lightly tested by one user.
This patch also suggests some code cleanups (fan code refactoring). I'll
send a different patch later for these.
<aurelien@aurel32.net>
[PATCH] I2C: New chip driver: pcf8591
Please find below a patch against kernel 2.6.5-rc2-mm4 to add the pcf8591
driver (a 8-bit A/D and D/A converter). I have ported it from the 2.4
version, and it includes some fixes, improvements and simplifications.
It has been reviewed by Jean Delvare on IRC.
Please also note that the patch also fixes a missing space in
drivers/i2c/chips/Kconfig, introduced by the previous patch I sent you
concerning the pcf8574.
<greg@kroah.com>
[PATCH] I2C: minor bugfixes for the pcf8591.c driver and formatting cleanups.
<greg@kroah.com>
[PATCH] I2C: clean up out of order bus Makefile and Kconfig entries.
<jgarzik@redhat.com>
[netdrvr tulip] remove ChangeLog file
It was out of date. BitKeeper logs are more recent and more accurate.
<tmattox@engr.uky.edu>
[netdrvr tulip] add MII support for Comet chips
Add MII support for ADMtek Comet (Linksys LNE100TX v4.1 & others):
* tulip_core.c: add HAS_MII flag to COMET entry in tulip_tbl[]
* timer.c (comet_timer): add missing call to tulip_check_duplex()
and replace inl() calls with tulip_mdio_read() calls
Changes modeled after Donald Becker's tulip.c:v0.98 1/8/2004
<rmk@flint.arm.linux.org.uk>
[SERIAL] Unuse old SERIAL_IO_xxx macros.
8250.c should be using the replacement UPIO_xxx macros instead.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Remove some dead declarations.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Correct minor debugging format string error.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Don't try to free resources we didn't request.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Pass device pointer through to tty_register_device.
This allows drivers to pass their struct device through to
tty_register_device, which in turn allows sysfs to show which
device and driver owns the UART.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Pass sa11x0 struct device through to tty_register_device.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Remove UPF_HUP_NOTIFY; this is no longer used.
<davem@nuts.davemloft.net>
[IPV6]: In ndisc_netdev_event, handle NETDEV_DOWN.
Based upon patches and commentary from Thomas Spatzier,
Stephen Hemminger, and Andi Kleen.
<agruen@suse.de>
[IPSEC]: Support draft-ietf-ipsec-udp-encaps-00/01, some ipec impls need it.
<davem@nuts.davemloft.net>
[ISDN]: Add missing IPPP_FILTER entry to Kconfig.
<kkeil@suse.de>
[ISDN]: Fix kernel PPP/IPPP active/passiv filter code.
<mashirle@us.ibm.com>
[IPV6]: Add missing MIB counter increments.
<weeve@gentoo.org>
[SOUND]: Proper deps for SND_BIT32_EMUL.
<weeve@gentoo.org>
[SOUND]: Add amd7930 to sndmagic.h
<rddunlap@osdl.org>
[NET]: Kill __FUNCTION__ string literal concatenation.
From Tony Breeds <tony@bakeyournoodle.com>
<laforge@netfilter.org>
[NETFILTER]: Add more debug info to TFTP helper.
From Vineet Mehta <extreme@zayanionline.com>
<chas@cmf.nrl.navy.mil>
[ATM]: get atm_guess_pdu2truesize() right
<chas@cmf.nrl.navy.mil>
[ATM]: [nicstar] using dev_alloc_skb() (reported by Johnston,
<jt@bougret.hpl.hp.com>
[IRDA]: Move IRDA device headers to more appropriate place.
<yoshfuji@linux-ipv6.org>
[IPV6]: Mark MLDv2 report as known.
Mark MLDv2 Report as known ICMPv6 type.
(We just ignore MLDv2 Reports on hosts as the spec says.)
<shemminger@osdl.org>
[NET]: Add random_ether_addr to ether_device.h
<shemminger@osdl.org>
[NET]: Use random address in dummy driver.
<shemminger@osdl.org>
[NET]: Use random address in usb gadget driver.
<shemminger@osdl.org>
[NET]: Use random address in usbnet driver.
<akpm@osdl.org>
[SCTP]: Fix printk warnings.
<akpm@osdl.org>
[ATM]: Fix printk warnings in ambassador driver.
<akpm@osdl.org>
[IRDA]: Fix warnings in sir_dev.c
<akpm@osdl.org>
[IRDA]: Fix 32-bit pointer bug in donauboe.c
<akpm@osdl.org>
[NET]: Fix printk warnings in wireless/strip.c
<akpm@osdl.org>
[NET]: Fix printk warnings in strip driver.
<bjorn.helgaas@com.rmk.(none)>
[SERIAL] HCDP IRQ fixup
Some pre-production firmware has incorrect GSI values in the
HCDP, which tells us where the serial console port is, so we
have to do the auto-IRQ thing after all.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Add extra suspend/resume functionality to serial_cs.
This calls into the 8250 driver so that the serial port settings can
be saved and restored over a suspend/resume cycle. Previous kernels
have assumed that the port will be re-opened after such an event,
which may not be the case.
<jejb@mulgrave.(none)>
Convert sd to kref and fix sd_open/sd_remove race
We actually fix this race by mediating the object release/get race
(i.e. we destroy the scsi_disk object when its reference count goes
1->0, we use a semaphore to prevent something else trying to get a
reference after or during this).
The open/remove race is actually irrelevant because even if we open an
already removed object, all that will happen is that we get a
reference to a device that always returns EIO.
<jejb@mulgrave.(none)>
Convert sr to a kref and fix sr_open/sr_remove race
We actually fix this race by mediating the object release/get race
(i.e. we destroy the scsi_cd object when its reference count goes
1->0, we use a semaphore to prevent something else trying to get a
reference after or during this).
The open/remove race is actually irrelevant because even if we open an
already removed object, all that will happen is that we get a
reference to a device that always returns EIO.
<rmk@flint.arm.linux.org.uk>
[ARM] Reduce the number of unnecessary includes in decompressor.
This appears to work around the gcc problem where gcc adds extra
.globl directives into the assembly for misc.s for its internal
libgcc functions.
<rmk@flint.arm.linux.org.uk>
[PCMCIA] Fix resource handling for memory probe
Add claim_region and free_region to claim/free resource regions.
This ensures that we only attempt to probe memory regions which
are directly related to the socket in question, rather than any
memory region we happen to be able to request.
This also fixes a memory leak where we don't kfree the resources
we previously allocated.
<rmk@flint.arm.linux.org.uk>
[PCMCIA] Remove racy check_io_resource()
Convert do_io_probe() to use claim/free_region() rather than the
racy check_io_resource(). Remove check_io_resource() and the now
unused resource_parent() functions.
<rmk@flint.arm.linux.org.uk>
[PCMCIA] Use kernel resource core as primary resource allocator.
Turn the resource management on its head. Rather than using PCMCIA's
resource database as the primary object to allocate resources, use
Linux's standard resource allocation instead.
When we have a socket on a PCI bus, we always use the PCI resource
allocation functions rather than the kernels core resource allocation,
so that we can take account of any bridges.
<akpm@osdl.org>
[NET]: Fix memset args in sk_mca, noticed by Jean Delvare
<khali@linux-fr.org>
<rmk@flint.arm.linux.org.uk>
[ARM] Drop -traditional from assembler command line in decompressor.
<rmk@flint.arm.linux.org.uk>
[PCMCIA] Re-export pci_bus_alloc_resource() from PCI code.
Since PCMCIA now uses this, re-export it.
<rmk@flint.arm.linux.org.uk>
[PCMCIA] Fix warning about truncated integer.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix spacing in arch/arm/boot/Makefile and arch/arm/mm/Kconfig.
<trond.myklebust@fys.uio.no>
NFSv2/v3/v4: Prepare the nfs_page struct to allow for short reads.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Add support for TI16C750 hardware flow control.
<trond.myklebust@fys.uio.no>
NFSv2/v3/v4: Add support for asynchronous reads even if
rsize<PAGE_CACHE_SIZE.
<trond.myklebust@fys.uio.no>
NFSv2/v3/v4: Add support for asynchronous writes even if
wsize<PAGE_CACHE_SIZE.
<trond.myklebust@fys.uio.no>
NFSv2/v3/v4: When pdflush() is trying to free up memory by calling our
writepages() method, throttle all writes to that mountpoint.
<trond.myklebust@fys.uio.no>
RPC,NFS: remove instances of tests for waitqueue_active(). Those can be racy.
RPC: remove unnecessary support for sk->sk_sleep on those sockets that are
owned by the RPC client.
<trond.myklebust@fys.uio.no>
RPC: add fair queueing to the RPC scheduler.
If a wait queue is defined as a "priority queue" then requests are dequeued
in blocks of 16 in order to work well with write gathering + readahead on the
server.
There are 3 levels of priority. The high priority tasks get scheduled 16
times
for each time the default level gets scheduled. The lowest level gets
scheduled once every 4 times the normal level gets scheduled.
Original patch contributed by Shantanu Goel.
<trond.myklebust@fys.uio.no>
RPC: Close some potential scheduler races in rpciod.
<trond.myklebust@fys.uio.no>
NFSv2/v3/v4: Deal with the case where the server reads/writes fewer
bytes than we requested due to resource limitations etc.
<trond.myklebust@fys.uio.no>
RPCSEC_GSS: Fix integrity checksum bugs. Need to take into account the
starting offset when calculating the page length.
<trond.myklebust@fys.uio.no>
NFSv2/v3/v4: Fix a slowdown of O_SYNC and O_DIRECT writes that resulted
from over-aggressive attribute cache revalidation.
<trond.myklebust@fys.uio.no>
NFSROOT: clean up the parser routines (patch by Fabian Frederic)
<trond.myklebust@fys.uio.no>
RPCSEC_GSS: Fix RPC padding in two instances of RPCSEC_GSS code.
RPC: Clean up XDR encoding of opaque data.
<trond.myklebust@fys.uio.no>
NFSv4: attribute bitmap values need to be unsigned long integers.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
ACCESS RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
GETATTR RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: Remove unnecessary post-op attributes from read/write/... calls. The
new attribute revalidation scheme doesn't rely on them.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
LOOKUP RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for looking up the
mountpoint.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
REMOVE RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
RENAME RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for hard linking
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
CREATE RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
PATHCONF RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
STATFS RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme when doing
sillyrename() completion.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
READLINK RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: use the (more efficient) NFSv2/v3-like XDR scheme for generating
READDIR RPC calls.
<trond.myklebust@fys.uio.no>
NFSv4: assorted code readability cleanups in the XDR
<trond.myklebust@fys.uio.no>
NFSv4: clean up the FSINFO XDR code to conform to the new scheme for GETATTR.
<trond.myklebust@fys.uio.no>
RPC: add a field to the xdr_buf that explicitly contains the maximum buffer
length.
RPC: make the client receive xdr_buf return the actual length of the RPC
length.
NFSv4/RPC: improved checks to prevent XDR reading beyond the actual end of
the RPC reply.
<trond.myklebust@fys.uio.no>
NFSv4: Check server capabilities at mount time so that we can optimize away
requests for attributes that are not supported. In particular, we wish to
determine whether or not the server supports ACLs.
<trond.myklebust@fys.uio.no>
RPC: Fix a bug introduced by
trond.myklebust@fys.uio.no|ChangeSet|20040314024328|33542.
portmap can fail due to the call to xprt_close() in xprt_connect():
xprt_disconnect() wakes up xprt->snd_task, and sets -ENOTCONN,
which again gets converted to EIO by xprt_connect_status()
Fix is to remove call to xprt_disconnect(). We don't need it in the
case when we are reconnecting. However we do need to ensure that we
wake up xprt->snd_task if reconnection fails.
Diagnosis & proposed solution by Olaf Kirch
<trond.myklebust@fys.uio.no>
Lockd: Fix waiting on the server grace period.
The old code was wrong in that it assumed that we are out the grace
period as soon as the client is finished doing lock recovery.
Also ensure that we respect signals when waiting for the server grace
period to end.
<trond.myklebust@fys.uio.no>
RPC: Ensure that we only schedule one RPC request at a time.
In theory the current code could cause two to be scheduled
if something wakes up xprt->snd_task before keventd has
had a chance to run xprt_sock_connect()
<trond.myklebust@fys.uio.no>
NFSv3: Fix an XDR overflow bug in READDIRPLUS
<davem@nuts.davemloft.net>
[SPARC64]: Control -fomit-frame-pointer using CONFIG_FRAME_POINTER.
<hadi@cyberus.ca>
[NET_SCHED]: Check for NULL opt in dsmark_init.
<jon@focalhost.com>
[CRYPTO]: ARC4 Kconfig clarification.
<davem@nuts.davemloft.net>
[SPARC64]: Provide _mcount as well as mcount.
<rddunlap@org.rmk.(none)>
[PCMCIA] init_pcmcia_cs() to return error from class_register()
Patch from: Randy Dunlap
From: Walter Harms
Now init_pcmcia_cs() returns the result of class_register().
Therefore init_pcmcia_cs() will possibly return an error.
<rddunlap@org.rmk.(none)>
[ARM] use errno #defines in assembly
Patch from: Randy Dunlap
From: Danilo Piazzalunga
Some assembly code (on various archs) either
1. uses hardcoded errno numbers instead of the canonical macro
names, or
2. defines them locally, instead of including the appropriate
header (while including other headers).
This patch "fixes" such usage in
- getuser.S for arm
- putuser.S for arm
<shaggy@austin.ibm.com>
JFS: Fix race in jfs_sync
Don't let final iput happen while jfs_sync is processing inode.
<ink@jurassic.park.msu.ru>
[PATCH] Fix unaligned stxncpy again
Herbert Xu noted:
"The current stxncpy on alpha is still broken when it comes to single
word, unaligned, src misalignment > dest misalignment copies.
I've attached a program which demonstrates this problem."
Ugh, indeed. It fails when there is a zero byte before the data.
Thanks.
Here is the fix for this (both regular and ev6 version).
<akpm@osdl.org>
[PATCH] x86-64 update
From: Andi Kleen <ak@muc.de>
Current x86-64 patchkit for 2.6.5.
- Add drivers/firmware/Kconfig
- Clarify description of CONFIG_IOMMU_DEBUG
- Use correct gcc option to optimize for Intel CPUs
- Add EDD support (Matt Domsch)
- Add workaround for broken IOMMU on VIA hardware. Uses swiotlb there now.
- Handle more than 8 local APICs (Suresh B Siddha)
- Delete obsolete mtrr Makefile
- Add x86_cache_alignment and set it up properly for P4 (128 bytes instead
of 64bytes). Also report in /proc/cpuinfo
- Minor cleanup in in_gate_area
- Make asm-generic/dma-mapping.h compile with !CONFIG_PCI Just stub out all
functions in this case. This is mainly to work around sysfs.
- More !CONFIG_PCI compile fixes
- Make u64 sector_t unconditional
<akpm@osdl.org>
[PATCH] Fix URLs in Kconfig files
From: Rusty Russell <rusty@rustcorp.com.au>
From: "Petri T. Koistinen" <petri.koistinen@iki.fi>
1) Various URLs in the Kconfig files are out of date: update them.
2) URLs should be of form <http://url-goes-here>.
3) References to files in the source should be of form
<file:path-from-top>
4) Email addresses should be of form <foo@bar.com>
<akpm@osdl.org>
[PATCH] feed devfs through Lindent
Nobody seems to have any outstanding work against devfs, so...
<akpm@osdl.org>
[PATCH] generalise system_running
From: Olof Johansson <olof@austin.ibm.com>
It's currently a boolean, but that means that system_running goes to zero
again when shutting down. So we then use code (in the page allocator) which
is only designed to be used during bootup - it is marked __init.
So we need to be able to distinguish early boot state from late shutdown
state. Rename system_running to system_state and give it the three
appropriate states.
<akpm@osdl.org>
[PATCH] vt.c cleanup
- Remove unneeded casts of a void *
- whitespace consistency.
<akpm@osdl.org>
[PATCH] con_open() speedup/cleanup
con_open() is called on every open of the tty, even if the tty is already all
set up. We only need to do that initialisation if the tty is being set up
for the very first time (tty->count == 1).
So do that: check for tty_count == 1 inside console_sem() and if so, bypass
all the unnecessary initialisation.
Note that this patch reintroduces the con_close()-vs-init_dev() race+oops.
This is because that oops is accidentally prevented because when it happens,
con_open() reinstalls tty->driver_data even when tty->count > 1.
But that's bogus, and when the race happens we end up running
vcs_make_devfs() and vcs_remove_devfs() against the same console at the same
time, producing indeterminate results.
So the race needs to be fixed again, for real.
<akpm@osdl.org>
[PATCH] remove down_tty_sem()
Remove the down_tty_sem() and up_tty_sem() and replace them with open-coded
up() and down(). This is an equivalent transformation.
I assume these functions were created to open the possibility of per-tty
semaphores at some time in the future. But the code which is protected by
this lock deals with two tty's at the same time, and the next patch will need
to release the lock after the tty has been destroyed.
<akpm@osdl.org>
[PATCH] Fix VT open/close race
The race is that con_close() can sleep, and drops the BKL while
tty->count==1. But another thread can come into init_dev() and will take a
new ref against the tty and start using it.
But con_close() doesn't notice that new ref and proceeds to null out
tty->driver_data while someone else is using the resurrected tty.
So the patch serialises con_close() against init_dev() with tty_sem.
Here's a test app which reproduced the oops instantly on 2-way. It realy
needs to be run against all tty-capable devices.
/*
* Run this against a tty which nobody currently has open, such as /dev/tty9
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
void doit(char *filename)
{
int fd,x;
fd = open(filename, O_RDWR);
if (fd < 0) {
perror("open");
exit(1);
}
ioctl(fd, KDKBDREP, &x);
close(fd);
}
main(int argc, char *argv[])
{
char *filename = argv[1];
for ( ; ; )
doit(filename);
}
<akpm@osdl.org>
[PATCH] i4l: kernelcapi receive workqueue and locking rework
From: Armin Schindler <armin@melware.de>
With this patch the ISDN kernel CAPI code uses a per application workqueue
with proper locking to prevent message re-ordering due to the fact a
workqueue may run on another CPU at the same time. Also some locks for
internal data is added.
Removed global recv_queue work, use per application workqueue. Added
proper locking mechanisms for application, controller and application
workqueue function. Increased max. number of possible applications and
controllers.
<akpm@osdl.org>
[PATCH] Fix get_wchan() FIXME wrt. order of functions
From: William Lee Irwin III <wli@holomorphy.com>
This addresses the issue with get_wchan() that the various functions acting
as scheduling-related primitives are not, in fact, contiguous in the text
segment. It creates an ELF section for scheduling primitives to be placed
in, and places currently-detected (i.e. skipped during stack decoding)
scheduling primitives and others like io_schedule() and down(), which are
currently missed by get_wchan() code, into this section also.
The net effects are more reliability of get_wchan()'s results and the new
ability, made use of by this code, to arbitrarily place scheduling
primitives in the source code without disturbing get_wchan()'s accuracy.
Suggestions by Arnd Bergmann and Matthew Wilcox regarding reducing the
invasiveness of the patch were incorporated during prior rounds of review.
I've at least tried to sweep all arches in this patch.
<akpm@osdl.org>
[PATCH] get_wchan() sparc64 fix
From: William Lee Irwin III <wli@holomorphy.com>
Now the scheduler text is in its own ELF section this branch is asking for
an illegal displacement.
<akpm@osdl.org>
[PATCH] ppc32: Fix thinko in the altivec exception code
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Without this patch, executing an altivec instruction on an altivec capable
CPU with a kernel that do not have CONFIG_ALTIVEC set would result in a
kernel crash.
(Fix forward ported from 2.4 by John Whitney
<jwhitney-linuxppc@sands-edge.com>)
<akpm@osdl.org>
[PATCH] ppc64: si_addr fix
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This patch fixes si_addr on some segfaults in 64 bits mode, it used to be
bogus (address not passed to do_page_fault by the asm code after a failure
to set an SLB entry).
<akpm@osdl.org>
[PATCH] ppc64: Fix bug in hugepage support
From: David Gibson <david@gibson.dropbear.id.au>
The PPC64 version of is_aligned_hugepage_range() is buggy. It is supposed to
test not only that the given range is hugepage aligned, but that it lies
within the address space allowed for hugepages. We were checking only that
the given range intersected the hugepage range, not that it lay entirely
within it. This patch fixes the problem and changes the name of some macros
to make it less likely to make that misunderstanding again.
<akpm@osdl.org>
[PATCH] ppc64: hugepage bugfix
From: David Gibson <david@gibson.dropbear.id.au>
Found this again while looking at hugepage extensions. Haven't actually had
it bite yet - the race is small and the other bug will never be triggered in
32-bit processes, and the function is rarely called on 64-bit processes.
This patch fixes two bugs in the (same part of the) PPC64 hugepage code.
First the method we were using to free stale PTE pages was not safe with some
recent changes (race condition). BenH has fixed this to work in the new way.
Second, we were not checking for a valid PGD entry before dereferencing the
PMD page when scanning for stale PTE page pointers.
<akpm@osdl.org>
[PATCH] ppc64: fix failure return codes from {pci,vio}_alloc_consistent()
From: Olof Johansson <olof@austin.ibm.com>
A bug snuck in during the rewrite of ppc64 IOMMU code. When a
{pci,vio}_alloc_consistent() call fails, DMA_ERROR_CODE is returned instead
of NULL.
<akpm@osdl.org>
[PATCH] ppc64: Fix G5 build with DART (iommu) support
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
A recent patch that cleaned up some absolute/virt translation macros forgot
one occurence, thus breaking g5 build with iommu support.
<akpm@osdl.org>
[PATCH] disable VT on iSeries by default
From: Paul Mackerras <paulus@samba.org>
This patch from Julie DeWandel makes CONFIG_VT default to N on iSeries
machines which are using the iSeries virtual console driver viocons.c. The
VT console and the viocons code can't coexist because they use the same tty
numbers, that is, viocons supplies /dev/tty1. Without this patch the user
has to figure out somehow that s/he has to turn on CONFIG_EMBEDDED in order
to be able to turn off CONFIG_VT, which is really very non-obvious.
<akpm@osdl.org>
[PATCH] ppc64: export itLpNaca on iSeries
From: Paul Mackerras <paulus@samba.org>
This patch from Julie DeWandel exports the symbol itLpNaca on iSeries
machines, for the use of the viodasd driver.
<akpm@osdl.org>
[PATCH] PPC64: iSeries virtual ethernet driver
From: Stephen Rothwell <sfr@canb.auug.org.au>
This is the iSeries virtual ethernet driver. David Gibson has taken you
previous comments and hopefully sitisfied most of them. The driver has
also undergone some more testing which showed up some bugs which have been
addressed.
Unfortunately, Anton is about to submit some other patches of mine which
will sightly comflict with this. I will send a patch shortly that will
(hopefully) fix that.
<akpm@osdl.org>
[PATCH] ppc64: allow hugepages anywhere in low 4GB
From: David Gibson <david@gibson.dropbear.id.au>
On PPC64, to deal with the restrictions imposed by the PPC MMU's segment
design, hugepages are only allowed to be mapping in two fixed address
ranges, one 2-3G (for use by 32-bit processes) and one 1-1.5T (for use in
64-bit processes). This is quite limiting, particularly for 32-bit
processes which want to use a lot of large page memory.
This patch relaxes this restriction, and allows any of the low 16 segments
(i.e. those below 4G) to be individually switched over to allow hugepage
mappings (provided the segment does not already have any normal page
mappings). The 1-1.5T fixed range for 64-bit processes remains.
<akpm@osdl.org>
[PATCH] ppc64: Move EPOW log buffer to BSS
From: Olof Johansson <olof@austin.ibm.com>
RTAS on IBM pSeries runs in real mode, so all pointers being passed in to
it need to be in low memory. There's two places in the RAS code that
passes in pointers to items on the stack, which might end up being above
the limit.
Below patch resolves this by creating a buffer in BSS + a lock for
serialization. There's no reason to worry about contention on the lock,
since rtas_call() also serializes on a single spinlock and this is an
infrequent code path in the first place.
<akpm@osdl.org>
[PATCH] ppc64: Disable SMT snooze by default
From: Anton Blanchard <anton@samba.org>
Disable SMT snooze by default
<akpm@osdl.org>
[PATCH] ppc64: Allow PCI devices to use address that happens to fall in the
ISA range
From: Jake Moilanen <moilanen@austin.ibm.com>
Allow PCI devices to use address that happens to fall in the ISA range,
but still protect against ISA device accesses when there is not an ISA
bus.
<akpm@osdl.org>
[PATCH] ppc64: JS20 PHB devfn fix
From: Jake Moilanen <moilanen@austin.ibm.com>
The JS20 uses devfn 0 for a HT->PCI bridge. The PHB devfn
assumption does not hold for this case.
<akpm@osdl.org>
[PATCH] ppc64: Correct comments for the offsets of fields in paca
From: Will Schmidt <willschm@us.ibm.com>
Correct comments for the offsets of fields in paca
<akpm@osdl.org>
[PATCH] ppc64: Make rtasd dump KERN_DEBUG
From: Jake Moilanen <moilanen@austin.ibm.com>
Change the loglevel of an error log printed so it
does not goto the console. Since error logs can
be upto 2k in size, it can spam the console.
<akpm@osdl.org>
[PATCH] ppc64: Fix xmon compile warning
From: Joel Schopp <jschopp@austin.ibm.com>
Fix includes to avoid the compiler warning:
arch/ppc64/xmon/start.c: In function `xmon_readchar':
arch/ppc64/xmon/start.c:104: warning: implicit declaration of function
`xmon_printf'
<akpm@osdl.org>
[PATCH] ppc64: Misc rtasd fixes
From: Jake Moilanen <moilanen@austin.ibm.com>
Misc rtasd fixes for some broken firmware versions.
<akpm@osdl.org>
[PATCH] ppc64: Additional PVR value for power5 processor
From: Will Schmidt <willschm@us.ibm.com>
Additional PVR value for power5 processor
<akpm@osdl.org>
[PATCH] ppc64: Add support for hotplug cpus
From: Joel Schopp <jschopp@austin.ibm.com>
Add support for hotplug cpus
<akpm@osdl.org>
[PATCH] ppc64: Add RTAS os-term call for panic on pSeries
From: Michael Strosaker <strosake@us.ibm.com>
Add RTAS os-term call for panic on pSeries
<akpm@osdl.org>
[PATCH] ppc64: Fix xics irq affinity bug
From: Anton Blanchard <anton@samba.org>
Fix xics irq affinity bug. We were anding with cpu_online_map but werent
using the result later on.
<akpm@osdl.org>
[PATCH] ppc64: irq cleanups
From: Paul Mackerras <paulus@samba.org>
Create and use irq_offset_up/down, get_irq_desc, for_each_irq
<akpm@osdl.org>
[PATCH] ppc64: Create xics get_irq_server
From: Anton Blanchard <anton@samba.org>
Create xics get_irq_server and use it in enable/disable code.
<akpm@osdl.org>
[PATCH] ppc64: Put SMT threads into global interrupt queue
From: David Engebretsen <engebret@us.ibm.com>
Put SMT threads into global interrupt queue
<akpm@osdl.org>
[PATCH] ppc64: Update CPU features
From: Anton Blanchard <anton@samba.org>
Update CPU features. Remove DABR feature, all cpus have it. Add MMCRA,
PMC8, SMT, COHERENT_ICACHE, LOCKLESS_TLBIE features
<akpm@osdl.org>
[PATCH] ppc64: Move sysfs specific stuff into sysfs.c
From: Anton Blanchard <anton@samba.org>
Move sysfs specific stuff into sysfs.c
<akpm@osdl.org>
[PATCH] ppc64: Add some POWER5 specific optimisations
From: Anton Blanchard <anton@samba.org>
Add some POWER5 specific optimisations:
- icache is coherent, no need to explicitly flush
- tlbie lock no longer required
<akpm@osdl.org>
[PATCH] ppc64: Add PMCs to sysfs
From: Anton Blanchard <anton@samba.org>
Add PMCs to sysfs.
<akpm@osdl.org>
[PATCH] ppc64: Add HW PMC support to oprofile
From: Anton Blanchard <anton@samba.org>
Add HW PMC support to oprofile
<akpm@osdl.org>
[PATCH] ppc64: Register secondary threads in NUMA init code
From: Anton Blanchard <anton@samba.org>
Register secondary threads in NUMA init code
<akpm@osdl.org>
[PATCH] ppc64: Use enum dma_data_direction for the vio DMA api routines.
From: Stephen Rothwell <sfr@canb.auug.org.au>
This patch uses enum dma_data_direction for the vio DMA api routines.
This allows us to remove some include of linux/pci.h.
Also missed some pci_dma_mapping_error uses.
<akpm@osdl.org>
[PATCH] ppc64: Use enum dma_data_direction for all APIs
From: Stephen Rothwell <sfr@canb.auug.org.au>
This is just a cleanup to use enum dma_data_direction for all APIs
except the pci_dma_ ones (since they are defined generically).
Also make most of the functions in arch/ppc64/kernel/pci_iommu.c
static.
<akpm@osdl.org>
[PATCH] ppc64: Consolidate some of the iommu DMA mapping routines.
From: Stephen Rothwell <sfr@canb.auug.org.au>
This patch consolidates some of the iommu DMA mapping routines.
<akpm@osdl.org>
[PATCH] ppc64: change the iSeries virtual device drivers to use the vio
infrastructure for DMA mapping
From: Stephen Rothwell <sfr@canb.auug.org.au>
This patch changes the iSeries virtual device drivers to use the
vio infrastructure for DMA mapping instead of the PCI infrastructure.
This is a step along the way to integrating them correctly into the
driver model.
<akpm@osdl.org>
[PATCH] ppc64: replace vio_dma_mapping_error with dma_mapping_error
everywhere.
From: Stephen Rothwell <sfr@canb.auug.org.au>
James Bottomley is right, this was a mistake. This patch replaces
vio_dma_mapping_error with dma_mapping_error everywhere.
<akpm@osdl.org>
[PATCH] ppc64: add platform identification to oops messages
From: Anton Blanchard <anton@samba.org>
<akpm@osdl.org>
[PATCH] ppc64: Oops cleanup
From: Anton Blanchard <anton@samba.org>
Oops cleanup:
- Move prototypes into system.h
- Move the debugger hooks into die, all the calls sites were calling them.
- Handle bad values passed to prregs
<akpm@osdl.org>
[PATCH] ppc64: Add smt_snooze_delay cpu sysfs attribute
From: Anton Blanchard <anton@samba.org>
Add smt_snooze_delay cpu sysfs attribute
<akpm@osdl.org>
[PATCH] ppc64: DMA API updates
From: Anton Blanchard <anton@samba.org>
DMA API updates, in particular adding the new cache flush interfaces.
<akpm@osdl.org>
[PATCH] ppc64: Remove unused rtas functions
From: Joel Schopp <jschopp@austin.ibm.com>
I was looking at rtas serialization for reasons I won't go into here.
While wandering through the code I found that two functions were not
properly serialized. phys_call_rtas and phys_call_rtas_display_status are
the functions. After looking further they are redundant and not
used anywhere at all.
<akpm@osdl.org>
[PATCH] ppc64: Quieten NVRAM driver
From: Anton Blanchard <anton@samba.org>
Quieten NVRAM driver
<akpm@osdl.org>
[PATCH] ppc64: UP compile fixes
From: Anton Blanchard <anton@samba.org>
UP compile fixes
<akpm@osdl.org>
[PATCH] ppc44x: fix memory leak
From: Matt Porter <mporter@kernel.crashing.org>
This fixes a memory leak when freeing pgds on PPC44x.
<akpm@osdl.org>
[PATCH] Quota locking fixes
From: Jan Kara <jack@ucw.cz>
Change locking rules in quota code to fix lock ordering especially wrt
journal lock. Also some unnecessary spinlocking is removed. The locking
changes are mainly: dqptr_sem, dqio_sem are acquired only when transaction is
already started, dqonoff_sem before a transaction is started. This change
requires some callbacks to ext3 (also implemented in this patch) to start
transaction before the locks are acquired.
<akpm@osdl.org>
[PATCH] fs/inode.c list_head cleanup
Teach inode.c about list_move().
<akpm@osdl.org>
[PATCH] search for /init for initramfs boots
From: Olaf Hering <olh@suse.de>
initramfs can not be used in current 2.6 kernels, the files will never be
executed because prepare_namespace doesn't care about them. The only way to
workaround that limitation is a root=0:0 cmdline option to force rootfs as
root filesystem. This will break further booting because rootfs is not the
final root filesystem.
This patch checks for the presence of /init which comes from the cpio archive
(and thats the only way to store files into the rootfs). This binary/script
has to do all the work of prepare_namespace().
<akpm@osdl.org>
[PATCH] knfsd: Return -EOPNOTSUPP when unknown mechanism name encountered
From: NeilBrown <neilb@cse.unsw.edu.au>
It's better than oopsing.
<akpm@osdl.org>
[PATCH] knfsd: Minor fix to error return when updating server authentication
information
From: NeilBrown <neilb@cse.unsw.edu.au>
<akpm@osdl.org>
[PATCH] knfsd: fix a problem with incorrectly formatted auth_error returns.
From: NeilBrown <neilb@cse.unsw.edu.au>
From: Fred Isaman
<akpm@osdl.org>
[PATCH] knfsd: Remove name_lookup.h that noone is using anymore.
From: NeilBrown <neilb@cse.unsw.edu.au>
<akpm@osdl.org>
[PATCH] knfsd: Add server-side support for the nfsv4 mounted_on_fileid
attribute.
From: NeilBrown <neilb@cse.unsw.edu.au>
<akpm@osdl.org>
[PATCH] knfsd: Improve UTF8 checking.
From: NeilBrown <neilb@cse.unsw.edu.au>
From: Fred. We don't do all the utf8 checking we could in the kernel, but we
do some simple checks. Implement slightly stricter, and probably more
efficient, checking.
<akpm@osdl.org>
[PATCH] knfsd: Export a symbol needed by auth_gss
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
Without this compiling auth_gss as module fails.
<akpm@osdl.org>
[PATCH] knfsd: Add data integrity to serve rside gss
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
rpcsec_gss supports three security levels:
1. authentication only: sign the header of each rpc request and response.
2. integrity: sign the header and body of each rpc request and response.
3. privacy: sign the header and encrypt the body of each rpc request and
response.
The first 2 are already supported on the client; this adds integrity support
on the server.
<akpm@osdl.org>
[PATCH] md: merge_bvec_fn needs to know about partitions.
From: Neil Brown <neilb@cse.unsw.edu.au>
Addresses http://bugme.osdl.org/show_bug.cgi?id=2355
It seems that a merge_bvec_fn needs to be aware of partitioning... who
would have thought it :-(
The following patch should fix the merge_bvec_fn for both linear and raid0.
We teach linear and raid0 about partitions in the merge_bvec_fn.
->merge_bvec_fn needs to make decisions based on the physical geometry of the
device. For raid0, it needs to decide if adding the bvec to the bio will
make the bio span two drives.
To do this, it needs to know where the request is (what the sector number is)
in the whole device.
However when called from bio_add_page, bi_sector is the sector number
relative to the current partition, as generic_make_request hasn't been called
yet.
So raid_mergeable_bvec needs to map bio->bi_sector (which is partition
relative) to a bi_sector which is device relative, so it can perform proper
calculations about when chunk boundaries are.
<akpm@osdl.org>
[PATCH] posix message queues: code move
From: Manfred Spraul <manfred@colorfullife.com>
cleanup of sysv ipc as a preparation for posix message queues:
- replace !CONFIG_SYSVIPC wrappers for copy_semundo and exit_sem with
static inline wrappers. Now the whole ipc/util.c file is only used if
CONFIG_SYSVIPC is set, use makefile magic instead of #ifdef.
- remove the prototypes for copy_semundo and exit_sem from kernel/fork.c
- they belong into a header file.
- create a new msgutil.c with the helper functions for message queues.
- cleanup the helper functions: run Lindent, add __user tags.
<akpm@osdl.org>
[PATCH] posix message queues: syscall stubs
From: Manfred Spraul <manfred@colorfullife.com>
Add -ENOSYS stubs for the posix message queue syscalls. The API is a direct
mapping of the api from the unix spec, with two exceptions:
- mq_close() doesn't exist. Message queue file descriptors can be closed
with close().
- mq_notify(SIGEV_THREAD) cannot be implemented in the kernel. The kernel
returns a pollable file descriptor . User space must poll (or read) this
descriptor and call the notifier function if the file descriptor is
signaled.
<akpm@osdl.org>
[PATCH] posix message queues: implementation
From: Manfred Spraul <manfred@colorfullife.com>
Actual implementation of the posix message queues, written by Krzysztof
Benedyczak and Michal Wronski. The complete implementation is dependant on
CONFIG_POSIX_MQUEUE.
It passed the openposix test suite with two exceptions: one mq_unlink test
was bad and tested undefined behavior. And Linux succeeds
mq_close(open(,,,)). The spec mandates EBADF, but we have decided to ignore
that: we would have to add a new syscall just for the right error code.
The patch intentionally doesn't use all helpers from fs/libfs for kernel-only
filesystems: step 5 allows user space mounts of the file system.
Signal changes:
The patch redefines SI_MESGQ using __SI_CODE: The generic Linux ABI uses
a negative value (i.e. from user) for SI_MESGQ, but the kernel internal
value must be posive to pass check_kill_value. Additionally, the patch
adds support into copy_siginfo_to_user to copy the "new" signal type to
user space.
Changes in signal code caused by POSIX message queues patch:
General & rationale:
mqueues generated signals (only upon notification) must have si_code
== SI_MESGQ. In fact such a signal is send from one process which
caused notification (== sent message to empty message queue) to
another which requested it. Both processes can be of course unrelated
in terms of uids/euids. So SI_MESGQ signals must be classified as
SI_FROMKERNEL to pass check_kill_permissions (not need to say that
this signals ARE from kernel).
Signals generated by message queues notification need the same
fields in siginfo struct's union _sifields as POSIX.1b signals and we
can reuse its union entry.
SI_MESGQ was previously defined to -3 in kernel and also in glibc.
So in userspace SI_MESGQ must be still visible as -3.
Solution:
SI_MESGQ is defined in the same style as SI_TIMER using __SI_CODE macro.
Details:
Fortunately copy_siginfo_to_user copies si_code as short. So we
can use remaining part of int value freely. __SI_CODE does the
work. SI_MESGQ is in kernel:
6<<16 | (-3 & 0xffff) what is > 0
but to userspace is copied
(short) SI_MESGQ == -3
Actual changes:
Changes in include/asm-generic/siginfo.h
__SI_MESGQ added in signal.h to represent inside-kernel prefix of
SI_MESGQ. SI_MESGQ is redefined from -3 to __SI_CODE(__SI_MESGQ, -3)
Except mips architecture those changes should be arch independent
(asm-generic/siginfo.h is included in arch versions). On mips
SI_MESGQ is redefined to -4 in order to be compatible with IRIX. But
the same schema can be used.
Change in copy_siginfo_to_user: We only add one line to order the
same copy semantics as for _SI_RT.
This change isn't very portable - some arch have its own
copy_siginfo_to_user. All those should have similar change (but
possibly not one-line as _SI_RT case was sometimes ignored because i
wasn't used yet, e.g. see ia64 signal.c).
Update:
mq: only fail with invalid timespec if mq_timed{send,receive} needs to block
From: Jakub Jelinek <jakub@redhat.com>
POSIX requires EINVAL to be set if:
"The process or thread would have blocked, and the abs_timeout parameter
specified a nanoseconds field value less than zero or greater than or equal
to 1000 million."
but 2.6.5-mm3 returns -EINVAL even if the process or thread would not block
(if the queue is not empty for timedreceive or not full for timedsend).
<akpm@osdl.org>
[PATCH] posix message queues: linux-specific poll extension
From: Manfred Spraul <manfred@colorfullife.com>
Linux specific extension: make the message queue identifiers pollable. It's
simple and could be useful.
<akpm@osdl.org>
[PATCH] posix message queues: made user mountable
From: Manfred Spraul <manfred@colorfullife.com>
Make the posix message queue mountable by the user. This replaces ipcs and
ipcrm for posix message queue: The admin can check which queues exist with ls
and remove stale queues with rm.
I'd like a final confirmation from Ulrich that our SIGEV_THREAD approach is
the right thing(tm): He's aware of the design and didn't object, but I think
he hasn't seen the final API yet.
<akpm@osdl.org>
[PATCH] posix message queue update
From: Manfred Spraul <manfred@colorfullife.com>
My discussion with Ulrich had one result:
- mq_setattr can accept implementation defined flags. Right now we have
none, but we might add some later (e.g. switch to CLOCK_MONOTONIC for
mq_timed{send,receive} or something similar). When we add flags, we
might need the fields for additional information. And they don't hurt.
Therefore add four __reserved fields to mq_attr.
- fail mq_setattr if we get unknown flags - otherwise glibc can't detect
if it's running on a future kernel that supports new features.
- use memset to initialize the mq_attr structure - theoretically we could
leak kernel memory.
- Only set O_NONBLOCK in mq_attr, explicitely clear O_RDWR & friends.
openposix uses getattr, attr |=O_NONBLOCK, setattr - a sane approach.
Without clearing O_RDWR, this fails.
I've retested all openposix conformance tests with the new patch - the two
new FAILED tests check undefined behavior. Note that I won't have net
access until Sunday - if the message queue patch breaks something important
either ask Krzysztof or drop it.
Ulrich had another good idea for SIGEV_THREAD, but I must think about it.
It would mean less complexitiy in glibc, but more code in the kernel. I'm
not yet convinced that it's overall better.
<akpm@osdl.org>
[PATCH] security bugfix for mqueue
From: Manfred Spraul <manfred@colorfullife.com>
I found a security bug in the new mqueue code: a process that has only
write permissions to a message queue could call mq_notify(SIGEV_THREAD) and
use the returned notification file descriptor to read from the message
queue.
<akpm@osdl.org>
[PATCH] split netlink_unicast
From: Manfred Spraul <manfred@colorfullife.com>
The attached patch splits netlink_unicast into three steps:
- netlink_getsock{bypid,byfilp}: lookup the destination socket.
- netlink_attachskb: perform the nonblock checks, sleep if the socket
queue is longer than the limit, etc.
- netlink_sendskb: actually send the skb.
jamal looked over it and didn't see a problem with the netlink change. The
actual use from ipc/mqueue.c is still open (just send back whatever the C
library passed to mq_notify, add an nlmsghdr or perhaps even make it a
specialized netlink protocol), but the attached patch is independant from
the the message queue change.
(acked by davem)
<akpm@osdl.org>
[PATCH] posix message queues: send notifications via netlink
From: Manfred Spraul <manfred@colorfullife.com>
SIGEV_THREAD means that a given callback should be called in the context on a
new thread. This must be done by the C library. The kernel must deliver a
notice of the event to the C library when the callback should be called.
This patch switches to a new, simpler interface: User space creates a socket
with socket(PF_NETLINK, SOCK_RAW,0) and passes the fd to the mq_notify call
together with a cookie. When the mq_notify() condition is satisfied, the
kernel "writes" the cookie to the socket. User space then reads the cookie
and calls the appropriate callback.
<akpm@osdl.org>
[PATCH] compat emulation for posix message queues
From: Arnd Bergmann <arnd@arndb.de>
I have tested the code with the open posix test suite and found the same
four failures for both 64-bit and compat mode, most tests pass. The patch
is against -mc1, but I guess it also applies to the other trees around.
What worries me more than mq_attr compatibility is the conversion of struct
sigevent, which might turn out really hard when more fields in there are
used. AFAICS, the only other part in the kernel ABI is sys_timer_create(),
so maybe it's not too late to deprecate the current structure and create a
structure that can be used properly for compat syscalls.
<akpm@osdl.org>
[PATCH] IPMI driver updates
From: Corey Minyard <minyard@acm.org>
- Add support for messaging through an IPMI LAN interface, which is
required for some system software that already exists on other IPMI
drivers. It also does some renaming and a lot of little cleanups.
- Add the "System Interface" driver. The previous driver for system
interfaces only supported the KCS interface, this driver supports all
system interfaces defined in the IPMI standard. It also does a much better
job of handling ACPI and SMBIOS tables for detecting IPMI system
interfaces.
<akpm@osdl.org>
[PATCH] move job control fields from task_struct to signal_struct
From: Roland McGrath <roland@redhat.com>
This patch moves all the fields relating to job control from task_struct to
signal_struct, so that all this info is properly per-process rather than
being per-thread.
<akpm@osdl.org>
[PATCH] Fix page allocator lower zone protection for NUMA
From: Martin Hicks <mort@wildopensource.com>
This changes __alloc_pages() so it uses precalculated values for the "min".
This should prevent the problem of min incrementing from zone to zone across
many nodes on a NUMA machine. The result of falling back to other nodes with
the old incremental min calculations was that the min value became very
large.
<akpm@osdl.org>
[PATCH] ext3 fsync() and fdatasync() speedup
ext3's fsync/fdatasync implementation is currently syncing the inode via a
full journal commit even if it was unaltered.
Fix that up by exporting the core VFS's inode sync function to modules and
calling it if the inode is dirty. We need to do it this way so that the
inode is moved to the appropriate superblock list and so that the i_state
dirty flags are appropriately updated.
This speeds up ext3 fsync() for file overwrites by a factor of four (disk
non-writeback) to forty (disk in writeback mode).
<akpm@osdl.org>
[PATCH] speed up ext2 fsync() and fdatasync()
ext2_sync_file() forgets to clear the inode's dirty bits, so we write the
inode on every fsync(), even if it hasn't changed.
Fix that up via the new sync_file() API which correctly manages the inode
state bits and the superblock inode lists.
When performing file overwrite on IDE with and without writeback caching
enabled this patch approximately doubles fsync() speed, bringing it into line
with O_SYNC writes.
Also, fix up the return value handling in ext2_sync_file().
Credit due to Jeffrey Siegal <jbs@quiotix.com> who noticed the performance
discrepancy and wrote a test app.
<akpm@osdl.org>
[PATCH] jbd: fix ordered-data writeout logic
There's some nasty code in commit which deals with a lock ranking problem.
Currently if it fails to get the lock when and local variable `bufs' is zero
we forget to write out some ordered-data buffers. So a subsequent
crash+recovery could yield stale data in existing files.
Fix it by correctly restarting the t_sync_datalist search.
<akpm@osdl.org>
[PATCH] JBD: ordered-data commit cleanup
For data=ordered, kjournald at commit time has to write out and wait upon a
long list of buffers. It does this in a rather awkward way with a single
list. it causes complexity and long lock hold times, and makes the addition
of rescheduling points quite hard
So what we do instead (based on Chris Mason's suggestion) is to add a new
buffer list (t_locked_list) to the journal. It contains buffers which have
been placed under I/O.
So as we walk the t_sync_datalist list we move buffers over to t_locked_list
as they are written out.
When t_sync_datalist is empty we may then walk t_locked_list waiting for the
I/O to complete.
As a side-effect this means that we can remove the nasty synchronous wait in
journal_dirty_data which is there to avoid the kjournald livelock which would
otherwise occur when someone is continuously dirtying a buffer.
<akpm@osdl.org>
[PATCH] jbd: fix I/O error handling
Fix a few buglets spotted by Jeff Mahoney <jeffm@suse.com>. We're currently
only checking for I/O errors against journal buffers if they were locked when
they were first inspected.
We need to check buffer_uptodate() even if the buffers were already unlocked.
<akpm@osdl.org>
[PATCH] readv/writev range checking fix
do-readv_writev() is trying to fail if
a) any of the segments have a length < 0 or
b) the sum of the segments wraps negative.
But it gets b) wrong because local variable tot_len is unsigned.
Fix that up.
<akpm@osdl.org>
[PATCH] Fix scripts/kernel-doc to handle __attribute__
From: Tom Rini <trini@kernel.crashing.org>
The following patch is needed so that kernel-doc can handle functions which
have __attribute__'s on them (such as __attribute__ ((weak))).
<akpm@osdl.org>
[PATCH] slab: updates for per-arch alignments
From: Manfred Spraul <manfred@colorfullife.com>
Description:
Right now kmem_cache_create automatically decides about the alignment of
allocated objects. The automatic decisions are sometimes wrong:
- for some objects, it's better to keep them as small as possible to
reduce the memory usage. Ingo already added a parameter to
kmem_cache_create for the sigqueue cache, but it wasn't implemented.
- for s390, normal kmalloc must be 8-byte aligned. With debugging
enabled, the default allocation was 4-bytes. This means that s390 cannot
enable slab debugging.
- arm26 needs 1 kB aligned objects. Previously this was impossible to
generate, therefore arm has its own allocator in
arm26/machine/small_page.c
- most objects should be cache line aligned, to avoid false sharing. But
the cache line size was set at compile time, often to 128 bytes for
generic kernels. This wastes memory. The new code uses the runtime
determined cache line size instead.
- some caches want an explicit alignment. One example are the pte_chain
objects: they must find the start of the object with addr&mask. Right
now pte_chain objects are scaled to the cache line size, because that was
the only alignment that could be generated reliably.
The implementation reuses the "offset" parameter of kmem_cache_create and
now uses it to pass in the requested alignment. offset was ignored by the
current implementation, and the only user I found is sigqueue, which
intended to set the alignment.
In the long run, it might be interesting for the main tree: due to the 128
byte alignment, only 7 inodes fit into one page, with 64-byte alignment, 9
inodes - 20% memory recovered for Athlon systems.
For generic kernels running on P6 cpus (i.e. 32 byte cachelines), it means
Number of objects per page:
ext2_inode_cache: 8 instead of 7
ext3_inode_cache: 8 instead of 7
fat_inode_cache: 9 instead of 7
rpc_tasks: 24 instead of 15
tcp_tw_bucket: 40 instead of 30
arp_cache: 40 instead of 30
nfs_write_data: 9 instead of 7
<akpm@osdl.org>
[PATCH] set mod->waiter before calling stop_machine
From: Rusty Russell <rusty@rustcorp.com.au>
mod->waiter needs to be set before we try to stop the module: setting it in
__try_stop_module means it gets set to the kthread, not rmmod.
<akpm@osdl.org>
[PATCH] fs/proc/proc_tty.c comment fixes
From: Marc-Christian Petersen <m.c.p@wolk-project.de>
<akpm@osdl.org>
[PATCH] sb_mixer bounds checking
From: Muli Ben-Yehuda <mulix@mulix.org>
This patch add proper bounds checking to the sb_mixer.c code, found by the
stanford checker[0]. It fixes bugzilla bugs 252[1], 253[2] and 254[3].
Patch is against 2.6.5-rc2. It was tested by Rene Herman on SN AWE64 gold
and sound still works. The issue was previously discussed on lkml[4], but
apparently no fix was applied.
The patch is a bit more intrusive than I would've liked, but I don't think
it can be helped without really intrusive changes. sb_devc has a pointer
to an array (iomap) that is set at run time to point to arrays of variable
sizes. The patch adds an 'iomap_sz' member to sb_devc that is set to the
length of the array, and does bounds checking in sb_common_mixer_set() and
smw_mixer_set() agains that.
<akpm@osdl.org>
[PATCH] pmdisk: fix strcmp in sysfs store
From: Herbert Xu <herbert@gondor.apana.org.au>
This patch fixes the sysfs store functions for pmdisk when the input
contains a trailing newline.
<akpm@osdl.org>
[PATCH] add file_operations.fcntl
From: Chuck Lever <cel@citi.umich.edu>
O_DIRECT|O_APPEND cannot possibly work on NFS, so NFS needs some way of
preventing the user from setting this combination. We felt that the best
way of implementing this restriction is to allow the filesytem to implement
its own fcntl() handler.
This patch does, that, and provide the appropriate handler for NFS.
Additional details from Chuck:
Forgetting O_DIRECT for a moment, O_APPEND writes on NFS don't work in any
case when multiple clients are writing to a file, since an NFS client can
never guarantee it knows where the true end of file is 100% of the time.
it works as expected iff only one client writes to an O_APPEND file at a
time.
Multi-client O_APPEND writing doesn't seem to be a problem for any
application I'm aware of. Since it can be made to behave in the
multi-client case with careful application logic or by using file locking,
I don't think we should disallow it.
I want to drop the inode semaphore when doing NFS direct I/O because it is
synchronous; holding the i_sem means we reduce direct I/O concurrency to
one I/O per file at a time. the important thing sct was worried about was
the case where a single client is writing with O_APPEND and O_DIRECT, and
we don't hold the i_sem during the write.
We must at least hold the i_sem when determining where the end of file is
to do the O_APPEND write. In 2.6, I believe that is handled correctly in
the VFS layer, so this is not an issue for 2.6, right?
<akpm@osdl.org>
[PATCH] Fix sys_time() to get subtick correction from the new xtime
From: "La Monte H.P. Yarroll" <piggy@timesys.com>
This is a Scott Wood patch against 2.6.3.
Use gettimeofday() rather than xtime.tv_sec in sys_time(), since
sys_stime() uses settimeofday() and thus subtracts the subtick correction
from the new xtime.
stime() used settimeofday(), but time() did not use gettimeofday(). Since
settimeofday() subtracts out the current intra-tick correction, and nsec
was 0 (since stime() only allows seconds), this resulted in xtime being
slightly earlier than the time that was set.
If time() had used gettimeofday(), the correction would have been applied,
and everything would be fine. However, instead time just reads the current
xtime.tv_sec, so if time() is called immediately after stime(), you'll
usually get a value one second earlier.
<akpm@osdl.org>
[PATCH] Broken bitmap_parse for ncpus > 32
From: Joe Korty <joe.korty@ccur.com>
This patch replaces the call to bitmap_shift_right() in bitmap_parse() with
bitmap_shift_left().
I also prepended comments to the bitmap_shift_* functions defining what
'left' and 'right' means. This is under the theory that if I and all the
reviewers were bamboozled, others in the future occasionally might be too.
<akpm@osdl.org>
[PATCH] ver_linux fix
From: Rusty Russell <rusty@rustcorp.com.au>
From: Adrian Bunk <bunk@fs.tum.de>
Some versions of ps print non-version lines when ps --version is invoked.
grep them out.
<akpm@osdl.org>
[PATCH] Update CodingStyle hints for Emacs users.
From: Trivial Patch Monkey <trivial@rustcorp.com.au>
From: Ben Greear <greearb@candelatech.com>
Depending on one's default emacs settings, the suggestion in the
CodingStyle may or may not work. This patch adds a few more commands to
ensure it works in more cases.
<akpm@osdl.org>
[PATCH] document unused pte bits on i386
From: Rusty Russell <rusty@rustcorp.com.au>
From: Ed L Cashin <ecashin@uga.edu>
This small patch documents that bits 9, 10, and 11 are unused by the Linux
kernel. The IA-32 Intel Architecture Software Developer's Manual says that
these bits are available for programmer use.
<akpm@osdl.org>
[PATCH] Consistently use quotes for SGML attributes
From: Rusty Russell <rusty@rustcorp.com.au>
From: Hans Ulrich Niedermann <linux-kernel@n-dimensional.de>
doc patch: Consistently use quotes for SGML attributes This makes it
possible to process the SGML files without SHORTTAG YES.
<akpm@osdl.org>
[PATCH] SGML: close tag with ">"
From: Rusty Russell <rusty@rustcorp.com.au>
From: Hans Ulrich Niedermann <linux-kernel@n-dimensional.de>
doc patch: close tag with ">"
<akpm@osdl.org>
[PATCH] fix sch_ingress help
From: Rusty Russell <rusty@rustcorp.com.au>
From: John Levon <levon@movementarian.org>
<akpm@osdl.org>
[PATCH] i386 irq.c ifdef cleanup
From: Rusty Russell <rusty@rustcorp.com.au>
From: Josef 'Jeff' Sipek <jeffpc@optonline.net>
I just noticed the nested ifdefs, and made it little more readable.
<akpm@osdl.org>
[PATCH] Fix firmware loader docs
From: Rusty Russell <rusty@rustcorp.com.au>
From: Pavel Machek <pavel@ucw.cz>
sysfs should be mounted on /sys these days.
<akpm@osdl.org>
[PATCH] Trivial Patch Monkey should be in MAINTAINERS
From: Rusty Russell <rusty@rustcorp.com.au>
From: Petri Koistinen <petri.koistinen@iki.fi>
<akpm@osdl.org>
[PATCH] Fix genksyms parsing
From: Rusty Russell <rusty@rustcorp.com.au>
From: Andreas Schwab <schwab@suse.de> I'm getting a warning when building
for ia64 with MODVERSIONS enabled. This is a bug in genksyms, it can't
cope with some arguments of __typeof__.
The following patch will fix that. Actually the argument of __typeof__ is
an abstract declarator, but the genksyms parser has no production for that;
decl_specifier_seq also matches some invalid constructs, but I don't think
this is a problem in practice, since the compiler will reject them.
<akpm@osdl.org>
[PATCH] CONFIG_X86_GENERIC description fixup
From: Rusty Russell <rusty@rustcorp.com.au>
From: Stewart Smith <stewart@linux.org.au>
A better explanation of the X86_GENERIC config option follows.
<akpm@osdl.org>
[PATCH] updating email info in CREDITS
From: Rusty Russell <rusty@rustcorp.com.au>
From: Thomas Molina <tmolina@cablespeed.com>
<akpm@osdl.org>
[PATCH] Kill duplicate #include <linux_ioport.h>
From: Rusty Russell <rusty@rustcorp.com.au>
include/linux/device.h includes include/linux/ioport.h twice.
<akpm@osdl.org>
[PATCH] Use valid node number when unmapping x86 CPUs
From: Rusty Russell <rusty@rustcorp.com.au>
From: colpatch@us.ibm.com
The cpu_2_node[] array for i386 is initialized to all 0's, meaning that
until modified at CPU bring-up, all CPUs are mapped to node 0.
When CPUs are brought online, they are mapped to the appropriate node by
various mechanisms, depending on the underlying hardware.
When we unmap CPUs (hotplug time), we should return the mapping for the CPU
that is going away to its original state, ie: 0.
When this code was initially submitted, the misguided poster (me) made the
mistake of putting a -1 in the cpu_2_node[] array for the CPU going away.
This patch fixes this mistake, and allows code to get a valid node number
for all valid CPU numbers. This is important, because most (if not all)
callers do not error check the value returned by the cpu_to_node() macro,
and they should not have to. The API specifies that a valid node number be
returned for any valid CPU number.
<akpm@osdl.org>
[PATCH] Add CC Trivial Patch Monkey to SubmittingPatches
From: Rusty Russell <rusty@rustcorp.com.au>
From: maximilian attems <janitor@sternwelten.at>
Add the Monkey to SubmittingPatches.
<akpm@osdl.org>
[PATCH] ne2k-pci.c compile fix on ppc[64]
From: Rusty Russell <rusty@rustcorp.com.au>
These macros are redefined here. Previously definitions are in
asm-ppc(64)/io.h
<akpm@osdl.org>
[PATCH] Update Documentation/Changes
From: Trivial Patch Monkey <trivial@rustcorp.com.au>
From: Thomas Molina <tmolina@cablespeed.com>
<akpm@osdl.org>
[PATCH] i830 DRM missing put_user
From: Arjan van de Ven <arjanv@redhat.com>
The patch below adds a few missing put_user()'s to the i810/i830 drm
modules. Users reported oopses with 4g/4g split in action, and sparse
annotations indeed found the offender in the function in question. I've
kept the sparse __user annotations since those are generally useful anyway.
I can't test it myself but a few people reported that the oopses went away
so far.
<akpm@osdl.org>
[PATCH] export complete_all()
From: Mike Waychison <Michael.Waychison@Sun.COM>
Export complete_all for module use.
<akpm@osdl.org>
[PATCH] /dev/urandom scalability improvement
From: David Mosberger <davidm@napali.hpl.hp.com>
Somebody recently pointed out a performance-anomaly to me where an unusual
amount of time was being spent reading from /dev/urandom. The problem
isn't really surprising as it happened only on >= 4-way machines and the
random driver isn't terribly scalable the way it is written today. If
scalability _really_ mattered, I suppose per-CPU data structures would be
the way to go. However, I found that at least for 4-way machines,
performance can be improved considerably with the attached patch. In
particular, I saw the following performance on a 4-way ia64 machine:
Test: 3 tasks running "dd if=/dev/urandom of=/dev/null bs=1024":
throughput:
<akpm@osdl.org>
[PATCH] cpu5wdt.c warning fix
From: Heiko Ronsdorf <hero@persua.de>
- Remvoe a volatile which causes a warning via module_param()
- Remove an unused variable.
<akpm@osdl.org>
[PATCH] speed up fget() and fget_light()
Eric Dumazet <dada1@cosmosbay.com>
We can avoid evaluating `current' in a few places.
<akpm@osdl.org>
[PATCH] Move __this_module to modpost
From: Brian Gerst <bgerst@didntduck.org>
Move the __this_module structure to the modpost code where it really
belongs.
<akpm@osdl.org>
[PATCH] fix modversions now __this_module is created only in .ko
From: Rusty Russell <rusty@rustcorp.com.au>
Brian Gerst's patch which moved __this_module out from module.h into the
module post-processing had a side effect. genksyms didn't see the
undefined symbols for modules without a module_init (or module_exit), and
hence didn't generate a version for them, causing the kernel to be tainted.
The simple solution is to always include the versions for these functions.
Also includes two cleanups:
1) alloc_symbol is easier to use if it populates ->next for us.
2) add_exported_symbol should set owner to module, not head of module
list (we don't use this field in entries in that list, fortunately).
<akpm@osdl.org>
[PATCH] Support for floppies whose sectors are numbered from zero instead of
one
From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
From: Alain Knaff <alain.knaff@lll.lu>
This patch adds support for floppy disks whose sectors are numbered
starting at 0 rather than 1 as usual disks would be. This format is used
for some CP/M disks, and also for certain music samplers (such as Ensoniq
Ensoniq EPS 16plus).
In order to use it, you need an fdutils with the current patch from
http://fdutils.linux.lu as well, and then do setfdrpm /dev/fd0 dd zerobased
sect=10 or setfdprm /dev/fd0 hd zerobased sect.
In addtion, the patch also fixes my email addresses. I no longer use
pobox.com.
<akpm@osdl.org>
[PATCH] Remove bitmap_shift_*() bitmap length limits
From: William Lee Irwin III <wli@holomorphy.com>
Chang bitmap_shift_left()/bitmap_shift_right() to have O(1) stackspace
requirements.
Given zeroed tail preconditions these implementations satisfy zeroed tail
postconditions, which makes them compatible with whatever changes from Paul
Jackson one may want to merge in the future. No particular effort was
required to ensure this.
A small (but hopefully forgiveable) cleanup is a spelling correction:
s/bitmap_shift_write/bitmap_shift_right/ in one of the kerneldoc comments.
The primary effect of the patch is to remove the MAX_BITMAP_BITS
limitation, so restoring the NR_CPUS to be limited only by stackspace and
slab allocator maximums. They also look vaguely more efficient than the
current code, though as this was not done for performance reasons, no
performance testing was done.
<akpm@osdl.org>
[PATCH] Fix huge sparse tmpfs files
From: Hugh Dickins <hugh@veritas.com>
Kevin P. Fleming pointed out that the 2.6 tmpfs does not allow writing huge
sparse files. This is an unintended side-effect of the strict memory commit
changes: which should make no difference.
The solution is to treat the tmpfs files (of variable size) and the shmem
objects (of fixed size) differently: sounds nasty but works out well. The
shmem objects follow the VM preallocation convention as before, but the tmpfs
files revert to allocation on demand as a filesystem would. If there's not
enough memory to write to a tmpfs hole, it is reported as -ENOSPC rather than
-ENOMEM, so the mmap writer gets SIGBUS rather than everyone else getting
OOM-killed.
<akpm@osdl.org>
[PATCH] Strip quotes from kernel parameters
From: Rusty Russell <rusty@rustcorp.com.au>
Agustin Martin <agmartin@debian.org> pointed out that this doesn't work:
options ide-mod options="ide=nodma hdc=cdrom"
The quotes are understood by kernel/params.c (ie. it skips over spaces
inside them), but are not stripped before handing to the underlying
function. They should be.
<akpm@osdl.org>
[PATCH] summit: per-subarch NR_IRQ_VECTORS
From: James Cleverdon <jamesclv@us.ibm.com>
Break out the definition of NR_IRQ_VECTORS, etc from irq_vectors.h into
irq_vectors_limits.h, so we can change it per subarch without having code
duplication for the rest of the file. Stick the same values back for
mach-default, and override them for mach-summit/generic which needs bigger
limits.
<akpm@osdl.org>
[PATCH] summmit: increase MAX_MP_BUSSES
From: James Cleverdon <jamesclv@us.ibm.com>
Bump up MAX_MP_BUSSES for summit/generic subarch to cope with big IBM x440
systems.
<akpm@osdl.org>
[PATCH] ia64 MSI support
From: "Nguyen, Tom L" <tom.l.nguyen@intel.com>
Adds MSI support for ia64.
- Modified existing code in drivers/pci/msi.c and drivers/pci/msi.h to
include MSI support on IA64 platform.
- Based on the comments received from Zwane Mwaikambo and David Mosberger,
this patch consolidates the vector allocators as
assign_irq_vector(AUTO_ASSIGN) has the same semantics as
ia64_alloc_vector() by converting the existing uses of ia64_alloc_vector()
to assign_irq_vector(AUTO_ASSIGN).
- Based on the comments received from Zwane Mwaikambo, this patch
consolidates the semantics of vector allocator assign_irq_vector() in
drivers/pci/msi.c into the relevant architecture's vector allocator
assign_irq_vector() in arch/i386/kernel/io_apic.c.
- Regarding vector allocation, this patch modifies the existing function
assign_irq_vector() to maximize the number of allocated vectors to 188
before going -ENOSPC.
- Based on your comments, this patch creates <asm-i386/msi.h>,
<asm-ia64/msi.h> and <asm-x86_64/msi.h>, includes <asm/msi.h> from within
drivers/pci/msi.h and then places all the code which is currently under
ifdef in msi.h into the relevant architecture's <asm/msi.h> file.
- Based on your comments, this patch places pci_vector_resources() in
existing drivers/pci/msi.c in the relevant architecture implementations
such as into arch/.../pci/irq.c.
<akpm@osdl.org>
[PATCH] stv0299.c unused variable
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
drivers/media/dvb/frontends/stv0299.c:356: warning: unused variable `i'
<akpm@osdl.org>
[PATCH] selinux: fix struct type
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch fixes the type of the ssec pointer in the sk_free_security
function. This has no current impact as the magic element is the top of each
structure. Thanks to Chad Hanson of TCS for discovering the bug and
submitting the patch.
<akpm@osdl.org>
[PATCH] missing NULL pointer check in pte_alloc_one.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Just found an small bug in pgalloc for s390*. Comparing notes with other
architectures I found that pte_alloc_one is sick for alpha and sparc64 as
well.
<akpm@osdl.org>
[PATCH] kill spurious MAKDEV scripts
From: Christoph Hellwig <hch@lst.de>
Kill magic ide/sound makedev scripts in scripts/. The userland MAKEDEV is
the proper place and already has support for them.
<akpm@osdl.org>
[PATCH] oss/wavfront.c warning fix.
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
sound/oss/wavfront.c: At top level:
sound/oss/wavfront.c:2498: warning: `errno' defined but not used
<akpm@osdl.org>
[PATCH] remove bogus MOD_{INC,DEC}_USE_COUNT from hysdn
From: Christoph Hellwig <hch@lst.de>
the maintainer doesn't response unfortauntely, but removing these from
net_devices unconditionally is the 2.6 way to go, there's no more module
refcounting on net devices.
<akpm@osdl.org>
[PATCH] improve CONFIG_EMBEDDED help text
From: Matt Mackall <mpm@selenic.com>
Make CONFIG_EMBEDDED description more accurate
<akpm@osdl.org>
[PATCH] eliminate nswap and cnswap
From: Matt Mackall <mpm@selenic.com>
The nswap and cnswap variables counters have never been incremented as
Linux doesn't do task swapping.
<akpm@osdl.org>
[PATCH] shrink inode when quota is disabled
From: Matt Mackall <mpm@selenic.com>
drop quota array in inode struct if no quota support
<akpm@osdl.org>
[PATCH] enable suspend-on-halt for NS Geode
From: Matt Mackall <mpm@selenic.com>
From: Zwane Mwaikambo <zwane@arm.linux.org.uk>
This enables deep powersaving mode on Geode boxes.
<akpm@osdl.org>
[PATCH] O_DIRECT data exposure fixes
From: Badari Pulavarty, Suparna Bhattacharya, Andrew Morton
Forward port of Stephen Tweedie's DIO fixes from 2.4, to fix various DIO vs
buffered IO exposures involving races causing:
(a) stale data from uninstantiated blocks to be read, e.g.
- O_DIRECT reads against buffered writes to a sparse region
- O_DIRECT writes to a sparse region against buffered reads
(b) potential data corruption with
- O_DIRECT IOs against truncate
due to writes to truncated blocks (which may have been reallocated to
another file).
Summary of fixes:
1) All the changes affect only regular files. RAW/O_DIRECT on block are
unaffected.
2) The DIO code will not fill in sparse regions on a write. Instead
-ENOTBLK is returned and the generic file write code would fallthrough to
buffered IO in this case followed by writing through the pages to disk
using filemap_fdatawrite/wait.
3) i_sem is held during both DIO reads and writes. For reads, and writes
to already allocated blocks, it is released right after IO is issued,
while for writes to newly allocated blocks (e.g file extending writes and
hole overwrites) it is held all the way through until IO completes (and
data is committed to disk).
4) filemap_fdatawrite/wait are called under i_sem to synchronize buffered
pages to disk blocks before issuing DIO.
5) A new rwsem (i_alloc_sem) is held in shared mode all the while a DIO
(read or write) is in progress, and in exclusive mode by truncate to guard
against deallocation of data blocks during DIO.
6) All this new locking has been pushed down into blockdev_direct_IO to
avoid interfering with NFS direct IO. The locks are taken in the order
i_sem followed by i_alloc_sem. While i_sem may be released after IO
submission in some cases, i_alloc_sem is held through until dio_complete
(in the case of AIO-DIO this happens through the IO completion callback).
7) i_sem and i_alloc_sem are not held for the _nolock versions of write
routines, as used by blockdev and XFS. Filesystems can specify the
needs_special_locking parameter to __blockdev_direct_IO from their direct
IO address space op accordingly.
Note from Badari:
Here is the locking (when needs_special_locking is true):
(1) generic_file_*_write() holds i_sem (as before) and calls
->direct_IO(). blockdev_direct_IO gets i_alloc_sem and call
direct_io_worker().
(2) generic_file_*_read() does not hold any locks. blockdev_direct_IO()
gets i_sem and then i_alloc_sem and calls direct_io_worker() to do the
work
(3) direct_io_worker() does the work and drops i_sem after submitting IOs
if appropriate and drops i_alloc_sem after completing IOs.
<akpm@osdl.org>
[PATCH] Fix race between ll_rw_block() and block_write_full_page()
Fix a race which was identified by Daniel McNeil <daniel@osdl.org>
If a buffer_head is under I/O due to JBD's ordered data writeout (which uses
ll_rw_block()) then either filemap_fdatawrite() or filemap_fdatawait() need
to wait on the buffer's existing I/O.
Presently neither will do so, because __block_write_full_page() will not
actually submit any I/O and will hence not mark the page as being under
writeback.
The best-performing fix would be to somehow mark the page as being under
writeback and defer waiting for the ll_rw_block-initiated I/O until
filemap_fdatawait()-time. But this is hard, because in
__block_write_full_page() we do not have control of the buffer_head's end_io
handler. Possibly we could make JBD call into end_buffer_async_write(), but
that gets nasty.
This patch makes __block_write_full_page() wait for any buffer_head I/O to
complete before inspecting the buffer_head state. It only does this in the
case where __block_write_full_page() was called for a "data-integrity" write:
(wbc->sync_mode != WB_SYNC_NONE).
Probably it doesn't matter, because kjournald is currently submitting (or has
already submitted) all dirty buffers anyway.
<akpm@osdl.org>
[PATCH] blockdev direct-io speedups
From: Badari Pulavarty <pbadari@us.ibm.com>
1) blkdev_direct_IO() calls blockdev_direct_IO() instead of
blockdev_direct_IO_no_locking().
2) writev entry point is generic_file_writev() which grabs i_sem. It
should use generic_file_write_nolock() instead.
<akpm@osdl.org>
[PATCH] direct-io AIO fixes
From: Suparna Bhattacharya <suparna@in.ibm.com>
Fixes the following remaining issues with the DIO code:
1. During DIO file extends, intermediate writes could extend i_size
exposing unwritten blocks to intermediate reads (Soln: Don't drop i_sem
for file extends)
2. AIO-DIO file extends may update i_size before I/O completes,
exposing unwritten blocks to intermediate reads. (Soln: Force AIO-DIO
file extends to be synchronous)
3. AIO-DIO writes to holes call aio_complete() before falling back to
buffered I/O ! (Soln: Avoid calling aio_complete() if -ENOTBLK)
4. AIO-DIO writes to an allocated region followed by a hole, falls back
to buffered i/o without waiting for already submitted i/o to complete;
might return to user-space, which could overwrite the buffer contents
while they are still being written out by the kernel (Soln: Always wait
for submitted i/o to complete before falling back to buffered i/o)
<akpm@osdl.org>
[PATCH] AIO+DIO bio_count race fix
From: Suparna Bhattacharya <suparna@in.ibm.com>,
Daniel McNeil <daniel@osdl.org>
This patch ensures that when the DIO code falls back to buffered i/o after
having submitted part of the i/o, then buffered i/o is issued only for the
remaining part of the request (i.e. the part not already covered by DIO),
rather than redo the entire i/o. Now, instead of returning written ==
-ENOTBLK, generic_file_direct_IO returns the number of bytes already handled
by DIO, so that the caller knows how much of the I/O is left to be handled
via fallback to buffered write.
We need to careful not to access dio fields if its possible that the dio
could already have been freed asynchronously during i/o completion. A tricky
part of this involves plugging the window between the decrement of bio_count
and accessing dio->waiter during i/o completion where the dio could get freed
by the submission path. This potential "bio_count race" was tackled (by
Daniel) by changing bio_list_lock into bio_lock and using that for all the
bio fields. Now bio_count and bios_in_flight have been converted from
atomics into int and are both protected by the bio_lock. The race in
finished_one_bio() could thus be fixed by leaving the bio_count at 1 until
after the dio_complete() and then doing the bio_count decrement and wakeup
holding the bio_lock. It appears that shifting to the spin_lock instead of
atomic_inc/decs is ok performance wise as well.
Update:
An AIO O_DIRECT request was extending the file so it was done
synchronously. However, the request got an EFAULT and direct_io_worker()
was calling aio_complete() on the iocb and returning the EFAULT. When
io_submit_one() got the EFAULT return, it assume it had to call
aio_complete() since the i/o never got queued.
The fix is for direct_io_worker() to only call aio_complete() when the
upper layer is going to return -EIOCBQUEUED and not when getting errors
that are being return to the submit path.
<akpm@osdl.org>
[PATCH] rw_swap_page_sync(): place the pages in swapcache
This function is setting page->mapping = swapper_space, but isn't actually
adding the page to swapcache. This triggers soon-to-be-added BUGs in the
radix tree code.
So temporarily add these pages to swapcache for real.
Also, make rw_swap_page_sync() go away if it has no callers.
<akpm@osdl.org>
[PATCH] radix-tree tags for selective lookup
Add radix-tree tagging so we can look up dirty or writeback pages in
O(log64(n)) time.
Each radix-tree node gains two bits for each slot: one for page dirtiness and
one for page writebackness.
If a tag bit is set on a leaf node, it indicates that item at the
corresponding slot is tagged (say, a dirty page).
If a tag bit is set in a non-leaf node it indicates that the same tag bit is
set in the subtree which lies under the corresponding slot. ie: "there is a
dirty page under here somewhere, but you need to search down further to find
it".
A gang lookup function is provided which can walk the radix tree in
logarithmic time looking for items which are tagged, starting from a
specified offset. We use this for in-order searches for dirty or writeback
pages.
There is a userspace test harness for this code at
http://www.zip.com.au/~akpm/linux/patches/stuff/rtth.tar.gz
<akpm@osdl.org>
[PATCH] make the pagecache lock irq-safe.
Intro to these patches:
- Major surgery against the pagecache, radix-tree and writeback code. This
work is to address the O_DIRECT-vs-buffered data exposure horrors which
we've been struggling with for months.
As a side-effect, 32 bytes are saved from struct inode and eight bytes
are removed from struct page. At a cost of approximately 2.5 bits per page
in the radix tree nodes on 4k pagesize, assuming the pagecache is densely
populated. Not all pages are pagecache; other pages gain the full 8 byte
saving.
This change will break any arch code which is using page->list and will
also break any arch code which is using page->lru of memory which was
obtained from slab.
The basic problem which we (mainly Daniel McNeil) have been struggling
with is in getting a really reliable fsync() across the page lists while
other processes are performing writeback against the same file. It's like
juggling four bars of wet soap with your eyes shut while someone is
whacking you with a baseball bat. Daniel pretty much has the problem
plugged but I suspect that's just because we don't have testcases to
trigger the remaining problems. The complexity and additional locking
which those patches add is worrisome.
So the approach taken here is to remove the page lists altogether and
replace the list-based writeback and wait operations with in-order
radix-tree walks.
The radix-tree code has been enhanced to support "tagging" of pages, for
later searches for pages which have a particular tag set. This means that
we can ask the radix tree code "find me the next 16 dirty pages starting at
pagecache index N" and it will do that in O(log64(N)) time.
This affects I/O scheduling potentially quite significantly. It is no
longer the case that the kernel will submit pages for I/O in the order in
which the application dirtied them. We instead submit them in file-offset
order all the time.
This is likely to be advantageous when applications are seeking all over
a large file randomly writing small amounts of data. I haven't performed
much benchmarking, but tiobench random write throughput seems to be
increased by 30%. Other tests appear to be unaltered. dbench may have got
10-20% quicker, but it's variable.
There is one large file which everyone seeks all over randomly writing
small amounts of data: the blockdev mapping which caches filesystem
metadata. The kernel's IO submission patterns for this are now ideal.
Because writeback and wait-for-writeback use a tree walk instead of a
list walk they are no longer livelockable. This probably means that we no
longer need to hold i_sem across O_SYNC writes and perhaps fsync() and
fdatasync(). This may be beneficial for databases: multiple processes
writing and syncing different parts of the same file at the same time can
now all submit and wait upon writes to just their own little bit of the
file, so we can get a lot more data into the queues.
It is trivial to implement a part-file-fdatasync() as well, so
applications can say "sync the file from byte N to byte M", and multiple
applications can do this concurrently. This is easy for ext2 filesystems,
but probably needs lots of work for data-journalled filesystems and XFS and
it probably doesn't offer much benefit over an i_semless O_SYNC write.
These patches can end up making ext3 (even) slower:
for i in 1 2 3 4
do
dd if=/dev/zero of=$i bs=1M count=2000 &
done
runs awfully slow on SMP. This is, yet again, because all the file
blocks are jumbled up and the per-file linear writeout causes tons of
seeking. The above test runs sweetly on UP because the on UP we don't
allocate blocks to different files in parallel.
Mingming and Badari are working on getting block reservation working for
ext3 (preallocation on steroids). That should fix ext3 up.
This patch:
- Later, we'll need to access the radix trees from inside disk I/O
completion handlers. So make mapping->page_lock irq-safe. And rename it
to tree_lock to reliably break any missed conversions.
<akpm@osdl.org>
[PATCH] tag dirty pages as such in the radix tree
Arrange for all dirty pagecache pages to be tagged as dirty within their
radix tree.
<akpm@osdl.org>
[PATCH] tag writeback pages as such in their radix tree
Arrange for under-writeback pages to be marked thus in their pagecache radix
tree.
<akpm@osdl.org>
[PATCH] stop using the address_space dirty_pages list
Move everything over to walking the radix tree via the PAGECACHE_TAG_DIRTY
tag. Remove address_space.dirty_pages.
<akpm@osdl.org>
[PATCH] fix the kupdate function
Juggle dirty pages and dirty inodes and dirty superblocks and various
different writeback modes and livelock avoidance and fairness to recover from
the loss of mapping->io_pages.
<akpm@osdl.org>
[PATCH] remove address_space.io_pages
Now remove address_space.io_pages.
<akpm@osdl.org>
[PATCH] Stop using address_space.locked_pages
Instead, use a radix-tree walk of the pages which are tagged as being under
writeback.
The new function wait_on_page_writeback_range() was generalised out of
filemap_fdatawait(). We can later use this to provide concurrent fsync of
just a section of a file.
<akpm@osdl.org>
[PATCH] stop using address_space.clean_pages
Remove remaining references to address_space.clean_pages.
<akpm@osdl.org>
[PATCH] revert the slabification of i386 pgd's and pmd's
This code is playing with page->lru from pages which came from slab. But to
remove page->list we need to convert slab over to using page->lru. So we
cannot allow the i386 pagetable code to go scribbling on the ->lru field of
active slab pages.
This optimisation was pretty thin, and it is more important to shrink the
pageframe (on all architectures).
<akpm@osdl.org>
[PATCH] slab: stop using page.list
slab.c is using page->list. Switch it over to using page->lru so we can
remove page.list.
<akpm@osdl.org>
[PATCH] stop using page.list in the page allocator
Switch the page allocator over to using page.lru for the buddy lists.
<akpm@osdl.org>
[PATCH] stop using page->list in the hugetlbpage implementations
Switch them over to page.lru
<akpm@osdl.org>
[PATCH] stop using page.list in pageattr.c
Switch it to ->lru
<akpm@osdl.org>
[PATCH] stop using page.list in readahead
The address_space.readapges() function currently takes a list of pages,
strung together via page->list. Switch it to using page->lru.
This changes the API into filesystems.
<akpm@osdl.org>
[PATCH] stop using page->lru in compound pages
The compound page logic is using page->lru, and these get will scribbled on
in various places so switch the Compound page logic over to using ->mapping
and ->private.
<akpm@osdl.org>
[PATCH] arm: stop using page->list
Switch the ARM `small_page' code over to page->lru.
<akpm@osdl.org>
[PATCH] switch the m68k pointer-table code over to page->lru
Switch the m68k pointer-table code over to page->lru.
<akpm@osdl.org>
[PATCH] remove page.list
Remove the now-unneeded page.list field.
<akpm@osdl.org>
[PATCH] fdatasync integrity fix
fdatasync can fail to wait on some pages due to a race.
If some task (eg pdflush) is flushing the same mapping it can remove a page's
dirty tag but not then mark that page as being under writeback, because
pdflush hit a locked buffer in __block_write_full_page(). This will happen
because kjournald is writing the buffer. In this situation
__block_write_full_page() will redirty the page so that fsync notices it, but
there is a window where the page eludes the radix tree dirty page walk.
Consequently a concurrent fsync will fail to notice the page when walking the
radix tree's dirty pages.
The approach taken by this patch is to leave the page marked as dirty in the
radix tree while ->writepage is working out what to do with it. This ensures
that a concurrent write-for-sync will successfully locate the page and will
then block in lock_page() until the non-write-for-sync code has finished
altering the page state.
<akpm@osdl.org>
[PATCH] don't allow background writes to hide dirty buffers
If pdflush hits a locked-and-clean buffer in __block_write_full_page() it
will just pass over the buffer. Typically the buffer is an ext3 data=ordered
buffer which is being written by kjournald, but a similar thing can happen
with blockdev buffers and ll_rw_block().
This is bad because the buffer is still under I/O and a subsequent fsync's
fdatawait() needs to know about it.
It is not practical to tag the page for writeback - only the submitter of the
I/O can do that, because the submitter has control of the end_io handler.
So instead, redirty the page so a subsequent fsync's fdatawrite() will wait
on
the underway I/O.
There is a risk that pdflush::background_writeout() will lock up, repeatedly
trying and failing to write the same page. This is prevented by ensuring
that background_writeout() always throttles when it made no progress.
<akpm@osdl.org>
[PATCH] writeback efficiency and QoS improvements
The radix-tree walk for writeback has a couple of problems:
a) It always scans a file from its first dirty page, so if someone
is repeatedly dirtying the front part of a file, pages near the end
may be starved of writeout. (Well, not completely: the `kupdate'
function will write an entire file once the file's dirty timestamp
has expired).
b) When the disk queues are huge (10000 requests), there can be a
very large number of locked pages. Scanning past these in writeback
consumes quite some CPU time.
So in each address_space we record the index at which the last batch of
writeout terminated and start the next batch of writeback from that
point.
<akpm@osdl.org>
[PATCH] Add mpage_writepages() scheduling point
From: Jens Axboe <axboe@suse.de>
Takashi did some nice latency testing of the current kernel (with -mm
writeback changes), and the biggest offender in general core is
mpage_writepages().
<akpm@osdl.org>
[PATCH] mpage_writepages() cleanup
Rework the code layout a bit. No logic change.
<akpm@osdl.org>
[PATCH] use compound pages for hugetlb pages only
The compound page logic is a little fragile - it relies on additional
metadata in the pageframes which some other kernel code likes to stomp on
(xfs was doing this).
Also, because we're treating all higher-order pages as compound pages it is
no longer possible to free individual lower-order pages from the middle of
higher-order pages. At least one ARM driver insists on doing this.
We only really need the compound page logic for higher-order pages which can
be mapped into user pagetables and placed under direct-io. This covers
hugetlb pages and, conceivably, soundcard DMA buffers which were allcoated
with a higher-order allocation but which weren't marked PageReserved.
The patch arranges for the hugetlb implications to allocate their pages with
compound page metadata, and all other higher-order allocations go back to the
old way.
(Andrea supplied the GFP_LEVEL_MASK fix)
<akpm@osdl.org>
[PATCH] fork vma ordering during fork
From: Hugh Dickins <hugh@veritas.com>
First of six patches against 2.6.5-rc3, cleaning up mremap's move_vma, and
fixing truncation orphan issues raised by Rajesh Venkatasubramanian.
Originally done as part of the anonymous objrmap work on mremap move, but
useful fixes now extracted for mainline. The mremap changes need some
exposure in the -mm tree first, but the first (fork one-liner) is safe enough
to go straight into 2.6.5.
From: Rajesh Venkatasubramanian. Despite the comment that child vma should
be inserted just after parent vma, 2.5.6 did exactly the reverse: thus a
racing vmtruncate may free the child's ptes, then advance to the parent, and
meanwhile copy_page_range has propagated more ptes from the parent to the
child, leaving file pages still mapped after truncation.
<akpm@osdl.org>
[PATCH] mremap: copy_one_pte cleanup
From: Hugh Dickins <hugh@veritas.com>
Clean up mremap move's copy_one_pte:
- get_one_pte_map_nested already weeded out the pte_none case,
now don't even call copy_one_pte if it has nothing to do.
- check pfn_valid before passing page to page_remove_rmap.
<akpm@osdl.org>
[PATCH] mremap: move_vma fixes and cleanup
From: Hugh Dickins <hugh@veritas.com>
Partial rewrite of mremap's move_vma. Rajesh Venkatasubramanian has pointed
out that vmtruncate could miss ptes, leaving orphaned pages, because move_vma
only made the new vma visible after filling it. We see no good reason for
that, and time to make move_vma more robust.
Removed all its vma merging decisions, leave them to mmap.c's vma_merge, with
copy_vma added. Removed duplicated is_mergeable_vma test from vma_merge, and
duplicated validate_mm from insert_vm_struct.
move_vma move from old to new then unmap old; but on error move back from new
to old and unmap new. Don't unwind within move_page_tables, let move_vma
call it explicitly to unwind, with the right source vma. Get the
VM_ACCOUNTing right even when the final do_munmap fails.
<akpm@osdl.org>
[PATCH] mremap: vma_relink_file race fix
From: Hugh Dickins <hugh@veritas.com>
Subtle point from Rajesh Venkatasubramanian: when mremap's move_vma fails and
so rewinds, before moving the file-based ptes back, we must move new_vma
before old vma in the i_mmap or i_mmap_shared list, so that when racing
against vmtruncate we cannot propagate pages to be truncated back from
new_vma into the just cleaned old_vma.
<akpm@osdl.org>
[PATCH] mremap: check map_count
From: Hugh Dickins <hugh@veritas.com>
mremap's move_vma should think ahead to lessen the chance of failure during
its rewind on failure: running out of memory always possible, but it's silly
for it to embark when it's near the map_count limit.
<akpm@osdl.org>
[PATCH] Fix rmap comment
From: Hugh Dickins <hugh@veritas.com>
rmap's try_to_unmap_one comments on find_vma failure, that a page may
temporarily be absent from a vma during mremap: no longer, though it is still
possible for this find_vma to fail, while unmap_vmas drops page_table_lock
(but that is no problem for file truncation).
<akpm@osdl.org>
[PATCH] kswapd: remove pages_scanned local
This is always equal to constant zero.
<akpm@osdl.org>
[PATCH] laptop mode
From: Bart Samwel <bart@samwel.tk>
Adds /proc/sys/vm/laptop-mode: a special knob which says "this is a laptop".
In this mode the kernel will attempt to avoid spinning disks up.
Algorithm: the idea is to hold dirty data in memory for a long time, but to
flush everything which has been accumulated if the disk happens to spin up
for other reasons.
- Whenever a disk request completes (read or write), schedule a timer a few
seconds hence. If the timer was already pending, reset it to a few seconds
hence.
- When the timer expires, write back the whole world. We use
sync_filesystems() for this because it will force ext3 journal commits as
well.
- In balance_dirty_pages(), kick off background writeback when we hit the
high threshold (dirty_ratio), not when we hit the low threshold. This has
the effect of causing "lumpy" writeback which is something I spent a year
fixing, but in laptop mode, it is desirable.
- In try_to_free_pages(), only kick pdflush if the VM is getting into
distress: we want to keep scanning for clean pages, deferring writeback.
- In page reclaim, avoid writing back the odd random dirty page off the
LRU: only start I/O if the scanning is working harder.
The effect is to perform a sync() a few seconds after all I/O has ceased.
The value which was written into /proc/sys/vm/laptop-mode determines, in
seconds, the delay between the final I/O and the flush.
Additionally, the patch adds tools which help answer the question "why the
heck does my disk spin up all the time?". The user may set
/proc/sys/vm/block_dump to a non-zero value and the kernel will print out
information which will identify the process which is performing disk reads or
which is dirtying pagecache.
The user should probably disable syslogd before setting block-dump.
<akpm@osdl.org>
[PATCH] Add commit=0 to ext3, meaning "set commit to default".
From: Bart Samwel <bart@samwel.tk>
Add support for the value "0" to ext3's "commit" option. When this value
is given, ext3 substitutes it by the default commit interval. Introduce a
constant JBD_DEFAULT_MAX_COMMIT_AGE for this.
<akpm@osdl.org>
[PATCH] Honour the readahead tunable in filemap_nopage()
Remove the hardwired pagefault readaround distance in filemap_nopage() and
use the per-file readahead setting.
The main reason for this is in fact laptop-mode. If you want to prevent the
disk from spinning up then you want all of your application's pages to be
pulled into memory in one hit. Otherwise the disk will spin up each time you
use a new part of whatever application(s) you are running.
<akpm@osdl.org>
[PATCH] Fix logic in filemap_nopage()
The filempa_nopage() logic will go into a tight loop if
do_page_cache_readahead() doesn't actually start I/O against the target page.
This can happen if the disk is read-congested, or if the filesystem doesn't
want to read that part of the file for some reason.
We will accidentally break out of the loop because
(ra->mmap_miss > ra->mmap_hit + MMAP_LOTSAMISS)
will eventually become true.
Fix that up.
<akpm@osdl.org>
[PATCH] acpi printk fix
drivers/acpi/events/evmisc.c: In function `acpi_ev_queue_notify_request':
drivers/acpi/events/evmisc.c:143: warning: too many arguments for format
<akpm@osdl.org>
[PATCH] ia32: 4Kb stacks (and irqstacks) patch
From: Arjan van de Ven <arjanv@redhat.com>
Below is a patch to enable 4Kb stacks for x86. The goal of this is to
1) Reduce footprint per thread so that systems can run many more threads
(for the java people)
2) Reduce the pressure on the VM for order > 0 allocations. We see real life
workloads (granted with 2.4 but the fundamental fragmentation issue isn't
solved in 2.6 and isn't solvable in theory) where this can be a problem.
In addition order > 0 allocations can make the VM "stutter" and give more
latency due to having to do much much more work trying to defragment
The first 2 bits of the patch actually affect compiler options in a generic
way: I propose to disable the -funit-at-a-time feature from gcc. With this
enabled (and it's default with -O2), gcc will very agressively inline
functions, which is nice and all for userspace, but for the kernel this makes
us suffer a gcc deficiency more: gcc is extremely bad at sharing stackslots,
for example a situation like this:
if (some_condition)
function_A();
else
function_B();
with -funit-at-a-time, both function_A() and _B() might get inlined, however
the stack usage of both functions of the parent function grows the stack
usage of both functions COMBINED instead of the maximum of the two. Even
with the normal 8Kb stacks this is a danger since we see some functions grow
3Kb to 4Kb of stack use this way. With 4Kb stacks, 4Kb of stack usage growth
obviously is deadly ;-( but even with 8Kb stacks it's pure lottery.
Disabling -funit-at-a-time also exposes another thing in the -mm tree; the
attribute always_inline is considered harmful by gcc folks in that when gcc
makes a decision to NOT inline a function marked this way, it throws an
error. Disabling -funit-at-a-time disables some of the agressive inlining
(eg of large functions that come later in the .c file) so this would make
your tree not compile.
The 4k stackness of the kernel is included in modversions, so people don't
load 4k-stack modules into 8k-stack kernels.
At present 4k stacks are selectable in config. When the feature has settled
in we should remove the 8k option. This will break the nvidia modules. But
Fedora uses 4k stacks so a new nvidia driver is expected soon.
<akpm@osdl.org>
[PATCH] procfs LoadAVG/load_avg scaling fix
From: Ingo Molnar <mingo@elte.hu>
Dave reported that /proc/*/status sometimes shows 101% as LoadAVG, which
makes no sense.
the reason of the bug is slightly incorrect scaling of the load_avg value.
The patch below fixes this.
<akpm@osdl.org>
[PATCH] ppc64: NUMA fix for 16MB LMBs
From: Olof Johansson <olof@austin.ibm.com>
As discussed on the ppc64 list yesterday and today:
On some ppc64 systems, Open Firmware will give memory device nodes that are
only 16MB in size, instead of the 256MB that our NUMA code currently
expects (see MEMORY_INCREMENT in mmzone.h).
Just changing the defines from 256MB to 16MB makes the table blow up from
32KB to 512KB, so this patch also makes it dynamically allocated based on
actual memory size. Since all this is done before (well, during) bootmem
init so we need to use lmb_alloc().
Finally, there's no need to use a full int for node ID. Current max is 16
nodes, so a signed char still leaves plenty of room to grow.
<akpm@osdl.org>
[PATCH] build fails on sparc64 in hugetlbpage.c
From: Romain Francoise <romain@orebokech.com>
arch/sparc64/mm/hugetlbpage.c does not include linux/module.h so
EXPORT_SYMBOL prints out warnings, and since sparc64 Makefiles have
-Werror, the build fails.
<akpm@osdl.org>
[PATCH] epoll comment fix
From: Davide Libenzi <davidel@xmailserver.org>
When I split evenpoll_release() in an inline fast path plus an
eventpoll_release_file() slow path, I forgot to change comments.
<akpm@osdl.org>
[PATCH] add stop_machine barriers
From: Andrea Arcangeli <andrea@suse.de>
We need a barrier before checking for kthread_should_stop in do_stop.
<akpm@osdl.org>
[PATCH] sunrpc: connection dropping tweaks
From: Olaf Kirch <okir@suse.de>
Some NFS clients respond badly to a TCP connection being reset immediately
after it has been accepted so:
- Accept more connections before starting to drop them
- Always drop the oldest connection - Random Early Drop doesn't really help
here, and can hurt
- ratelimit the friendly warnings.
<akpm@osdl.org>
[PATCH] ACL version mismatch error code fix
From: Andreas Gruenbacher <agruen@suse.de>
Return EOPNOTSUPP rather than EINVAL when we discover an ACL version
mismatch.
<akpm@osdl.org>
[PATCH] v4l: cropcap ioctl fix
From: Gerd Knorr <kraxel@bytesex.org>
The VIDIOC_CROPCAP ioctl had wrong R/W bits, this patch fixes it.
<akpm@osdl.org>
[PATCH] v4l: v4l1-compat fix
From: Gerd Knorr <kraxel@bytesex.org>
Minor tweak in the v4l1 compatibility layer: Make sure that capture actually
is active before going to wait for a frame so we don't block forever.
<akpm@osdl.org>
[PATCH] v4l: tuner fix
From: Gerd Knorr <kraxel@bytesex.org>
This patch fixes a bug in the tuner descriptions and prepares for the removal
of the type= insmod option by printing a warning when it is used.
<akpm@osdl.org>
[PATCH] v4l: msp3400 update
From: Gerd Knorr <kraxel@bytesex.org>
This patch allows to use switch to the second external input of the msp34xx
chips. Also has some minor cleanups and more verbose debug info.
<akpm@osdl.org>
[PATCH] v4l: add support for pv951 remote to ir-kbd-i2c
From: Gerd Knorr <kraxel@bytesex.org>
Trivial patch, $subject says all, just a new keytable.
<akpm@osdl.org>
[PATCH] v4l: saa7134 driver update
From: Gerd Knorr <kraxel@bytesex.org>
This is a update for the saa7134 driver. Changes:
* add cropping support.
* fix Makefile to build the saa6752hs module.
* fix locking bug in oss dsp driver.
* infrared remote keytable update.
* some card-specific fixes.
<akpm@osdl.org>
[PATCH] v4l-saa7134-update fix
drivers/built-in.o(.text+0x32912b): In function `dsp_buffer_init':
drivers/media/video/saa7134/saa7134-oss.c:77: undefined reference to
`videobuf_dma_init'
<akpm@osdl.org>
[PATCH] v4l: bttv driver update
From: Gerd Knorr <kraxel@bytesex.org>
This patch updates the bttv driver. Changes:
(1) several card-specific tweaks.
(2) make software vs. hardware i2c configurable per TV card.
(3) reinitialize image parameters after chip reset.
(4) make bttv quite by default on frame drops.
(5) new insmod option: "debug_latency=1" to enable frame drop
debug messages.
bttv is quite sensitive to irq latencies, especially when capturing both
video and vbi. There are several reports about problems due to this, I don't
see that on my machines through. (5) dumps a stracktrace if the driver
thinks the frame drop is is caused by high latencies as experiment, lets see
whenever that helps ...
<akpm@osdl.org>
[PATCH] v4l: documentation update
From: Gerd Knorr <kraxel@bytesex.org>
This patch updates the documentation for the v4l drivers.
<akpm@osdl.org>
[PATCH] cx88 update.
From: Gerd Knorr <kraxel@bytesex.org>
This is a update for the cx88 driver. There are *lots* of changes:
* vbi support was added.
* plenty of fixes for audio support (there are still problems
through).
* new cards added.
* serveral minor tweaks.
<akpm@osdl.org>
[PATCH] drivers/base/platform.c typo fix
From: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
<akpm@osdl.org>
[PATCH] Subject: [PATCH] Fix overflow bug in READDIRPLUS...
From: Trond Myklebust <trond.myklebust@fys.uio.no>
Fixes the Oops reported by Paul Blazejowski. Bug turned out to be in the
page
overflow checking for READDIRPLUS.
<akpm@osdl.org>
[PATCH] Fix 32bit statfs on NFS
From: Olaf Kirch <okir@suse.de>
The attached patch fixes a problem with the 32bit statfs call on NFS file
systems. Some NFS servers return a value of -1 for the f_files and f_ffree.
The current code would think this is a 64bit value that cannot be converted
to 32bits. Consequently, the system call would always fail.
The patch adds two special if() to detect a value of -1 for f_files and
f_ffree.
<akpm@osdl.org>
[PATCH] nfs-32bit-statfs-fix warning fix
With CONFIG_LBD=n:
fs/open.c: In function `vfs_statfs_native':
fs/open.c:67: warning: comparison is always true due to limited range of
data type
fs/open.c:70: warning: comparison is always true due to limited range of
data type
<akpm@osdl.org>
[PATCH] wavefront_synth.c var not used.
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
sound/isa/wavefront/wavefront_synth.c:1923: warning: `errno' defined but not
used
<akpm@osdl.org>
[PATCH] tda1004x.c var not used.
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
drivers/media/dvb/frontends/tda1004x.c:191: warning: `errno' defined but not
used
<akpm@osdl.org>
[PATCH] pmdisk needs asmlinkage
From: Pavel Machek <pavel@ucw.cz>
This function will break with -mregparm, so mark it asmlinkage.
<akpm@osdl.org>
[PATCH] cycx_drv.c warning fix.
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
drivers/net/wan/cycx_drv.c: In function `load_cyc2x':
drivers/net/wan/cycx_drv.c:430: warning: unsigned int format, long unsigned
int arg (arg 3)
<akpm@osdl.org>
[PATCH] ibmlana needs CONFIG_MCA_LEGACY
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
IBM LAN Adapter/A driver depends on mca-legacy.
<akpm@osdl.org>
[PATCH] Improve list.h documentation for _rcu() primitives
From: "Paul E. McKenney" <paulmck@us.ibm.com>
The attached patch improves the documentation of the _rcu list primitives.
<akpm@osdl.org>
[PATCH] list.h cleanup
- s/__inline__/inline/
- Remove lots of extraneous andi-was-here trailing whitespace
<akpm@osdl.org>
[PATCH] Non-Exec stack support
From: Kurt Garloff <garloff@suse.de>
A patch to parse the elf binaries for a PT_GNU_STACK section to set the stack
non-executable if possible. Most parts have been shamelessly stolen from
Ingo Molnar's more ambitious stackshield
http://people.redhat.com/mingo/exec-shield/exec-shield-2.6.4-C9
The toolchain has meanwhile support for marking the binaries with a
PT_GNU_STACK section wwithout x bit as needed.
If no such section is found, we leave the stack to whatever the arch defaults
to. If there is one, we explicitly disabled the VM_EXEC bit if no x bit is
found, otherwise explicitly enable.
<akpm@osdl.org>
[PATCH] Fix ext3 transaction batching
ext3 transaction batching has been ineffective since the scheduler changes
forced us to replace the yield() with a schedule().
Using schedule_timeout(1) fixes it up again. Benchmarking is positive with
wither a 1 or 10 millisecond delay in there, so there appears to be no need
to play around with HZ.
<akpm@osdl.org>
[PATCH] reiserfs: support for nested transactions
From: Chris Mason <mason@suse.com>
reiserfs support for nested transactions. This originally came from Peter
Braam for 2.4.x and was ported forward by Jeff Mahoney.
<akpm@osdl.org>
[PATCH] reiserfs: cleanups
From: Chris Mason <mason@suse.com>
reiserfs cleanup, get rid of old debugging code.
<akpm@osdl.org>
[PATCH] reiserfs: logging rework
From: Chris Mason <mason@suse.com>
reiserfs logging rework, making things much faster for small transactions.
metadata buffers are dirtied when they are safe to write, so normal kernel
mechanisms can contribute to log cleaning.
<akpm@osdl.org>
[PATCH] reiserfs: data=ordered support
From: Chris Mason <mason@suse.com>
reiserfs data=ordered support.
<akpm@osdl.org>
[PATCH] reiserfs: locking fix
From: Chris Mason <mason@suse.com>
Make sure to hold the BKL while ending a transaction in the error path or
reiserfs_prepare_write.
<akpm@osdl.org>
[PATCH] reiserfs: preallocation support
From: Chris Mason <mason@suse.com>
Enable preallocation for reiserfs_file_write when the write size is smaller
than the default preallocation size.
<akpm@osdl.org>
[PATCH] reiserfs: tail repacking fix
From: Chris Mason <mason@suse.com>
Repacking a tail might leave a journal handle attached to an unmapped buffer.
If that buffer gets dirtied again (via mmap for example), the reiserfs
data=ordered code might try to write the dirty unmapped buffer to disk.
The fix is to make sure we remove the journal handle when we unmap buffers.
<akpm@osdl.org>
[PATCH] reiserfs: fix race with writepage
From: Chris Mason <mason@suse.com>
Fix reiserfs_writepage so it doesn't race with data=ordered writes. This
still has a pending fix to redirty the page when it finds a locked buffer.
Waiting for Andrew to finish sorting that out on ext3 first.
<akpm@osdl.org>
[PATCH] reiserfs: sparse file handling fix
From: Chris Mason <mason@suse.com>
reiserfs_file_write makes a hole one block too large if it is the first thing
in the file.
<akpm@osdl.org>
[PATCH] reiserfs: laptop-mode support
From: Chris Mason <mason@suse.com>
Add reiserfs support for laptop mode.
<akpm@osdl.org>
[PATCH] reiserfs: truncate leak fix
From: Chris Mason <mason@suse.com>
reiserfs_unmap_buffer should clean and wait on all buffers. This fixes a
leak under fsx workloads.
<akpm@osdl.org>
[PATCH] reiserfs: scheduling latency improvements
From: Chris Mason <mason@suse.com>
Some latency improvements for the reiserfs data=ordered code from Takashi.
<akpm@osdl.org>
[PATCH] reiserfs: fix dirty-buffer warnings
From: Chris Mason <mason@suse.com>
block_write_full_page() might see and lock clean metadata buffers, which
leads
to journal-1777 messages. Change the message to ignore bh locked.
<akpm@osdl.org>
[PATCH] reiserfs_kfree warning fix
fs/reiserfs/journal.c: In function `reiserfs_end_persistent_transaction':
fs/reiserfs/journal.c:2616: warning: unused variable `s'
Make the functions static inline so that typechecking is enabled if
!CONFIG_REISERFS_CHECK.
<akpm@osdl.org>
[PATCH] reiserfs writepage race with data=ordered
From: Chris Mason <mason@suse.com>
reiserfs-writepage-ordered-race needs a minor update to include your latest
__block_write_full_page fixes for the direct_read_under bug Daniel was
hitting.
<akpm@osdl.org>
[PATCH] selinux: add IPv6 support
From: James Morris <jmorris@redhat.com>
The patch below adds explicit IPv6 support to SELinux.
Brief description of changes:
o IPv6 networking is now subject to the same controls as IPv4 (in
addition to the generic socket permissions which cover all protocols),
namely: bind to local node address; bind to local port; send & receive
TCP/UDP and raw IP packets based on local network interface and remote
node address.
o Packet parsing has been extended to IPv6 packets for logging and
control, and simplified for IPv4.
o Support for logging of IPv6 addresses has also been added.
o The kernel policy database code has been modified to support IPv6, and
reworked to provide generic security policy version handling so that
older policy versions will still work, making upgrading simpler.
Corresponding userspace patches are available at
<http://people.redhat.com/jmorris/selinux/ipv6/>, although current
userspace tools will continue to function normally (but without explicit
IPv6 support).
For more details at the security management level, see
<http://marc.theaimsgroup.com/?l=selinux&m=108068187630948&w=2>
This code has been under testing and review for several weeks.
<akpm@osdl.org>
[PATCH] From: James Morris <jmorris@redhat.com>
This patch removes a harmless duplicate assignment from the IPv6 code.
<akpm@osdl.org>
[PATCH] Light-weight Auditing Framework
From: Rik Faith <faith@redhat.com>
This patch provides a low-overhead system-call auditing framework for Linux
that is usable by LSM components (e.g., SELinux). This is an update of the
patch discussed in this thread:
http://marc.theaimsgroup.com/?t=107815888100001&r=1&w=2
In brief, it provides for netlink-based logging of audit records that have
been generated in other parts of the kernel (e.g., SELinux) as well as the
ability to audit system calls, either independently (using simple
filtering) or as a compliment to the audit record that another part of the
kernel generated.
The main goals were to provide system call auditing with 1) as low overhead
as possible, and 2) without duplicating functionality that is already
provided by SELinux (and/or other security infrastructures). This
framework will work "stand-alone", but is not designed to provide, e.g.,
CAPP functionality without another security component in place.
This updated patch includes changes from feedback I have received,
including the ability to compile without CONFIG_NET (and better use of
tabs, so use -w if you diff against the older patch).
Please see http://people.redhat.com/faith/audit/ for an early example
user-space client (auditd-0.4.tar.gz) and instructions on how to try it.
My future intentions at the kernel level include improving filtering (e.g.,
syscall personality/exit codes) and syscall support for more architectures.
First, though, I'm going to work on documentation, a (real) audit daemon,
and patches for other user-space tools so that people can play with the
framework and understand how it can be used with and without SELinux.
Update:
Light-weight Auditing Framework receive filter fixes
From: Rik Faith <faith@redhat.com>
Since audit_receive_filter() is only called with audit_netlink_sem held, it
cannot race with either audit_del_rule() or audit_add_rule(), so the
list_for_each_entry_rcu()s may be replaced by list_for_each_entry()s, and
the rcu_read_{un,}lock()s removed. A fix for this is part of the attached
patch.
Other features of the attached patch are:
1) generalized the ability to test for inequality
2) added syscall exit status reporting and testing
3) added ability to report and test first 4 syscall arguments (this adds
a large amount of flexibility for little cost; not implemented or tested
on ppc64)
4) added ability to report and test personality
User-space demo program enhanced for new fields and inequality testing:
http://people.redhat.com/faith/audit/auditd-0.5.tar.gz
<akpm@osdl.org>
[PATCH] selinux: make IPv6 code work with audit framework
From: James Morris <jmorris@redhat.com>
This patch makes the IPv6 code work with the audit framework, following the
merge of both.
<akpm@osdl.org>
[PATCH] selinux: Audit compute_sid errors
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch changes an error message printk'd by security_compute_sid to use
the audit framework instead. These errors reflect situations where a
security transition would normally occur due to policy, but the resulting
security context is not valid. The patch also changes the code to always
call the audit framework rather than only doing so when permissive as this
was causing problems with testing policy, and does some code cleanup.
<akpm@osdl.org>
[PATCH] selinux: remove ratelimit from avc
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch drops the ratelimit code from the SELinux avc, as this can now
be handled by the audit framework. Enabling and setting the ratelimit is
then left to userspace.
<akpm@osdl.org>
[PATCH] CONFIG_SND_MIXART doesn't compile
From: Bernhard Rosenkraenzer <bero@arklinux.org>
mixart.h uses tasklet_struct without including linux/interrupt.h -- fix
attached.
<akpm@osdl.org>
[PATCH] unmap_vmas latency improvement
unmap_vmas() will cause scheduling latency when tearing down really big vmas
on !CONFIG_PREEMPT. That's a bit unkind to the non-preempt case, so let's do
a cond_resched() after zapping 1024 pages.
<akpm@osdl.org>
[PATCH] more i386 head.S cleanups
From: Brian Gerst <bgerst@didntduck.org>
- Move empty_zero_page and swapper_pg_dir to BSS. This requires that BSS
is cleared earlier, but reclaims over 3k that was lost due to page
alignment.
- Move stack_start, ready, and int_msg, boot_gdt_descr, idt_descr, and
cpu_gdt_descr to .data. They were interfering with disassembly while in
.text.
<akpm@osdl.org>
[PATCH] intermezzo leak fixes
- Don't leak a pathname ref on error
- Don't do putname() on a nameidata.
<akpm@osdl.org>
[PATCH] es1688 Definition redundancy
From: Fabian Frederick <Fabian.Frederick@skynet.be>
Here's a trivial patch to avoid definition redundancy in es1688.
<akpm@osdl.org>
[PATCH] binfmt_elf.c fix for 32-bit apps with large bss
From: Julie DeWandel <jdewand@redhat.com>
A problem exists where a 32-bit application can have a huge bss, one that
is so large that an overflow of the TASK_SIZE happens. But in this case,
the overflow is not detected in load_elf_binary(). Instead, because
arithmetic is being done using 32-bit containers, a truncation occurs and
the program gets loaded when it shouldn't have been. Subsequent execution
yields unpredictable results.
The attached patch fixes this problem by checking for the overflow
condition and sending a SIGKILL to the application if the overflow is
detected. This problem can in theory exist when loading the elf
interpreter as well, so a similar check was added there.
<akpm@osdl.org>
[PATCH] stack reduction: ide-cd
From: Arjan van de Ven <arjanv@redhat.com>
ide-cd: a few 512 byte scratch buffers can be static; they are just for
putting "padding" sectors in that aren't used.
(acked by Jens)
<akpm@osdl.org>
[PATCH] stack reductions: ide
From: Arjan van de Ven <arjanv@redhat.com>
ide.c: constant array of strings can be static
<akpm@osdl.org>
[PATCH] stack reduction: ISDN
From: Arjan van de Ven <arjanv@redhat.com>
isdn: dynamically allocate big structures
<akpm@osdl.org>
[PATCH] use EFLAGS #defines instead of inline constants
From: "Randy.Dunlap" <rddunlap@osdl.org>
Use x86 EFLAGS defines in place of hardwired constants.
<akpm@osdl.org>
[PATCH] H8/300 support update (1/3) - ptrace fix
From: Yoshinori Sato <ysato@users.sourceforge.jp>
- fix PTRACE_SIGLESTEP bug.
- separate to CPU depend.
<akpm@osdl.org>
[PATCH] H8/300 support update (2/3) - entry.S cleanup
From: Yoshinori Sato <ysato@users.sourceforge.jp>
- cleanup define
<akpm@osdl.org>
[PATCH] H8/300 support update (3/3) - others
From: Yoshinori Sato <ysato@users.sourceforge.jp>
- use new serial driver (drivers/serial/sh-sci.[ch])
- typo fix
- add message level
<akpm@osdl.org>
[PATCH] H8/300 support update
From: Yoshinori Sato <ysato@users.sourceforge.jp>
- fix any error/warning
- fix {request,freee}_irq interrupt control fix
- add dump_stack
- fix show_trace_task
- fix typo
<akpm@osdl.org>
[PATCH] sh-sci compile error fix patch
From: Yoshinori Sato <ysato@users.sourceforge.jp>
- add Kconfig depends H8300
- H8/300 support compile error fixed.
<akpm@osdl.org>
[PATCH] fix posix-timers to have proper per-process scope
From: Roland McGrath <roland@redhat.com>
The posix-timers implementation associates timers with the creating thread
and destroys timers when their creator thread dies. POSIX clearly
specifies that these timers are per-process, and a timer should not be torn
down when the thread that created it exits. I hope there won't be any
controversy on what the correct semantics are here, since POSIX is clear
and the Linux feature is called "posix-timers".
The attached program built with NPTL -lrt -lpthread demonstrates the bug.
The program is correct by POSIX, but fails on Linux. Note that a until
just the other day, NPTL had a trivial bug that always disabled its use of
kernel timer syscalls (check strace for lack of timer_create/SYS_259). So
unless you have built your own NPTL libs very recently, you probably won't
see the kernel calls actually used by this program.
Also attached is my patch to fix this. It (you guessed it) moves the
posix_timers field from task_struct to signal_struct. Access is now
governed by the siglock instead of the task lock. exit_itimers is called
from __exit_signal, i.e. only on the death of the last thread in the
group, rather than from do_exit for every thread. Timers' it_process
fields store the group leader's pointer, which won't die. For the case of
SIGEV_THREAD_ID, I hold a ref on the task_struct for it_process to stay
robust in case the target thread dies; the ref is released and the dangling
pointer cleared when the timer fires and the target thread is dead. (This
should only come up in a buggy user program, so noone cares exactly how the
kernel handles that case. But I think what I did is robust and sensical.)
/* Test for bogus per-thread deletion of timers. */
#include <stdio.h>
#include <error.h>
#include <time.h>
#include <signal.h>
#include <stdint.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>
#include <pthread.h>
/* Creating timers in another thread should work too. */
static void *do_timer_create(void *arg)
{
struct sigevent *const sigev = arg;
timer_t *const timerId = sigev->sigev_value.sival_ptr;
if (timer_create(CLOCK_REALTIME, sigev, timerId) < 0) {
perror("timer_create");
return NULL;
}
return timerId;
}
int main(void)
{
int i, res;
timer_t timerId;
struct itimerspec itval;
struct sigevent sigev;
itval.it_interval.tv_sec = 2;
itval.it_interval.tv_nsec = 0;
itval.it_value.tv_sec = 2;
itval.it_value.tv_nsec = 0;
sigev.sigev_notify = SIGEV_SIGNAL;
sigev.sigev_signo = SIGALRM;
sigev.sigev_value.sival_ptr = (void *)&timerId;
for (i = 0; i < 100; i++) {
printf("cnt = %d\n", i);
pthread_t thr;
res = pthread_create(&thr, NULL, &do_timer_create, &sigev);
if (res) {
error(0, res, "pthread_create");
continue;
}
void *val;
res = pthread_join(thr, &val);
if (res) {
error(0, res, "pthread_join");
continue;
}
if (val == NULL)
continue;
res = timer_settime(timerId, 0, &itval, NULL);
if (res < 0)
perror("timer_settime");
res = timer_delete(timerId);
if (res < 0)
perror("timer_delete");
}
return 0;
}
<akpm@osdl.org>
[PATCH] v850: use volatile qualifier on v850 test-n-bitop asm statements
From: <miles@mcspd15.ucom.lsi.nec.co.jp> (Miles Bader)
Otherwise the compiler can delete them (this is one of those "how on earth
did it ever work before" moments).
<akpm@osdl.org>
[PATCH] v850: make v850 dma-mapping.h header work when !CONFIG_PCI
From: <miles@mcspd15.ucom.lsi.nec.co.jp> (Miles Bader)
Is this something that should be done in <asm-generic/dma-mapping.h>?
<akpm@osdl.org>
[PATCH] m68knommu: create dma-mapping.h
From: <gerg@snapgear.com>
Create a dma-mapping.h for m68knommu architecture.
<akpm@osdl.org>
[PATCH] m68knommu: fix kernel_thread()
From: <gerg@snapgear.com>
Some kernel janitor clean ups of printk for the m68knommu specific process
code.
And more importantly a fix to the kernel_thread() asm code to correctly
return the pid back to the return var from the clone system call.
<akpm@osdl.org>
[PATCH] m68knommu: Kconfig cleanup
From: <gerg@snapgear.com>
A few changes to the m68knommu Kconfig:
. Add support for 64MHz clocked CPU's
. Add support for selecting the COBRA5272 and COBRA5282 boards
. Use drivers/Kconfig for driver configuration
. Allow configuring compilation with frame-pointer
<akpm@osdl.org>
[PATCH] m68knommu: comempci.c printk cleanup
From: <gerg@snapgear.com>
Cleanup m68knommu's comempci.c support code. Add type to all printk calls.
Patch originally from kernel janitors.
<akpm@osdl.org>
[PATCH] m68knommu: coherent dma allocation
From: <gerg@snapgear.com>
Create the coherent DMA allocation functions for m68knommu. No current
hardware in this class requires anything special, so it just just does
normal allocations after sanity checks.
<akpm@osdl.org>
[PATCH] m68knommu: build dma.c
From: <gerg@snapgear.com>
Add local m68knommu dma allocation code to build list.
<akpm@osdl.org>
[PATCH] m68knommu cleanup setup.c (printk and irqreturn_t)
From: <gerg@snapgear.com>
Cleanup m68knommu/kernel/setup.c. Add type to all printk calls, remove
obsolete framebuffer setup and fix a few irqreturn_t for interrupt handlers
in prototypes.
Printk cleanup originally from kernel janitors.
<akpm@osdl.org>
[PATCH] m68knommu cleanup traps.c (printk and dump_stack)
From: <gerg@snapgear.com>
Add type to all printk calls in m68knommu traps.c. Also added a modern
dump_stack function.
<akpm@osdl.org>
[PATCH] m68knommu: platform additions in linker script
From: <gerg@snapgear.com>
A couple of additions to the linker script for m68knommu platforms:
. add support for COBRA5272 and COBRA5282 boards
. link in .rodata.str1 generated by gcc-3.3.x compilers
<akpm@osdl.org>
[PATCH] m68knommu/coldfire: fix gcc cpu define
From: <gerg@snapgear.com>
Fix architecture/cpu defines to support those used by modern versions of
gcc (that is gcc > 3.3.x) for m68knommu. The standard for defining
ColdFire architectures is no longer __mcf5200__, it is now __mcoldfire__.
This patch fixes all the occurances in the m68knommu/lib functions.
<akpm@osdl.org>
[PATCH] m68knommu: add senTec vendor support to Makefile
From: <gerg@snapgear.com>
Add build support for the senTec vendor to m68knommu architecture Makefile.
<akpm@osdl.org>
[PATCH] m68knommu: fault.c printk cleanup
From: <gerg@snapgear.com>
Add type field to printk calls. Patch original provided by kernel
janitors.
<akpm@osdl.org>
[PATCH] m68knommu: mm/init.c printk cleanup
From: <gerg@snapgear.com>
Add type field to printk calls in m68knommu mm/init.c. Patch originally
from kernel janitors.
<akpm@osdl.org>
[PATCH] m68knommu/ColdFire base DMA addresses
From: <gerg@snapgear.com>
Define the DMA register set base address array for those m68knommu/ColdFire
CPU's that have a DMA engines.
<akpm@osdl.org>
[PATCH] m68knommu: timers.c printk cleanup
From: <gerg@snapgear.com>
Add type field to printk calls in m68knommu timers.c
<akpm@osdl.org>
[PATCH] m68knommu: auto-size DRAM on Motorola/5272 ColdFire board
From: <gerg@snapgear.com>
Allow for auto-detecting the size of the DRAM in the startup code for the
Motorola/5272 (ColdFire) board. Use the DRAM sizing register, since it will
have been setup by the debug boot monitor (dBUG).
<akpm@osdl.org>
[PATCH] m68knommu: add start code for COBRA5272 board
From: <gerg@snapgear.com>
Add startup code specific to newly supported COBRA5272 board.
<akpm@osdl.org>
[PATCH] m68knommu: use irqreturn_t in ColdFire 5282 setup code
From: <gerg@snapgear.com>
Fixes to the Motorola ColdFire 5282 setup code:
. fix interrupt routine return types to be irqreturn_t
. add DMA base addresses array
<akpm@osdl.org>
[PATCH] m68knommu: add start code for COBRA5282 board
From: <gerg@snapgear.com>
Add start up code specific to the newly added COBRA5282 board.
<akpm@osdl.org>
[PATCH] m68knommu: cleanup ColdFire/5307 ints code
From: <gerg@snapgear.com>
. add type field to printk calls (from kernel janitors)
. there is no loop in show_interrupts(), don't use continue
<akpm@osdl.org>
[PATCH] m68knommu: use irqreturn_t in ColdFire 5307 setup code
From: <gerg@snapgear.com>
Fixes to the Motorola ColdFire 5307 setup code:
. fix interrupt routine return types to be irqreturn_t
. add DMA base addresses array
<akpm@osdl.org>
[PATCH] m68knommu: mm/5307/vectors.c printk cleanup
From: <gerg@snapgear.com>
Add type field to printk call. Original patch supplied bu kernel janitors.
<akpm@osdl.org>
[PATCH] m68knommu: conditional ROMfs copy for 5407 CLEOPATRA board
From: <gerg@snapgear.com>
Conditionaly copy an attached ROMfs filesystem in memory on kernel startup.
This should only be done if there really is a ROMfs there.
<akpm@osdl.org>
[PATCH] m68knommu: 68360 commproc.c printk cleanup
From: <gerg@snapgear.com>
Add type specifier to printk calls. Original patch from kernel janitors.
<akpm@osdl.org>
[PATCH] m68knommu: 68360 config.c printk cleanup
From: <gerg@snapgear.com>
Add type specifier to printk calls. Patch originally from kernel janitors.
<akpm@osdl.org>
[PATCH] m68knommu: 68EZ328 config.c printk cleanup
From: <gerg@snapgear.com>
Add type specifier to printk calls. Patch originally from kernel janitors.
<akpm@osdl.org>
[PATCH] 68knommu: use irqreturn_t in ColdFire 5407 setup code
From: <gerg@snapgear.com>
Fixes to the Motorola ColdFire 5407 setup code:
. fix interrupt routine return types to be irqreturn_t
. add DMA base addresses array
. support compile time setting of kernel boot arguments
<akpm@osdl.org>
[PATCH] 68knommu: use irqreturn_t in Motorola 68328 setup code
From: <gerg@snapgear.com>
A number of small fixes for the Motorola 68328 setup code:
. fix interrupt routine return types to be irqreturn_t
. add type specifier to printk calls (from kernel janitors)
. rework asm code to be gcc-3.3.x clean
<akpm@osdl.org>
[PATCH] 68knommu: cleanup Motorola 68328 ints code
From: <gerg@snapgear.com>
Some fixes for the 68328 common ints management code:
. use irqreturn_t for return type of interrupt handlers
. clean up asm code to be gcc-3.3.x clean
. add type field to printk calls (from kernel janitors)
. there is no loop in show_interrupts(), don't use continue
<akpm@osdl.org>
[PATCH] 68knommu: cleanup Motorola 68360 ints code
From: <gerg@snapgear.com>
Some fixes for the 68360 common ints management code:
. use irqreturn_t for return type of interrupt handlers
. add type field to printk calls (from kernel janitors)
. there is no loop in show_interrupts(), don't use continue
<akpm@osdl.org>
[PATCH] 68knommu: mk68knommu DragonEngine setup code printk cleanup
From: <gerg@snapgear.com>
A couple of fixes for the DragonEngine sepcific setup code:
. remove cs8900 ethernet setup from here
. add type specifier to printk calls (from kernel janitors)
<akpm@osdl.org>
[PATCH] 68knommu: cleanup startup code for 68EZ328 DragonEngine board
From: <gerg@snapgear.com>
Clean up debug trace in startup code of 68EZ328 DragonEngine board.
<akpm@osdl.org>
[PATCH] 68knommu: 68EZ328/ucdimm setup code printk cleanup
From: <gerg@snapgear.com>
Add type specifier to printk calls in 68EZ328/ucdimm setup code. Patch
original from kernel janitors.
<akpm@osdl.org>
[PATCH] 68knommu: add support for 64MHz clock for ColdFire boards
From: <gerg@snapgear.com>
Add support for boards that have a 64MHz clock to common Coldfire header.
<akpm@osdl.org>
[PATCH] missing \n in timer_tsc.c
From: Arjan van de Ven <arjanv@redhat.com>
patch below fixes a missing \n in a printk; without this you get to see a
<4> in the middle of that line...
<akpm@osdl.org>
[PATCH] hugetlb consolidation
From: William Lee Irwin III <wli@holomorphy.com>
The following patch consolidates redundant code in various hugetlb
implementations. I took the liberty of renaming a few things, since the
code was all moved anyway, and it has the benefit of helping to catch
missed conversions and/or consolidations.
<akpm@osdl.org>
[PATCH] s390: core s390
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
s390 core changes:
- Fix _raw_spin_trylock for 64 bit.
- Add clarification to s390 debug debug documentation.
<akpm@osdl.org>
[PATCH] s390: common i/o layer
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Common i/o layer changes:
- Avoid de-registering a ccwgroup device multiple times.
- Remove check for channel path objects in get_subchannel_by_schid.
Channel patch objects are never in the bus list.
- Avoid NULL pointer deref. in qdio_unmark_q.
- Fix reference counting on subchannel objects.
- Add shutdown function to terminate i/o and disable subchannels at reipl.
- Remove all ccwgroup devices if the ccwgroup driver is unregistered.
<akpm@osdl.org>
[PATCH] s390: tape driver fixes
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Tape driver changes:
- Add missing break in tape_34xx_work_handler to avoid misleading message.
- Cleanup offline/remove code.
<akpm@osdl.org>
[PATCH] s390: dasd driver fix
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
dasd driver changes:
- Fix check for device type in error recovery for fba devices.
<akpm@osdl.org>
[PATCH] s390: network driver fixes
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Network driver changes:
- ctc: move kfree of driver structure after the last use of it.
- netiucv: stay in state startwait if peer is down.
- lcs: initialize ipm_list and unregister netdev only if it is present.
<akpm@osdl.org>
[PATCH] s390: dcss block driver fix
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
DCSS block device driver changes:
- Fix remove_store function, put_device is called too early.
<akpm@osdl.org>
[PATCH] s390: zfcp fixes (without kfree hack)
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
zfcp host adapter fixes:
- Reuse freed scsi_ids and scsi_luns for mappings.
- Order list of ports/units by assigned scsi_id/scsi_lun.
- Don't update max_id/max_lun in scsi_host anymore.
- Get rid of all magics.
- Add owner field to ccw_driver structure.
- Avoid deadlock on bus->subsys.rwsem.
- Use a macro for all scsi device sysfs attributes.
- Change proc_name from "dummy" to "zfcp".
- Don't wait for scsi_add_device to complete while holding a semaphore.
- Cleanup include files in zfcp_aux.c & zfcp_def.h.
- Get rid of zfcp_erp_fsf_req_handler.
- Proper link up/down handling.
- Avoid possible NULL pointer dereference in zfcp_erp_schedule_work.
- Remove module_exit function. Without an external release function for
the zfcp_port/zfcp_unit objects module unloading is racy.
<akpm@osdl.org>
[PATCH] s390: zfcp log messages part 1
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
zfcp host adapter log message cleanup part 1:
- Shorten log output.
- Increase log level for some messages.
- Always print leading zeroes for wwpn and fcp-lun.
<akpm@osdl.org>
[PATCH] s390: zfcp log messages part 2
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
zfcp host adapter log message cleanup part 2:
- Shorten log output.
- Increase log level for some messages.
- Always print leading zeroes for wwpn and fcp-lun.
<akpm@osdl.org>
[PATCH] s390: crypto device driver part 1
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
The crypto device driver for PCICA & PCICC cards, part 1.
<akpm@osdl.org>
[PATCH] s390: crypto device driver part 2
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
The crypto device driver for PCICA & PCICC cards, part 2.
<bjorn.helgaas@hp.com>
[PATCH] ia64: Allow IO port space without EFI RT attribute
Some firmware does not require run-time mapping of the legacy IO port
space. (It may not need to perform any IO port operations, or it may
do them with translation disabled.)
(efi_get_iobase): Don't require that IO port space be marked RT, since
there's no reason the firmware should require mappings for it.
Thanks to Greg Albrecht for noticing this.
Also, allow attributes in addition to EFI_MEMORY_UC. I can't
think of another current attribute that makes sense, but the
kernel only depends on being able to use UC.
<kaneshige.kenji@jp.fujitsu.com>
[PATCH] ia64: set_rte() should get iosapic_lock
Currently set_rte() changes RTE without iosapic_lock held. I guess it
assumes to be called only at the boot time. But set_rte() can be
called by PCI driver not only at the boot time. So I think set_rte()
should get iosapic_lock.
pci_enable_device(drivers/pci/pci.c)
|
+-> pci_enable_device_bars(drivers/pci/pci.c)
|
+-> pcibios_enable_device(arch/ia64/pci/pci.c)
|
+-> acpi_pci_irq_enable (drivers/acpi/pci_irq.c)
|
+-> iosapic_enable_intr (arch/ia64/kernel/iosapic.c)
|
+-> set_rte (arch_ia64/kernel/iosapic.c)
A following patch fixes this issue.
<akpm@osdl.org>
[PATCH] s390: rewritten qeth driver
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
The rewritten qeth network driver.
<akpm@osdl.org>
[PATCH] Add queue congestion callout
From: Miquel van Smoorenburg <miquels@cistron.nl>
The VM and VFS use the address_space_backing_dev_info to track the realtime
status of the device which backs the mapping. The read_congested and
write_congested fields are used to determine whether a read or write
against that device may block.
We use this infrastructure to
a) allow pdflush to service many queues in parallel (by not getting
stuck on any particular one) and
b) to avoid undesirable and uncontrolled latencies in places such as
page reclaim and
c) To avoid blocking in readahead operations
The current code only supports simple disk queues (and I have a patch here
for NFS). Stacked queues (MD and DM) don't get this information right and
problems were expected. Efficiency problems have now been noted and it's
time to fix it.
This patch lays down the infrastructure which permits the queue
implementation to get control when someone at a higher level is querying
the queue's congestion state. So DM (for example) can run around and
examine all the queues which contribute to the higher-level queue.
It also adds bdi_rw_congested() for code in xfs and ext2 that calls both
bdi_read_congested() and bdi_write_congested() in a row, and it was "free"
anyway.
<akpm@osdl.org>
[PATCH] Implement queue congestion callout for device mapper
From: Miquel van Smoorenburg <miquels@cistron.nl>
Joe Thornber <thornber@redhat.com>
This implements the queue congestion callout for DM stacks. To make
bdi_read/write_congested() return correct information.
- md->lock protects all fields in md _except_ md->map
- md->map_lock protects md->map
- Anyone who wants to read md->map should use dm_get_table() which
increments the tables reference count.
This means the spin lock is now only held for the duration of a
reference count increment.
Udpate:
dm.c: protect md->map with a rw spin lock rather than the md->lock
semaphore. Also ensure that everyone accesses md->map through
dm_get_table(), rather than directly.
<akpm@osdl.org>
[PATCH] dmL remove __dm_request
From: Joe Thornber <thornber@redhat.com>
dm.c: remove __dm_request (merge with previous patch).
<akpm@osdl.org>
[PATCH] per-backing dev unplugging
From: Jens Axboe <axboe@suse.de>,
Chris Mason,
me, others.
The global unplug list causes horrid spinlock contention on many-disk
many-CPU setups - throughput is worse than halved.
The other problem with the global unplugging is of course that it will cause
the unplugging of queues which are unrelated to the I/O upon which the caller
is about to wait.
So what we do to solve these problems is to remove the global unplug and set
up the infrastructure under which the VFS can tell the block layer to unplug
only those queues which are relevant to the page or buffer_head whcih is
about to be waited upon.
We do this via the very appropriate address_space->backing_dev_info
structure.
Most of the complexity is in devicemapper, MD and swapper_space, because for
these backing devices, multiple queues may need to be unplugged to complete a
page/buffer I/O. In each case we ensure that data structures are in place to
permit us to identify all the lower-level queues which contribute to the
higher-level backing_dev_info. Each contributing queue is told to unplug in
response to a higher-level unplug.
To simplify things in various places we also introduce the concept of a
"synchronous BIO": it is tagged with BIO_RW_SYNC. The block layer will
perform an immediate unplug when it sees one of these go past.
<akpm@osdl.org>
[PATCH] Use BIO_RW_SYNC in swap write page
From: Jens Axboe <axboe@suse.de>
Dog slow software suspend found this one. If WB_SYNC_ALL, then you need
to mark the bio as sync as well.
This is because swap_writepage() does a remove_exclusive_swap_page() (going
to __delete_from_swap_cache -> __remove_from_page_cache) which can kill
page->mapping, thus aops->sync_page() has nothing to work with for unplugging
the address space.
<akpm@osdl.org>
[PATCH] unplugging: md update
From: Neil Brown <neilb@cse.unsw.edu.au>
I've made a bunch of changes to the 'md' bits - largely moving the
unplugging into the individual personalities which know more about which
drives are actually in use.
<akpm@osdl.org>
[PATCH] Correct unplugs on nr_queued
From: Jens Axboe <axboe@suse.de>
There's a small discrepancy in when we decide to unplug a queue based on
q->unplug_thresh. Basically it doesn't work for tagged queues, since
q->rq.count[READ] + q->rq.count[WRITE] is just the number of allocated
requests, not the number of requests stuck in the io scheduler. We could
just change the nr_queued == to a nr_queued >=, however that is still
suboptimal.
This patch adds accounting for requests that have been dequeued from the io
scheduler, but not freed yet. These are q->in_flight. allocated_requests
- q->in_flight == requests_in_scheduler. So the condition correctly
becomes
if (requests_in_scheduler == q->unplug_thresh)
instead. I did a quick round of testing, and for dbench on a SCSI disk the
number of timer induced unplugs was reduced from 13 to 5 :-). Not a huge
number, but there might be cases where it's more significant. Either way,
it gets ->unplug_thresh always right, which the old logic didn't.
<akpm@osdl.org>
[PATCH] CFQ io scheduler
From: Jens Axboe <axboe@suse.de>
CFQ I/O scheduler
<akpm@osdl.org>
[PATCH] rmap 1 linux/rmap.h
From: Hugh Dickins <hugh@veritas.com>
First of a batch of three rmap patches: this initial batch of three paving
the way for a move to some form of object-based rmap (probably Andrea's, but
drawing from mine too), and making almost no functional change by itself. A
few days will intervene before the next batch, to give the struct page
changes in the second patch some exposure before proceeding.
rmap 1 create include/linux/rmap.h
Start small: linux/rmap-locking.h has already gathered some declarations
unrelated to locking, and the rest of the rmap declarations were over in
linux/swap.h: gather them all together in linux/rmap.h, and rename the
pte_chain_lock to rmap_lock.
<akpm@osdl.org>
[PATCH] rmap 2 anon and swapcache
From: Hugh Dickins <hugh@veritas.com>
Tracking anonymous pages by anon_vma,pgoff or mm,address needs a
pointer,offset pair in struct page: mapping,index the natural choice. But
swapcache uses those for &swapper_space,swp_entry_t.
It's trivial to separate swapcache from pagecache with radix tree; most of
swapper_space is actually unused, just a fiction to pretend swap like file;
and page->private is a good place to keep swp_entry_t, now that swap never
uses bufferheads.
Define PG_anon bit, page_add_rmap SetPageAnon and put an oopsable address in
page->mapping to test that we're not confused by it. Define
page_mapping(page) macro to give NULL when PageAnon, whatever may be in
page->mapping. Define PG_swapcache bit, deduce swapper_space from that in
the few places we need it.
add_to_swap_cache now distinct from add_to_page_cache. Separating the caches
somewhat simplifies the tmpfs swizzling in swap_state.c, now the page can
briefly be in both caches.
The rmap method remains pte chains, no change to that yet. But one small
functional difference: the use of PageAnon implies that a page truncated
while still mapped will no longer be found and freed (swapped out) by
try_to_unmap, will only be freed by exit or munmap. But normally pages are
unmapped by vmtruncate: this should only affect nonlinear mappings, and a
later patch not in this batch will fix that.
<akpm@osdl.org>
[PATCH] rw_swap_page_sync fixes
Fix up the rw_swap_page_sync() gorrors by fully decoupling this function
from the VM - it is now just a helper function which reads a page from or
writes a page to swap.
<akpm@osdl.org>
[PATCH] rmap 3 arches + mapping_mapped
From: Hugh Dickins <hugh@veritas.com>
Some arches refer to page->mapping for their dcache flushing: use
page_mapping(page) for safety, to avoid confusion on anon pages, which will
store a different pointer there - though in most cases flush_dcache_page is
being applied to pagecache pages.
arm has a useful mapping_mapped macro: move that to generic, and add
mapping_writably_mapped, to avoid explicit list_empty checks on i_mmap and
i_mmap_shared in several places.
Very tempted to add page_mapped(page) tests, perhaps along with the
mapping_writably_mapped tests in do_generic_mapping_read and
do_shmem_file_read, to cut down on wasted flush_dcache effort; but the
serialization is not obvious, too unsafe to do in a hurry.
<akpm@osdl.org>
[PATCH] rename page_to_nodenum()
From: "Martin J. Bligh" <mbligh@aracnet.com>
I'd prefer we renamed this to page_to_nid() before anyone starts using it.
This fits with the naming convention of everything else (pfn_to_nid, etc).
Nobody uses it right now - I grepped the whole tree.
<akpm@osdl.org>
[PATCH] cyclades works OK on SMP
From: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
The cyclades.c driver was marked BROKEN_ON_SMP during early 2.6. It was
fixed later on but the tag was left in Kconfig.
The driver is not very smart wrt SMP locking, it can be improved. There is
only one spinlock per card which guarantees command block ordering and
protects different shared data, which can be held for long periods.
_But_ the locking works reliably, so remove the BROKEN_ON_SMP tag.
<akpm@osdl.org>
[PATCH] dnotify_parent speedup
From: Anton Blanchard <anton@samba.org>
Directory notify code was showing up in a dd bs=1024k from 2 raid arrays
on an emulex FC adapter:
3635 69.4896 vmlinux-2.6.5 .default_idle
332 6.3468 vmlinux-2.6.5 .__copy_tofrom_user
112 2.1411 vmlinux-2.6.5 .save_remaining_regs
76 1.4529 vmlinux-2.6.5 .scsi_dispatch_cmd
64 1.2235 vmlinux-2.6.5 .dnotify_parent
61 1.1661 vmlinux-2.6.5 .do_generic_mapping_read
We already have a sysctl to enable/disable it, the patch below uses it
in dnotify_parent. dnotify_parent disappears and idle time goes up:
4508 70.8582 vmlinux-2.6.5 .default_idle
253 3.9767 vmlinux-2.6.5 .__copy_tofrom_user
142 2.2320 vmlinux-2.6.5 .save_remaining_regs
88 1.3832 vmlinux-2.6.5 .shrink_zone
84 1.3203 vmlinux-2.6.5 .elx_drvr_unlock
75 1.1789 vmlinux-2.6.5 .scsi_dispatch_cmd
69 1.0846 vmlinux-2.6.5 .do_generic_mapping_read
Of course, to gain this small speedup isers need to know to set
/proc/sys/fs/dir-notify-enable to zero. Nobody does that.
<akpm@osdl.org>
[PATCH] Feed floppy.c through Lindent
From: "Randy.Dunlap" <rddunlap@osdl.org>
<akpm@osdl.org>
[PATCH] jbd: do_get_write_access lock contention reduction
We're seeing heavy contention against j_list_lock on 8-way in
do_get_write_access().
We actually don't need j_list_lock in there except for one little case - the
per-bh jbd_lock_bh_state() is sufficient to protect this buffer's internal
state.
On some nice quick LVM array Ram Pai measured an overall 3x speedup from this
patch:
the script took the following time on 265mm1
real 0m57.504s
user 0m0.400s
sys 7m29.867s
and with the 2patches it took
real 0m19.983s
user 0m0.438s
sys 1m55.896s
<akpm@osdl.org>
[PATCH] jbd: b_transaction zeroing cleanup
Almost everywhere where JBD removes a buffer from the transaction lists the
caller then nulls out jh->b_transaction. Sometimes, the caller does that
without holding the locks which are defined to protect b_transaction. This
makes me queazy.
So change things so that __journal_unfile_buffer() nulls out b_transaction
inside both j_list_lock and jbd_lock_bh_state().
It cleans things up a bit, too.
<akpm@osdl.org>
[PATCH] i386 probe_roms(): preparation
From: Rene Herman <rene.herman@keyaccess.nl>
The i386 probe_roms() function has a fair number of problems currently:
- When you actually have an adapter ROM in the machine, your video ROM
disappears. This is due to the pc9800 subarch merge that split it up in
probe_video_rom(int roms) and probe_extension_roms(int roms), but expects a
"roms++" in probe_video_roms() to have an effect outside of that function.
- The majority of VGA adapters these days host a ROM larger then 32K, yet
the current code hardcodes a 32K ROM. The VGA BIOS "length" byte is
normally valid (it in fact needs to be for a regular mainboard BIOS to
accept it) and I've verified on a few dozen very new to very old VGAs that
it is. However, assuming someone actually did not check for the length and
checksum there for a reason, the safe thing to do here is accept the length
byte when we also get a valid checksum.
- The current code scans 0xc0000 to 0xdffff for a video ROM while the
standard PC thing to do (that which the BIOS does) is only scan for a video
ROM starting between 0xc0000 and 0xc7fff. This means that on a headless-
(or BIOS-less monochrome adapter-) box, the first adapter ROM found
triggers the registration of a 32K "Video ROM" at hardcoded address
0xc0000, even when _nothing_ is present between 0xc0000 and 0xc7fff.
- The current adapter ROM scan stops at 0xdffff, whether or not an
extension ROM is present at 0xe0000. The PC thing to do is scan 0xc8000
upto 0xdffff if an extension ROM is present, and upto 0xeffff when it's not
(it's not/hardly ever).
- Adapter ROMs are called "Extension ROM", but the latter term is really
better reserved for a motherboard extension ROM.
- Currently, the code happily starts scanning through a ROM it just
registered looking for the next one (just does += 2048, even when that's
inside the previous ROM) which is at least silly.
Unfortunately, this code is "subarched" between mach-default and
mach-pc9800, meaning the patch got a bit involved. Currently all this
code, and gobs of data, is defined (not just declared) in the header:
include/asm-i386/mach-{default,pc9800}/mach_resources.h
which isn't nice. That .h really wants to be a .c. The first patch, in
the next message, does not change any code but only undoes the
probe_video_rom / probe_extension_roms split and moves the code to a new
file
arch/i386/mach-{default,pc9800}/std_resources.c
with a header
include/asm-i386/std_resources.h
for the prototypes only. The second patch overhauls the code itself for
mach-default. Please see comments on top of that patch for (yet more)
comments. It's tested on various machines, with and without adapter ROMs.
I haven't touched pc9800. Nothing should have changed though. The pc9800
author, as given in the code, is CCed.
Also, x86-64 inherits the probe_roms() code from 2.4, and while it
doesn't have the subarch specific problems, it has all others. I'll
convert it to if this i386 version is deemed desirable.
This patch doesn't change any code, just moves stuff from the
"mach_resources.h" header to a "std_resources.c" subarch specific file, and
introduces a "std_resources.h" header for the prototypes.
<akpm@osdl.org>
[PATCH] i386 probe_roms(): fixes
From: Rene Herman <rene.herman@keyaccess.nl>
This patch tries to improve the i386/mach-default probe_roms(). This also
c99ifies the data, adds an IORESOURCE_IO flag for the I/O port resources,
an IORESOURCE_MEM flag for the VRAM resource, IORESOURCE_READONLY |
IORESOURCE_MEM for the ROM resources and adds two additional "adapter ROM
slots" (for a total of 6) since it now also scans the 0xe0000 segment.
<akpm@osdl.org>
[PATCH] swsusp update: supports discontingmem/highmem
From: Pavel Machek <pavel@ucw.cz>
Bill Irwin did some work on this. It makes swsusp behave correctly w.r.t.
discontingmem, and adds highmem handling (very simple-minded, but should work
ok with 1GB). It now should behave correctly w.r.t. more than one swap
device, and fixes double restoring of console.
<akpm@osdl.org>
[PATCH] swsusp update: supports discontingmem/highmem fixes
From: Pavel Machek <pavel@ucw.cz>
It makes swsusp behave correctly w.r.t. discontingmem, and adds highmem
handling.
<akpm@osdl.org>
[PATCH] Swsusp should not wake up stopped processes
From: Pavel Machek <pavel@suse.cz>
If you stop process with ^Z, then suspend, process is awakened. Thats a
bug. Solution is to simply leave already stopped processes alone. Plus we
no longer use TASK_STOPPED for processes in refrigerator. Userland might
see us and get confused.
<akpm@osdl.org>
[PATCH] Correct kernel-doc comment with incorrect parameters documented
From: "Randy.Dunlap" <rddunlap@osdl.org>
From: Michael Still <mikal@stillhq.com>
Correct kernel-doc comment with incorrect parameters documented
<akpm@osdl.org>
[PATCH] get_user_pages shortcut for anonymous pages
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
The patch avoids the instantiation of pagetables for not-present pages in
get_user_pages(). Without this, the coredump code can cause total memory
exhaustion in pagetables. Consider a store to current stack - 1TB. The
stack vma is extended to include this address because of VM_GROWSDOWN. If
such a process dies (which is likely for a defunc process) then the elf core
dumper will cause the system to hang because of too many page tables.
We especially recognise this situation and simply return a ref to the zero
page.
<akpm@osdl.org>
[PATCH] isicom.c: jiffies must be unsigned long
From: Geert Uytterhoeven <geert@linux-m68k.org>
jiffies must be unsigned long
<akpm@osdl.org>
[PATCH] isicom.c: unused vars
From: Geert Uytterhoeven <geert@linux-m68k.org>
Recent serial changes moved some code, causing unused variable warnings.
<akpm@osdl.org>
[PATCH] parport dependency fix
From: Geert Uytterhoeven <geert@linux-m68k.org>
PCI multi-IO card support depends on PCI
<akpm@osdl.org>
[PATCH] DVB dependency fix
From: Geert Uytterhoeven <geert@linux-m68k.org>
DVB_TWINHAN_DST depends on DVB_BT8XX (dependency is explicitly mentioned in
help text, but not enforced)
<akpm@osdl.org>
[PATCH] isicom error path fix
From: Geert Uytterhoeven <geert@linux-m68k.org>
Variable error is not initialized, but printed if tty_unregister_driver()
fails.
<akpm@osdl.org>
[PATCH] QD65xx I/O ports fix
From: Geert Uytterhoeven <geert@linux-m68k.org>
I/O port numbers can be larger than 8-bit on many platforms (this caused a
warning when {out,in}b() cast reg to a pointer on platforms with memory
mapped I/O)
<akpm@osdl.org>
[PATCH] Fix parportbook build again
From: Herbert Xu <herbert@gondor.apana.org.au>
The previous fix causes a syntax error when building:
Working on:
/home/gondolin/herbert/src/debian/work/kernel/build/2.6/
kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml
jade:/home/gondolin/herbert/src/debian/work/kernel/build/
2.6/kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml:4059:2:E:
invalid comment declaration: found character "!" outside comment but
inside comment declaration
jade:/home/gondolin/herbert/src/debian/work/kernel/build/
2.6/kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml:4058:0:
comment declaration started here
jade:/home/gondolin/herbert/src/debian/work/kernel/build/
2.6/kernel-source-2.6.5-2.6.5/Documentation/DocBook/parportbook.sgml:4059:4:E:
character data is not allowed here
This patch removes the offending line completely since that file is probably
not coming back anyway.
<akpm@osdl.org>
[PATCH] saa7134 - Add two inputs for Asus TV FM
From: Martin Hicks <mort@bork.org>
I just bought an ASUS TV FM capture card, based on the saa7134 chip. It only
had one input specified, coax. This patch adds the Composite and S-Video
inputs. It seems to work correctly for me.
<akpm@osdl.org>
[PATCH] pdaudiocf.c needs init.h
From: Herbert Xu <herbert@gondor.apana.org.au>
This patch makes this file includes linux/init.h since it uses the __init
tag.
<akpm@osdl.org>
[PATCH] don't offer GEN_RTC on ia64
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
gen_rtc.c doesn't work on ia64 (we don't have asm/rtc.h, for starters), so
don't offer it there.
<akpm@osdl.org>
[PATCH] remove concatenation with __FUNCTION__ arch/*
From: Tony Breeds <tony@bakeyournoodle.com>
<akpm@osdl.org>
[PATCH] remove concatenation with __FUNCTION__ drivers/*
From: Tony Breeds <tony@bakeyournoodle.com>
<akpm@osdl.org>
[PATCH] remove concatenation with __FUNCTION__ include/*
From: Tony Breeds <tony@bakeyournoodle.com>
<akpm@osdl.org>
[PATCH] remove concatenation with __FUNCTION__ sound/*
From: Tony Breeds <tony@bakeyournoodle.com>
<akpm@osdl.org>
[PATCH] Fix Raid5/6 above 2 Terabytes
From: Evan Felix <evan.felix@pnl.gov>
Here is a patch that fixes a major issue in the raid5/6 code. It seems
that the code:
logical_sector = bi->bi_sector & ~(STRIPE_SECTORS-1);
(sector_t) = (sector_t) & (constant)
that the right side of the & does not get extended correctly when the
constant is promoted to the sector_t type. I have CONFIG_LBD turned on so
sector_t should be 64bits wide. This fails to properly mask the value of
4294967296 (2TB/512) to 4294967296. in my case it was coming out 0. this
cause the loop following this code to read from 0 to 4294967296 blocks so
it could write one character.
As you might imagine this makes a format of a 3.5TB filesystem take a very
long time.
<akpm@osdl.org>
[PATCH] make ibmasm driver uart support depend on SERIAL_8250
From: Max Asbock <masbock@us.ibm.com>
This patch makes serial line registration in the ibmasm service processor
driver depend on CONFIG_SERIAL_8250. Previously the driver wouldn't
compile when serial driver support wasn't enabled.
<akpm@osdl.org>
[PATCH] fix test_and_change_bit comment
From: Paul Jackson <pj@sgi.com>
I've read over the code in each case, built and ran a test case for i386 in
particular, and studied the other uses and definitions of
test_and_change_bit(). Everything I see recommends this change.
- Fix test_and_change_bit() comment: returns old value, not new one.
<akpm@osdl.org>
[PATCH] ext2fs sb= mount option fix
From: <achurch@achurch.org> (Andrew Church)
The following patch fixes a bug in the processing of the sb= (alternate
superblock) mount option for ext2: when changing the device block size, the
given superblock is ignored and the code reverts to using block 1.
<akpm@osdl.org>
[PATCH] ext3fs sb= mount option fix
From: <achurch@achurch.org> (Andrew Church)
The following patch fixes a bug in the processing of the sb= (alternate
superblock) mount option for ext3: when changing the device block size, the
given superblock is ignored and the code reverts to using block 1.
<akpm@osdl.org>
[PATCH] fix for potential integer overflow in zoran driver
From: "Ronald S. Bultje" <R.S.Bultje@students.uu.nl>
Attached patch fixes a potential integer overflow in zoran_procs.c (part of
the zr36067 driver). Bug was detected by Ken Ashcraft with the Stanford
checker.
<akpm@osdl.org>
[PATCH] mdacon.c warning fix.
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
drivers/video/console/mdacon.c:599: warning: initialization from
incompatible pointer type
<akpm@osdl.org>
[PATCH] do_fork() error path memory leak
From: <john.l.byrne@hp.com>
In do_fork(), if an error occurs after the mm_struct for the child has been
allocated, it is never freed. The exit_mm() meant to free it increments
the mm_count and this count is never decremented. (For a running process
that is exitting, schedule() takes care this; however, the child process
being cleaned up is not running.) In the CLONE_VM case, the parent's
mm_struct will get an extra mm_count and so it will never be freed.
This patch should fix both the CLONE_VM and the not CLONE_VM case; the test
of p->active_mm prevents a panic in the case that a kernel-thread is being
cloned.
<akpm@osdl.org>
[PATCH] Fix More Problems Introduced By Module Structure Added in modpost.c
From: Rusty Russell <rusty@rustcorp.com.au>
Sam Ravnborg found these.
1) have_vmlinux is a global, and should not be reset every time.
2) We pretend every module needs cleanup_module so it gets versioned,
but that isn't defined for CONFIG_MODULE_UNLOAD=n.
3) The visible effect of this is that modpost will start complaning about
undefined symbols - previously this happened only when the module was
isntalled.
<akpm@osdl.org>
[PATCH] Rename bitmap_clear to bitmap_zero, remove CLEAR_BITMAP
From: Rusty Russell <rusty@rustcorp.com.au>
clear_bit(n, addr) clears the nth bit.
test_and_clear_bit(n, addr) clears the nth bit.
cpu_clear(n, cpumask) clears the nth bit (vs. cpus_clear()).
bitmap_clear(bitmap, n) clears out all the bits up to n.
Moreover, there's a CLEAR_BITMAP() in linux/types.h which bitmap_clear() is
a wrapper for.
Rename bitmap_clear to bitmap_zero, which is harder to confuse (yes, it bit
me), and make everyone use it.
<akpm@osdl.org>
[PATCH] i2c-dev warning fixes
drivers/i2c/i2c-dev.c: In function `i2cdev_read':
drivers/i2c/i2c-dev.c:140: warning: int format, different type arg (arg 3)
drivers/i2c/i2c-dev.c: In function `i2cdev_write':
drivers/i2c/i2c-dev.c:168: warning: int format, different type arg (arg 3)
<akpm@osdl.org>
[PATCH] policydb printk warnings
security/selinux/ss/policydb.c:1160: warning: signed size_t format,
different type arg (arg 3)
security/selinux/ss/policydb.c:1160: warning: signed size_t format,
different type arg (arg 3)
<akpm@osdl.org>
[PATCH] applicom warnings and usercopy-in-cli fix
drivers/char/applicom.c: In function `ac_write':
drivers/char/applicom.c:363: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:363: warning: int format, different type arg (arg 3)
drivers/char/applicom.c:363: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:363: warning: int format, different type arg (arg 3)
drivers/char/applicom.c:523:2: warning: #warning "Je suis stupide. DW. -
copy*user in cli"
drivers/char/applicom.c: In function `ac_read':
drivers/char/applicom.c:546: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:546: warning: int format, different type arg (arg 3)
drivers/char/applicom.c:546: warning: int format, different type arg (arg 2)
drivers/char/applicom.c:546: warning: int format, different type arg (arg 3)
<akpm@osdl.org>
[PATCH] tpqic02 warnings
drivers/char/tpqic02.c: In function `rdstatus':
drivers/char/tpqic02.c:700: warning: int format, different type arg (arg 2)
drivers/char/tpqic02.c:700: warning: int format, different type arg (arg 2)
<akpm@osdl.org>
[PATCH] BSD accounting oops fix
oopses have been reported in do_acct_process(), with premption enabled, when
threaded applications are exitting.
It appears that we're racing with another thread which is nulling out
current->tty. I think this race is still there after we moved current->tty
into current->signal->tty, so let's take the needed lock.
<akpm@osdl.org>
[PATCH] framebuffer bugfix
From: Arjan van de Ven <arjanv@redhat.com>
Patch below fixes a thinko in the frame buffer drivers; the code does
cursor.image.data = kmalloc(size, GFP_KERNEL);
....
cursor.mask = kmalloc(size, GFP_KERNEL);
....
if (copy_from_user(&cursor.image.data, sprite->image.data,
size) ||
copy_from_user(cursor.mask, sprite->mask, size)) {
....
where it's clear that the & in the first copy_from_user is utterly bogus
since the destination is the content of the newly allocated buffer, and not
the pointer to it as the code does.
<akpm@osdl.org>
[PATCH] fb_copy_cmap() fix
From: Arjan van de Ven <arjanv@redhat.com>
fb_copy_cmap() takes an argument about wether to do memcpy, copy_from_user or
copy_to_user. 0 is memcpy, 2 is copy_to_user. In the ioctl you want
copy_to_user for copying the colormap to userspace.
<akpm@osdl.org>
[PATCH] Make %docs depend on scripts_basic
From: Sam Ravnborg <sam@ravnborg.org>
From: Herbert Xu <herbert@gondor.apana.org.au>
It seems that the %docs targets only needs scripts_basic. The following
patch does just that. This removes its dependency on the existence of a
.config file.
<akpm@osdl.org>
[PATCH] kbuild: cleaning in three steps
From: Sam Ravnborg <sam@ravnborg.org>
Previously 'make clean' deleted all automatically generated files. The
following patch revert this behaviour, and now 'make clean' leaves enough
behind to allow external modules to be built.
The cleaning is now done in three steps:
make clean - delete everything not needed for building external modules
make mrproper - delete all generated files, including .config
make distclean - delete all temporary files such as *.orig, *~, *.rej etc.
This fixes reports about nvidia and vmware build issues.
<akpm@osdl.org>
[PATCH] kbuild: external module support
From: Sam Ravnborg <sam@ravnborg.org>
Based on initial patch from Andreas Gruenbacher there is now better support
for building external modules with kbuild.
The preferred syntax is now:
make -C $KERNELSRC M=$PWD
but the old syntax:
make -C $KERNELSRC SUBDIRS=$PWD modules
will remain supported.
The major differences compared to before are that:
1) No attempt is made to neither check nor update any files in $KERNELSRC
2) Module versions are now supported
During stage 2 of kernel compilation where the modules are built, a new file
Module.symvers is created. This file contains the version for all symbols
exported by the kernel and any module compiled within the kernel tree.
When the external module is build the Module.symvers file is being read and
symbol versions are used from that file.
The purpose of avoiding any updates in the kernel src is that usually in a
distribution the kernel src will be read-only, and there is no need to try to
update it. And when building an external module the focus is on the module,
not the kernel.
I expect the distributions will start using something like this:
kernel src - with no generated files. Not even .config:
/usr/src/linux-<version>
Output from build:
/lib/modules/linux-<version>/build
where build is a real directory with relevant output files and the
appropriate .config.
I have some Documentation in the pipe-line, but wants to see how this
approach is received before completing it.
This patch is made on top of the previously posted patch to divide
make clean in three steps.
And you may need to edit the following line in the patch to make it apply:
%docs: scripts_basic FORCE
to
%docs: scripts FORCE
<akpm@osdl.org>
[PATCH] parport: no procfs warning fix
drivers/parport/procfs.c: In function `parport_default_proc_unregister':
drivers/parport/procfs.c:529: warning: `return' with a value, in function
returning void
<akpm@osdl.org>
[PATCH] Add CONFIG_SYSFS
From: Patrick Mochel <mochel@digitalimplant.org>
Here is a patch to make sysfs optional. Note that with CONFIG_SYSFS=n you
must specify the boot device's major:minor on the kernel boot command line
with
root=03:01
For embedded systems, it will save a significant amount of memory during
runtime. And, it saves 4k from the built kernel image for me.
<akpm@osdl.org>
[PATCH] JBD: BH_Revoke cleanup
Use the bh bit test/set infrastructure rather than open-coding everything.
No functional changes.
<akpm@osdl.org>
[PATCH] cciss: /proc fix
From: <mikem@beardog.cca.cpqcorp.net>
This patch fixes a bug where /proc displays 1 less logical volume than is
actually configured. This causes problems for some installers.
<akpm@osdl.org>
[PATCH] cciss_scsi warning
drivers/block/cciss_scsi.c: In function `scsi_cmd_stack_free':
drivers/block/cciss_scsi.c:241: warning: cast from pointer to integer of
different size
<akpm@osdl.org>
[PATCH] pmdisk is x86 only
Only x86 implements pmdisk_arch_suspend(). So mark pmdisk as ia32-only, to
avoid breaking allyesconfig.
<akpm@osdl.org>
[PATCH] Oprofile: ARM/XScale PMU driver
From: Zwane Mwaikambo <zwane@linuxpower.ca>
The following patch adds support for the XScale performance monitoring unit
to OProfile. It uses not only the performance monitoring counters, but
also the clock cycle counter (CCNT) allowing for upto 5 usable counters.
The code has been developed and tested on an IOP331 (hardware courtesy of
Intel) therefore i haven't been able to test it on XScale PMU1 systems.
Testing on said systems would be appreciated, and if done, please uncomment
the #define DEBUG line at the top of op_model_xscale.c
OProfile userspace support has already been committed and should be
available via CVS.
<khali@linux-fr.org>
[PATCH] I2C: Rework memory allocation in i2c chip drivers
Additional remarks:
1* This patch also removes an unused struct member in via686a and fixes
an error message in ds1621.
2* I discovered error path problems in it87 and via686a detection
functions. For the it87, I think that this patch makes it even more
broken. I will fix both drivers in a later patch (really soon).
<khali@linux-fr.org>
[PATCH] I2C: Error paths in it87 and via686a drivers
Here comes the patch that fixes error paths in the it87 and via686a
detection functions. The it87 part also adds missing error values.
<khali@linux-fr.org>
[PATCH] I2C: pwm support in w83781d.c
Here is a general pwm support cleanup patch for the w83781d chip driver.
Featuring:
* Don't pretend that we handle PWM on AS99127F chips. We don't know how
it works, and one of the register we are accessing for now is clearly
not a PWM register, and changing its value usually breaks temperature
readings.
* Discard irrelevant comments.
* Rewrite show_pwmenable_reg. It was obviously taken from the 2.4
driver, with unneeded tests and the code was much too complicated
anyway. And now we handle errors correctly.
* Initialize pwm_enable at load time. So far it was done conditionally
(if init=1) while it should always be done. And pwm2_enable wasn't read
from the chip, while it should.
I could test that my AS99127F doesn't expose pwm files through ssysfs
anymore. Which means that I couldn't test the rest of the pwm changes,
unfortunately.
I've applied similar changes to our 2.4/CVS repository.
<khali@linux-fr.org>
[PATCH] I2C: make I2C chip drivers return -EINVAL on error
<mhoffman@lightlink.com>
[PATCH] I2C: fix asb100 bug
Hi nymisi, Greg:
* Nyeste Mihály <nymisi@freemail.hu> [2004-01-27 16:02:04 +0100]:
> Hi!
>
> I reported a bug of asb100 chip at:
> http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=1539
>
> The reply was the follow:
>
> "Is there a BIOS option you can disable, e.g. Asus "COP",
> "QFAN", or some such? My guess is that the BIOS is
> somehow interfering with the asb100 driver. Otherwise
> I don´t know how this could happen.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Yeah, I wrote that.
"You do that, you go to the box, you know. Two minutes by
yourself, and you feel shame, you know." - Denis the goalie
Greg, please apply this fix (vs. 2.6.5):
<khali@linux-fr.org>
[PATCH] I2C: Fix voltage rounding in lm80
This one line patch fixes voltage rounding in the lm80 chip driver.
<khali@linux-fr.org>
[PATCH] I2C: No reset not limit init in via686a
The following patch removes limits initialization in the via686a driver.
It was decided some times ago that this belongs to user-space, not
kernel. See the thread here:
http://archives.andrew.net.au/lm-sensors/msg06134.html
It also prevents the sensor chip from being savagely reset at load time.
This too follows a decision taken long ago that drivers should do as
little as possible in their init procedure. See the thread here:
http://archives.andrew.net.au/lm-sensors/msg04593.html
This should make the driver smaller, safer and faster to load. The same
was done to our 2.4/CVS version of the driver 5 months ago and it seems
to work just fine.
<torvalds@ppc970.osdl.org>
Delete unused files in sound/oss
From Herbert Xu; the files aren't used anywhere, and
shouldn't be there in the first place.
<kronos@kronoz.cjb.net>
[PATCH] USB: New ID for ftdi_sio
Hi,
I have an USB contactless reader which uses a FTDI chip. It works well with
the
current ftdi_sio driver, it's just a matter of adding an ID:
<marcel@holtmann.org>
[PATCH] Fix sysfs class support for CAPI
this patch fixes a bug in the CAPI TTY support, because the ->name value
of the TTY driver shouldn't contain a "/". After changing this there are
now a "capi20" TTY device and a "capi20" control device and so I renamed
the control device to "capi". The userspace visible part must be done by
udev and I added these two rules to restore the old namespace:
# CAPI devices
KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20"
KERNEL="capi*", NAME="capi/%n"
<lxiep@us.ibm.com>
[PATCH] PCI Hotplug: php_phy_location.patch
Adds a file to show the pci hotplug slot location for the ppc64 driver
only.
<davem@nuts.davemloft.net>
[SPARC64]: Disable -Werror for a bit.
<geert@linux-m68k.org>
[PATCH] Zorro devlist.h kbuild
Zorro: Quieten building of devlist.h (cfr. PCI)
<geert@linux-m68k.org>
[PATCH] Pm2fb is broken on Amiga
Permedia2: Mark pm2fb broken on Amiga, until somebody fixes it (pm2fb.c
explicitly tests for CONFIG_PCI right now)
<geert@linux-m68k.org>
[PATCH] pm2fb barrier cleanup
Permedia2: Always use the standard barrier macros (they do exist on m68k, and
map to barrier())
<geert@linux-m68k.org>
[PATCH] Amiga Zorro8390 Ethernet section conflict
Zorro8390: const data cannot be in the init data section (from Roman Zippel)
<geert@linux-m68k.org>
[PATCH] MVME16x RTC const
MVME16x RTC: Make days_in_mo[] const
<geert@linux-m68k.org>
[PATCH] Sun-3 duplicates
Sun-3: Kill duplicate definitions:
- FC_CONTROL is defined in <asm/sun3-head.h>
- vectors[] is declared in <asm/traps.h>
<geert@linux-m68k.org>
[PATCH] M68k vector definitions
M68k: Add remaining CPU vector definitions
<geert@linux-m68k.org>
[PATCH] M68k initializers cleanup
M68k: Clean up initializers:
- Convert struct/array initializers to C99 style
- Do not initialize data to 0 or NULL explicitly so it can move to bss
<geert@linux-m68k.org>
[PATCH] Amikbd C99 cleanup
Amikbd: Use C99 array initializers and standard key defines
<geert@linux-m68k.org>
[PATCH] m68k I/O
m68k: Use explicit-sized types for I/O accesses
<geert@linux-m68k.org>
[PATCH] M68k TLB fixes
M68k TLB fixes from Roman Zippel:
- Check current->active_mm for currently active mm
- Set correct context to flush the right ATC entry
This is especially important for kswapd to correctly flush unmapped entries
(it
caused random segfaults during large compiles)
<geert@linux-m68k.org>
[PATCH] M68k time update
M68k: Update time adjustment code cfr. other architectures.
(perhaps do_gettimeofday() is a good candidate for consolidation across
archs?)
<geert@linux-m68k.org>
[PATCH] Amiga eth%d
Amiga Ethernet drivers: Print card info after calling register_netdev(), to
avoid dev->name still being 'eth%d'.
<geert@linux-m68k.org>
[PATCH] m68k show_interrupts bug
M68k: Make sure machine-specific interrupts are always printed (bug
introduced
by show_interrupts() conversion)
<akpm@osdl.org>
[PATCH] hugetlbpage highmem fix
From: Andy Whitcroft <apw@shadowen.org>
When clearing a large page allocation ensure we use a page clear function
which will correctly clear a ZONE_HIGHMEM page.
<akpm@osdl.org>
[PATCH] kbuild: Create .tmp_versions when building external modules
From: Sam Ravnborg <sam@ravnborg.org>
When building external modules the $PWD/.tmp_versions directory is used.
The .tmp_versions directory in the kernel tree cannot be used because this
would clutter up the kernel tree especially when more than one external
module is being build for the same kernel tree.
This patch make sure to create $PWD/.tmp_versions, and to delete it during
make clean. It also removes warning about 'messed with SUBDIRS', this is
no longer relevant when .tmp_versions is made outside the kernel tree.
<akpm@osdl.org>
[PATCH] put ia32 pgds and pmds back into slab
From: William Lee Irwin III <wli@holomorphy.com>
This optimisation was reverted when I was removing all users of page->list.
Bill fixed it up, so unrevert it again.
<akpm@osdl.org>
[PATCH] get_files_struct cleanup
From: Russell King <rmk@arm.linux.org.uk>
Cleanup the 4 duplicate "get_files_struct" implementations into one
get_files_struct() function to compliment put_files_struct().
<akpm@osdl.org>
[PATCH] shrink VFS hash sizes on small machines
From: Matt Mackall <mpm@selenic.com>
Base hash sizes on available memory rather than total memory. An
additional 50% above current used memory is considered reserved for the
purposes of hash sizing to compensate for the hashes themselves and the
remainder of kernel and userspace initialization.
<akpm@osdl.org>
[PATCH] fix vga16fb.c frame buffer bad memory mapping
From: Vincent Sanders <vince@kyllikki.org>
The vga16fb driver uses a direct ioremap on 0xa00000 to gain access to the
vga card. This is wrong on architectures other than x86, every other driver
uses VGA_MAP_MEM macro from vga.h to ensure the correct memory mapping.
<akpm@osdl.org>
[PATCH] uninline put_page()
Shrinks my vmlinux by an astonishing 28k.
text data bss dec hex filename
3038796 589890 150612 3779298 39aae2 vmlinux.before
3009761 590107 150612 3750480 393a50 vmlinux.after
Thanks to Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> for performing
the analysis.
<akpm@osdl.org>
[PATCH] uninline seq_puts() and seq_putc()
Saves 3.4k from my vmlinux.
Thanks to Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> for performing
the analysis.
<akpm@osdl.org>
[PATCH] uninline copy_to_user() and copy_from_user()
40k reduction in my vmlinux.
Thanks to Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua> for performing
the analysis.
<akpm@osdl.org>
[PATCH] Fix tmscsim on amd64
From: Jeff Garzik <jgarzik@pobox.com>
DC390_init() takes a long, not an int.
<akpm@osdl.org>
[PATCH] m68knommu: change addr type to reduce casting in ColdFire serial
driver
From: <gerg@snapgear.com>
Change "addr" field type to reduce casting in ColdFire serial driver.
<akpm@osdl.org>
[PATCH] m68knommu: fixes to the ColdFire serial driver
From: <gerg@snapgear.com>
A whole bunch of fixes for the ColdFire serial driver:
. remove unused CONFIG_LEDMAN code
. reformat port definitions to new style structure init
. change "addr" field type to reduce casting in ColdFire serial driver
. cleanup locking problems in mcfrs_write().
. implement fraction baud rate clock support for hardware that
supports it (namely the ColdFire 5272)
. implement wait_until_sent, some ColdFire parts of hardware support
for this (again the 5272).
. correctly use return values from put_user(), get_user() and copy_to_user()
Many of these originaly from kernel janitors.
<akpm@osdl.org>
[PATCH] m68knommu: fixes to the 68328 DragonBall serial driver
From: <gerg@snapgear.com>
A few fixes for the 68328 "DragonBall" serial driver:
. use irqreturn_t for interrupt handlers
. correct a few variable types (stop compiler warnings)
. correctly use return values from put_user(), get_user() and copy_to_user()
Many of these originaly from kernel janitors.
<akpm@osdl.org>
[PATCH] Wrong return value in hfs_fill_super
From: Nick Wellnhofer <wellnhofer@aevum.de>
hfs_fill_super in 2.6.5 returns -EIO instead of -EINVAL if a valid supe=
block isn't found. So mount_block_root in init/do_mounts.c bails out before
trying to mount the root device as XFS.
<akpm@osdl.org>
[PATCH] mips build fix
From: Samium Gromoff <deepfire@sic-elvis.zel.ru>
Without this one it fails to build.
<akpm@osdl.org>
[PATCH] another mips build fix
From: Samium Gromoff <deepfire@sic-elvis.zel.ru>
Without this one it fails to build, too.
<akpm@osdl.org>
[PATCH] pcmcia/rsrc_mgr.c warning fix.
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>,
me
drivers/pcmcia/rsrc_mgr.c: In function `find_io_region':
drivers/pcmcia/rsrc_mgr.c:604: warning: large integer implicitly truncated
to unsigned type
We don't really know what underlying type an ioaddr_t has, so just use an
integer here and let the compiler promote it appropriately.
<akpm@osdl.org>
[PATCH] Compile fix for macserial
From: Jeff Mahoney <jeffm@suse.com>
This patch fixes a problem with the serial conversion to tiocm[sg]et.
The paste from rs_ioctl included the command sanity checking, but there's no
command for tiocm[sg]et. The compile ends up failing.
<akpm@osdl.org>
[PATCH] stack reductions: nfs root
From: Arjan van de Ven <arjanv@redhat.com>
root_nfs_name is called one in single threaded environment; can use static.
<akpm@osdl.org>
[PATCH] binfmt_misc: remove attribute(unused)
From: Anton Blanchard <anton@samba.org>
It's been there since the kernel was first imported into bk. We see no
reason for this.
<akpm@osdl.org>
[PATCH] ufs2_frag_map_fix : fixes wrong content reading in ufs2 code
From: Niraj Kumar <niraj17@iitbombay.org>
This is in continuation of the ufs2 read-only code that went into 2.6.5.
This patch fixes a bug where wrong content was being read off the disk
after around 4 MB mark.
<akpm@osdl.org>
[PATCH] ppc64: Fix ibmveth.c compilation
From: Paul Mackerras <paulus@samba.org>
This patch changes PCI_DMA_TODEVICE to DMA_TO_DEVICE in a couple of
places in drivers/net/ibmveth.c, since it doesn't compile without this
change and it does compile with it. It also reformats a couple of
over-long lines in the vicinity of the other changes.
<akpm@osdl.org>
[PATCH] ppc64: restore r13 in an unrecoverable exception
From: Anton Blanchard <anton@samba.org>
We have to restore r13 when entering unrecoverable_exception.
<ganesh.venkatesan@intel.com>
[PATCH] e1000: ethtool set/get eeprom fixes
<ganesh.venkatesan@intel.com>
[PATCH] e1000: ethtool set/get ring param support
<ganesh.venkatesan@intel.com>
[PATCH] e1000: fix eeprom update to include e1000_standby_eeprom
A Bug in e1000_spi_eeprom_ready where the Chip Select bit wasn't being
toggled after every status register read (if the eeprom wasn't ready after
the first status register read). The call to e1000_standby_eeprom manages
the CS bit correctly
<ganesh.venkatesan@intel.com>
[PATCH] e1000: remove polarity reversal workaround for forced 10H/10F links
Adding this caused the adapter to fail while operating at 10 mbps, half
duplex. Hence the fix is not complete. We are still investigating a more
complete fix for the polarity reversal issue.
<ganesh.venkatesan@intel.com>
[PATCH] e1000: Set Attla PHY to Class A
Some LOM implementation of our controllers pass IEEE tests (Tx
distortion/Symmetry) while operating in Class A mode rather than in
class AB mode.
<ganesh.venkatesan@intel.com>
[PATCH] e1000: New bit definitions, fix comments on loadtime parameters
<ganesh.venkatesan@intel.com>
[PATCH] e1000: all other white space fixes, changelog
<ganesh.venkatesan@intel.com>
[PATCH] e1000: replace if(retval=fn()) with retval=fn(); if (retval)
<brazilnut@us.ibm.com>
[PATCH] pcnet32 fix hang/crash with loopback test
If the pcnet32 interface is not up, running the loopback test may hang or
crash the system. This patch provided by Jim Lewis fixes that problem.
Tested on ia32 and ppc systems.
<akpm@osdl.org>
[PATCH] sk_mca multicast fix
Spotted by Jean Delvare <khali@linux-fr.org>: it has its memset arguments the
wrong way round.
<rmk@arm.linux.org.uk>
[PATCH] etherh updates
Update Acorn EtherH driver - convert to use mmio instead of emulated
PIO. Convert card-specific parameters to a data structure rather
than code-based selected.
Please review and submit upstream. Thanks.
<mpm@selenic.com>
[PATCH] netpoll early ARP handling
Handle ARP requests while device is trapped before in_dev is
initialized using netpoll config. Allows early kgdboe usage.
From Stelian Pop <stelian@popies.net>
<mpm@selenic.com>
[PATCH] netpoll transmit busy bugfix
Fix for handling of full transmit queue when netpoll trap is enabled.
From Stelian Pop <stelian@popies.net>
<p_gortmaker@yahoo.com>
[netdrvr 8390] Fix 8390 log spam
It seems that PCMCIA 8390 users get spammed with a few annoying
messages upon card removal. I guess 8390 could be taught to better
detect and deal with these things, but here is a quick fix.
<romieu@fr.zoreil.com>
[PATCH] MAINTAINER entry for the r8169 driver.
<romieu@fr.zoreil.com>
[PATCH] r8169: Missing 'static' qualifier for functions.
<romieu@fr.zoreil.com>
[PATCH] r8169: correct irq handler return value
The irq handler must not return 1 when the status register is null
during the firt iteration.
<romieu@fr.zoreil.com>
[PATCH] r8169: mod_timer() expects an absolute time, not a relative offset.
<rddunlap@osdl.org>
[PATCH] remove concat. with __FUNCTION__ (drivers/net/) (V2)
Hi,
Previous patch had a small problem. This patch replaces the
previous version. I can/will send a relative/differential diff
if you want/need it.
Problem:
On Tue, 2004-04-06 at 14:45, Randy.Dunlap wrote:
> From: Tony Breeds <tony@bakeyournoodle.com>
>
> "concatenation of string literals with __FUNCTION__ is deprecated"
> -#define TRACE_ENTER(devname) DEBUG(2, "%s: -> " __FUNCTION__ "()\n",
devname);
> -#define TRACE_EXIT(devname) DEBUG(2, "%s: <- " __FUNCTION__ "()\n",
devname);
> +#define TRACE_ENTER(devname) DEBUG(2, "%s: -> %s()\n", __FUNCTION__,
devname);
> +#define TRACE_EXIT(devname) DEBUG(2, "%s: <- %s()\n", __FUNCTION__,
devname);
| Hi. This isn't the same. It should be:
|
| +#define TRACE_ENTER(devname) DEBUG(2, "%s: -> %s()\n", devname,
__FUNCTION__);
| +#define TRACE_EXIT(devname) DEBUG(2, "%s: <- %s()\n", devname,
__FUNCTION__ );
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/gt96100eth.c | 2 +-
drivers/net/irda/smsc-ircc2.c | 6 +++---
drivers/net/irda/via-ircc.c | 2 +-
drivers/net/wireless/orinoco.h | 4 ++--
4 files changed, 7 insertions(+), 7 deletions(-)
<jgarzik@redhat.com>
Delete sis190 net driver.
The driver was copied from the very-buggy r8169 (pre-Francois),
and is for hardware that isn't even out of the lab yet.
<jgarzik@redhat.com>
[netdrvr r8169] temporary build fix, until DMA_xxBIT_MASK is upstream
<stevef@stevef95.austin.ibm.com>
fix merge problem with 2.6.5 (rename of page struct field list to lru)
<davidm@tiger.hpl.hp.com>
ia64: Quiet another compiler-warning.
<davidm@tiger.hpl.hp.com>
ia64: Drop pci_sal_ext_{read,write}() and instead simply switch to
extended config-space addresses when needed. This avoids
the fragile SAL version testing.
<davidm@tiger.hpl.hp.com>
ia64: When delivering a signal, force byte-order to little-endian.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] ide-disk.c: workaround for bogus LBA48 drives
From: Geert Uytterhoeven <geert@linux-m68k.org>
Apparently some IDE drives (e.g. a pile of 80 GB ST380020ACE drives I have
access to) advertise to support LBA48, but don't, causing kernels that
support
LBA48 (i.e. anything newer than 2.4.18, including 2.4.25 and 2.6.4) to fail
on
them. Older kernels (including 2.2.20 on the Debian woody CDs) work fine.
Check for id->lba_capacity_2 being non-zero in idedisk_supports_lba48().
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] hpt366.c: fix 'cat /proc/ide/hpt366' crash
Disable code doing outb() without any locking in /proc handler.
Otherwise 'cat /proc/ide/hpt366' crashes if done during I/O.
Noticed by John Stoffel <stoffel@lucent.com>.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] zero 'hw_regs_t hw' allocated from stack in ide.c and ide-cs.c
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] asm-arm26/hdreg.h: use unsigned long for ide_ioreg_t
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] add asm-generic/hdreg.h
Use it on all archs which define ide_ioreg_t to unsigned long.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] asm/ide.h: ide_ioreg_t cleanup
ide_ioreg_t is deprecated and hasn't been used by IDE driver for some time.
Use unsigned long directly on alpha, arm26, arm, mips, parisc, ppc64 and sh.
asm-ia64/ide.h (ide_ioreg_t is unsigned short) and asm-m68knommu/ide.h
(broken - ide_ioreg_t is not defined) are the only users of ide_ioreg_t left.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] asm-ia64/ide.h: use unsigned long instead of ide_ioreg_t
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] obsolete asm/hdreg.h
<akpm@osdl.org>
[PATCH] jbd copyout fix
When I converted journal_write_metadata_buffer() to kmap_atomic() I screwed
up the handling of the copyout buffers - we're currently writing four zeroes
into the user's page rather than into the data which is to be written to the
journal (oops).
Net effect: any block which starts with 0xC03B3998 gets scribbled on in
data=journal mode.
<akpm@osdl.org>
[PATCH] Fix ext3 add_nondir d_instantiate()
It should be unconditional.
<akpm@osdl.org>
[PATCH] Fix MSI IA64 Support Build Breakage
From: "Nguyen, Tom L" <tom.l.nguyen@intel.com>
The patch showed up in Linus' tree last night breaks the
"generic_defconfig" build for ia64.
Fix it by adding the NR_VECTORS device to ia64.
<akpm@osdl.org>
[PATCH] update fix for potential integer overflow in zoran driver
From: Dave Jones <davej@redhat.com>
2.4 already had this fixed, but uses a somewhat larger value to clip at.
For uniformity sake, perhaps they should be the same? Patch below makes
it match 2.4-bk
<ak@suse.de>
[PATCH] x86-64 update
Various fixes and cleanups for x86-64.
- Update defconfig
- Fix some problems in ROM resource scanning (Rene Herman)
- Initialize APIC id of CPU 0 (Venkatesh Pallipadi)
- Always enable swiotlb for GART_IOMMU
- Fix compilation without IOMMU_GART
- Remove nodes_present; use standard node_online_map instead.
This also fixes a bug with no memory on node 0.
- Switch node<->cpu mapping to arrays. This fixes some awkward
special cases with no nodes and empty nodes.
- Move K8 fallback node setup to common code
- Eliminate old fake_node.
- Fix wrong fields in MCE handling (Marc Bevand)
- Make pci_dma_consistent behave more similar to i386 to fix Alsa
<davej@redhat.com>
[CPUFREQ] Correcting SGTC. Timer is based upon FSB
From: Bruno Ducrot <ducrot@poupinou.org>
I think this patch is needed especially if the FSB is around 166MHz or
200MHz, or else I believe we get instabilities on some K7's motherboard
powernow capable (it's called Cool'n Quiet IIRC).
* Deduce fsb from cpu_khz and the max multiplier. It will be given as kHz
now,
so that frequency associated to a multiplier will be computate more
accurately. Also, we need it for SGTC (see below).
* Fix how cpuid is computed in powernow_decode_bios().
* Be more restrictive for PST. It may be possible (on desktop shipped with
low power Athlon models) that FSB can be changed by dip switchs on
motherboard for example.
* Fix computation for SGTC. It use the bus timer (and then the bus
frequency given by fsb).
<dsaxena@net.rmk.(none)>
[ARM PATCH] 1811/1: Set dma_handle to ~0 when coherent allocation too big
Patch from Deepak Saxena
<davej@redhat.com>
[CPUFREQ] don't use speedstep-centrino on unsupported CPUs
From: Dominik Brodowski <linux@dominikbrodowski.de>
Don't use the ACPI data on CPUs we don't know nothing about.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix builds using O=
<davej@redhat.com>
[CPUFREQ] powernow-k7 ACPI integration.
More from Bruno Ducrot.
Warning: it will only half work on the ACER Aspire, though: there is
no pstate in the DSDT corresponding to the max frequency...
I'm looking how to handle that correctly, probably at the init stage,
if the max frequency is not given, then add it to powernow_table.
* Integrate acpi perflib from Dominik.
* Use acpi if the PST tables are known to be broken (ASUS Aspire match one
PST,
but give brain damaged values), or use ACPI if no PST found.
<davej@redhat.com>
[CPUFREQ] Drop unneeded part of last patch.
acpi fallback is handled already in the init function.
<davej@redhat.com>
[CPUFREQ] powernow-k7 needs to init later.
Due to the possible dependancy on ACPI.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Add ARM PL011 uart primecell support.
This adds support for the AMBA PL011 UART primecell, and moves the
existing AMBA UART support to indicate it covers the AMBA PL010
primecell.
<baldrick@free.fr>
[PATCH] USB speedtouch: turn on debugging if CONFIG_USB_DEBUG is set
Hi Greg, this causes the speedtouch driver to output non-verbose
debugging messages if the kernel was configured with CONFIG_USB_DEBUG.
The patch is against your 2.6 kernel tree.
<baldrick@free.fr>
[PATCH] USB speedtouch: fix memory leak in error path
Hi Greg, this patch fixes a memory leak in the speedtouch driver.
The leak occurs when the ATM layer submits a skbuff for transmission,
but the driver rejects it (because the device has been unplugged for
example). The ATM layer requires the driver to free the skbuff in this
case. The patch is against your 2.6 kernel tree.
<baldrick@free.fr>
[PATCH] USB speedtouch: bump the version number
Hi Greg, this patch bumps the speedtouch driver's version number.
It also adds the version number to the module description, so people
can see it with modinfo. I also added a MODULE_VERSION line (why?
because it was there...) The patch is against your 2.6 kernel tree.
<jan@ccsinfo.com>
[PATCH] USB: more ftdi devices
<martin.lubich@gmx.at>
[PATCH] USB: Patch for Clie TH55 Support in visor kernel module
I just want to explain the changes I've made, since I tried to adhere to the
more organized structure in the 2.6 visor module to incorporate my changes.
I didn't want to pollute this with some ugly hack.
I created a new device id table with name clie_id_5_table to cleanly separate
the UX50/TH55 from the rest.
Along with this I added a new usb_serial_device_type which is essentially a
copy of handspring_device but has its own attach function.
This new attach function ( clie_5_attach ) will do the actual magic.
I think it is justified to introduce a new type ( which I called clie_5 )
since I suspect that Sony is intentionally changing the interface spec ( As
it has done so in the past ). I dare to predict that we will see more clie
devices coming this year which will require this new attachment procedure. At
the moment I am only aware of the UX50 and TH55 to implement that weird
configuration.
<len.brown@intel.com>
[ACPI] fix x86_64 mis-merge
<davej@redhat.com>
[CPUFREQ] Remove bogus newline in powernow-k7 driver.
<davej@redhat.com>
[PATCH] isofs buffer overflow fix
Merged in 2.4, and various vendor kernels..
iDefense reported a buffer overflow flaw in the ISO9660 filesystem code.
An attacker could create a malicious filesystem in such a way that they
could gain root privileges if that filesystem is mounted. The Common
Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name
CAN-2004-0109 to this issue.
Ernie Petrides came up with the following patch which I fixed up a slight
reject in to apply to 2.6. Otherwise, unchanged from the 2.4 patch.
<dsaxena@net.rmk.(none)>
[ARM PATCH] 1810/1: Support for non-PXA XScale UARTs
Patch from Deepak Saxena
Supersedes 1809/1
<anton@samba.org>
[PATCH] ppc64 signal frame issue
Fix a corruption bug, we were copying too much information back off
the signal frame.
While in the area help with gccs sign extension optimisation problems
and convert some things to long. (Saves about 30 instructions in signal.c)
<anton@samba.org>
[PATCH] large cpumask fix
The RCU code was missing cpus_empty() in one place, required with large
cpumasks.
<ambx1@neo.rr.com>
[PNPBIOS] parse asci text name
This patch fixes the unknown tag warning by adding support for the asci text
tag.
<ambx1@neo.rr.com>
[PNP] minor resource management fixes
This patch fixes a bug in pnp_auto_config_dev in which it wouldn't always
report
allocation failures. It also corrects the return codes.
<ambx1@neo.rr.com>
[PNP] sysfs entry "resource" fix
This patch ensures the proper count is returned in pnp_set_current_resources.
<ambx1@neo.rr.com>
[PNPBIOS] blacklist asus P4P800
The ASUS p4p800 motherboard's BIOS has a broken PnPBIOS implementation.
This
patch will disable PnPBIOS support if this hardware is detected by DMI.
<ambx1@neo.rr.com>
[PNPBIOS] avoid making potentially broken calls in proc.c
This patch prevents /proc/bus/pnp/devices from requesting on-boot node
information. Dynamic information is used instead.
<perex@suse.cz>
[ISAPNP] MEM32 fix in read resources
Corrects isapnp_read_resources so that it gets MEM32 information properly.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix __do_softirq breakage.
<rmk@flint.arm.linux.org.uk>
[ARM] Use #defined constants for handle_mm_fault and __do_page_fault.
<khali@linux-fr.org>
[PATCH] I2C: Fix voltage rounding in asb100
This one line patch fixes voltage rounding in the asb100 chip driver.
It's very similar to a patch I submitted for the lm80 a few days ago.
<sam@ravnborg.org>
[PATCH] kbuild: fix modules_install
The directory .tmp_versions/ was deleted during make vmlinux.
This eliminated the list of modules used for moudles_install.
The effect was that the following scenario failed:
make
make install
make modules_install
The solution is to only cleanup .tmp_versions when building modules.
<davej@redhat.com>
[CPUFREQ] Add a module parameter to force ACPI to be used.
<stevef@stevef95.austin.ibm.com>
Fix misc. minor memory leaks in error paths
<davej@redhat.com>
[CPUFREQ] Make powernow-k7 acpi debug output a little less verbose.
<davej@redhat.com>
[CPUFREQ] powernow-k7 ACPI->PST values were a factor of 10 off.
As much as I like the idea of a 13GHz laptop, setting it to 1.3GHz is
probably
for the best for the time being.
<davej@redhat.com>
[CPUFREQ] clear defaults before powernow-k7 acpi fallback
Decoding the legacy tables may have set these values.
<m.c.p@kernel.linux-systeme.com>
[PATCH] USB: fix CAN-2004-0075
Okay, now while we are at fixing security holes, is there any chance we
can _finally_ get the attached patch in?
The Vicam USB driver in all Linux Kernels 2.6 mainline does not use the
copy_from_user function when copying data from userspace to kernel space,
which crosses security boundaries and allows local users to cause a denial
of service.
Already ACKed by Greg. Only complaint was inproper coding style which is done
with attached patch ;)
ciao, Marc
<stevef@stevef95.austin.ibm.com>
free cifs read buffer on retry
<daniel.ritz@gmx.ch>
[PATCH] yenta: interrupt routing for TI briges
Some TI cardbus bridges found in notebooks and PCI add-on cards are
uninitialized. This means the interrupt mode and the interrupt routing
is wrong in most cases, ending up in non working PCI interrupts.
This makes the TI Yenta driver probe the PCI interrupt and adjust the
interrupt setting if no interrupts are delivered. It's done in a safe
way, that doesn't hurt working setups.
Function 1 on two slot devices is handled differently from function 0
since both share the settings.
<jgarzik@redhat.com>
[libata] abstract SCSI->ATA translation a bit
<jgarzik@redhat.com>
[libata] move some PIO state init to its proper place
<jgarzik@redhat.com>
[libata sata_promise] fix taskfile delivery cases
We should only be touching the ATA shadow registers if we are doing
PIO.
<torvalds@ppc970.osdl.org>
Linux 2.6.6-rc1
<akpm@osdl.org>
[PATCH] Fix mq_notify with SIGEV_NONE notification
From: Jakub Jelinek <jakub@redhat.com>
mq_notify (q, NULL)
and
struct sigevent ev = { .sigev_notify = SIGEV_NONE };
mq_notify (q, &ev)
are not the same thing in POSIX, yet the kernel treats them the same. Only
the former makes the notification available to other processes immediately,
see
http://www.opengroup.org/onlinepubs/007904975/functions/mq_notify.html
Without the patch below,
http://sources.redhat.com/ml/libc-hacker/2004-04/msg00028.html
glibc test fails.
I looked at mq in Solaris and they behave the same in this regard as Linux
with this patch. Kernel with this patch passes both Intel POSIX testsuite
(with testsuite fixes from Ulrich) and glibc mq testsuite.
<akpm@osdl.org>
[PATCH] radix-tree comment fix
Fix various bogons and outright lies.
<akpm@osdl.org>
[PATCH] mq_open() and close_on_exec
From: Chris Wright <chrisw@osdl.org>
SUSv3 doesn't seem to specify one way or the other. I don't have the POSIX
specs, and the old docs I have suggest that mq_open() creates an object
which is to be closed upon exec.
Jakub said:
I think it is valid and required:
http://www.opengroup.org/onlinepubs/007904975/functions/exec.html
All open message queue descriptors in the calling process shall be
closed, as described in mq_close()
I'll add a new test for this into glibc testsuite.
<akpm@osdl.org>
[PATCH] ext3: journalled quotas
From: Jan Kara <jack@ucw.cz>
Journalled quota support for ext3: The patch consists of two parts - ext3
changes and changes in generic quota code. The main idea of the changes is
that a transaction is always started before any operation which changes quota
file and dirtifying of the quota causes its write to disk. These two changes
assure that quota change is journalled into the same transaction as the file
change and hence after journal replay quota is consistent with the filesystem
state. As during journal replay inodes from orphan list are
deleted/truncated
we have to do quota_on before the replay of the orphan list - this problem is
solved by additional mount options to ext3 with quota file names and format.
Some changes in generic code were also needed to assure that quota structure
in file is always allocated and so ordinary quota operations (like
adding/deleting a block/inode) need only a few blocks from the transaction.
<akpm@osdl.org>
[PATCH] Add mqueue support to x86-64
From: Andi Kleen <ak@suse.de>
Add POSIX mqueue support to x86-64.
<akpm@osdl.org>
[PATCH] light-weight auditing framework for s390.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
This patch adds the TIF_SYSCALL_AUDIT option to the s390 ptrace interface.
<akpm@osdl.org>
[PATCH] posix messages queues for s390.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
The new message queue interface needs the following patch to get it working
on s390 (31-bit, 64-bit and 31-bit compat).
<benh@kernel.crashing.org>
[PATCH] ppc64: Fix possible duplicate MMU hash entries
The current code has a subtle race where 2 hash PTEs can be inserted
for the same virtual address for a short period of time. There should
not be a stale one as the "old" one ultimately gets flushed, but the
architecture specifies that having two hash PTE is illegal and can
result in undefined behaviour.
This patch fixes it by never clearing the _PAGE_HASHPTE bit when
doing test_and_clear_{young,dirty}. That means that subsequent faults
on those pages will have a bit more overhead to "discover" that the
hash entry was indeed evicted.
It also adds a small optisation to avoid doing the atomic operation
and the hash flush in test_and_clear_dirty when the page isn't dirty
or when setting write protect while it's already set.
<benh@kernel.crashing.org>
[PATCH] ppc64: update g5_defconfig
This adds IOMMU support & IOMU virtual merging to the default g5 config.
This will not impair performances of machines that don't need the iommu
(the kernel will only enable it if you have more than 2Gb of RAM, though
you can explicitely enable it using a command line argument).
<James.Bottomley@SteelEye.com>
[PATCH] fix 4k irqstacks on x86 (and add voyager support)
There's a bug in the x86 code in that it sets the boot CPU to zero.
This isn't correct since some subarch's use physically indexed CPUs.
However, subarchs have either set the boot cpu before irq_INIT() (or
just inherited the default zero from INIT_THREAD_INFO()), so it's safe
to believe current_thread_info()->cpu about the boot cpu.
<xschmi00@stud.feec.vutbr.cz>
[PATCH] USB: Fix vicam debug compile, fix user access
The last copy_from_user patch to the vicam driver broke compilation with
VICAM_DEBUG on.
There is also another copy_from_user missing in case VIDIOCSPICT.
This fixes both issues.
<James.Bottomley@SteelEye.com>
[PATCH] fix non-PC subarchs which were broken by i386 probe_roms change
The author apparently didn't understand that only the mach-default
include directory is included by fallback for header files only. You
can't stick a .c file in mach-default and expect all subarchs to be able
to use it.
The correct fix is to put std_resources.c in the kernel directory and
give it its own Kconfig symbol for conditional compile so that subarchs
may choose to include it or not.
<geert@linux-m68k.org>
[PATCH] Amiga Zorro8390 Ethernet section conflict
Jeff Garzik notes that the previous cleanup highlights a bug:
>
> static const struct card_info {
> zorro_id id;
> const char *name;
> unsigned int offset;
> } cards[] __initdata = {
>
> and the lone user is __devinit:
>
> static int __devinit zorro8390_init_one(struct zorro_dev *z,
> const struct zorro_device_id *ent)
Here's the fix..
<stevef@stevef95.austin.ibm.com>
Fix major page leak in read code caused by extra page_cache_get call
<stevef@smfhome.smfdom>
check permission locally for servers that do not support the CIFS Unix
Extensions (allowing file_mode and dir_mode to augment the
server permission check, by doing local vfs_permission check)
<davem@nuts.davemloft.net>
[E1000]: e1000.h needs dma-mapping.h
<davem@nuts.davemloft.net>
[IXGB]: ixgb.h needs dma-mapping.h
<adam@evdebs.org>
[PATCH] NMI watchdog Pentium M support
This adda nmi_watchdog=2 support to the Pentium M processor. The P-M is
a P6 chip, but it shares some chipset logic with the Pentium 4, so it
requires this workaround to function.
Without this patch, NMI gets stuck after 1 count. With it, the NMI
fires and breaks me out of UHCI-related hard lockups.
This patch is basically a modified version of the same patch for
oprofile. See the threaded discussion here:
http://lkml.org/lkml/2004/2/12/181
<anton@samba.org>
[PATCH] ppc64: catch branch to 0 in real mode
We have been debugging some strange fails where we branch to 0 in real
mode. At the moment this results in the cpu running through the
initialisation code and failing somewhere well into it.
The following patch uses the featuring nop'ing code to remove the branch
at real address 0 so it falls through to a trap instruction and gets
caught early.
<anton@samba.org>
[PATCH] ppc64: always initialise dn->type and dn->name
This fix comes from ppc32. Always initialise dn->type and dn->name so
that code doesnt have to check for NULL everywhere. There is at least
one bug report where we oopsed because of this.
<benh@kernel.crashing.org>
[PATCH] ppc64: Fix RTAS races on pSeries
The low level kernel interface to RTAS (the firmware runtime services)
was plagued with races that could cause from bogus results of RTAS
operations to total machine crashes in some circumstances. This patch
fix the ones I could identify, hoping I didn't miss any. I also added
a WARN_ON (well, it's asm equivalent) to enter_rtas to make sure we
never _ever_ try to call that with interrupts enabled.
<rmk@flint.arm.linux.org.uk>
[ARM] Add --no-undefined to linker command line.
Many binutils versions over the last year appear to silently build
assembler files with undefined constants, and able to successfully
create executables from such files. The assembler appears to add
undefined symbols to the symbol table without any corresponding
relocation information. Obviously this is bad news since the
resulting executable may not be what the programmer intended.
Work around the problem by forcing the linker to fail if there are
any undefined symbols in the final object(s).
<davej@redhat.com>
[CPUFREQ] Not all powernow-K7 BIOS's put the frequency at MAX at POST.
<stevef@stevef95.austin.ibm.com>
Remove 64 bit compiler warning
<akpm@osdl.org>
[PATCH] amd8111e retval fix
drivers/net/amd8111e.c: In function `amd8111e_vlan_rx':
drivers/net/amd8111e.c:677: warning: control reaches end of non-void function
<jgarzik@redhat.com>
[netdrvr via-rhine] Fix MII phy scanning
Noticed by Roger Luethi, via-rhine maintainer.
<brazilnut@us.ibm.com>
[PATCH] pcnet32 transmit performance fix
When the pcnet32 adapter is installed in a system with long PCI latency
and the read burst bit is not set, performance on transmission is very
low (under 20Mbit on a 100Mbit link). This patch against 2.6.6-rc1 will
make sure that read and write bursts are enabled. Tested on ppc64 and
ia32.
<davem@nuts.davemloft.net>
[SPARC64]: Fix branch prediction in switch_to().
<mbp@vexed.ozlabs.hp.com>
[PATCH] ia64: fpswa_interface needs to be exported
efivars can be built as a module, but it depends on 'fpswa_interface'
which is not exported by fpswa.c. Patch below fixes this problem.
<ak@suse.de>
[NET]: Do lazy gettimeofday for network packets.
<rmk@flint.arm.linux.org.uk>
[ARM] Remove needless export of __do_softirq()
<ak@suse.de>
[IPV6]: Limit network triggerable printks.
<arjanv@redhat.com>
[NET]: Add some sparse annotations to network driver stack.
<rmk@flint.arm.linux.org.uk>
[ARM] Update mach-types file.
<rmk@flint.arm.linux.org.uk>
[ARM] Add __user address space identifiers for sparse.
<shemminger@osdl.org>
[BRIDGE]: Include file cleanup.
Cleanup some of the include file's in the bridge code.
* if_bridge.h defines net_bridge, but not needed as part of the API.
* get rid of places that include if_bridge.h and uaccess.h but don't
actually do API work.
<shemminger@osdl.org>
[BRIDGE]: Fix rmmod race.
Fix observed race between removing bridge module and ip packets
in flight. Need to remove the hook last, after all bridges are gone
not the other way around.
<shemminger@osdl.org>
[BRIDGE]: Make use of jiffies_to_clock.
<shemminger@osdl.org>
[BRIDGE]: Use ethtool to get port speed.
The bridge code needs to keep track of a cost estimate for each
port in the bridge. Instead of a hack based on device name, try
and use ethtool to get port speed from device. This has been tested
on e100 (uses ethtool_ops) and e1000 (does ethtool the hard way)
and dummy (no ethtool).
Need to export dev_ethtool() to allow bridge module to get to
it easily.
Code takes care to maintain same locking and semantics as if ioctl
was being done from application.
<shemminger@osdl.org>
[BRIDGE]: Multicast address as const.
<shemminger@osdl.org>
[BRIDGE]: Forwarding database changes.
Make forwarding database more robust.
+ Don't insert invalid ether address,
+ Report errors back so adding an interface to bridge can fail
+ get rid of unneeded explicit pads in data structure
+ replace bitfields with byte's for simple booleans.
<shemminger@osdl.org>
[BRIDGE]: STP unsigned fields.
Use correct types for fields related to spanning tree protocols.
* costs are 32 bit unsigned
* ports are 16 bit unsigned
* booleans are bytes rather than bitfield
* arrange for better packing
<shemminger@osdl.org>
[BRIDGE]: Support lots of 1k ports.
Support >256 ports on a bridge. Use the suggestion of reducing
the number of bits of priority and increasing the number of bits
for port number.
Easy to increase to even larger if necessary.
<shemminger@osdl.org>
[BRIDGE]: FDB cache alloc.
Since forwarding database gets a lot of memory alloc/free on a busy
bridge, use kmem_cache_alloc to provide cache and better stats.
<shemminger@osdl.org>
[BRIDGE]: Replace CLEAR_BITMAP with memset.
<viro@www.linux.org.uk>
[PATCH] remount: fs/sysv fixes
- several variants of sysv fs are supported only r/o. Driver does
force r/o on mount, but doesn't do anything on remount. As the
result, one can remount them r/w and results are Not Pretty(tm).
Missing checks added, code cleaned up.
- we had double-brelse() in v7fs - if sanity checks on root inode will
succeed, but allocation of root dentry fails, we brelse() the same
buffer_head twice. Fixed.
<viro@www.linux.org.uk>
[PATCH] remount: fs/udf fixes
- same problem as with sysv - mount-time checks for fs being good for
writing are absent on remount. Check added.
<viro@www.linux.org.uk>
[PATCH] remount: fs/openpromfs
- we should force noatime both on mount and remount. Fixed.
<viro@www.linux.org.uk>
[PATCH] remount: fs/jffs2
- jff2->remount_fs() was buggy - it played with sb->s_flags instead of
doing modifications to *flags (->s_flags will be overwritten using
*flags right after the call of ->remount_fs()). Moreover, it tried
to do the wrong thing - it should just enforce noatime and be done
with that. Fixed, ACKed by maintainer.
<viro@www.linux.org.uk>
[PATCH] remount: forced-ro filesystems
- a bunch of r/o filesystems did force MS_RDONLY on mount but forgot to
do the same on remount. Fixed.
<viro@www.linux.org.uk>
[PATCH] remount: forced-nodiratime filesystems
- a bunch of filesystems force MS_NODIRATIME on mount but forgot to do
the same on remount. Fixed.
<viro@www.linux.org.uk>
[PATCH] remount: mount flags filtering
- we could pass MS_ACTIVE in mount flags and it would be passed into
->get_sb(), leading to interesting failure modes. This flag is only
for internal use (it's set once fill_super is complete and reset
before the inode eviction on umount); made sure that we never get
tricked into having it set it too early.
<mroos@linux.ee>
[SPARC64]: Fix binfmt_elf32.c warning by redefining TASK_SIZE.
<jt@bougret.hpl.hp.com>
[IRDA]: Convert vlsi_ir /proc/driver to seq_file.
From Stephen Hemminger.
<jt@bougret.hpl.hp.com>
[IRDA]: Fix handling of RD:RSP to be spec compliant
From Martin Diehl.
<jt@bougret.hpl.hp.com>
[IRDA]: Get rid of local CRC table in donauboe.
From Stephen Hemminger.
<jt@bougret.hpl.hp.com>
[IRDA]: Fix namespace pollution of print_ret_code.
From Stephen Hemminger.
<jt@bougret.hpl.hp.com>
[IRDA]: Rename handle_filter_request to irlan_filter_request.
From Stephen Hemminger.
<jt@bougret.hpl.hp.com>
[IRDA]: irlan_common cleanup.
Minor type changes in irlan_common for clarity:
- use const
- init and exit can be static
- use skb_queue_purge to flush queue
- get rid of noisy old comment
From Stephen Hemminger.
<jt@bougret.hpl.hp.com>
[IRDA]: irlan_eth cleanup.
Use IrTTP flow control to stop/wake netif
From Stephen Hemminger.
Change irlan_eth device initialization:
*bug* address never set in DIRECT mode because access not set
in alloc_netdev -> irlan_eth_setup path
+ make eth_XXX handles static and provide alloc_irlandev hook
+ use netdev_priv (and get rid of truly impossible ASSERT's)
+ use skb_queue_purge
<jt@bougret.hpl.hp.com>
[IRDA]: Replace sleep_on with wait_event
From Stephen Hemminger.
<yoshfuji@linux-ipv6.org>
[IPV6]: Use IANA icmpv6 type for MLDv2 report.
<nakam@linux-ipv6.org>
[IPV6]: Fix IPSEC AH typo.
<takamiya@po.ntts.co.jp>
[IPV6]: Fix OOPS in udp6 with extension headers using ancillary data.
<shemminger@osdl.org>
[NET]: Fix lapbether bad scheduling while atomic.
Bring up/down network devices with lapbether causes scheduling while
atomic (if preempt enabled).
The calls to rcu_read_lock are unnecessary since lapb_device_event
is called from notifier with the rtnetlink semaphore held, it is
already protected from the labp_devices list changing.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] ide-probe.c: SanDisk is flash
From: Meelis Roos <mroos@linux.ee>
This is self-explanatory - former SunDisk renamed itself to SanDisk and
now there are flash disks with both names.
<davej@redhat.com>
[PATCH] Fix edd driver dereferencing before pointer checks.
Lots of occurences of the same bug..
<davej@redhat.com>
[PATCH] Fix mprotect bogus check.
If we want to trap NULL vma's, we'd better be sure
that we don't dereference it first..
<davem@nuts.davemloft.net>
[BRIDGE]: br_fdb.c needs init.h
<marcel@holtmann.org>
[PATCH] Fix typo in the openpromfs remount patch
The just merged openpromfs remount patch contains a silly typo in the
field of the super_operations structure.
Fixed like this.
<torvalds@evo.osdl.org>
Make sock_no_{get|set}opt() use the proper __user annotation
<torvalds@evo.osdl.org>
Add sparse __safe annotation
<len.brown@intel.com>
[ACPI] enable 440GX PIRQ router workaround
<davem@nuts.davemloft.net>
[IPV6]: Fix esp6.c typo in LIMIT_NETDEBUG changes.
<proski@org.rmk.(none)>
[PCMCIA] Conversion to module_param
Patch from: Pavel Roskin
As it turns out, mixing MODULE_PARM and module_param in one module is
wrong. The parameters specified in module_param are ignored. I've just
posted a patch to LKML that will detect this condition and warn about it.
The new debugging code used the new-style module_param, which means that
all instances of MODULE_PARM should be converted. The attached patch does
that.
An additional bonus is that module_param_array provides the number of
array elements. This allowed me to change tcic.c and i82365.c to use
this number for IRQ list. This change was tested with i82365. If
"irq_list" is not specified, irq_list_count is 0.
I set all permissions to 0444 to be safe. I think we have no secrets
from the users regarding those parameters. If some parameters can be
changed safely at the runtime, the permissions could be changed to 0644.
I didn't examine how safe (and how useful) it would be, so it's 0444 for
now.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Remove check_region()
<rmk@flint.arm.linux.org.uk>
[SERIAL] Use module_param/module_param_array
Update serial to use new module parameters rather than
MODULE_PARM.
<rmk@flint.arm.linux.org.uk>
[ARM] Add detailed documentation concerning ARM page tables
This adds detailed documentation concerning how we map the Linux
page table structure onto the hardware tables on ARM. In addition,
it also adds documentation describing how we emulate the "dirty"
and "young" or "accessed" page table bits.
This should be of interest to Linux MM developers.
<vandrove@vc.cvut.cz>
[PATCH] Fix exec in multithreaded application
The recent controlling terminal changes broke exec from multithreaded
application because de_thread was not upgraded to new arrangement. I
know that I should not have LD_PRELOAD library which automatically
creates one thread, but it looked like a cool solution to the problem I
had.
de_thread must initialize the controlling terminal information in the
new thread group.
<akpm@osdl.org>
[PATCH] dm: Fix 64/32 bit ioctl problems.
From: Kevin Corry <kevcorry@us.ibm.com>
Fix 64/32 bit ioctl problems.
<akpm@osdl.org>
[PATCH] dm: Check the uptodate flag in sub-bios to see if there was an error.
From: Kevin Corry <kevcorry@us.ibm.com>
Check the uptodate flag in sub-bios to see if there was an error. [Mike
Christie]
<akpm@osdl.org>
[PATCH] dm: Handle interrupts within suspend.
From: Kevin Corry <kevcorry@us.ibm.com>
Handle interrupts within suspend.
<akpm@osdl.org>
[PATCH] dm: Use wake_up() rather than wake_up_interruptible()
From: Kevin Corry <kevcorry@us.ibm.com>
dm.c: Use wake_up() rather than wake_up_interruptible() with the eventq.
<akpm@osdl.org>
[PATCH] dm: Log an error if the target has unknown target type, or zero
length.
From: Kevin Corry <kevcorry@us.ibm.com>
Log an error if the target has unknown target type, or zero length.
<akpm@osdl.org>
[PATCH] dm: Correctly align the dm_target_spec structures during
retrieve_status().
From: Kevin Corry <kevcorry@us.ibm.com>
Correctly align the dm_target_spec structures during retrieve_status().
<akpm@osdl.org>
[PATCH] dm: fix a comment
From: Kevin Corry <kevcorry@us.ibm.com>
Clarify the comment regarding the "next" field in struct dm_target_spec. The
"next" field has different behavior if you're performing a DM_TABLE_STATUS
command than it does if you're performing a DM_TABLE_LOAD command.
See populate_table() and retrieve_status() in drivers/md/dm-ioctl.c for more
details on how this field is used.
<akpm@osdl.org>
[PATCH] dm: avoid ioctl buffer overrun
From: Kevin Corry <kevcorry@us.ibm.com>
dm-ioctl.c::retrieve_status(): Prevent overrunning the ioctl buffer by making
sure we don't call the target status routine with a buffer size limit of
zero. [Kevin Corry, Alasdair Kergon]
<akpm@osdl.org>
[PATCH] dm: Use an EMIT macro in the status function.
From: Kevin Corry <kevcorry@us.ibm.com>
Striped: Use an EMIT macro in the status function.
<akpm@osdl.org>
[PATCH] kNFSdv4: nfsd4_readdir fixes
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
Fix out-of-spec errors in nfs4 readdir. Add checks for bad cookie values.
(plus compile fix from akpm)
<akpm@osdl.org>
[PATCH] kNFSdv4: Fix bad error returm from svcauth_gss_accept
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
Error return when the client supplies a bad service should be badcred.
<akpm@osdl.org>
[PATCH] kNFSdv4: Keep state to allow replays for 'close' to work.
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
From: Andros: Idea is to keep around a list of openowners recently released
by closes, and make sure they stay around long enough so that replays still
work.
<akpm@osdl.org>
[PATCH] kNFSdv4: Allow locku replays aswell
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
From: Andros: locku replies should be saved for possible replay as well.
<akpm@osdl.org>
[PATCH] kNFSdv4: Improve how locking copes with replays
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
From: Andros: Hold state_lock longer so the stateowner doesn't diseappear
out from under us before we get the chance to encode the replay. Don't
attempt to save replay if we failed to find a stateowner.
<akpm@osdl.org>
[PATCH] kNFSdv4: Set credentials properly when puutrootfh is used
From: NeilBrown <neilb@cse.unsw.edu.au>
The credentials (uid/gid) of a process are set when a filehandle is
verified. Nfsv4 allows requests without an explicit filehandle (instead,
an implicit 'root' filehandle) so we much make sure the credentials are set
for these requests too.
From: "J. Bruce Fields" <bfields@fieldses.org>
From: Andros: added a call to nfsd_setuser in nfsd4_putrootfh so that nfsd
runs as the rpc->cred user.
<akpm@osdl.org>
[PATCH] kNFSdv4: Implement server-side reboot recovery (mostly)
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
From: Andros: Implement server-side reboot recovery (server now handles
open and lock reclaims). Not completely to spec: we don't yet store the
state in stable storage that would be required to recover correctly in
certain situations.
<akpm@osdl.org>
[PATCH] kill submit_{bh,bio} return value
From: Jeff Garzik <jgarzik@pobox.com>
Nobody ever checks the return value of submit_bh(), and submit_bh() is the
only caller that checks the submit_bio() return value.
This changes the kernel I/O submission path -- a fast path -- so this
cleanup is also a microoptimization.
<akpm@osdl.org>
[PATCH] PCI MSI Kconfig consolidation
From: Bjorn Helgaas <bjorn.helgaas@hp.com>
This consolidates the PCI MSI configuration into drivers/pci/Kconfig,
removing it from the i386, x86_64, and ia64 Kconfig.
It also changes the default for ia64 from "y" to "n". The default on i386
is "n" already, and I'm not sure why ia64 should be different.
<akpm@osdl.org>
[PATCH] remove buffer_error()
From: Jeff Garzik <jgarzik@pobox.com>
It was debug code, no longer required.
<akpm@osdl.org>
[PATCH] Fix mq 32-bit compatibility
From: Jakub Jelinek <jakub@redhat.com>
The first change removes just a useless put_user (si_int and si_ptr are
part of the same union, si_ptr is on all arches covering whole union), the
rest is fixes for signal handling of SI_MESGQ.
<akpm@osdl.org>
[PATCH] ppc64: hugepage cleanup
From: David Gibson <david@gibson.dropbear.id.au>
This is a small cleanup to the PPC64 hugepage code. It removes an
unhelpful function, removing some studlyCaps in the process. It was
originally this way to match the normal page path, but that has all been
rewritten since.
<akpm@osdl.org>
[PATCH] Add "commit=0" to reiserfs
From: Bart Samwel <bart@samwel.tk>
Add support for value 0 to the commit option of reiserfs. Means "restore
to the default value". For the maximum commit age, this default value is
normally read from the journal; this patch adds an extra variable to cache
the default value for the maximum commit age.
<akpm@osdl.org>
[PATCH] reiserfs: fsync() speedup
From: Chris Mason <mason@suse.com>
Updates the reiserfs-logging improvements to use schedule_timeout instead of
yield when letting the transaction grow a little before forcing a commit for
fsync/O_SYNC/O_DIRECT.
Also, when one process forces a transaction to end and plans on doing the
commit (like fsync), it sets a flag on the transaction so the journal code
knows not to bother kicking the journal work queue.
queue_delayed_work is used so that if we get a bunch of tiny transactions
ended quickly, we aren't constantly kicking the work queue.
These significantly improve reiserfs performance during fsync heavy
workloads.
<akpm@osdl.org>
[PATCH] reiserfs: remove final sleep_on
From: Chris Mason <mason@suse.com>
Get rid of the last sleep_on in the reiserfs code
<akpm@osdl.org>
[PATCH] floppy98.c build fixes
From: "Randy.Dunlap" <rddunlap@osdl.org>
floppy98.c (along with other PC-9800 files) has not been updated lately. It
won't build currently (2.6.5).
This patch makes floppy98 build cleanly.
<akpm@osdl.org>
[PATCH] ipmi build fix
From: Geert Uytterhoeven <geert@linux-m68k.org>
While compiling drivers/char/ipmi/ipmi_si_intf.c in 2.6.6-rc1 on m68k, I
noticed a missing include (needed for disable_irq_nosync() and enable_irq())
<akpm@osdl.org>
[PATCH] ppc64: yet another hugepage cleanup
From: David Gibson <david@gibson.dropbear.id.au>
Trivial cleanup to flush_hash_hugepage() in the ppc64 hugepage code.
<akpm@osdl.org>
[PATCH] Fix bogus get_page() calls in hugepage code
From: David Gibson <david@gibson.dropbear.id.au>
Some versions of follow_huge_addr() and follow_huge_pmd() are doing a
get_page() on the target page. They shouldn't: follow_page() returns an
unpinned page and it is the caller's responsibility to pin the page (if
desired) before dropping page_table_lock.
<akpm@osdl.org>
[PATCH] mqueue permission fix
From: Manfred Spraul <manfred@colorfullife.com>
Any user can delete any entries in a mqueue mounted filesystem. The attached
patch prevents that.
- remove the writable test from mq_unlink.
- set the sticky bit in the root inode. This affects both mq_unlink and
sys_unlink: only the owner (and root) should be allowed to remove queues.
<akpm@osdl.org>
[PATCH] aty128fb dereference before null check
From: Dave Jones <davej@redhat.com>
<akpm@osdl.org>
[PATCH] ARM-related ptep_to_address() fix
From: William Lee Irwin III <wli@holomorphy.com>
rmk mentioned that ARM was borked as the relation, assumed by generic rmap,
PTRS_PER_PTE*sizeof(pte_t) == PAGE_SIZE, fails to hold. The following
patch, developed jointly with him (or depending on POV, by him with me
acting as codemonkey), is reported to resolve the issue.
Specifically, while ARM dedicates an entire PAGE_SIZE -sized block of
memory to each PTE table, the PTE table itself only spans half that, the
remainder being dedicated to hardware-interpreted structures. As the
hardware structure must be contiguous, wider ptes can't be used. So the
core-visible PTE table only spans PAGE_SIZE/2 bytes, violating the
assumption. This corrects masking and scaling done in ptep_to_address().
<viro@parcelfarce.linux.theplanet.co.uk>
[PATCH] Remove unused 'kobject' from superblock
The field in question is
a) unused
b) damn next to impossible to use correctly, due to struct super_block
lifetime and locking rules.
<hugh@veritas.com>
[PATCH] Fix vma corruption
It occurred to me that if vma and new_vma are one and the same, then
vma_relink_file will not do a good job of linking it after itself - in
that pretty unlikely case when move_page_tables fails.
And more generally, whenever copy_vma's vma_merge succeeds, we have no
guarantee that old vma comes before new_vma in the i_mmap lists, as we
need to satisfy Rajesh's point: that ordering is only guaranteed in the
newly allocated case.
We have to abandon the ordering method when/if we move from lists to
prio_trees, so this patch switches to the less glamorous use of
i_shared_sem exclusion, as in my prio_tree mremap.
<torvalds@ppc970.osdl.org>
Allow non-LFS sendfile to work on LFS files.
But obviously only if we're not passing in any offset pointer.
This is how 2.4.x worked, and vsftpd relies on it.
Bug reported by Chris < chris@scary.beasts.org>
<akpm@osdl.org>
[PATCH] ppc64: Fix CPU hot unplug deadlock
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
My RTAS locking fixes incorrectly added a spinlock around the function used
to stop a CPU, that function never returns, thus the lock becomes stale.
The correct fix is to disable interrupts instead (the RTAS params beeing
per-CPU, this should be safe enough)
<akpm@osdl.org>
[PATCH] Fix unix module
From: Rusty Russell <rusty@rustcorp.com.au>
# lsmod
Module Size Used by
1 26060 6
#
The compiler #define's unix to 1: we use -DKBUILD_MODNAME=unix. We used to
#undef unix at the top of af_unix.c, but now the name is inserted by
modpost, that doesn't help.
#undef unix in modpost.c's generated C file.
<akpm@osdl.org>
[PATCH] Oprofilefs cant handle > 99 cpus
From: Anton Blanchard <anton@samba.org>
Oprofilefs cant handle > 99 cpus. This should fix it.
<akpm@osdl.org>
[PATCH] rmap: flush_dcache revisited
From: Hugh Dickins <hugh@veritas.com>
One of the callers of flush_dcache_page is do_generic_mapping_read, where
file is read without i_sem and without page lock: concurrent truncation may
at any moment remove page from cache, NULLing ->mapping, making
flush_dcache_page liable to oops. Put result of page_mapping in a local
variable and apply mapping_mapped to that (if we were to check for NULL
within mapping_mapped, it's unclear whether to say yes or no).
parisc and arm do have other locking unsafety in their i_mmap(_shared)
searching, but that's a larger issue to be dealt with down the line.
<akpm@osdl.org>
[PATCH] rmap: swap_unplug page
From: Hugh Dickins <hugh@veritas.com>
Good example of "swapper_space considered harmful": swap_unplug_io_fn was
originally designed for calling via swapper_space.backing_dev_info; but
that way it loses track of which device is to be unplugged, so had to
unplug all swap devices. But now sync_page tests SwapCache anyway, can
call swap_unplug_io_fn with page, which leads direct to the device.
Reverted -mc4's CONFIG_SWAP=n fix, just add another NOTHING for it.
Reverted -mc3's editorial adjustments to swap_backing_dev_info and
swapper_space initializations: they document the few fields which are
actually used now, as comment above them says (sound of slapped wrist).
<akpm@osdl.org>
[PATCH] rmap: nonlinear truncation
From: Hugh Dickins <hugh@veritas.com>
The earlier changes introducing PageAnon left truncated pages mapped into
nonlinear vmas unswappable. Once we go to object-based rmap, it's
impossible to find where file page is mapped once page->mapping cleared:
switching them to anonymous is odd, and breaks strict commit accounting.
So now handle truncation of nonlinear vmas correctly. And factor in
Daniel's cluster filesystem needs while we're there: when invalidating
local cache, we do want to unmap shared pages from all mms, but we do not
want to discard private COWed modifications of those pages (which
truncation discards to satisfy the SIGBUS semantics demanded by specs).
Drew from Daniel's patch (LKML 2 Mar 04), but didn't always follow it;
fewer name changes, but still some - "unmap" rather than "invalidate".
zap_page_range is not exported, safe to give it and all the too-many layers
an extra zap_details arg, in normal cases just NULL.
Given details, zap_pte_range checks page mapping or index to skip anon or
untruncated pages. I didn't realize before implementing, that in nonlinear
case, it should set a file pte when truncating - otherwise linear pages
might appear in place of SIGBUS. I suspect this implies that ->populate
functions ought to set file ptes beyond EOF instead of failing, but haven't
changed them as yet.
To avoid making yet another copy of that ugly linear pgidx test, added
inline function linear_page_index (to pagemap.h to get PAGE_CACHE_SIZE,
though as usual things don't really work if it differs from PAGE_SIZE).
Ooh, I thought I'd removed ___add_to_page_cache last time, do so now.
unmap_page_range static, shift its hugepage check up into sole caller
unmap_vmas. Killed "killme" debug from unmap_vmas, not seen it trigger.
unmap_mapping_range is exported without restriction: I'm one of those who
believe it should be generally available. But I'm wrongly placed to decide
that, probably just sob quietly to myself if _GPL added later.
<akpm@osdl.org>
[PATCH] jbd: journal_dirty_metadata locking speedup
Reduce the locking coverage of the oft-used j_list_lock: the per-bh
jbd_lock_bh_state() gives us sufficient locking of buffer_head and
journal_head internals.
<akpm@osdl.org>
[PATCH] Print warning for common symbols in modules
From: Rusty Russell <rusty@rustcorp.com.au>
People still build modules wrong, particularly without -fno-common. The
resulting modules don't load, but we should at least warn about it.
<akpm@osdl.org>
[PATCH] set_anon_super locking fix
Take the idr's lock while removing an element on the error path. Spotted by
Nathan Lynch <nathanl@austin.ibm.com>.
<akpm@osdl.org>
[PATCH] Fix laptop mode writeback triggered by hdparm -y.
From: Bart Samwel <bart@samwel.tk>
Currently, an `hdparm -Y' can trigger a sync in laptop mode. We should
only count fs-originated requests as being "disk activity".
<akpm@osdl.org>
[PATCH] fix visws build
From: Andrey Panin <pazke@donpac.ru>
this small patch fixes visws build error in 2.6.5.
<geert@linux-m68k.org>
[PATCH] Amiga A2065 Ethernet debug
Amiga A2065 Ethernet: Add missing variable in debug code
<geert@linux-m68k.org>
[PATCH] Amiga Ariadne Ethernet KERN_*
Amiga Ariadne Ethernet: Add KERN_* prefixes to printk() messages
<geert@linux-m68k.org>
[PATCH] Amiga Hydra Ethernet KERN_*
Amiga Hydra Ethernet: Add KERN_* prefixes to printk() messages
<geert@linux-m68k.org>
[PATCH] Amiga Zorro8390 Ethernet KERN_*
Amiga Zorro8390 Ethernet: Add KERN_* prefixes to printk() messages
<torvalds@ppc970.osdl.org>
Fix permission problem on include/video/neomagic.h
<rmk@flint.arm.linux.org.uk>
[ARM] Clean up ARM includes
This removes a number of unnecessary includes from the ARM specific
files throughout the kernel. Most notably asm/pgalloc.h is
needlessly included in several places. There were some places
including it as a means to get at the cache flushing functions,
so this has been corrected.
<benh@kernel.crashing.org>
[PATCH] Fix typo in previous patch
This is my brown paper bag day, I sent you the wrong patch for
fixing the deadlock in rtas.c, here's one to apply on top of current
bk that fixes build.
<davej@redhat.com>
[CPUFREQ] Fix debug build of powernow-k8
From Paul Devriendt
<davej@redhat.com>
[CPUFREQ] Fix up missing CONFIG_X86_POWERNOW_K8_ACPI
We don't need this, we can infer from CONFIG_ACPI_PROCESSOR
<davej@redhat.com>
[CPUFREQ] Fix broken cast.
This breaks on x86-64 with the following warning.
drivers/cpufreq/cpufreq_userspace.c: In function `cpufreq_procctl':
drivers/cpufreq/cpufreq_userspace.c:170: warning: cast from pointer to
integer of different size
drivers/cpufreq/cpufreq_userspace.c: In function `cpufreq_sysctl':
drivers/cpufreq/cpufreq_userspace.c:208: warning: cast from pointer to
integer of different size
<olh@suse.de>
[PATCH] mace register_netdev printk
small cosmetic fix for powermac mace network driver.
eth%d: MACE at 00:05:02:f4:1b:1d, chip revision 25.64
vs.
eth0: MACE at 00:05:02:f4:1b:1d, chip revision 25.64
<akpm@osdl.org>
[PATCH] 3c509 oops fix
If __ISAPNP__ and CONFIG_X86_PC9800 are not set, we forget to link the device
into the global chain and el3_init_module dereferences NULL.
<jgarzik@redhat.com>
[wireless orinoco] Remove bogus !dev check
Caught by Stanford checker.
<chrisw@osdl.org>
[PATCH] wan sdla: fix probable security hole
> [BUG] minor
> /home/kash/linux/linux-2.6.5/drivers/net/wan/sdla.c:1206:sdla_xfer:
> ERROR:TAINT: 1201:1206:Passing unbounded user value "(mem).len" as arg 0
> to function "kmalloc", which uses it unsafely in model
> [SOURCE_MODEL=(lib,copy_from_user,user,taintscalar)]
> [SINK_MODEL=(lib,kmalloc,user,trustingsink)] [MINOR] [PATH=] [Also
> used at, line 1219 in argument 0 to function "kmalloc"]
> static int sdla_xfer(struct net_device *dev, struct sdla_mem *info, int
> read)
> {
> struct sdla_mem mem;
> char *temp;
>
> Start --->
> if(copy_from_user(&mem, info, sizeof(mem)))
> return -EFAULT;
>
> if (read)
> {
> Error --->
> temp = kmalloc(mem.len, GFP_KERNEL);
> if (!temp)
> return(-ENOMEM);
> sdla_read(dev, mem.addr, temp, mem.len);
Hrm, I believe you could use this to read 128k of kernel memory.
sdla_read() takes len as a short, whereas mem.len is an int. So,
if mem.len == 0x20000, the allocation could still succeed. When cast
to short, len will be 0x0, causing the read loop to copy nothing into
the buffer. At least it's protected by a capable() check. I don't
know what proper upper bound is for this hardware, or how much it's
used/cared about. Simple memset() is trivial fix.
<chrisw@osdl.org>
[PATCH] remove redundant check in de2104x ->get_regs()
Trivial patchlet...ethtool core already caps regs.len at a max of
->get_regs_len():
reglen = ops->get_regs_len(dev);
if (regs.len > reglen)
regs.len = reglen;
So doing the same in the in de2104x driver ->get_regs() is redundant.
Patch below simply removes it to clarify the guarantee of the API.
<jgarzik@redhat.com>
[hamradio baycom] Remove bogus check in interrupt handler
Tangentially noticed by Stanford checker.
<jgarzik@redhat.com>
[netdrvr rcpci] Remove bogus check in ->remove handler
<jgarzik@redhat.com>
[netdrvr r8169] remove driver-local DMA_xxBIT_MASK definitions
They are now upstream, we don't need driver-local ones anymore.
<bunk@fs.tum.de>
[PATCH] fix warning in drivers/net/tulip/timer.c
I get the following warning in 2.6.5-mm6 and 2.6.6-rc1:
<-- snip -->
...
CC drivers/net/tulip/timer.o
drivers/net/tulip/timer.c: In function `comet_timer':
drivers/net/tulip/timer.c:156: warning: unused variable `ioaddr'
...
<-- snip -->
Since the
[netdrvr tulip] add MII support for Comet chips
patch has removed the only use of this variable, the fix is simple:
<chrisw@osdl.org>
[PATCH] e1000: fix probable security hole
* Ken Ashcraft (ken@coverity.com) wrote:
> [BUG]
>
/home/kash/linux/linux-2.6.5/drivers/net/e1000/e1000_ethtool.c:1494:e1000_ethtool_ioctl:
ERROR:TAINT: 1487:1494:Passing unbounded user value "(regs).len" as arg 2 to
function "copy_to_user", which uses it unsafely in model
[SOURCE_MODEL=(lib,copy_from_user,user,taintscalar)]
[SINK_MODEL=(lib,copy_to_user,user,trustingsink)] [PATH=]
> }
> case ETHTOOL_GREGS: {
> struct ethtool_regs regs = {ETHTOOL_GREGS};
> uint32_t regs_buff[E1000_REGS_LEN];
>
> Start --->
> if(copy_from_user(®s, addr, sizeof(regs)))
> return -EFAULT;
> e1000_ethtool_gregs(adapter, ®s, regs_buff);
> if(copy_to_user(addr, ®s, sizeof(regs)))
> return -EFAULT;
>
> addr += offsetof(struct ethtool_regs, data);
> Error --->
> if(copy_to_user(addr, regs_buff, regs.len))
> return -EFAULT;
>
> return 0;
Looks like a bug. Possible patch below zeros the buffer (since it's not
filled completely by e1000_ethtool_gregs()), and truncates len.
<shemminger@osdl.org>
[PATCH] Mixed PCI/ISA device name conflicts
In systems with mixed network cards, and all drivers compiled into
the kernel; the PCI device (eth0) will get probed first, before the ISA.
The problem is that the ISA device can mistakenly try to probe
for eth0. The problem is that the ISA driver will not detect the failure
until it goes to call register_netdevice, and not all drivers have
perfect error unwind code.
This patch short circuits the device probe, so it won't bother
looking for devices that already are registered.
<rmk@arm.linux.org.uk>
[PATCH] fix arm/etherh.c
On Tue, Apr 13, 2004 at 02:35:40PM -0400, Jeff Garzik wrote:
> Russell,
>
> Would you be willing to provide an updated diff of this?
I didn't particularly like the PRIV() method implemented previously -
gcc appears to want to avoid some optimisations it if its an inline
function rather than a macro.
Also, 'ei_local' may look unused in some functions, but it's your
typical hidden-use-in-a-macro crap which 8390 likes.
<bjorn.helgaas@hp.com>
[PATCH] Fix hw_random build on ia64
The following patch allows hw_random.c to build on ia64. (The problem
was just that the VIA stuff has i386 assembly in it. The current code
only probes for VIA on i386 anyway, so this patch just adds more ifdefs
so the VIA code is only built for i386.)
<achirica@telefonica.net>
[PATCH] airo: Fix suspend support
<shemminger@osdl.org>
[PATCH] remove 8139too ring size option.
On Wed, 31 Mar 2004 15:05:16 -0500
Jeff Garzik <jgarzik@pobox.com> wrote:
> I really should remove the ability to configure 8139_RXBUF_IDX=3.
<brazilnut@us.ibm.com>
[PATCH] pcnet32.c add support for 79C976
Please apply the following patch to 2.6.5-rc2-bk9 and 2.4.26-rc1 to
include support for the 79C976. Tested on IA32.
<akpm@osdl.org>
[PATCH] Call SET_NETDEV_DEV() in a bunch of net drivers
Used for sysfs support.
<daniel.ritz@gmx.ch>
[PATCH] missing s/dev->priv/netdev_priv(dev) in drivers/net/pcmcia/
On Wednesday 24 March 2004 23:25, Jeff Garzik wrote:
> Daniel Ritz wrote:
> > clean up the last two instances of dev->priv in drivers/net/pcmcia.
> > against 2.6.5-rc2-bk.
> >
> > --- 1.27/drivers/net/pcmcia/3c589_cs.c Wed Mar 3 01:03:51 2004
> > +++ edited/drivers/net/pcmcia/3c589_cs.c Wed Mar 24 22:29:35 2004
> > @@ -716,7 +716,7 @@
> > "status %4.4x.\n", dev->name, (long)skb->len,
> > inw(ioaddr + EL3_STATUS));
> >
> > - ((struct el3_private *)dev->priv)->stats.tx_bytes += skb->len;
> > + ((struct el3_private *)netdev_priv(dev))->stats.tx_bytes +=
skb->len;
> >
> > /* Put out the doubleword header... */
> > outw(skb->len, ioaddr + TX_FIFO);
> > --- 1.24/drivers/net/pcmcia/ibmtr_cs.c Wed Mar 3 01:06:03 2004
> > +++ edited/drivers/net/pcmcia/ibmtr_cs.c Wed Mar 24 22:29:51 2004
> > @@ -444,7 +444,7 @@
> > link->state &= ~DEV_PRESENT;
> > if (link->state & DEV_CONFIG) {
> > /* set flag to bypass normal interrupt code */
> > - ((struct tok_info *)dev->priv)->sram_virt |= 1;
> > + ((struct tok_info *)netdev_priv(dev))->sram_virt |= 1;
> > netif_device_detach(dev);
> > ibmtr_release(link);
>
>
> although the patch is OK, the code itself is a bit yucky.
>
> Can you please create a temporary variable, of struct el3_private or
> tok_info type, and eliminate that cast?
>
> struct el3_private *priv = netdev_priv(dev);
> priv->stats.tx_bytes += skb->len;
>
> Much nicer :)
>
agreed. here we go...
<proski@gnu.org>
[PATCH] Tulip endianess fix
My tulip ethernet card doesn't work on Blue&White G3 PowerMac with Linux
2.6.5-rc2. The card is shown by lspci as
01:03.0 Ethernet controller: Linksys Network Everywhere Fast Ethernet
10/100 model NC100 (rev 11)
The kernel detects it as "ADMtek Comet rev 17".
The MAC address reported by the kernel looked obviously wrong. Also, I
could only ping the system successfully if the interface was in promiscuous
mode (running Ethereal).
Those two symptoms indicated two different problems - one for reading the
MAC address from the card on module load (tulip_init_one), and the other
for writing the address to the card when the interface was brought up
(tulip_up). I have fixed both, and here's the explanation:
tulip_init_one:
When reading the first 4 bytes of the address, inl() returns the same data
to the CPU on all platforms, interpreting the data from the lowest port
address as the least significant byte. In other words, I/O is little
endian on all platforms; it's the memory that differs across platforms.
We want to write the data to memory preserving little-endianness of the
PCI bus. To force little endian write to the memory, the data should be
converted to the little endian format.
When reading the remaining 2 bytes, the CPU gets them in 2 least
significant bytes. To write those 2 bytes to the memory in a 16-bit
operation, they should be byte-swapped for the 16-bit operation.
tulip_up:
The first 4 bytes are processed correctly, but the code is confusing.
Reading from memory needs conversion to CPU format, while writing to I/O
ports doesn't. So I replaced cpu_to_le32() to le32_to_cpu().
The second 2 bytes are read in a 16-bit memory operation, so they should
be passed to le16_to_cpu() rather than cpu_to_le32() to make them CPU
independent and suitable for outl().
All those conversions do nothing on little-endian machines, so they should
not be affected.
The patch has been tested. The driver is working fine. ping is OK, ssh
is OK, X11 over ssh is OK. Even netconsole is working fine.
<stevef@stevef95.austin.ibm.com>
Remove "badness in remove_proc_entry" warning logged on module unload of cifs
<jakub@redhat.com>
[SPARC]: Add MQ syscall support.
<sri@us.ibm.com>
[SCTP] Avoid the use of constant SCTP_IP_OVERHEAD to determine the
max data size in a SCTP packet.
Calculate the overhead based on the socket's protocol family header
length.
<sri@us.ibm.com>
[SCTP] Cleanup sctp_packet and sctp_outq infrastructure.
<sri@us.ibm.com>
[SCTP] Partial Reliability Extension support.
<aj@andaco.de>
[TG3]: Fix typo in TG3_TSO_FW_RODATA_ADDR definition.
<sri@us.ibm.com>
[SCTP] Propagate error from sctp_proc_init. (Olaf Kirch)
<akpm@osdl.org>
[ATM]: Warning fix for lec.h
<akpm@osdl.org>
[NET]: Fix pc300_drv warnings.
<herbert@gondor.apana.org.au>
[IPV6]: Prevent IPV6=m and IP6_NF_QUEUE=y
<bbuesker@qualcomm.com>
[IPSEC]: Add SPD priority for PF_KEY interface.
<akpm@osdl.org>
[PATCH] ppc/ppc64: Add posix message queue syscalls
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This patch adds the posix message queue syscalls to ppc32 and 64 and fixes
our implementation of compat copy siginfo to 32 bits userland which wasn't
using the si_code but still doing a switch/case on the signal number.
I also reserved some syscalls for the numa API
<akpm@osdl.org>
[PATCH] CPU_MASK_ALL fix
From: Nick Piggin <nickpiggin@yahoo.com.au>
Do the typecast thing to permit CPU_MASK_ALL to be used both as an
initialiser and as a normal rvalue.
<akpm@osdl.org>
[PATCH] Rename PF_IOTHREAD to PF_NOFREEZE
From: Nigel Cunningham <ncunningham@users.sourceforge.net>
A few weeks ago, Pavel and I agreed that PF_IOTHREAD should be renamed to
PF_NOFREEZE. This reflects the fact that some threads so marked aren't
actually used for IO while suspending, but simply shouldn't be frozen.
This patch, against 2.6.5 vanilla, applies that change. In the
refrigerator calls, the actual value doesn't matter (so long as it's
non-zero) and it makes more sense to use PF_FREEZE so I've used that.
<akpm@osdl.org>
[PATCH] idr.c: extra features enhancements
From: Jim Houston <jim.houston@comcast.net>
- Adds idr_get_new_above(), whihc permits us to do a first-fit search
from a specified offset rather than always from zero.
- Add IDR_INIT() DEFINE_IDR() constructors. Often idr's are singletons
and having to cook up an initcall for them is a pain.
This is needed by the "Increase number of dynamic inodes in procfs" patch.
<akpm@osdl.org>
[PATCH] fix load_elf_binary error path on unshare_files error
From: Chris Wright <chrisw@osdl.org>
Make sure to return proper retval on unshare_files() error in
load_elf_binary.
Error noted by Kirill Korotaev <kirillx@7ka.mipt.ru>.
<akpm@osdl.org>
[PATCH] Increase number of dynamic inodes in procfs
From: Nathan Lynch <nathanl@austin.ibm.com>
On some larger ppc64 configurations /proc/device-tree is exhausting procfs'
dynamic (non-pid) inode range (16K). This patch makes the dynamic inode
range 0xf0000000-0xffffffff and changes the inode number allocator to use
the idr.c allocator for the first-fit allocations.
<akpm@osdl.org>
[PATCH] direct-IO return type fixes
From: me, Badari Pulavarty <pbadari@us.ibm.com>
Currently a direct-IO read or write of more than 2G on 64-bit machines is
broken. Replace int with ssize_t in various places to fix that up.
<akpm@osdl.org>
[PATCH] Fix default value for commit interval for older reiserfs filesystems.
From: Bart Samwel <bart@samwel.tk>
The reiserfs patch that adds support for "commit=0" saves the default max
commit age in a variable when the fs is originally mounted, so that it can
later restore it. Unfortunately it makes some mistakes with that:
- The default is not saved when the original mount has a commit=NNN option.
- The default is not correctly saved for older reiserfs filesystems, where
the default was not stored on disk.
This patch fixes these mistakes.
<akpm@osdl.org>
[PATCH] From: David Gibson <david@gibson.dropbear.id.au>
hugepage_vma() is both misleadingly named and unnecessary. On most archs it
always returns NULL, and on IA64 the vma it returns is never used. The
function's real purpose is to determine whether the address it is passed is a
special hugepage address which must be looked up in hugepage pagetables,
rather than being looked up in the normal pagetables (which might have
specially marked hugepage PMDs or PTEs).
This patch kills off hugepage_vma() and folds the logic it really needs into
follow_huge_addr(). That now returns a (page *) if called on a special
hugepage address, and an error encoded with ERR_PTR otherwise. This also
requires tweaking the IA64 code to check that the hugepage PTE is present in
follow_huge_addr() - previously this was guaranteed, since it was only called
if the address was in an existing hugepage VMA, and hugepages are always
prefaulted.
<akpm@osdl.org>
[PATCH] h8300 stack bounds checking
From: William Lee Irwin III <wli@holomorphy.com>
The stack is now shared with struct thread_info on most arches, not task_t.
This mostly affects get_wchan() and stack usage debug.
<akpm@osdl.org>
[PATCH] m68k stack bounds checking
From: William Lee Irwin III <wli@holomorphy.com>
The stack is now shared with struct thread_info on most arches, not task_t.
This mostly affects get_wchan() and stack usage debug.
<akpm@osdl.org>
[PATCH] m68knommu stack bounds checking
From: William Lee Irwin III <wli@holomorphy.com>
The stack is now shared with struct thread_info on most arches, not task_t.
This mostly affects get_wchan() and stack usage debug.
<akpm@osdl.org>
[PATCH] ppc32 stack bounds checking
From: William Lee Irwin III <wli@holomorphy.com>
The stack is now shared with struct thread_info on most arches, not task_t.
This mostly affects get_wchan() and stack usage debug.
<akpm@osdl.org>
[PATCH] sparc32 stack bounds checking
From: William Lee Irwin III <wli@holomorphy.com>
The stack is now shared with struct thread_info on most arches, not task_t.
This mostly affects get_wchan() and stack usage debug.
<akpm@osdl.org>
[PATCH] nfs token table can be __initdata
nfs token table can be __initdata
<akpm@osdl.org>
[PATCH] Warn if module_param and MODULE_PARM mixed
From: Rusty Russell <rusty@rustcorp.com.au>
From: Pavel Roskin <proski@gnu.org>
If you use both module_param (new) and MODULE_PARM (obsolete) in a module,
only the second gets recognised. Warn.
<stevef@stevef95.austin.ibm.com>
Add in cifs fcntl handling to fix remote dnotify problem
<torvalds@evo.osdl.org>
Remove unnecessary declaration of inline functions
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] ide.c: split init_hwif_default() out of init_hwif_data()
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] ide_init_default_hwifs() -> ide_init_default_irq()
init_ide_data() initializes default IDE interfaces but without default IRQ
(hwif->irq and hwif->hw.irq fields) so introduce ide_init_default_irq() and
remove redundant ide_init_default_hwifs() (except arm26 and arm ones).
As a side-effect it fixes:
- CONFIG_BLK_DEV_HD_IDE if !CONFIG_BLK_DEV_IDEPCI (i386)
- hwif->noprobe shouldn't be 0 if !hwif->io_ports[IDE_DATA_OFFSET]
(alpha, i386, ia64, mips, sh, x86_64)
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] generic ide_init_hwif_ports()
Add generic ide_init_hwif_ports() to <linux/ide.h> and remove arch specific
versions except arm26, arm, h8300, i386-pc9800, m68k and m68knommu ones.
<benh@kernel.crashing.org>
[PATCH] ppc64: siginfo conversion fix
My message queue patch fixes the 64 bits -> 32 bits conversion of
siginfo, but didn't change the 32 -> 64 bits conversion done in
sys32_rt_sigqueueinfo() which was apparently bogus as well.
After much discussion & debate on the right way of converting that
structure, I decided to go the sparc64 / s390 way, and not the x86_64
way, that is to copy the various unions data "as is". This guarantees
that whatever a 32 bist app passes there, another 32 bits app will
understand it. Crossover between 32 and 64 bits apps on such things
as home-made userland siginfo isn't something we can help with anyway.
The x86_64 choice of converting as if it was an RT signal, thus
converting the sigval, cannot easily be applied to big endian archs
since the sigval is a union of a ptr and an int, on BE, the int
happens to be on the wrong half of the 64 bits ptr, thus we can't
do a simple conversion.
<roland@redhat.com>
[PATCH] fix for potential deadlock after posix-timers change
Ulrich has been working on the glibc code using posix-timers and
stressing it more now than it has before. He ran into an SMP deadlock
on process exit in the case there are pending queued signals from a
timer.
The deadlock arises because in the path through exit_itimers, the
tasklist_lock is already held (for writing). When a timer is being
deleted, sigqueue_free will try to take it (for reading) in the case
where that timer has a pending signal queued on somebody's queue. This
patch avoids the problem by making sure the queues are flushed before
calling exit_itimers, thus ensuring its code path won't try to take
tasklist_lock.
<akpm@osdl.org>
[PATCH] reiserfs use-after-free fix
From: Chris Mason <mason@suse.com>
reiserfs-delayed-work started using queue_delayed_work, but did not make sure
the timer was finished before it freed the work queue structs during
unmount.
This leads to timer oopsen if you unmount at just the right time.
<akpm@osdl.org>
[PATCH] fix madvise(MADV_DONTNEED) for nonlinear vmas
From: Hugh Dickins <hugh@veritas.com>
Jamie points out that madvise(MADV_DONTNEED) should unmap pages from a
nonlinear area in such a way that the nonlinear offsets are preserved if the
pages do turn out to be needed later after all, instead of reverting them to
linearity: needs to pass down a zap_details block.
(But this still leaves mincore unaware of nonlinear vmas: bigger job.)
<akpm@osdl.org>
[PATCH] pcnet32.c build fix
Remove a duplicated case which recently snuck in there.
<akpm@osdl.org>
[PATCH] hlist_add_after() fix
From: "Pedro Emanuel M. D. Pinto" <pepinto@student.dei.uc.pt>
This currently-unused function is incorrectly implemented. Fix.
<akpm@osdl.org>
[PATCH] remove duplicated COPYING file in fs/hfs/
From: Christoph Hellwig <hch@lst.de>
We don't need a copy of COPYING down in fs/hfs. Roman said he didn't mind,
so..
<akpm@osdl.org>
[PATCH] MIPS: don't offer SERIAL_DZ on 64-bit DEC
From: Ralf Baechle <ralf@linux-mips.org>
Limit the DZ driver to MIPS32 as the supported hardware is only present in
R2k/R3k-based systems (unless someone sends Maciej a PMAC-A board for driver
development).
<akpm@osdl.org>
[PATCH] MIPS: update documentation files
From: Ralf Baechle <ralf@linux-mips.org>
The pending changes to the MIPS doc files, more changes needed...
<rmk@flint.arm.linux.org.uk>
[ARM] Add find_first_bit and find_next_bit.
<akpm@osdl.org>
[PATCH] MIPS update
From: Ralf Baechle <ralf@linux-mips.org>
- more work on resurrecting AMD Alchemy platforms
- cleanup of unnecessary <asm/pgalloc.h> inclusions
- update default config files
- cleanup 32-bit compat ioctl code
- support for Montum Jaguar ATX
- workarounds for early revs of the RM9000
- fixes for RM5000 and RM7000 cache handling
- add support for PMC-Sierra Yosemite eval board
- further cleanup and bugfixes for SGI IP27
- make LASAT and VR41xx build and work in 2.6
- improved SGI IP32 support
- plenty of small fixes
<axboe@suse.de>
[PATCH] Fix CFQ elevator problem
Remove bogus assert in CFQ and remove merge hints.
<jakub@redhat.com>
[SPARC64]: Fix 32-bit posix timers.
<stevef@stevef95.austin.ibm.com>
Do not cache inode metadata when cache time set to 0 (fix hardlink count
caching)
<jakub@redhat.com>
[SPARC64]: Missing part of posix timers fix.
<torvalds@ppc970.osdl.org>
Linux 2.6.6-rc2
<len.brown@intel.com>
[ACPI] enhance intr-src-override parsing to handle ES7000
http://bugme.osdl.org/show_bug.cgi?id=2520
<len.brown@intel.com>
ACPI] Delete IRQ2 "cascade" in ACPI IOAPIC mode
no such concept exists in ACPI, frees IRQ2 for use.
<hch@sgi.com>
[XFS] use kmem_alloc for noaddr buffers
SGI Modid: xfs-linux:xfs-kern:167609a
<hch@sgi.com>
[XFS] kill the pagebuf vs xfs_buf confusion
SGI Modid: xfs-linux:xfs-kern:167627a
<hch@sgi.com>
[XFS] really kill the pagebuf vs xfs_buf confusion
SGI Modid: xfs-linux:xfs-kern:167628a
<hch@sgi.com>
[XFS] clarify pagebuf page lookup logic
SGI Modid: xfs-linux:xfs-kern:168168a
<sandeen@sgi.com>
[XFS] Use pgoff_t for page indices, and remove other type confusion
SGI Modid: xfs-linux:xfs-kern:168484a
<nathans@sgi.com>
[XFS] Fix a very hard-to-hit, small-block-size only corruption.
SGI Modid: xfs-linux:xfs-kern:168987a
<nathans@sgi.com>
[XFS] Fix delayed write buffer handling to use the correct list
interfaces, add validity checks, remove unused code, fix comments.
SGI Modid: xfs-linux:xfs-kern:169043a
<nathans@sgi.com>
[XFS] Make buffer error checking consistent, add a value range check.
SGI Modid: xfs-linux:xfs-kern:169542a
<nathans@sgi.com>
[XFS] Return the right error code on an ACL xattr version mismatch.
SGI Modid: xfs-linux:xfs-kern:169622a
<jpk@sgi.com>
[XFS] Correct the (file size >= stripe unit) check inside
xfs_iomap_write_delay. It was comparing the file size, in
bytes, against the stripe unit size, in FSBs. (PV 911469)
SGI Modid: xfs-linux:xfs-kern:169744b
<nathans@sgi.com>
[XFS] Only use page->private to track page state for page cache pages
SGI Modid: xfs-linux:xfs-kern:169801a
<nathans@sgi.com>
[XFS] Fix some cases where we returned fill_super success, instead
of failing.
SGI Modid: xfs-linux:xfs-kern:169865a
<nathans@sgi.com>
[XFS] Allow xfsbufd flush intervals to take immediate effect after changing
the flush sysctl value. Fix from Bart Samwel.
SGI Modid: xfs-linux:xfs-kern:170053a
<nathans@sgi.com>
[XFS] Use USER_HZ in XFS sysctl interfaces. Fix from Bart Samwel.
SGI Modid: xfs-linux:xfs-kern:170056a
<nathans@sgi.com>
[XFS] Bump up age_buffer and sync_interval maxima for laptop mode. From
Bart Samwel.
SGI Modid: xfs-linux:xfs-kern:170057a
<cattelan@sgi.com>
[XFS] Fix for the xfs dir2 rebalance bug.
SGI Modid: xfs-linux:xfs-kern:170221a
<nathans@sgi.com>
[XFS] Fix vmtruncate abuse in the XFS setattr ATTR_SIZE operation.
SGI Modid: xfs-linux:xfs-kern:170344a
<nathans@sgi.com>
[XFS] cleanup pagebuf flag usage and simplify pagebuf_free.
SGI Modid: xfs-linux:xfs-kern:169276a
<nathans@sgi.com>
[XFS] Fix up a trivial merge botch.
<drepper@redhat.com>
[PATCH] Add missing __initdata
One of the stack size optimizations introduced a new static variable in
a function marked with __init. But the variable is not marked
appropriately and so 1k of data is never freed.
<akpm@osdl.org>
[PATCH] Fix nfsroot option handling
From: Trond Myklebust <trond.myklebust@fys.uio.no>
The following patch fixes up a number of bugs in the NFSroot parser
rewrite from patchset
trond.myklebust@fys.uio.no|ChangeSet|20040411182341|00938
It also ensures that NFSroot mount options are consistent with the userland
"mount" program.
<akpm@osdl.org>
[PATCH] compute_creds race
From: Andy Lutomirski <luto@myrealbox.com>
Fixes from me, Olaf Dietsche <olaf+list.linux-kernel@olafdietsche.de>
In fs/exec.c, compute_creds does:
task_lock(current);
if (bprm->e_uid != current->uid || bprm->e_gid != current->gid) {
current->mm->dumpable = 0;
if (must_not_trace_exec(current)
|| atomic_read(¤t->fs->count) > 1
|| atomic_read(¤t->files->count) > 1
|| atomic_read(¤t->sighand->count) > 1) {
if(!capable(CAP_SETUID)) {
bprm->e_uid = current->uid;
bprm->e_gid = current->gid;
}
}
}
current->suid = current->euid = current->fsuid = bprm->e_uid;
current->sgid = current->egid = current->fsgid = bprm->e_gid;
task_unlock(current);
security_bprm_compute_creds(bprm);
I assume the task_lock is to prevent another process (on SMP or preempt)
from ptracing the execing process between the check and the assignment. If
that's the concern then the fact that the lock is dropped before the call
to security_brpm_compute_creds means that, if security_bprm_compute_creds
does anything interesting, there's a race.
For my (nearly complete) caps patch, I obviously need to fix this. But I
think it may be exploitable now. Suppose there are two processes, A (the
malicious code) and B (which uses exec). B starts out unprivileged (A and
B have, e.g., uid and euid = 500).
1. A ptraces B.
2. B calls exec on some setuid-root program.
3. in cap_bprm_set_security, B sets bprm->cap_permitted to the full
set.
4. B gets to compute_creds in exec.c, calls task_lock, and does not
change its uid.
5. B calls task_unlock.
6. A detaches from B (on preempt or SMP).
7. B gets to task_lock in cap_bprm_compute_creds, changes its
capabilities, and returns from compute_creds into load_elf_binary.
8. load_elf_binary calls create_elf_tables (line 852 in 2.6.5-mm1),
which calls cap_bprm_secureexec (through LSM), which returns false (!).
9. exec finishes.
The setuid program is now running with uid=euid=500 but full permitted
capabilities. There are two (or three) ways to effectively get local root
now:
1. IIRC, linux 2.4 doesn't check capabilities in ptrace, so A could
just ptrace B again.
2. LD_PRELOAD.
3. There are probably programs that will misbehave on their own under
these circumstances.
Is there some reason why this is not doable?
The patch renames bprm_compute_creds to bprm_apply_creds and moves all uid
logic into the hook, where the test and the resulting modification can both
happen under task_lock().
This way, out-of-tree LSMs will fail to compile instead of malfunctioning.
It should also make life easier for LSMs and will certainly make it easier
for me to finish the cap patch.
<akpm@osdl.org>
[PATCH] ext3 avoid writing kernel memory to disk
From: Marc-Christian Petersen <m.c.p@kernel.linux-systeme.com>
Solar Designer discovered an information leak in the ext3 code of Linux.
In a worst case an attacker could read sensitive data such as cryptographic
keys which would otherwise never hit disk media. Theodore Ts'o developed a
correction for this.
<akpm@osdl.org>
[PATCH] Call populate_rootfs later in boot
populate_rootfs() is called rather early - before we've called init_idle().
But populate_rootfs() does file I/O, which involves calls to cond_resched(),
and downing of semaphores, etc. If it scheules, the scheduler emits
scheduling-while-atomic warnings and sometimes oopses.
So run populate_rootfs() later, after the scheduler is all set up.
<akpm@osdl.org>
[PATCH] remove amd7xx_tco
From: Zwane Mwaikambo <zwane@linuxpower.ca>
We've had trouble with this driver, it appears to work but the hardware
never does the final reboot. I have yet to come across someone with a
board which works and don't have personal access to one. So how about
scrapping the whole thing.
<akpm@osdl.org>
[PATCH] lockfs - vfs bits
From: Christoph Hellwig <hch@lst.de>
These are the generic lockfs bits. Basically it takes the XFS freezing
statemachine into the VFS. It's all behind the kernel-doc documented
freeze_bdev and thaw_bdev interfaces.
Based on an older patch from Chris Mason.
<akpm@osdl.org>
[PATCH] lockfs: reiserfs fix
From: Chris Mason <mason@suse.com>
reiserfs_write_super_lockfs() is supposed to wait for the transaction to
commit.
<akpm@osdl.org>
[PATCH] lockfs - xfs bits
From: Christoph Hellwig <hch@lst.de>
Remove all the code now in the VFS, make XFS's freeze ioctls use the new
infastructure and reorganize some code.
This code needs some work so the source files shared with 2.4 aren't
exposed to the new VFS interfaces directly. You'll get an update once this
has been discussed with the other XFS developers and is implemented. Note
that the current patch works fine and I wouldn't complain if it gets into
Linus' tree as-is.
<akpm@osdl.org>
[PATCH] lockfs - dm bits
From: Christoph Hellwig <hch@lst.de>
This patch makes the device mapper use the new freeze_bdev/thaw_bdev
interface. Extracted from Chris Mason's patch.
<akpm@osdl.org>
[PATCH] i4l: add compat ioctl's for CAPI
From: Marcel Holtmann <marcel@holtmann.org>
This patch adds the needed compat ioctl's for the CAPI on 64bit platforms.
<akpm@osdl.org>
[PATCH] selinux: change context_to_sid handling for no-policy case
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch changes the behavior of security_context_to_sid in the no-policy
case so that it simply accepts all contexts and maps them to the kernel SID
rather than rejecting anything other than an initial SID. The change avoids
error conditions when using SELinux in permissive/no-policy mode, so that any
file contexts left on disk from prior use of SELinux with a policy will not
cause an error when they are looked up and userspace attempts to set contexts
can succeed.
<akpm@osdl.org>
[PATCH] selinux: add runtime disable
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch adds a kernel configuration option that enables writing to a new
selinuxfs node 'disable' that allows SELinux to be disabled at runtime prior
to initial policy load. SELinux will then remain disabled until next boot.
This option is similar to the selinux=0 boot parameter, but is to support
runtime disabling of SELinux, e.g. from /sbin/init, for portability across
platforms where boot parameters are difficult to employ (based on feedback by
Jeremy Katz).
<akpm@osdl.org>
[PATCH] selinux: remove hardcoded policy assumption from get_user_sids()
logic
From: Stephen Smalley <sds@epoch.ncsc.mil>
This patch removes a hardcoded policy assumption from the get_user_sids logic
in the SELinux module that was preventing it from returning contexts that had
the same type as the caller even if the policy allowed such a transition.
The
assumption is not valid for all policies, and can be handled via policy
configuration and userspace rather than hardcoding it in the module logic.
<akpm@osdl.org>
[PATCH] i810_dma range check
From: Andrea Arcangeli <andrea@suse.de>
Correctly range-check an incoming-from-userspace argument. Found by the
Stanford checker.
<akpm@osdl.org>
[PATCH] i386 hugetlb tlb correction
From: William Lee Irwin III <wli@holomorphy.com>
i386 does hardware interpretation of pagetables, so pte_clear() can't be
used on present ptes, as it sets the upper half of the hugepte prior to
setting the lower half (which includes the valid bit). i.e. there is a
window where having a hugepage mapped at 56GB and doing pte_clear() in
unmap_hugepage_range() allows other threads of the process to see a
hugepage at 0 in place of the original hugepage at 56GB.
This patch corrects the situation by using ptep_get_and_clear(), which
clears the lower word of the pte prior to clearing the upper word.
There is another nasty where huge_page_release() needs to wait for TLB
flushes before returning the hugepages to the free pool, analogous to the
issue tlb_remove_page() and tlb_flush_mm() repair.
<akpm@osdl.org>
[PATCH] loop_set_fd() sendfile check fix
From: Yury Umanets <torque@ukrpost.net>
I have found small inconsistency in loop_set_fd(). It checks if
->sendfile() is implemented for passed block device file. But in fact,
loop back device driver never calls it. It uses ->sendfile() from backing
store file.
<davej@redhat.com>
[CPUFREQ] Fix unbalanced try_get_module/put_module
Spotted by Charles Coffing <ccoffing@novell.com>
<davej@redhat.com>
[CPUFREQ] Remove redundant part of powernow-k7 module parm
If used as a bootparam, this would've become powernow-k7.powernow_acpi_force
which looks silly.
<davej@redhat.com>
[CPUFREQ] Make an educated guess at the current P-state in the ACPI driver.
One big limitation of the ACPI specification is that it's impossible to
detect the current P-State by reading from ACPI-defined registers. And the
CPU isn't always at P0 when the system boots. So, try to "guess" the current
P-State by analyzing cpu_khz.
From Dominik.
<davej@redhat.com>
[CPUFREQ] Export an array of acpi driver supported frequencies in sysfs
From Dominik.
<davej@redhat.com>
[CPUFREQ] Fix security hole in proc handler.
Brad Spengler <spender@grsecurity.net> found an exploitable bug in the proc
handler
of cpufreq, where a user-supplied unsigned int is cast to a signed int and
then
passed on to copy_[to|from]_user() allowing arbitary amounts of memory to be
written
(root only thankfully), or read (as any user).
The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned
the name CAN-2004-0228 to this issue.
<torvalds@ppc970.osdl.org>
Revert fb_ioctl "fix" with extreme prejudice.
As Arjan points out, the patch does exactly the opposite
of what it was claimed to do.
Andrea: tssk tssk.
Cset exclude: akpm@osdl.org[torvalds]|ChangeSet|20040421144431|15930
<jakub@redhat.com>
[PATCH] ia64: add mq support for ia64
<hch@sgi.com>
[XFS] Don't reset buffer offset before using it.
SGI Modid: xfs-linux:xfs-kern:168692a
<nathans@sgi.com>
[XFS] Revive an accidentally dropped pagesize > blocksize assert.
<rmk@flint.arm.linux.org.uk>
[ARM] Add support for ARM Versatile platform.
This cset adds minimal support for ARM Ltd's ARM926EJ-S "Versatile"
platform.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Correct PL011 help text.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] ide-disk.c: fix for IDE CF card ejection with devfs
From: Pavel Roskin <proski@gnu.org>
If I eject IDE CompactFlash card, I get a stack dump from
devfs_remove() because ide/host2/bus0/target0/lun0 doesn't exist.
After del_gendisk() is called from idedisk_cleanup() drive->devfs_name refers
to a non-existent directory and should be erased, so that ide_unregister()
doesn't try to remove that directory again.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] ide-probe.c: kill duplicate #include
From: Arthur Othieno <a.othieno@bluewin.ch>
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] removal of MOD_{INC,DEC}_USE_COUNT in ide-cs.c
From: Pavel Roskin <proski@gnu.org>
The "ide-cs" module cannot be unloaded because it uses obsolete
MOD_INC_USE_COUNT and MOD_DEC_USE_COUNT macros. In fact, they are not
needed in ide-cs.c in 2.6 kernels. The generic PCMCIA code already
increases use count for every device served by the driver, so it's
impossible to unload the ide-cs driver while it's in use.
I was told that the removal of IDE interfaces may be unsafe in 2.6
kernels. However, MOD_INC_USE_COUNT only prevents removal of the module,
not the interface. It's also the first obstacle, albeit a trivial one,
for anybody debugging those problems (i.e. loading a modified module
requires "rmmod -f" or reboot to unload the old version).
<sfr@canb.auug.org.au>
[PATCH] PPC64 iSeries virtual ethernet fix
This patch is needed due to other patches that were applied in parallel
with the inclusion of the iSeries virtual ethernet driver.
<jbglaw@lug-owl.de>
[PATCH] New set of input patches
This updates the vsxxx driver to it's current version.
Even DEC tablet support (VSXXX-AB) is now tested - it works:)
You can even hotplug between mouse and digitizer...
<jbglaw@lug-owl.de>
[PATCH] lkkbd: Current version
This updates the lkkbd driver to it's current version.
It also incorporates two patches suggested on LKML (fixing
some leading whitespace and an unneccessary check).
<chrisw@osdl.org>
[IPV4]: Fix return value on MCAST_MSFILTER error case.
<rusty@rustcorp.com.au>
[NETFILTER]: Missing ip_rt_put in ipt_MASQUERADE.
<shemminger@osdl.org>
[TCP]: Better packing of frto fields into tcp_opt.
<shemminger@osdl.org>
[TCP]: Add sysctl to turn off matrics caching.
<simon@thekelleys.org.uk>
[PATCH] atmel wireless update
Fixes to avoid problems when the driver shares an interrupt. These were
caused because the ISR cannot determine the status of the chip without
changing its state and the driver was only disabling the interrupts from
the card during some critical regions. An interrupt originating from
another device at the wrong moment could run the ISR and corrupt chip
state. Fixed by blocking interupts in the processor in critical regions
and never checking the chip interrupt status before the driver is fully
up.
Added the ability to override the Regulatory Domain stored in ROM. The
following command achieves this
iwpriv <interface> regdomain <domain>
vaild domains are USA,Canada,Europe,Spain,France,MKK,MKK1,Israel
The current regulatory domain affects which radio channels are available
for use.
Some minor tidying to calibrate busy-wait loops using udelay and remove
inclusion of obsolete include/linux/802_11.h
<akpm@osdl.org>
[PATCH] pcmcia netdev ordering fixes
From: Russell King <rmk+pcmcia@arm.linux.org.uk>
This is an *untested* patch (PCMCIA people, please test) to fix
initialisation ordering issues in these network device drivers. I don't
have the hardware to be able to test these changes, although it passes a
modular build without warnings.
Andrew - it may be worth sticking these in -mm so they get some visibility
via your tree as well.
Many of these drivers were calling register_netdev() before they had
completed their initialisation.
In addition, they were calling register_netdev with the
"DEV_CONFIG_PENDING" flag still set, which prevents hotplug scripts from
bringing up the interface.
Also, we take care to ensure that link->dev is correctly set - this is used
to tell the PCMCIA release code if the netdev is currently registered (yes,
that's probably racy at present, but lets sort one problem at a time.)
I've arranged that all drivers register the netdevice as close as possible
to the end of their initialisation, copy the net device's name for cardmgr
to pass to it's network scripts, and then print out whatever information
the driver wants to.
Finally, a note about ibmtr - it seemed to assume that cardmgr wanted "tr0"
or "tr1" depending on the base address, and completely ignoring the real
device which the netdev layer allocated it. I've assumed that this is
wrong (since the netdev name is used in printk messages), and changed it to
behave the same as the other drivers.
<ralf@linux-mips.org>
[PATCH] Au1000 IrDA driver update
Get to build under 2.6, random updates to debugging code, new eval boards.
<ralf@linux-mips.org>
[PATCH] Remove RCS Id string
<ralf@linux-mips.org>
[PATCH] meth updates
More work on the meth driver for SGI IP32 aka O2.
<ralf@linux-mips.org>
[PATCH] BCM1250 network driver updates
Resurrect into working order for 2.6.
<ralf@linux-mips.org>
[PATCH] sgiseeq fixes
Resurrect into working order for 2.6.
<ralf@linux-mips.org>
[PATCH] IOC3 updates
Use generic MII code, compile time configurable rx and tx checksumming.
Try to handle IOC3 attached 16552 serials. Fix descriptor setup when
crossing a 16kB page. Use generic PCI API. Use generic ethtool code,
small cleanups, use a temporary kludge to exploit virtual device
functionality for significantly better performance.
<ralf@linux-mips.org>
[PATCH] declance updates
Various small changes, DEC still doesn't work under 2.6.
<stevef@smfhome.smfdom>
Retry 2nd time after failure on correct port
<davem@nuts.davemloft.net>
[TCP]: Abstract out all settings of tcp_opt->ca_state into a function.
<davem@nuts.davemloft.net>
[TCP]: Add vegas congestion avoidance support.
A forward port of an old 2.3.x kernel hack done
years ago. I (DaveM) did the first rough port,
Stephen Hemminger actually cleaned it up and
made it usable.
<greg@kroah.com>
[PATCH] USB: Don't try to suspend devices that do not support it.
Patch originally from luming.yu@intel.com and closes bug #1557
<len.brown@intel.com>
[ACPI] if acpi_os_name= is used, print what it finds
<len.brown@intel.com>
[ACPI] allow IRQ2 to be used in ACPI/IOAPIC mode
http://bugzilla.kernel.org/show_bug.cgi?id=2564
<mebrown@michaels-house.net>
[PATCH] sysfs module unload race fix for bin_attributes
- Add module locking to sysfs bin_attribute files. Update all in-tree
users to set module owner.
Compile tested. booted. stress tests pass:
while true; do modprobe mymod; rmmod mymod; done &
while true; do hexdump -C /sys/path/to/sysfs/binary/file; done
<stern@rowland.harvard.edu>
[PATCH] USB: Important bugfix for UHCI list management code
A major bug in the UHCI driver turned up recently. Thanks to a lot of
help from Simone Gotti it was identified and fixed late last week. It
turned out to be entirely my fault -- a previous patch had introduced two
(!) errors. (A combination of carelessness and a nasty thinko, and
somehow it passed the regression tests...)
Anyway, it's entirely possible that many of the problems people have been
seeing are caused by that bug. This patch is the solution.
<colin@colino.net>
[PATCH] USB: fix cdc-acm as it is still (differently) broken
<greg@kroah.com>
[PATCH] USB: fix cdc-acm warnings due to previous patch
<akpm@osdl.org>
[PATCH] remove show_trace_task()
It no longer has any callers.
<akpm@osdl.org>
[PATCH] ppc64: iSeries virtual cdrom module fix
From: Stephen Rothwell <sfr@canb.auug.org.au>
This patch fixes loading viocd as a module. It would oops because I was
passing the address of a static buffer to dma_map_single and when loaded as
a module, this address is not valid for that purpose.
There are a couple of simple cleanups here as well.
<akpm@osdl.org>
[PATCH] s390: core s390.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
s390 core changes:
- Fix race in do_call_softirq in regard to kernel preemption.
- Fix typo in compat mq system call wrappers.
- Add s390 to Kconfig for AUDITSYSCALL.
- Redefine TASK_SIZE to TASK31_SIZE for compilation of binfmt_elf32.
- Use correct error value for sys32_ipc when called with an invalid number.
- New default configuration.
<akpm@osdl.org>
[PATCH] s390: common i/o layer.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Common i/o layer changes:
- Quiesce active subchannels for lpar reipl.
- Delete timer after reception of interrupt for kill on timeout.
- Cleanup some comments in qdio.
<akpm@osdl.org>
[PATCH] s390: 3270 device driver.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
3270 device driver changes:
- Add NULL pointer checks.
<akpm@osdl.org>
[PATCH] s390: network device drivers.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Network driver changes:
- qeth: Fix reference counting in regard to sysfs backing store patches.
- qeth: Prefix kernel thread names with qeth_.
- qeth: Remove inbound and outbound tasklets. Handle buffers directly
in the interrupts handlers.
- iucv: Add missing kfree in iucv_register_program.
- iucv: Add missing return in netiucv_transmit_skb.
- iucv: Check for NULL pointer in conn_action_txdone.
<akpm@osdl.org>
[PATCH] s390: dasd device driver.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
dasd device driver changes:
- Initialize open_count with -1 to account for blkdev_open in
dasd_scan_partitions.
- Introduce USE_ERP request flag to selectivly switch off error
recovery for reserve, release & unconditional reserve ioctls.
<akpm@osdl.org>
[PATCH] s390: zfcp adapter fixes.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
zfcp host adapter changes:
- Fix error recovery stall in case of unavailable nameserver.
- Reset host_scribble field to NULL in scsi_cmd.
- Remove request debug code.
<akpm@osdl.org>
[PATCH] s390: crypto api.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Add support for z990 crypto instructions to in-kernel crypto api.
<akpm@osdl.org>
[PATCH] EDD: set sysfs attr owner field
From: Matt Domsch <Matt_Domsch@dell.com>
The patch below from Michael E. Brown properly sets the owner field of a
sysfs attribute. Without this patch, it is possible to crash the kernel with
a simultaneous insmod/rmmod while reading files exported by the module.
<akpm@osdl.org>
[PATCH] dynamic proc cleanups
From: Matt Mackall <mpm@selenic.com>
Delete obsolete comment and kill test of obsolete define.
<akpm@osdl.org>
[PATCH] fbdev comment fix
Fix the incorrect comment which caused the fb_ioctl confusion.
<akpm@osdl.org>
[PATCH] MIPS: PCI code is now shared.
From: Ralf Baechle <ralf@linux-mips.org>
All MIPS systems use the same PCI code now.
<akpm@osdl.org>
[PATCH] Add Pete Popov to credits
From: Ralf Baechle <ralf@linux-mips.org>
Add Pete to CREDITS for all the time he's invested into supporting the AMD
Alchemy of SOCs and eval boards.
<akpm@osdl.org>
[PATCH] Merge missing MIPS i8042 bits
From: Ralf Baechle <ralf@linux-mips.org>
- Add HPC3 PS/2 driver bits for SGI IP22 aka Indy
- Add Mace PS/2 driver bits for SGI IP32 aka O2
- Add R4030 PS/2 driver bits for Jazz family
- Don't register I/O ports where we're using the I/O port memory window
to access the i8042 registers
<akpm@osdl.org>
[PATCH] MIPS is an a.out free zone
From: Ralf Baechle <ralf@linux-mips.org>
MIPS never uses a.out
<akpm@osdl.org>
[PATCH] Update comment in fs/compat.c
From: Ralf Baechle <ralf@linux-mips.org>
MIPS now also uses the generic ioctl compat code.
<akpm@osdl.org>
[PATCH] Set ARCH_MIN_TASKALIGN on ppc32
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
From: David Woodhouse <dwmw2@infradead.org>
Without this the task struct gets unaligned when using SLAB_DEBUG, causing
random problems with FP and Altivec.
<akpm@osdl.org>
[PATCH] sunrpc rmmod oops fix
From: "J. Bruce Fields" <bfields@fieldses.org>
Unregister svcauth_gss caches on exit from gss module; fixes an oops on
rmmod.
<akpm@osdl.org>
[PATCH] ppc64: add some iSeries proc entries
From: Stephen Rothwell <sfr@canb.auug.org.au>
This patch just adds some proc entries for the virtual tape and cdrom
drivers to allow mapping between linux devices and OS/400 ones. This is
expected by existing users and there is no other way to do this
translation.
<akpm@osdl.org>
[PATCH] ppc64: Set ARCH_MIN_TASKALIGN
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
We need some alignement of those structs for proper operations especially
with FP and Altivec, or SLAB_DEBUG can break us.
<mikpe@csd.uu.se>
[PATCH] clean up Pentium M quirk code in nmi.c
This simplifies the Pentium M quirk code in nmi.c, and eliminates an
unnecessary apic_read().
Local APIC accesses are not zero-cycle; let's not inflict more damage
than we must.
<mikpe@csd.uu.se>
[PATCH] use smp_processor_id() in init_IRQ()
This replaces current_thread_info()->cpu in i386' init_IRQ() by the
equivalent smp_processor_id().
Reduces overhead on UP, and makes the code cleaner.
<david-b@pacbell.net>
[PATCH] USB: ehci handles pci misbehavior better
Cope better when PCI misbehaves badly and registers misbehave:
- terminate some loops before they get to infinity
* capability scan
* port reset
- after init failure, memory may already be cleaned up
Some systems have been reporting such problems after ACPI resume.
<david-b@pacbell.net>
[PATCH] USB: rndis gadget driver updates
Various build fixes: 64bit (Andrew Morton), static linking,
broken on big-endian, etc.
Tighten up the integration with the main "ether" driver, so
state transitions and host ethernet addresses are shared too.
Add missing spinlock calls around RNDIS command outcall,
fix GET_INTERFACE issue, host mustn't clobber netdev flags.
Minor code cleanups.
<wli@holomorphy.com>
[PATCH] USB: silence dpcm warning
Warnings aren't terribly important in and of themselves, but there
isn't really much the warning tells us to do here, so it would appear
that caving in to the compiler is the thing to do for now.
<lkml@lievin.net>
[PATCH] USB: tiglusb: wrong timeout value
Hi,
this patch (cumulative; 2.4 & 2.6) fixes another bug in the tiglusb
driver. The formula used to calculate jiffies from timeout is wrong.
The new formula is ok and takes care of integer computation/rounding.
This is the same kind of bug than in the tipar char driver.
<jan@ccsinfo.com>
[PATCH] USB: ftdi patch fixup
I just checked out the latest 2.6.6-rc1-mm1 to see that the ID patch for
ftdi has applied cleanly, but apparently someone was faster and in the
combined ID table our ID's were missing.
Most probably the patch program got confused and applied the hung at wrong
spot..
Attached is a patch that places that 2 lines in the correct spot.
<david-b@pacbell.net>
[PATCH] USB: usbnet and pl2301/2302 reset
Handle some PL-2301/2302 devices better.
<stevef@stevef95.austin.ibm.com>
RFC1002 fixup
<lkml@lievin.net>
[PATCH] tipar char driver: wrong timeout value
this patch (2.4 & 2.6) fixes a bug about the timeout value. The formula
used to calculate jiffies from timeout is wrong.
The new formula is ok and takes care of integer computation/rounding.
There is the same bug in the tiglusb.c module which will be fixed by another
patch.
<lxiep@us.ibm.com>
[PATCH] symlink doesn't support kobj name > 20 charaters (KOBJ_NAME_LEN)
Since symlink.c uses "name" field of a kobj when it calculates the
length, it gets a wrong value if the kobj's name has more than 20
charathers. A correct way to do that is to call kobject_name(kobj)
instead of using kobj->name directly.
<stevef@stevef95.austin.ibm.com>
exit from waiting on smb response when session dead
<stevef@stevef95.austin.ibm.com>
Update change log for 1.10 cifs vfs
<davidm@tiger.hpl.hp.com>
ia64: Add message-queue support to copy_siginfo_from_user().
<stevef@steveft21.ltcsamba>
proper rc on host down
<stevef@steveft21.ltcsamba>
fix error code mapping on bad host
<stevef@stevef95.austin.ibm.com>
fix timeout on close operation when pending signal
<aia21@cantab.net>
NTFS: Move a few assignments after a NULL check in fs/ntfs/attrib.c.
<stevef@steveft21.ltcsamba>
do not allow routine user signals to kill SendReceive wait for response
(which was damaging performance badly)
<akpm@osdl.org>
[PATCH] writeback livelock fix
If a filesystem's ->writepage implementation repeatedly refuses to write the
page (it keeps on redirtying it instead) (reiserfs seems to do this) then the
writeback logic can get stuck repeately trying to write the same page.
Fix that up by correctly setting wbc->pages_skipped, to tell the writeback
logic that things aren't working out.
<aia21@cantab.net>
NTFS: Finally fix NFS exporting of mounted NTFS volumes by checking the
return of d_splice_alias() and acting accordingly rather than just
ignoring the returned dentry.
<len.brown@intel.com>
[ACPI] Workaround "_BBN 0" BIOS bug
enhance "pci=noacpi" to skip ACPI PCI configuration and interrupt config
add "acpi=noirq" to skip just ACPI interrupt config (David Shaohua Li)
http://bugzilla.kernel.org/show_bug.cgi?id=1662
<len.brown@intel.com>
[ACPI] workaround for nForce2 BIOS bug: XT-PIC timer in IOAPIC mode
"acpi_skip_timer_override" boot parameter
dmi_scan for common platforms, may be replaced with PCI-ID in future.
http://bugzilla.kernel.org/show_bug.cgi?id=1203
<davem@nuts.davemloft.net>
[SPARC64]: Update defconfig.
<nico@org.rmk.(none)>
[ARM PATCH] 1824/1: guard against gcc not respecting local variable register
assignment
Patch from Nicolas Pitre
The recent discovery of a problem with gcc not always respecting register
assignment for local variables to be used with inline assembly is worrisome.
If unnoticed, such problems can cover bugs that might prove hard to find
especially when the code is right but silently ignored. This patch adds a
test where needed to have the assembler confirm our register selection and
fail the kernel build if the wrong registers are allocated.
<nico@org.rmk.(none)>
[ARM PATCH] 1825/1: abort on bad code generation with div64 in some cases
Patch from Nicolas Pitre
One case was found when the kernel is compiled with -O2 (instead of the
default -Os). However, all gcc-3.* versions seem to have a problem with
this. Instead of blacklisting them all unconditionally, better just abort
when a bad case occurs especially since this bad case doesn't seem to
appear with current default compiler flags. Depends on patch #1824.
<davem@nuts.davemloft.net>
[SPARC64]: Fix zero-extension issues wrt. {pgd,pmd}_val().
<shemminger@osdl.org>
[TCP]: Report vegas info via tcp_diag.
<mludvig@suse.cz>
[CRYPTO]: Add module autoloads for null module.
<arjanv@redhat.com>
[NET]: linux/if.h needs linux/compiler.h for __user.
<len.brown@intel.com>
[ACPI] No IRQ known... - using IRQ 255 (Bjarni Rúnar Einarsson)
http://bugzilla.kernel.org/show_bug.cgi?id=2148
<rmk@flint.arm.linux.org.uk>
[ARM] Remove extraneous "volatile" from atomic_t pointers.
<dsaxena@net.rmk.(none)>
[ARM PATCH] 1815/1: Generic DMA buffer bouncing support for ARM targets
Patch from Deepak Saxena
Latest (and hopefully last :) patch for generic DMA buffer bouncing.
- Fixed SA1111 dma_needs_bounce
- Added check for out of bounds buffers.
- Made dmabounce.c directly implement dma_* API
Note that I didn't do the following:
#ifndef CONFIG_DMABOUNCE
inline implementations of all functions
#else
extern declarations
#endif
Instead I wrapped it individual in #ifndef/#else blocks to keep the
comments in the same area as function declarations. IMHO this makes
it easier for someone to go look at the comments if they need to know
what a specific API does.
<aia21@cantab.net>
NTFS: Use get_bh() instead of manual atomic_inc() in fs/ntfs/compress.c.
<aia21@cantab.net>
NTFS: - Modify fs/ntfs/time.c::ntfs2utc(), get_current_ntfs_time(), and
utc2ntfs() to work with struct timespec instead of time_t on the
Linux UTC time side thus preserving the full precision of the NTFS
time and only loosing up to 99 nano-seconds in the Linux UTC time.
- Move fs/ntfs/time.c to fs/ntfs/time.h and make the time functions
static inline.
<scott.feldman@intel.com>
[PATCH] e100: ICH 10/H Tx hang fix
* Need to carry forward this workaround from old e100 driver to
avoid a Tx hang on ICH systems linked at 10/Half. Workaround
adds a stall before each Tx command queued by issuing a NOP
command followed by 1us delay. Yuck! Otherwise HW locks hard.
(Probably needed for eepro100 also ;-).
<len.brown@intel.com>
ACPI irq->gsi naming (Bjorn Helgaas)
<aia21@cantab.net>
NTFS: - Remove unused ntfs_dirty_inode().
- Cleanup super operations declaration.
<aia21@cantab.net>
NTFS: Wrap flush_dcache_mft_record_page() in #ifdef NTFS_RW.
<aia21@cantab.net>
NTFS: Add NInoTestSetFoo() and NInoTestClearFoo() macro magic to
fs/ntfs/inode.h and use it to declare NInoTest{Set,Clear}Dirty.
<aia21@cantab.net>
NTFS: Move typedefs for ntfs_attr and test_t from fs/ntfs/inode.c to
fs/ntfs/inode.h so they can be used elsewhere.
<aia21@cantab.net>
NTFS: Determine the mft mirror size as the number of mirrored mft records
and store it in ntfs_volume->mftmirr_size (fs/ntfs/super.c).
<wesolows@foobazco.org>
[SPARC32]: Ensure swap entries do not overlap the PRESENT or FILE bits.
Recent changes to the swap code force us to actually support the
entire range of swap encodings. The old encodings could cause the
FILE bit to be set, causing a BUG.
<khc@pm.waw.pl>
[netdrvr tulip] fix use-after-free
The attached patch fixes an "oops" in tulip driver when a live interface
is deactivated (i.e. PC Card ejected or module unloaded) without being
brought down first.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] generic PCI IDE support for Toshiba Piccolo chips
From: Daniel Drake <dsd@gentoo.org>
Adds Toshiba chips to the list supported by the generic PCI IDE driver.
The 2.4 tree already contained an entry for 0x1179:0x0102, this patch
adds that entry to 2.6 as well as two new ones (0x0103 and 0x0105).
This then allows DMA to be enabled on disks.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] use kernel min/max in IDE code (1/2)
From: Randy Dunlap <rddunlap@osdl.org>
From: Michael Veeck <michael.veeck@gmx.net>
ide-cd.h: remove unnecessary MIN() macro
ide-cd.c: change MIN() calls to use kernel.h calls
ide-tape.c: use min_t()/max_t() instead of min()/max()
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] use kernel min/max in IDE code (2/2)
From: Randy Dunlap <rddunlap@osdl.org>
From: Michael Veeck <michael.veeck@gmx.net>
Removes unnecessary IDE_MIN()/IDE_MAX() macros
and changes calls to use kernel.h macros instead.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] prevent module unloading for legacy IDE chipset drivers
It is unsafe thing to do (no locking, no reference counting etc).
Just remove module_exit() as it was done for IDE PCI drivers.
<stevef@smfhome.smfsambadom>
Fix port 139 connections to Windows 2K adding missing RFC1002 session_init
<stevef@smfhome.smfsambadom>
Remove unneeded debug statement
<chas@cmf.nrl.navy.mil>
[ATM]: [fore200e] 0.3e version by Christophe Lizzi (lizzi@cnam.fr)
<chas@cmf.nrl.navy.mil>
[ATM]: [fore200e] make use tasklet configurable
<hunold@linuxtv.org>
[PATCH] V4L: Update the saa7146 driver
- [DVB] saa7146 driver updates:
- remove bogus v_calc and h_calc parameters, which can be easily
retrieved from other values
- add class parameter to i2c initialization
- let resource handling provide more useful informations
- sanitize overlay/capture locking
<hunold@linuxtv.org>
[PATCH] DVB: Documentation and Kconfig updazes
- [DVB] misc. documentation updates, KConfig help file updates
- [DVB] make Twinhan driver depend on bt8xx
<hunold@linuxtv.org>
[PATCH] DVB: Update DVB budget drivers
- [DVB] budget-av: patch by Kenneth Aafløy to add support for Typhoon
DVB-S budget card
- [DVB] budget.c: support for Fujitsu-Siemens Activy Card
- [DVB] budget-ci: add preliminary CI support
<hunold@linuxtv.org>
[PATCH] DVB: Add EN50221 cam support to dvb-core
- [DVB] add generic functions for EN50221 CAM interfaces
<hunold@linuxtv.org>
[PATCH] DVB: Other DVB core updates
- [DVB] remove superflous memset() which caused section data to be
overwritten when a) there are two sections in one TS packet, and b)
the first section was smaller than 18 bytes; thanks to Jean-Claude
Repetto for tracking this down
- [DVB] starting a ts filter on a running section filter's pid did
break the section filter; fixed.
- [DVB] integrate ULE Decapsulation code, thanks to gcs - Global
Communication & Services GmbH. and Institute for Computer Sciences
Salzburg University. Hilmar Linder <hlinder@cosy.sbg.ac.at> and
Wolfram Stering <wstering@cosy.sbg.ac.at>
- [DVB] fix the module use count bugs, thanks to Hernan A.Perez Masci
for his initial work on this problem
- [DVB] if dvb_frontend_internal_ioctl() returns an error code, be sure
to deliver it to the calling application, don't ignore it (fixes the
bug that the frontend0 doesn't respond properly to unknown ioctls...)
- [DVB] major frontend code clean up, rewritten core tuning loop.
Thanks to Andrew de Quincey.
- [DVB] follow changes in dvb-core in skystar2, dvb-bt8xx
<hunold@linuxtv.org>
[PATCH] DVB: AV7110 DVB driver updates
- [DVB] av7110 update:
- speed up firmware loading
- follow internal API changes in saa7146 driver
- introduced some symbolic constants for a/v dec cmds
- change default for hw_sections to 0 to enable crc checks
<hunold@linuxtv.org>
[PATCH] DVB: Misc. DVB frontend driver updates
- [DVB] follow changes in dvb-core for frontend drivers (ves1x93,
ves1820, nxt6000, sp887x, tda1004x, stv0299, mt312, alps_tdlb7,
alps_tdmb7, at76c651, cx24110, dst, dvb_dummy_fe, grundig_29504-401,
grundig_29504-491)
- [DVB] tda1004x: updated timeout to 800ms, implemented FE_SLEEP
- [DVB] cx24110: add FE_CAN_RECOVER to reduce kdvb-fe CPU load
- [DVB] grundig_29504-401: added 200ms delay after first FE_INIT,
Implemented FE_GET_FRONTEND
- [DVB] alps_tdlb7, alps_tdmb7: upped tuning delays to fix tuning
<hunold@linuxtv.org>
[PATCH] DVB: Misc. DVB USB driver updates
- [DVB] ttusb-dec:
- Add a parameter to dvb_filter_pes2ts function to specify whether
the packet is a payload unit start or not
- Use the hotplug firmware loader for 2.6 kernels instead of
compiling the firmware into the module.
- Correct the USB id of the DEC3000-s, add basic support
- [DVB] ttusb-budget:
- Remove spurious discontinuity message when starting streaming
<hunold@linuxtv.org>
[PATCH] DVB: Follow saa7146 changes in affected V4L drivers
- [V4L] follow changes in saa7146 driver: mxb, dpc7146, hexium_orion,
hexium_gemini
<armin@melware.de>
[PATCH] ISDN CAPI: add ncci list semaphore
Fix race conditions of ISDN CAPI's internal ncci list handling by using
a per capidev semaphore.
<axboe@suse.de>
[PATCH] don't log drive loading failures
This is an old bug that often confuses people, rightfully.
For some laptop and server type cdroms, the drives advertise themselves
as tray loading even if they are caddy-like or slot-in loaders. This
means they cannot insert the media on their own, and this generates a
5/24/00 error to START_STOP_UNIT.
This prevents the logging of such a failure, and also fixes the
generation of such a bad command in case the mech type was correctly set
by the drive.
<stevef@stevef95.austin.ibm.com>
Flush writebehind before invalidate in file open path
<greg@kroah.com>
[PATCH] USB: fix up fake usb_interface structure in hiddev
This fixes a oops in the current kernel tree.
<greg@kroah.com>
[PATCH] USB: further cleanup of the hiddev driver, fixing another possible
oops on disconnect.
<stevef@stevef95.austin.ibm.com>
fix memory allocation of rfc1002 sess init struct
<axboe@suse.de>
[PATCH] correct LoEj logic
The logic got a little foo-bar'ed in the last patch, we should have keep
the old logic. Ie LoEj bit (2nd) must always be set, just clear it for
known non-capable of loading drives.
<alex.williamson@hp.com>
[PATCH] ia64: bug w/ shared interrupts
I just ran into a bug introduced by the most recent iosapic.c patch.
The scenario is a builtin driver is up and running happily. A module
loads for a devices that happens to share the same interrupt vector,
in this case a network driver. The module calls pci_enable_device()
as it should, which eventually lands in iosapic_enable_intr(). We
then proceed to mask the interrupt and kill the device that's already
running. As a bonus, request_interrupt() doesn't fix the problem
because we only call the startup for the interrupt handler on the
first action attached to the interrupt.
I think the best way out of this is simply to detect when an action is
already attached to a vector and leave it alone. This also prevents
interrupts from moving to other cpus (on boxes w/o irq redirection)
for no good reason.
<edwardsg@sgi.com>
[PATCH] ia64: Remove SN PDA page overflow check
There's an obsolete check in sn_init_pdas() left over from the 2.4
days that panics if the cpu PDA and cpu_data area span more than a page.
With 2.6, we're not limited to a page, so remove the check entirely.
<stevef@stevef95.austin.ibm.com>
update rfc1001 handling
<shemminger@osdl.org>
[TCP]: Add vegas sysctl docs.
<shemminger@osdl.org>
[IPV4]: Spelling fixed for ip-sysctl.txt
<shemminger@osdl.org>
[IRDA]: Export irda_task_delete.
<petri.koistinen@iki.fi>
[SUNRPC]: Missing NULL kmalloc check in unix_domain_find().
<kaos@sgi.com>
[PATCH] ia64: SN_SAL_PRINT_ERROR is reentrant
<david-b@pacbell.net>
[PATCH] One more USB fix
Here's another fix it'd be good to merge ...
No changes to the Linux code at all, but it'll makes the Windows
configuration of a Linux device running the Ethernet/RNDIS gadget behave
correctly on more versions of Windows. (It might prevent some
Bluescreening too.)
<mchan@broadcom.com>
[TG3]: Fix jimbo frame PHY programming.
1. Added new workaround for 5705 to improve bit error rate.
2. Changed to use read-modify-write to set the extended packet bit in
tg3_phy_reset.
3. Removed some phy setup code in tg3_phy_probe. All of that is already
in the end of tg3_phy_reset. Writing to the phy during probe time may
contend with ASF because ASF is constantly reading phy registers to
determine the link.
4. Removed the write to phy register 0x18 in tg3_phy_copper_begin. Not
sure what it was for and it will overwrite that regsiter.
<grundler@parisc-linux.org>
[TG3]: Fix comment typo.
<jgarzik@redhat.com>
[TG3]: Dump NIC-specific statistics via ethtool.
Contributed by Tony Cureington @ HP, updated (from pre-ethtool_ops)
and modified by me.
<davem@nuts.davemloft.net>
[TG3]: Update driver version and reldate.
<stevef@smfhome.smfsambadom>
do not block (writing back to the filesystem potentially) while allocating
smb buffers
<akpm@osdl.org>
[PATCH] create singlethread_workqueue()
From: Rusty Russell <rusty@rustcorp.com.au>
Workqueues are a great primitive for running things from user context from
a completely clean environment. Unfortunately, they currently insist on
creating one thread per CPU, which is overkill for many situations, so the
more generic keventd workqueue is used for these. Recently deadlocks using
keventd were demonstrated, showing that it is not suitable for all uses.
1) Clean up CPU iterators. Always a nice touch.
2) Add __create_workqueue() and create_singlethread_workqueue(),
keeping source compatibility.
3) Put workqueues in workqueue list even if !CONFIG_HOTPLUG_CPU (means
we need a lock to protect that list). Now we can tell if a wq is
single-threaded using list_empty(&wq->list).
4) For single-threaded workqueues, override CPU in queue_work,
delayed_work_timer_fn and flush_workqueue to be 0. flush_workqueue
now does redundant passes for single-threaded workqueues, but the
code remains simple.
5) Make create_workqueue_thread return the thread, so we can easily
kthread_bind for multi-threaded workqueues.
akpm fixes:
- Fix up is_single_threaded() handling
- single-threaded wq thread does not have "/0" appended.
<akpm@osdl.org>
[PATCH] Use workqueue for call_usermodehelper
From: Rusty Russell <rusty@rustcorp.com.au>
call_usermodehelper uses keventd to create a thread, guaranteeing a nice,
clean kernel thread. Unfortunately, there is a case where
call_usermodehelper is called with &bus->subsys.rwsem held (via
bus_add_driver()), but keventd could be running bus_add_device(), which is
blocked on the same lock. The result is deadlock, and it comes from using
keventd for both.
In this case, it can be fixed by using a completely independent thread for
call_usermodehelper, or an independent workqueue. Workqueues have the
infrastructure we need, so we use one.
Move EXPORT_SYMBOL while we're there, too.
akpm fixes: Make it compile with !CONFIG_KMOD
<akpm@osdl.org>
[PATCH] reiserfs: ignore prepared and locked buffers
From: Chris Mason <mason@suse.com>
block_write_full_page might see and lock clean metadata buffers, which leads
to bogus vs-12339 messages. Change the message to ignore bh locked.
<akpm@osdl.org>
[PATCH] credentials locking fix
From: Chris Wright <chrisw@osdl.org>
Contributions from:
Stephen Smalley <sds@epoch.ncsc.mil>
Andy Lutomirski <luto@stanford.edu>
During exec the LSM bprm_apply_creds() hooks may tranisition the program to a
new security context (like setuid binaries). The security context of the new
task is dependent on state such as if the task is being ptraced.
ptrace_detach() doesn't take the task_lock() when clearing task->ptrace. So
there is a race possible where a process starts off being ptraced, the
malicious ptracer detaches and if any checks agains task->ptrace are done
more
than once, the results are indeterminate.
This patch ensures task_lock() is held while bprm_apply_creds() hooks are
called, keeping it safe against ptrace_attach() races. Additionally, tests
against task->ptrace (and ->fs->count, ->files->count and ->sighand->count
all
of which signify potential unsafe resource sharing during a security context
transition) are done only once the results are passed down to hooks, making
it
safe against ptrace_detach() races.
Additionally:
- s/must_must_not_trace_exec/unsafe_exec/
- move unsafe_exec() call above security_bprm_apply_creds() call rather than
in call for readability.
- fix dummy hook to honor the case where root is ptracing
- couple minor formatting/spelling fixes
<akpm@osdl.org>
[PATCH] ext3 journalled quota locking fix
From: Jan Kara <jack@ucw.cz>
I've attached a fix for a problem in ext3 journalled quota patch - the
problem
is that detecting whether dqput() sleeps was wrong and so we could possibly
schedule when holding a spinlock.
<stevef@steveft21.ltcsamba>
rfc1001 session init name parsing fix
<akpm@osdl.org>
[PATCH] Bigger quota hashtable
From: Jan Kara <jack@ucw.cz>
I found out that quota uses hash table with just 43 entries to hash dquot
entries. I guess that we can afford using one page for that
(quotactl(Q_GETQUOTA...), got faster like 3x for 4000 users). Attached patch
implements that.
<akpm@osdl.org>
[PATCH] Per-sb dquot dirty lists
From: Jan Kara <jack@ucw.cz>
When there are lots of dirty dquots the vfs_quota_sync() is too slow (it has
O(N^2) behaviour). Attached patch implements list of dirty dquots for each
superblock and quota type. Using this lists sync is trivially linear.
Attached patch is against 2.6.5 with journalled quota and previous patch for
hash table size.
(Jan had a test which went from 8 minutes to 0.8 seconds...)
<akpm@osdl.org>
[PATCH] dquot: remove unneeded test
We're testing the nullness of `sb' potentially after rereferencing it
(although the compiler will have reordered things to avoid such a bug).
Just remove the test - the superblock pointer shouldn't be null in there.
<akpm@osdl.org>
[PATCH] Minor fixes for ext3 journalled quotas
From: Jan Kara <jack@ucw.cz>
It fixes a memory leak when turning journalled quotas off.
<akpm@osdl.org>
[PATCH] ppc64: Split prom.c Into pre-reloc and post-reloc Functions
From: Rusty Russell <rusty@rustcorp.com.au>
Move all the functions that run normally (ie. with the kernel in the correct
address) to the bottom of prom.c, and keep all the functions which use
RELOC()
to the top, above "prom_init()" which calls them.
Also, make prom_initialize_dart_table and prom_initialize_tce_table static.
<akpm@osdl.org>
[PATCH] ppc64: Rearrage finish_device_tree() and its functions in C Order
From: Rusty Russell <rusty@rustcorp.com.au>
Rather than pre-declaring static functions, order them so it's not
neccessary.
This makes the code easier to navigate and patch.
<akpm@osdl.org>
[PATCH] ppc64: Rearrage copy_device_tree() and its functions in C Order
From: Rusty Russell <rusty@rustcorp.com.au>
Rather than pre-declaring static functions, order them so it's not
neccessary.
This makes the code easier to navigate and patch.
<akpm@osdl.org>
[PATCH] ppc64: Rearrage interpret_funcs in C Order
From: Rusty Russell <rusty@rustcorp.com.au>
Rather than pre-declaring static functions, order them so it's not
neccessary.
This makes the code easier to navigate and patch.
<akpm@osdl.org>
[PATCH] ppc64: Rearrage Rest of prom.c in C Order
From: Rusty Russell <rusty@rustcorp.com.au>
Rather than pre-declaring static functions, order them so it's not
neccessary.
This makes the code easier to navigate and patch.
<akpm@osdl.org>
[PATCH] ppc64: Make finish_device_tree use lmb_alloc, not klimit
From: Rusty Russell <rusty@rustcorp.com.au>
finish_device_tree simply allocates nodes by incrementing klimit (ie. using
memory on top of the kernel). Change it to figure out how much memory it
needs, then use lmb_alloc to allocate that, then fill it in.
This gets rid of the only manipulation of klimit after prom_init.
<akpm@osdl.org>
[PATCH] ppc64: make_room macro for ppc64 prom.c
From: Rusty Russell <rusty@rustcorp.com.au>
copy_device_tree calls inspect_node() which recurses to copy the Open
Firmware
device tree. It just copied into memory above the kernel for about 8MB,
which
can overwrite the initrd, and/or get truncated on big machines.
The real solution is to allocate memory properly for all the prom_init memory
users. However, that's quite a change. This patch introduces a "make_room"
macro which inspect_node uses to get memory. This does the same as before,
except skips over the initrd if neccessary.
<akpm@osdl.org>
[PATCH] ppc64: Fix prom.c to boot on G5 after make_room fix
From: Rusty Russell <rusty@rustcorp.com.au>
Ben Herrenschmidt made this actually boot.
<akpm@osdl.org>
[PATCH] ppc64: Clean up prom functions in prom.c
From: Rusty Russell <rusty@rustcorp.com.au>
1) Define PROM_ERROR: checks for call_prom() < 0 are bogus (returns ulong)
2) All OF access functions should be marked __init.
3) prom_strtoul isn't used at all.
<akpm@osdl.org>
[PATCH] ppc64: Initrd Cleanup
From: Rusty Russell <rusty@rustcorp.com.au>
Clean up initrd handling.
1) Expose initrd_start and initrd_end to prom.c (replacing its local
initrd_start and initrd_len).
2) Don't hand mem (aka klimit) through functions which don't need it.
3) Add more debugging under DEBUG_PROM in case we broke anything.
<akpm@osdl.org>
[PATCH] ppc64: Move Initrd
From: Rusty Russell <rusty@rustcorp.com.au>
This patch moves the initrd when "make_room" runs out of space, rather than
stepping over it. The problem with stepping over it is that it gets copied
with the kernel when this happens, which wastes space.
Also ensures that the initrd isn't where the kernel wants to be moved to: if
it is, it gets moved out the way.
<akpm@osdl.org>
[PATCH] ppc64: prom.c fix for CONFIG_BLK_DEV_INITRD=n
From: Rusty Russell <rusty@rustcorp.com.au>
Doesn't compile with CONFIG_BLK_DEV_INITRD=n. Be more careful with the
conditionals.
Spotted by Dave Boutcher...
<akpm@osdl.org>
[PATCH] hugetlbpage: remove include linux/module.h
From: Paul Jackson <pj@sgi.com>
The #include of linux/module.h in several arch/*/mm/hugetlbpage.c files for
EXPORT_SYMBOL(hugetlb_total_pages) is now unneeded.
<akpm@osdl.org>
[PATCH] slab alignment fixes
From: Manfred Spraul <manfred@colorfullife.com>
Below is a patch that redefines the kmem_cache_alloc `align' argument:
- align not zero: use the specified alignment. I think values smaller than
sizeof(void*) will work, even on archs with strict alignment requirement
(or
at least: slab shouldn't crash. Obviously the user must handle the
alignment properly).
- align zero:
* debug on: align to sizeof(void*)
* debug off, SLAB_HWCACHE_ALIGN clear: align to sizeof(void*)
* debug off, SLAB_HWCACHE_ALIGN set: align to the smaller of
- cache_line_size()
- the object size, rounded up to the next power of two.
Slab never honored cache align for tiny objects: otherwise the 32-byte
kmalloc objects would use 128 byte objects.
There is one additional point: right now slab uses ints for the bufctls.
Using short would save two bytes for each object. Initially I had used
short,
but davem objected. IIRC because some archs do not handle short
efficiently.
Should I allow arch overrides for the bufctls? On i386, saving two bytes
might allow a few additional anon_vma objects in each page.
<akpm@osdl.org>
[PATCH] prune_dcache comment fix
From: Maneesh Soni <maneesh@in.ibm.com>
Clarify some things which were confusing poeple...
<akpm@osdl.org>
[PATCH] m68k: Amiga A2065 Ethernet KERN_*
From: Geert Uytterhoeven <geert@linux-m68k.org>
Amiga A2065 Ethernet: Add KERN_* prefixes to printk() messages
<akpm@osdl.org>
[PATCH] m68k bitops
From: Geert Uytterhoeven <geert@linux-m68k.org>
M68k bitops updates (from Roman Zippel):
- Optimize find_{first,next}_zero_bit()
- Add missing implementations of find_{first,next}_bit()
<akpm@osdl.org>
[PATCH] efivars: remove from arch/ia64
From: Matt Tolentino <metolent@snoqualmie.dp.intel.com>
I broke up the efivars driver update patch I had sent out quite a while ago
into several smaller patches. This includes several fixes and suggestions
that were pointed out. The patches are broken down as follows:
1 - remove all traces of efivars from arch/ia64/
2 - add new sysfs based efivars driver into
drivers/firmware with accompanying Kconfig/Makefile
changes to make it fully functional for ia64 again.
3 - cleans up x86 references to the /proc version of
the efivars driver.
<akpm@osdl.org>
[PATCH] efivars: add to drivers/firmware
From: Matt Tolentino <metolent@snoqualmie.dp.intel.com>
Second efivars driver update patch that adds efivars into the
drivers/firmware
directory.
<akpm@osdl.org>
[PATCH] efivars: remove x86 references
From: Matt Tolentino <metolent@snoqualmie.dp.intel.com>
Third efivars driver update patch that removes x86 references to the /proc
version of the driver.
<akpm@osdl.org>
[PATCH] efivars fixes
From: Matt Domsch <Matt_Domsch@dell.com>
Patch below fixes three small bugs in efivars.c as posted by Matt Tolentino
last week and included in the latest -mm. Aside from this small patch, I'm
quite pleased with Matt T's work, thanks!
- dummy() used for reading write-only sysfs files should return -ENODEV to
indicate failure, not 0.
- efivar_create() should return the number of bytes written on success, not
zero.
- efivar_delete() should return the number of bytes written on success, not
zero.
<akpm@osdl.org>
[PATCH] efibootmgr location change
From: Matt Domsch <Matt_Domsch@dell.com>
I moved the home of the efibootmgr utility from domsch.com to
linux.dell.com. Note the move in drivers/firmware/Kconfig, also note
version 0.5.0-test3 or above is necessary.
<akpm@osdl.org>
[PATCH] s390: no timer interrupts in idle.
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
This patch add a system control that allows to switch off the jiffies timer
interrupts while a cpu sleeps in idle. This is useful for a system running
with virtual cpus under z/VM.
<akpm@osdl.org>
[PATCH] task_lock() comment update
<akpm@osdl.org>
[PATCH] dio_bio_reap() return value fix
This function doesn't correctly accumulate -EIO for its caller.
<akpm@osdl.org>
[PATCH] fix CONFIG_SYSFS=n compile warning
From: Matt Mackall <mpm@selenic.com>
<akpm@osdl.org>
[PATCH] isofs "default NLS charset not used" fix
From: Marek Szuba <scriptkiddie@wp.pl>
Use the configured default NLS rather than hardwire it.
<akpm@osdl.org>
[PATCH] slab: use order 0 for vfs caches
We have interesting deadlocks when slab decides to use order-1 allocations
for
ext3_inode_cache. This is because ext3_alloc_inode() needs to perform a
GFP_NOFS 1-order allocation.
Sometimes the 1-order allocation needs to free a huge number of pages (tens
of
megabytes) before a 1-order grouping becomes available. But the GFP_NOFS
allocator cannot free dcache (and hence icache) due to the deadlock problems
identified in shrink_dcache_memory().
So change slab so that it will force 0-order allocations for shrinkable VFS
objects. We can handle those OK.
<akpm@osdl.org>
[PATCH] smb_writepage retval fix
->writepage() is supposed to return zero or a negative error code. Returning
the number of bytes written will confuse the VFS.
<akpm@osdl.org>
[PATCH] simplify put_page()
By requiring that compound pages implement destructors we can drop some code
from put_page().
<akpm@osdl.org>
[PATCH] hugepage fixes
From: William Lee Irwin III <wli@holomorphy.com>
mm/hugetlb.c is putting the destructor in head->lru.prev not head[1].mapping;
fix below along with nuking huge_page_release(), which simply duplicates
put_page().
<akpm@osdl.org>
[PATCH] ISDN Eicon driver: remove call to trap usermode helper
From: Armin Schindler <armin@melware.de>
This patch removes the function to call a usermode helper if the hardware
and its firmware has a problem. This feature is already implemented in the
user utility and the driver does not need to care about it.
<akpm@osdl.org>
[PATCH] doc: tips for S3 resume on radeon cards
From: Pavel Machek <pavel@ucw.cz>
Stefan has pretty useful tips for getting S3 to work on radeon notebooks.
This brings whole new class of systems to be usable for S3.
<akpm@osdl.org>
[PATCH] ppc32: fix head_44x.S copyrights
From: Matt Porter <mporter@kernel.crashing.org>
A copyright change to properly show the lineage of this file.
<akpm@osdl.org>
[PATCH] fs/proc/array.c: workaround for gcc-2.96
From: Alan Stern <stern@rowland.harvard.edu>
This patch is needed to work around gcc-2.96's limited ability to cope with
long long intermediate expression types. I don't know why the code
compiled okay earlier and failed now.
<akpm@osdl.org>
[PATCH] blkdev.h: functions no longer inline
From: "Randy.Dunlap" <rddunlap@osdl.org>
These are EXPORTed SYMBOLs; 'inline' was removed from them in ll_rw_blk.c
on 2002-11-25.
<akpm@osdl.org>
[PATCH] nfs_writepage() retval fix
Both ->writepage() and ->writepages() should return 0 or a negative error
code. It shouldn't return the number of bytes which were written.
From: Trond Myklebust <trond.myklebust@fys.uio.no>
Redirty the page if all of the modified parts of the page weren't
written out.
<akpm@osdl.org>
[PATCH] ppc32: dma_unmap_page() fix
From: <a.othieno@bluewin.ch> (Arthur Othieno)
Duplicate definition of dma_unmap_single() should actually be
dma_unmap_page().
(acked by Tom Rini)
<akpm@osdl.org>
[PATCH] fix fs/proc/task_nommu.c compile
From: Christoph Hellwig <hch@lst.de>
this file has been broken for ages, but it seems few !CONFIG_MMU users use
mainline at all.
<akpm@osdl.org>
[PATCH] remove Documentation/DocBook/parportbook.tmpl
From: Christoph Hellwig <hch@lst.de>
The partportbook is licensed under the GFDL and Linus agreed to remove
all GFDL licensed files in
http://www.ussg.iu.edu/hypermail/linux/kernel/0306.1/1968.html.
I pinged the author the first time on the 2nd of april but still didn't get
a reply, then send a patch to Linus to remove it last week but linus
ignored it. Here's the patch again:
<akpm@osdl.org>
[PATCH] Set module license in mcheck/non-fatal.c
From: Herbert Xu <herbert@gondor.apana.org.au>
This patch sets the module license for mcheck/non-fatal.c. The module
doesn't work at all without this as one of the symbols it needs is only
exported as GPL.
<akpm@osdl.org>
[PATCH] SubmittingPatches diffing update.
From: Zwane Mwaikambo <zwane@arm.linux.org.uk>
A kernel janitor recently got confused by the advice in SubmittingPatches
and was sending patches with the wrong strip level, i think just about
everyone would prefer standard patches. Also mention various patch
management scripts for batching up large deltas.
<akpm@osdl.org>
[PATCH] ppc64: remove duplicated mb() and comment from __cpu_up
From: Nathan Lynch <nathanl@austin.ibm.com>
This seems to have slipped in during a manual merge at some point.
<akpm@osdl.org>
[PATCH] SELinux ptrace race fix
From: Stephen Smalley <sds@epoch.ncsc.mil>
Looking again at the SELinux ptrace check, I believe that there is an
unrelated race due to the fact that the parent link is only updated after
releasing the task lock in ptrace_attach (and this is necessary as task lock
doesn't nest with write lock of tasklist_lock).
The patch below changes SELinux to save the tracing process' SID upon a
successful selinux_ptrace hook call and then use that SID in the ptrace check
in apply_creds in order to avoid such races. This allows us to preserve the
fine-grained process-to-process ptrace check upon exec (vs. the global
CAP_SYS_PTRACE privilege => PT_PTRACE_CAP flag used by the capability module)
while still avoiding races.
<akpm@osdl.org>
[PATCH] doc: specifiying module parameters
From: "Randy.Dunlap" <rddunlap@osdl.org>
kernel-parameters.txt: add info on how to specify loadable module
parameters vs. built-in module parameters
<akpm@osdl.org>
[PATCH] kbuild: Improved external module support
From: Sam Ravnborg <sam@ravnborg.org>
The external module support recently introduced caused a number of problems:
- To build an external module the Module.symvers file was needed
- To create the Module.symvers file a module was required
- If Module.symvers was missing kbuild boiled out with an error
- If vmlinux was missing also the stage 2 of module build failed (make -k)
- It was not documented what was needed to actually bauild a module
The following patch addresses this by adding the following functionality:
- Always generate the Module.symvers file
- Ignore a missing Module.symvers file
- Add a new target modules_prepare, it prepares the kernel for building
external modules, and is also usefull with O=
- And it adds some more comments to Makefile.modpost, so others may follow
it with some luck
- .modpost.cmd is no longer generated
This should close all reports on issues with respect to building external
modules with current kernel - which has been identified as kernel problems.
<aia21@cantab.net>
NTFS: Load the mft mirror at mount time and compare the mft records
stored in it to the ones in the mft (fs/ntfs/super.c).
<shaggy@austin.ibm.com>
JFS: Fix non-ascii file name problem
An unintentional sign extention caused non-ascii characters to be
stored incorrectly, leading to inaccessible files. Changing a
declaration to unsigned char fixes the problem.
<axboe@suse.de>
[PATCH] fix SG_IO page leak
We cannot always rely on ->biotail remaining untouched. Currently we
leak all the pinned user pages when doing cdda ripping at least, so I
see no way around keeping the bio pointer seperate and passing it back
in for unmap. Alternatively, we could invent a struct blk_map_data and
put it on the stack for passing to both map and unmap.
<torvalds@ppc970.osdl.org>
Include <linux/syscalls.h> in files that need them.
<mludvig@suse.cz>
[CRYPTO]: Add module aliases for des and sha512.
<davem@nuts.davemloft.net>
[TG3]: Undo comment typo fix, it was wrong.
<ebrower@usa.net>
[COMPAT]: HDIO_DRIVE_TASK is a compatible ioctl.
<stevef@stevef95.austin.ibm.com>
fixes for socket retry and error handling of misc. error paths
<stevef@stevef95.austin.ibm.com>
fix double entry typo
<shemminger@osdl.org>
[NET]: Eliminate large inlines in skbuff.h
<rusty@rustcorp.com.au>
[PATCH] Fix cpumask iterator over empty cpu set
Can't use _ffs() without first checking for zero, and if bits beyond
NR_CPUS set it'll give bogus results. Use find_first_bit
<torvalds@ppc970.osdl.org>
Linux 2.6.6-rc3
<shemminger@osdl.org>
[TCP]: tcp_send_skb code pruning
The function tcp_send_skb is only called from tcp_fin, and is always called
with force_queue=1. Therefore, it no longer needs to be global and the code
to send right now can be removed. Because it always queues, change the
name as well, and fix up the comment.
<davem@nuts.davemloft.net>
[SPARC64]: Fix MAP_FIXED+shared address check, noticed by rmk.
<roehrich@sgi.com>
[XFS] Fix dmapi/mprotect interaction
SGI Modid: xfs-linux:xfs-kern:170448a
<akpm@osdl.org>
[PATCH] acpi build fix
setup.c:608: `acpi_skip_timer_override' undeclared
<roehrich@sgi.com>
[XFS] Remove <linux/mman.h> now that linvfs_mprotect doesn't need it.
SGI Modid: xfs-linux:xfs-kern:170509a
<sziwan@hell.org.pl>
[PATCH] acpi4asus 0.28 (Karol 'sziwan' Kozimor)
- Added support for Samsung P30
- Fixed an oops triggered by non-standard hardware (Samsung P30)
- Added support for L4400L and M6800N
The patch also removes some superfluous data. It doesn't include the
copy_from_user() conversion, it will be released as a separate patch.
<hch@sgi.com>
[XFS] close external blockdevice after final flush
SGI Modid: xfs-linux:xfs-kern:170489a
<len.brown@intel.com>
[ACPI] battery "charged" instead of "unknown" (Luming Yu)
http://bugzilla.kernel.org/show_bug.cgi?id=1863
<len.brown@intel.com>
[ACPI] pci-link may not always be SHARED (SuSE via Luming Yu)
http://bugzilla.kernel.org/show_bug.cgi?id=2404
<len.brown@intel.com>
[ACPI] rmmod ACPI modules vs /proc
from Anil S Keshavamurthy and David Shaohua Li
http://bugzilla.kernel.org/show_bug.cgi?id=2457
<len.brown@intel.com>
[ACPI] toshiba_acpi driver if acpi_disabled (David Shaohua Li)
http://bugzilla.kernel.org/show_bug.cgi?id=2465
<len.brown@intel.com>
[ACPI] support button driver unload (Luming Yu)
http://bugzilla.kernel.org/show_bug.cgi?id=2281
<len.brown@intel.com>
[ACPI] fix build warning in dmi_scan
<len.brown@intel.com>
[ACPI] button build fix
<aia21@cantab.net>
NTFS: - Fix compiler warnings related to type casting.
- Move %L to %ll as %L is floating point and %ll is integer which
is what we want.
- Add logfile inode to ntfs_volume structure and the code to clean
it up in super.c.
<dvrabel@com.rmk.(none)>
[ARM PATCH] 1832/1: Typo in dma_unregister_dev printk
Patch from David Vrabel
Fix a trivial typo in a dma_unregister_dev printk.
<rmk@flint.arm.linux.org.uk>
[ARM] Add read_cpuid() to aid reading CPU ID registers.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix BE find_*_bit operations
These broke when find_first_bit/find_next_bit was added.
<akpm@osdl.org>
[PATCH] fix warning in fs/dquot.c
From: "Luiz Fernando N. Capitulino" <lcapitulino@prefeitura.sp.gov.br>
fs/dquot.c: In function `vfs_quota_off':
fs/dquot.c:1328: warning: label `out' defined but not used
<akpm@osdl.org>
[PATCH] ppc64: Set memory-only nodes online
From: Olof Johansson <olof@austin.ibm.com>
On pSeries LPARs we might end up with NUMA nodes that only have memory and
no CPUs. Only the CPU configuration code actually set a node online, so
memory-only nodes wouldn't show up in sysfs. Below patch adds the
set_online call to the memory loop too.
<akpm@osdl.org>
[PATCH] Fix thinkos in #if -> #ifdef conversions
From: Tom Rini <trini@kernel.crashing.org>
When I changed some '#if FOO' tests to '#ifdef FOO' I forgot to make sure
that nothing was doing #define FOO 0. So after auditing all of the changes
I made, the following is needed:
<akpm@osdl.org>
[PATCH] Fix thinkos in #if -> #ifdef conversions #2
From: Tom Rini <trini@kernel.crashing.org>
And when trying to catch up on old patches, I forgot this hunk:
<akpm@osdl.org>
[PATCH] fix warning in arch/ppc/boot/simple/misc.c
From: Christoph Hellwig <hch@lst.de>
asm-ppc/elf.h uses a pointer to struct task_struct without any
forward-declaration.
In file included from include/linux/elf.h:5,
from arch/ppc/boot/simple/misc.c:20:
include/asm/elf.h:102: warning: `struct task_struct' declared inside
parameter list
include/asm/elf.h:102: warning: its scope is only this definition or
declaration, which is probably not what you want
<akpm@osdl.org>
[PATCH] ppc32: Update SBS K2 support
From: Tom Rini <trini@kernel.crashing.org>
This patch updates support for the SBS K2 platform. Most of the size in this
patch comes from merging k2_pci.c and k2_setup.c into just k2.c.
<akpm@osdl.org>
[PATCH] ppc32: Add openpic_hookup_cascade()
From: Tom Rini <trini@kernel.crashing.org>
This patch adds openpic_hookup_cascade(offset, name, handler) which allows
for
an arbitrary interrupt controller to be hooked up as a cascade to the
openpic.
This also allows for platforms to just not have a cascaded controller.
<akpm@osdl.org>
[PATCH] ppc32: Update Motorola PrPMC750 support
From: Tom Rini <trini@kernel.crashing.org>
This patch updates support for the Motorola PrPMC750 platform. Most of the
size in this patch comes from merging prpmc750_pci.c and prpmc750_setup.c
into
just prpmc750.c.
<rmk@flint.arm.linux.org.uk>
[ARM] Update assabet_defconfig.
<armin@melware.de>
[PATCH] ISDN CAPI: fix ncci list semaphore
Fix new ISDN CAPI's internal ncci list semaphore if
CONFIG_ISDN_CAPI_MIDDLEWARE is disabled.
Thanks to Florian Schirmer.
<rmk@flint.arm.linux.org.uk>
[ARM] Update ioremap implementation.
Use flush_cache_vmap() after creating mappings. Also use BUG_ON()
rather than if() BUG().
<rmk@flint.arm.linux.org.uk>
[ARM] Fix dependencies of SERIO_AMBAKMI and SERIO_RPCKBD
<rmk@flint.arm.linux.org.uk>
[ARM] Oprofile should use asm/irq.h not asm/arch/irqs.h
<rmk@flint.arm.linux.org.uk>
[ARM] Fix monspecs in ARM-related framebuffer drivers.
Use named initialisers for monspecs; the format of the structure
changed a while back and it broke.
<ink@jurassic.park.msu.ru>
[PATCH] Fix rwsem contention case on alpha/s390x
Thanks to Dru <andru@treshna.com>, who provided an easy way to reproduce
the problem.
What we have in lib/rwsem.c:__rwsem_do_wake():
int woken, loop;
^^^
and several lines below:
loop = woken;
woken *= RWSEM_ACTIVE_BIAS-RWSEM_WAITING_BIAS;
woken -= RWSEM_ACTIVE_BIAS;
However, rw_semaphore->count is 64-bit on Alpha, so
RWSEM_WAITING_BIAS has been defined as -0x0000000100000000L.
Obviously, this blows up in the write contention case.
<rmk@flint.arm.linux.org.uk>
[ARM] Remove Anakin default configuration file.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix shared mmap()ings for ARM VIPT caches.
This allows us to appropriately align shared mappings on VIPT caches
with aliasing issues.
<shemminger@osdl.org>
[IPV4]: Use static in several places.
More functions and data that should be static.
<chaapala@cisco.com>
[LIB]: Add CRC32c (Castagnoli, et al Cyclic Redundancy-Check)
<chaapala@cisco.com>
[LIB]: Use compiler.h's pure attribute macros in crc32.c.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix read_cpuid()
<chaapala@cisco.com>
[CRYPTO]: Provide crc32c as a type of digest.
<davem@nuts.davemloft.net>
[SPARC64]: Update defconfig.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix atomic bitops earlyclobber
atomic_dec_and_test and atomic_add_negative didn't mark their
temporary variables as early-clobber. Fix this.
<shemminger@osdl.org>
[NETLINK]: Mark some functions/data static.
<torvalds@ppc970.osdl.org>
Add __user annotations to ppc64 user access functions.
<torvalds@ppc970.osdl.org>
Tell the sparse checker to use 64-bit mode when checking
a ppc64 tree.
<rmk@flint.arm.linux.org.uk>
[ARM] Move all page fault handling code to fault.c
<rmk@flint.arm.linux.org.uk>
[ARM] Add Versatile default configuration
<dirk.behme@com.rmk.(none)>
[ARM PATCH] 1835/1: Make ALTERA Excalibur work again in 2.6.5
Patch from Dirk Behme
Make ALTERA Excalibur work again in 2.6.4. Update serial driver uart00.c and
defconfig.
This is an update of patch 1833/1.
Remove #include <config/pld/hotswap.h>, it isn't necessary at all.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] fix default IDE interfaces initialization for PPC32
In ide_init_default_irq() patch I overlooked that
ppc_ide_md.init_hwif_ports()
called from generic ide_init_hwif_ports() can set hwif->irq and it will
be overwritten by ide_init_default_irq() if CONFIG_PCI is defined. Fix
it.
I will clean it up properly later after killing ide_init_hwif_ports() on
ARM{26}. Doing it now is just wasted effort.
<david@gibson.dropbear.id.au>
[PATCH] Fix overeager stack-expansion on ppc64
This fix is from Paul Mackerras and was applied in 2.4 sometime late
last year.
On ppc64, touching addresses between the highest other mapping and the
stack can cause the stack to be extended way, way down, rather than
causing a SEGV as you would expect. This patch only allows the stack
mapping to be extended to cover addresses actually within the stack
(as determined by looking at the process's r1). This fix is ported
from 2.4
This fixes failures on the LTP's shmdt01, munmap01 and munmap02 tests.
<david@gibson.dropbear.id.au>
[PATCH] POWER5 erratum workaround
Early POWER5 revisions (<DD2.1) have a problem requiring slbie
instructions to be repeated under some circumstances. The patch below
adds a workaround (patch made by Anton Blanchard).
<viro@parcelfarce.linux.theplanet.co.uk>
[PATCH] Fix might_sleep in /proc/swaps code
This fixes a locking problem noted by Tim Hockin:
* /proc/swaps uses seq_file code, calling seq_path() with swaplock held
* seq_path() calls d_path()
* d_path() calls mntput() which might_sleep()
We add a new semaphore protecting insertions/removals in the set of swap
components + switch of ->start()/->stop() to the same semaphore [fixes
deadlocks] + trivial cleanup of ->next().
<akpm@osdl.org>
[PATCH] cifssmb.c warning fix
On ppc64, __u64 is `unsigned long', so:
fs/cifs/cifssmb.c: In function `CIFSSMBSetFileSize':
fs/cifs/cifssmb.c:2466: warning: long long int format, __u64 arg (arg 2)
<akpm@osdl.org>
[PATCH] ppc32: compile error in signal.c
From: Meelis Roos <mroos@linux.ee>
arch/ppc/kernel/signal.c: In function `handle_signal':
arch/ppc/kernel/signal.c:518: error: `newspp' undeclared (first use in this
function)
arch/ppc/kernel/signal.c:518: error: (Each undeclared identifier is reported
only once
arch/ppc/kernel/signal.c:518: error: for each function it appears in.)
arch/ppc/kernel/signal.c:518: warning: long unsigned int format, pointer arg
(arg 3)
<akpm@osdl.org>
[PATCH] Update kerneltraffic link in SubmittingDrivers and kernel-docs.txt
From: Coywolf Qi Hunt <coywolf@greatcn.org>
This updates the kerneltraffic url link found in
Documentation/SubmittingDrivers and Documentation/kernel-docs.txt.
<akpm@osdl.org>
[PATCH] cciss build fix
From: <mikem@beardog.cca.cpqcorp.net>
This patch fixes the linux/include/cciss_ioctl.h file. When support for the
cciss big ioctl was added the stucture in the header was put in the wrong
place. If an application includes the file it will fail to compile.
<akpm@osdl.org>
[PATCH] cciss MAINTAINERS update
From: <mikem@beardog.cca.cpqcorp.net>
Here's an update for the MAINTAINERS file.
<akpm@osdl.org>
[PATCH] s390: core s390
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
s390 core changes:
- Move setting/clearing of TIF_31BIT thread flag to SET_PERSONALITY.
- Use TASK_UNMAPPED_BASE in elf_map32 for mmaps with address 0.
- Define ARCH_KMALLOC_MINALIGN.
- Define ARCH_MIN_TASKALIGN.
<akpm@osdl.org>
[PATCH] s390: common i/o layer
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Common i/o layer changes:
- Don't use bus ids in crw debug feature.
- Use cio_oper for oper notification to disconnected devices.
- Remove __get_subchannel_by_stsch.
- Make cio workqueue a single threaded workqueue.
- Introduce addiotnal cio_notify workqueue for device driver notification.
- Switch off path in vpm if cio_start returned -ENODEV.
- Fix rescan for new subchannels after a logical vary on.
<akpm@osdl.org>
[PATCH] s390: network driver
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Network driver changes:
- ctc: Add missing irb error checking.
- iucv: Add name of net_device to iucvMagic to more than one
connection between two guests.
- qeth: Don't send IPA command if card is not in state SOFTSETUP or UP.
- qeth: Fix number base in simple_strtoul call for buffer_count attribute.
- qeth: Fix reallocating of buffers when buffer_count attribute is changed.
- qeth: Correct handling of return codes in qeth_realloc_buffer_pool.
- qeth: Don't call dev_close/dev_open on STOPLAN/STARTLAN commands.
Use netif_carrier_off/netif_carrier_on instead.
<akpm@osdl.org>
[PATCH] s390: 3270 console driver
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
3270 device driver change:
- Add missing irb error checking.
<akpm@osdl.org>
[PATCH] s390: zfcp host adapter
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
zfcp host adapter change:
- Fix addressing exception due to uninitialized host_scribble pointer.
<akpm@osdl.org>
[PATCH] s390: oprofile for s390
From: Martin Schwidefsky <schwidefsky@de.ibm.com>
Add oprofile support for s/390.
<akpm@osdl.org>
[PATCH] static functions in as-iosched.c
From: Stephen Hemminger <shemminger@osdl.org>
<akpm@osdl.org>
[PATCH] Fix support for the Motorola PrPMC800
From: Tom Rini <trini@kernel.crashing.org>
Makes the Motorola PrPMC800 platform functional again. This comes from Randy
Vinson <rvinson@mvista.com>.
<akpm@osdl.org>
[PATCH] gcc-3.4.0 fixes
From: Mikael Pettersson <mikpe@user.it.uu.se>
This patch fixes three warnings from gcc-3.4.0 in 2.6.6-rc3:
- arch/i386/pci/pcbios.c: use of "+m" constraint
- drivers/char/ftape/: use of cast-as-lvalue
- drivers/char/ftape/: __attribute__((packed)) on something containing only
bytes
<akpm@osdl.org>
[PATCH] writeback livelock fix
To avoid various livelocks, the writeback code parks all the dirty inodes
onto
sb->s_io and then works through that list until it is empty. This assumes
that each inode will be moved to some other list as it is processed.
But there's a loophole: if the ->writepages() implementation does nothing at
all, the inode is not redirtied (which would move it to s_dirty). This
causes
s_io to not empty and pdflush goes nuts.
So when this happens, move the inode onto s_dirty within
__sync_single_inode(). Use list_move_tail() to attempt to preserve the
time-ordering of the s_dirty list.
<hugh@veritas.com>
[PATCH] mremap offset type
Just found I never changed type of move_page_tables when I changed it to
return offset: einormous mremap moves would fail on 64-bit.
<davidm@tiger.hpl.hp.com>
ia64: Fix Exec-Only stack patch so X can work again.
No pun intended, but X can't work if it can't turn on eXecute-permission
on the some data pages...
<pfg@sgi.com>
[PATCH] ia64: SN2 fix
Move HW interrupt register init. to the proper place
and don't force an interrupt if the IRQ is disabled
or in progress.
<shemminger@osdl.org>
[NET]: More network layer static funcs and data.
<trond.myklebust@fys.uio.no>
[PATCH] NFSv3: Fix SETATTR call after O_EXCL create
Ensure that when we send the SETATTR call after doing an O_EXCL create,
we always set the atime and ctime fields.
See RFC1813 for details on why the server is allowed to clobber these
two fields in order to cache a verifier that protects CREATE in case of
a timeout+resend from the client.
Patch is by Olaf Kirch.
<akpm@osdl.org>
[PATCH] parport pnp detection fix
From: Adam Belay <ambx1@neo.rr.com>
Fix http://bugme.osdl.org/show_bug.cgi?id=2540
It prevents PnP detection if devices were already detected by SuperIO.
<akpm@osdl.org>
[PATCH] nfs printk warning fix
From: Trond Myklebust <trond.myklebust@fys.uio.no>
fs/nfs/direct.c: In function `nfs_direct_IO':
fs/nfs/direct.c:458: warning: int format, different type arg (arg 2)
<akpm@osdl.org>
[PATCH] efivars sysfs fix
From: Matt Tolentino <metolent@snoqualmie.dp.intel.com>
This trailing space in sysfs contents is not needed.
<akpm@osdl.org>
[PATCH] DVB:Fix adapter module removal bug
From: Michael Hunold <hunold@convergence.de>
unfortunately it's possible to remove a DVB adapter module even if a DVB
network device has been set up using this adapter.
The attached patch fixes this problem.
<akpm@osdl.org>
[PATCH] s390: oprofile Kconfig fixes
From: Arnd Bergmann <arnd@arndb.de>
Enable basic profiling code on s390 depending on CONFIG_PROFILING, not
CONFIG_OPROFILE.
CONFIG_PROFILING should enable the generic profiling code here, even if
CONFIG_OPROFILE is not set. Note that the identical code on i386 is always
compiled in, regardless of CONFIG_PROFILING and CONFIG_OPROFILE.
<akpm@osdl.org>
[PATCH] make ikconfig quiet
From: "Randy.Dunlap" <rddunlap@osdl.org>
From: Pavel Machek <pavel@ucw.cz>
Kill uninformative boot-time message.
<akpm@osdl.org>
[PATCH] ppc64: shmget() translation bugfix
From: David Gibson <david@gibson.dropbear.id.au>
The 32->64 bit syscall translation layer on ppc64 incorrectly sign-
extends rather than zero-extending the second parameter to shmget(),
which should be a size_t. This means that it is impossible to shmget()
more 2GB or more from a 32-bit process.
<akpm@osdl.org>
[PATCH] fadvise length handling fix
POSIX sez: "If len is zero, all data following offset is specified."
<davidm@tiger.hpl.hp.com>
Cset exclude: davidm@tiger.hpl.hp.com|ChangeSet|20040427053149|28511
<shaggy@austin.ibm.com>
JFS: [CHECKER] Fix a possible null-pointer dereference
<rmk@arm.linux.org.uk>
[PATCH] Update MTD concatenating driver
This patch updates the MTD concatenating driver from MTD CVS, which
fixes issues found with this driver which concatenates multiple MTD
devices into one MTD device.
From David Woodhouse, through CVS:
revision 1.8
date: 2003/06/30 11:01:26; author: dwmw2; state: Exp; lines: +5 -5
I will not commit stuff whilst pissed
I will not commit stuff whilst pissed
revision 1.7
date: 2003/06/29 21:26:34; author: dwmw2; state: Exp; lines: +9 -9
Fix ecc/oob subdev comparisions
revision 1.6
date: 2003/06/25 12:37:50; author: dwmw2; state: Exp; lines: +14 -6
Don't pretend to have {read,write}_{oob,ecc} functions if subdevices don't
revision 1.5
date: 2003/06/25 12:21:16; author: dwmw2; state: Exp; lines: +390 -397
coding style cleanup
<nico@org.rmk.(none)>
[ARM PATCH] 1836/1: don't hardcode virtual addresses
Patch from Nicolas Pitre
virtual address mapping can change.
<nico@org.rmk.(none)>
[ARM PATCH] 1837/1: small Lubbock cleanup
Patch from Nicolas Pitre
Minor cleanup of Lubbock specific code, like removal of
redundant mappings.
Also a prerequisite for some upcoming patches.
<nico@org.rmk.(none)>
[ARM PATCH] 1838/1: Lubbock leds and macro namespace cleanup
Patch from Nicolas Pitre
Too many macro with too generic names. Let's remove unneeded code and
redundant/unused macros. This also prevent namespace clash with upcoming
patches.
<nico@org.rmk.(none)>
[ARM PATCH] 1839/1: fix lubbock_flash.c which used a bogus reg name
Patch from Nicolas Pitre
Before previous patch this driver compiled OK but was buggy.
Now it doesn't compile anymore as the bogus macro has been
deleted. Fix that in any case.
The same fix has been committed to the MTD CVS already, but please forward
this to Linus otherwise Lubbock won't compile from kernel.org tree anymore
(waiting for dwmw2 to update this might prove ... hrm ... long)
<nico@org.rmk.(none)>
[ARM PATCH] 1840/1: recognize more XScale CPU variants
Patch from Nicolas Pitre
... including the new PXA270 aka Bulverde.
<nico@org.rmk.(none)>
[ARM PATCH] 1841/1: Lubbock defconfig update
Patch from Nicolas Pitre
<akpm@osdl.org>
[PATCH] task_struct alignment fix
The recent slab alignment changes broke an unknown number of architectures
(parisc and x86_64 for sure) by causing task_structs to be insufficiently
aligned.
We need good alignemnt because architectures do things like dumping FP state
into the task_struct with instructions which require particular alignment (I
think).
So change the default alignment to L1_CACHE_BYTES, which is what we used to
have, via SLAB_HW_CACHE_ALIGN.
<akpm@osdl.org>
[PATCH] usb linkage fix
On sparc64 toolchain:
drivers/built-in.o(.init.text+0xaf8c): In function `usb_init':
: undefined reference to `usbfs_cleanup'
usb_init() is __init and usbfs_cleanup() is __exit. No can do.
<torvalds@ppc970.osdl.org>
Fix fixed fadvice length handling
- Correctly handle wraparound on offset+len
- fix FADV_WILLNEED handling of non-page-aligned (offset+len)
Let's hope we don't need to fix the fixed fix.
<len.brown@intel.com>
[ACPI] PCI Interrupt Link fixes
Handle BIOS that reference disabled PCI Interrupt Link Devices
http://bugme.osdl.org/show_bug.cgi?id=1581
Clean up VIA _CRS = 0 BIOS workaround
Handle BIOS returning _CRS outside _PRS
http://bugme.osdl.org/show_bug.cgi?id=2567
delete now unused _SRS retry code
disable redundant console messages
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] serverworks.c: fix DMA for OSB4
From: Patrick Wildi <patrick@wildi.com>
On OSB4 the hwif->ultra_mask is set to not support UDMA.
Unfortunately in that case svwks_config_drive_xfer_rate()
falls through to the end of the function, instead of trying
other DMA modes.
<rth@kanga.twiddle.home>
[ALPHA] Add message queue syscalls.
<vda@port.imtp.ilyichevsk.odessa.ua>
[PATCH] add missing #include
There's a subtle problem with "inline" usage in <linux/string.h>:
<linux/string.h>:
this pulls in __constant_c_and_count_memset()
<linux/mm.h>:
this pulls <compiler.h>, re-defining
inline == __inline__ __attribute__((always_inline)).
But by now it is too late! The compiler has already seen the bare
"inline" in string.h, and hasn't inlined it.
Result:
# grep __constant System.map
c0144670 t __constant_c_and_count_memset
c0145c60 t __constant_c_and_count_memset
... many more copies of this function ...
Fixed by including <compiler.h> early enough.
<herbert@gondor.apana.org.au>
[IPV4/IPV6]: Fix listing of listening sockets.
There is a bug in listening_get_first() which used by /proc/net/tcp*
where it wasn't looping through all the sockets in each hash chain.
This problem doesn't show up unless the first socket in a chain doesn't
match the family that is being looked up.
The following patch fixes this by getting rid of listening_get_first()
altogether.
<paulus@samba.org>
[PATCH] ppc64: fix incorrect signal handler argument
This fixes a bug in the ppc64 signal delivery code where the signal
number argument to a signal handler can get corrupted before the handler
is called. The specific scenario is that a process is in a blocking
system call when two signals get generated for it, both of which have
handlers.
The signal code will stack up two signal frames on the process stack
(assuming the mask for the first signal delivered doesn't block the
second signal) and return to userspace to run the handler for the second
signal. On return from that handler the first handler gets run with an
incorrect signal number argument because we end up with regs->result
still having a negative value (left over from when the system call was
interrupted) when it should be zero. This patch sets it to zero when we
set up the signal frame (in three places; for 64-bit processes, and for
32-bit processes for RT and non-RT signals).
The way we handle signal delivery and signal handler return using the
regs->result field in ppc64 is more complicated than it needs to be. In
ppc32 I have already simplified it and eliminated use of the
regs->result field. I am going to do the same in the ppc64 code, but I
think this patch should go in for now to fix the bug.
The patch also fixes a couple of places where we were unnecessarily and
incorrectly truncating the regs->result value to 32 bits
(sys32_sigreturn and sys32_rt_sigreturn return a long value, as all
syscalls do, and if regs->result is negative we need those syscalls to
return a negative value).
Thanks to Maneesh Soni for identifying the specific circumstances
under which this bug shows up.
<viro@parcelfarce.linux.theplanet.co.uk>
[PATCH] mcdx.c insanity removal
The mcdx.c author had pulled off something absolutely amazing - he had
declared several unsigned variables (ISA port numbers) as void *, using
explicit cast to unsigned in almost all places that used them.
Exception: printk. There he proudly used them as pointers - with %3p in
format. That cute trick allowed him to avoid using %03x, which
apparently scared him for some reason.
Switched to use of unsigned, killed casts, replaced %3p with %03x in
formats. BTW, the code had been that way since the initial merge back
in 1.3.7...
<stevef@steveft21.ltcsamba>
fix ppc64 build problem due to missing header
<stevef@smfhome.smfdom>
even if O_CREAT specified do not reset mode when file not actually created
<stevef@steveft21.ltcsamba>
reduce excessive stack space usage in smb password hashing
<stevef@steveft21.ltcsamba>
do not refresh mode (e.g. in revalidate) to windows servers
<hirofumi@mail.parknet.co.jp>
[PATCH] FAT: Fix nfsv2 support
The ->dentry_to_fh() can use the 20 bytes in the case of NFSv2, but
fat_dentry_to_fh() requires 24 bytes by my patch.
So nfsd reply the EOPNOTSUPP to nfs client, then nfs client convert
the unknown error to -EIO.
This patch fixes the problem by pushing the handle data into 20 bytes.
<hirofumi@mail.parknet.co.jp>
[PATCH] FAT: simple error handling cleanup
From: René Scharfe <l.s.r@web.de>
the following patch converts the error handling paths in VFAT fs to use
goto, making it more consistent with other filesystem code. Shrinks the
resulting binary by 144 bytes in my build.
<hirofumi@mail.parknet.co.jp>
[PATCH] FAT: small cleanup
<hirofumi@mail.parknet.co.jp>
[PATCH] FAT: remove symbols exports from msdosfs/vfat
From Christoph Hellwig <hch@lst.de>
If we're ever going to ressurect umsdos it should be a stackable
filesystem..
<rmk@flint.arm.linux.org.uk>
[SERIAL] Fix the calculation of the number of UARTs
The calculation ended up believing we had one less UART than we
really had. Fix it.
<torvalds@ppc970.osdl.org>
Make types of big integers in bitops.h explicit.
"sparse" warns about implicit type conversions that may cause
surprising results. Did you know that large decimal types have
different type conversions from large hexadecimals?
<torvalds@ppc970.osdl.org>
Be more careful about semaphore contention memory ordering.
Don't touch the wakee stack after marking it runnable.
<len.brown@intel.com>
[ACPI] export symbols to button module
<rusty@rustcorp.com.au>
[NET]: Fix MODULE_PARM_DESC typo in dummy driver.
<shemminger@osdl.org>
[PATCH] SCTP crc table can be static const
<sri@us.ibm.com>
[SCTP] Fix bugs in handling overlapping INIT and peer restart over a
multihomed association.
<sri@us.ibm.com>
[SCTP] Rename SCTP_ADDR_REACHABLE as SCTP_ADDR_AVAILABLE to be
consistent with the SCTP sockets API draft.
<wesolows@foobazco.org>
[SPARC32]: Correct calculation of num_physpages
Previously num_physpages only took into consideration low memory.
Since nr_free_pages returned something much larger, the caches
init would oops.
<wesolows@foobazco.org>
[SPARC32]: Trivial reformatting patch for arch/sparc/mm/init.c
From Art Haas <ahaas@airmail.net>
<sri@us.ibm.com>
[SCTP] Fix memset() parameter ordering.
<wesolows@foobazco.org>
[SPARC32]: Reduce fragmentation in the bitmap allocator
The existing allocator is first-fit with wraparound. This allows
a large number of small holes to accumulate in the early part of the
region, leading to heavy fragmentation. This adjusts the algorithm
to rescan the region when smaller sizes are requested, reducing
early fragmentation.
<SKolodynski@com.rmk.(none)>
[SERIAL] Add support for SBS Tech. Inc. PMC-OCTPRO and P-OCTAL cards.
Patch from Slawomir Kolodynski
<akpm@osdl.org>
[PATCH] cancel_delayed_work() fix
cancel_delayed_work() forgets to clear the workqueue's pending flag. This
makes the workqueue appear to be permanently busy, so any subsequent attempts
to use it will fail.
<david@gibson.dropbear.id.au>
[PATCH] ppc64: Use slbie, not slbia in hugepage code
On PPC64, when we prepare segments below 4G for use with hugepages, we
need to flush their entries from the SLB, in case SLB entries
specifying normal pages were already present.
Previously we did that by flushing the entire SLB, the patch below
changes this to individually flush each necessary segment with slbie.
The new version may well be slightly faster, but the real reason for
it is so that this code path doesn't need to be changed to reinstate
any bolted SLB entries, if we add them. The existing version has
already caused problems (read, crashes) when combined with some
patches that add bolted SLB entries.
<paulus@samba.org>
[PATCH] ppc32: Updated boot fix
This fixes booting on some PPC32 machines, notably CHRP and powermac
machines. This is a modified version of Tom Rini's patch that addresses
the concerns I had with it.
The problem was that the linker script was getting included in the list
of things that got put together to make some of the sorts of bootable
images that we produce. This removes ld.script in cases where it wasn't
appropriate and changes the rules in others so that although we have the
dependency on ld.script, it doesn't get included in the list of things
to link.
<alex.williamson@com.rmk.(none)>
[SERIAL] 8250_hcdp needs irq sharing
Patch from Alex Williamson
Here's a trivial patch that makes 8250_hcdp setup the correct flags
when IRQ sharing is enabled for serial ports.
The HCDP table tells us if the device is a PCI UART. We can use this
to set the shared interrupt flag as well as program the interrupt with
the correct polarity/trigger (should get rid of "changing vector <x>
from IO-SAPIC-edge to IO-SAPIC-level" messages at bootup). This also
allows non-PCI UARTs to be left un-shareable, which is likely much
more safe (edge triggered).
The bit that I'm keying on is still part of the older 1.0a HCDP spec,
so should be implemented (it was on all the boxes I tested). If
there's firmware out there that doesn't set this bit or the interrupt
supported flag, the HCDP UART may run in polling mode, but should
still be functional.
<rmk@flint.arm.linux.org.uk>
[ARM] Fix potential oops and kill unused variable warning in sa1111.c
This fixes a potential oops/use after free bug, and removes an unused
variable warning.
<rmk@flint.arm.linux.org.uk>
[ARM] Update mach-types file again.
<bjorn.helgaas@com.rmk.(none)>
[SERIAL] default to serial console when possible
Patch from Bjorn Helgaas
This adds efi_uart_console_only() so we can default to using a serial
console if the EFI console path only contains UARTs.
<hugh@veritas.com>
[PATCH] mremap pte_unmap NULL
Old bug noone seems to have hit, but mremap's pte_unmap dst might be
NULL: would get preempt count wrong even when not DEBUG_HIGHMEM.
<hugh@veritas.com>
[PATCH] add_to_page_cache comments
Remove two layers of the fossil record from comments on add_to_page_cache:
2.6.6 moves swapcache handling away, and we long ago stopped masking flags.
<shaggy@austin.ibm.com>
JFS: [CHECKER] Memory leak in jfs_link
<shaggy@austin.ibm.com>
JFS: [CHECKER] get rid of txAbortCommit
txAbortCommit is broken and fixing it makes it equivalent to txAbort,
so get rid of it and use txAbort instead.
<torvalds@ppc970.osdl.org>
Be more careful about waking up rwsem waiters
Get a reference count on the the sleeper, so that
it can't possibly go away before we've sent it the
wakeup event.
Noted by Nick Piggin <nickpiggin@yahoo.com.au>
David Howells <dhowells@redhat.com>
<daniel.ritz@ch.rmk.(none)>
[PCMCIA] add EnE specific initialization to fix HDSP
Patch from Daniel Ritz.
This patch clears an almost undocumented EnE specific test register
that makes sound on RME Hammerfall DSP Carbus work...should even work
after suspend.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Remove unused variable.
<chrisw@osdl.org>
[PATCH] fix memleak in sys_mq_timedsend
Move error handling to capture all three possible error conditions on
sending to a full queue. Without this fix any unprivileged user can
leak arbitrary amounts of kernel memory.
<akpm@osdl.org>
[PATCH] report size of printk buffer
From: <Andries.Brouwer@cwi.nl>
In the old days the printk log buffer had a constant size, and dmesg asked
for the 4096, later 8192, later 16384 bytes in there. These days the
printk log buffer has variable size, and it is not easy for dmesg to do the
right thing, especially when doing a "read and clear". The patch below
adds a syslog subfuntion that reports the buffer size.
<chrisw@osdl.org>
[PATCH] fix queues_count accounting in mqueue_delete_inode()
During mqueue_get_inode(), it's possible that kmalloc() of the
info->messages array will fail. This failure mode will cause the
queues_count to be (incorrectly) decremented twice. This patch uses
info->messages on mqueue_delete_inode() to determine whether the
mqueue was every truly created, and hence proper accounting is needed
on destruction.
<mingo@redhat.com>
[NET]: Update netpoll credits.
<bcollins@debian.org>
[IEEE1394]: Fix deadlock in killing kernel thread
<benh@kernel.crashing.org>
[PATCH] ppc/ppc64: Cleanup PPC970 CPU initialization
This cleans up the code used to initialize the 970 CPU.
More specifically, it adds support for the 970FX, makes sure we don't
touch registers we aren't supposed to when running in LPAR mode, and
stop blindly zeroing out HID4 and HID5, we just clear the bits we really
want clear in there and leave the rest to the firmware.
<benh@kernel.crashing.org>
[PATCH] Fix my address in CREDITS
Heh, I moved 6 month ago, time to update CREDITS ;)
<benh@kernel.crashing.org>
[PATCH] ppc32: Add missing [pci_]dma_mapping_error()
Those were missing from ppc32, please apply.
<benh@kernel.crashing.org>
[PATCH] ppc32: pmac support update
This adds some initial support for the latest model of iBook G4 (still
need some work on the clock chip at least and some radeonfb updates that
I'll send later along with other fixes for this driver).
It also removes a useless delay and fixes detection of the airport card
on the "Windtunnel" class desktop G4 machines.
<akpm@osdl.org>
[PATCH] page_mapping race fix
From: Hugh Dickins <hugh@veritas.com>
Remove this development-only debug code - Hugh thinks that its BUG_ON() can
trigger by accident.
<kraxel@bytesex.org>
[PATCH] Fix oops in video_register_device
degerrit@web.de wrote:
"I caused an oops in unusual circumstances by accidentally "forcing" a
video device number which was too high or already taken (don't know
which). I assume this probably shouldn't give an oops (though it was my
fault), so here's a bugreport..."
Fixed by adding a range check for the number passed in by the driver.
<mikpe@csd.uu.se>
[PATCH] allow drivers to claim the lapic NMI watchdog HW
Here is an updated lapic NMI ownership tracking patch which
should address the issues that were raised with the first one:
- Simplified the API function names to {reserve,release}_lapic_nmi().
- Rewrote the ownership tracking code to use two individually named
flags instead of using arithmetic and the sign. The code is now
simple enough that no "hiding" macros are needed. (Thanks Albert
for that suggestion.)
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] fixup for C1 Halt Disconnect problem on nForce2 chipsets
Based on information provided by "Allen Martin" <AMartin@nvidia.com>:
A hang is caused when the CPU generates a very fast CONNECT/HALT cycle
sequence. Workaround is to set the SYSTEM_IDLE_TIMEOUT to 80 ns.
This allows the state-machine and timer to return to a proper state within
80 ns of the CONNECT and probe appearing together. Since the CPU will not
issue another HALT within 80 ns of the initial HALT, the failure condition
is avoided.
<jeremy@sgi.com>
[PATCH] sata_vsc initialization fix
<jgarzik@redhat.com>
[libata sata_sis] support SATA SCRs in PCI cfg space
<sri@us.ibm.com>
[SCTP] Fix accessing Gap Ack blocks array with a -ve index in
sctp_outq_sack()
<armin@melware.de>
[PATCH] ISDN Eicon driver: accept capidrv parameters
Accept negative level3cnt value in register_application
for special b-channel calculation. Necessary to work with
capidrv.
<akpm@osdl.org>
[PATCH] cciss update
From: <mikem@beardog.cca.cpqcorp.net>
This patch adds support for 2 new controllers. The first is a PCI-Express
version of the 6400. The second is actually a SATA controller using the
cciss
interface.
<venkatesh.pallipadi@intel.com>
[PATCH] bug in bigsmp CPU bringup
There is an bug in bigsmp sub-architecture, due to which it will not
enable all the CPUs when the BIOS-APICIDs are not 0 to n-1 (where n is
total number of CPUs). Particularly, only 2 CPU comes up on a system
that has 4 CPUs with BIOS APICID as (0, 1, 6, 7).=20
The bug is root caused to check_apicid_present(bit) call in smpboot.c,
when bigsmp is expecting apicid in place of bit.
check_apicid_present(bit) in bigsmp subarchitecture checks the bit with
phys_id_present_map (which is actually map representing all apicids and
not bit).
One solution is to change check_apicid_present(bit) to
check_apicid_present(apicid), in smp_boot_cpus(). But, it can affect
all the other subarchitectures in various subtle ways. So, here is a
simple alternate fix (Thanks to Martin Bligh), which solves the above
problem.
[ Confirmation from Martin:
Looks fine, it's exactly the same fix we use for Summit. Since
we're using the other method instead of the bitmap, this check
isn't needed, so we can just bypass it. This way also has the
great advantage of being isolated to the bigsmp subarch, so it only
needs testing there ;-)
]
<sfr@canb.auug.org.au>
[PATCH] PPC64 iSeries: replace semaphores with completions
This replaces some usages of sempahores on the stack with completions.
We think we have had at least one bug report that could be caused by the
inherent race in the semaphore usage.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] ide-disk.c: write cache handling fixes
From: Alan Cox <alan@redhat.com>, Arjan van de Ven <arjanv@redhat.com>
- calculate drive->wcache for non-removable disks too
- flush the cache before unlocking the door on removable media,
otherwise you have a small race with the human
<paul@wagland.net>
[PATCH] bug fix for megaraid memory leak
I was going through the code looking for bits and pieces to pull across
into the new LSI Logic beta megaraid driver /sys fs code and came across
this one.
LSI Logic have already fixed this issue for the 2.4 driver, and the new
beta driver does not use the /proc filesystem at all, so no problem
there.
The problem is that resources are not freed upon certain error
conditions in the in-kernel megaraid driver, to quote from Lester
Hightower (who originally found the issue):
"The problem occurs only in the circumstance where one reads one of
the /proc/megaraid/hba<X>/diskdrives-ch<N> files where the card <X>
does not have channel <N> on it. Most people would likely not
notice this leak in normal operation, but due to the way that we
monitor our MegaRaid cards in our company (we read these /proc
entries every 180s) so we found the leak rather quickly, and
unpleasantly (when your kernel eats all your RAM)."
Anyway, here is the fix, compiled and tested OK for me.
<akpm@osdl.org>
[PATCH] b44 driver needs mii
<vandrove@vc.cvut.cz>
[PATCH] ncpfs data corruption when using large TCP transfers
ncpfs was forgetting to update iovec's iov_base field whenever partial
transmission occured. This was causing data corruption during large
(60kB) writes.
The code now also passes copy of iovec to the sock_sendmsg, so it does
not rely on network stack updating (or not updating) passed iovec in
case of success (or failure).
<aia21@cantab.net>
NTFS: Read the journal ($LogFile) and determine if the volume has been
shutdown cleanly
and force a read-only mount if not (fs/ntfs/super.c and
fs/ntfs/logfile.c). This
is a little bit of a crude check in that we only look at the restart
areas and
not at the actual log records so that there will be a very small
number of cases
where we think that a volume is dirty when in fact it is clean. This
should only
affect volumes that have not been shutdown cleanly and did not have
any pending,
non-check-pointed i/o.
<nitin.a.kamble@intel.com>
[PATCH] mxcsr patch for i386 & x86-64
This enables proper mxcsr register masking: the magic mask "0xffbf"
is not necessarily correct for all CPU's, and there is an architected
way to discover the proper MXCSR feature bits by examining the fxsave
results.
Please refer to IA32 Software Developer's Manual, Volume 1, Section
11.6.6 for more details.
<aia21@cantab.net>
NTFS: Eeek. Forgot to revert the Makefile before checking it in last
time...
<zippel@linux-m68k.org>
[PATCH] fix value toggle in gconf
gconf doesn't correctly toggle through the values of a symbol, so use
sym_toggle_tristate_value() instead.
Problem reported by Martin Persenius <martin@persenius.net>
<arjanv@redhat.com>
[PATCH] IDE disk cache flush at unopportune momemnts
This makes the idedisk_release function only flush the cache on final
release; with the recent 2.6 blocklayer updates release gets called
somewhat frequently, and at times where IO is outstanding to the disk.
This bug didn't trigger before simply because ide_cacheflush_p() always
was a nop.
<eric@yhbt.net>
[PATCH] logips2pp driver update (MX510/310 support), cleanup
I've updated the logips2pp driver to detect the MX310 and MX510 mice
and also made it more maintainable by putting everything into one
table instead of having 4 arrays for them (the MX700 support wasn't
added correctly in the last revision).
<benh@kernel.crashing.org>
[PATCH] ppc64: Fix nasty typo in PTE freeing code
There is a typo in the PTE freeing code causing us to possibly
overflow the batch structure.
Obvious fix (look at the closing parentheses).
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] Suspend IDE disks on shutdown
When Patrick removed ide_notify_reboot() in 2.5.42, he didn't notice
that it meant that IDE no longer had any shutdown() functionality.
So we did the right thing on suspend, but not on shutdown.
ide_notify_reboot() was only doing STANDBY on shutdown (because FLUSH
'doesn't work' in 2.4 too) but it worked okay and we still should do STANDBY
on shutdown because some broken disks flush their caches.
Thus just calls bus->suspend() (FLUSH+STANDBY) at shutdown time. We can
add some safety delay later - 2.4 doesn't have any.
<arjanv@redhat.com>
[PATCH] ide: don't send cacheflush to drives that don't understand it
<stsp@aknet.ru>
[PATCH] Fix IO bitmap invalidate
There is a bug where if any process that obtained an IO access
permissions via ioperm() does not explicitly "drop" that permissions,
the IO permissions don't get properly invalidated on process exit.
The cause is that exit_thread() only invalidates the per-thread
io_bitmap pointer, but doesn't invalidate the per-TSS io_bitmap pointer
as well.
As the per-thread pointer is invalidated, __switch_to() doesn't take
care of that one either, so the per-TSS pointer stays valid as long as
some other process does ioperm().
This fixes the problem - it invalidates the per-TSS io_bitmap pointer
and the problem goes away.
<aia21@cantab.net>
NTFS: 2.1.8 release - If the $LogFile indicates a clean shutdown and a
read-write (re)mount is requested, empty $LogFile by overwriting it
with 0xff bytes to ensure that Windows cannot cause data corruption
by replaying a stale journal after Linux has written to the volume.
<torvalds@ppc970.osdl.org>
x86-64: fix preempt race in exit_thread
This fixes a (very very small) preempt race window when we
invalidate the IO permission bitmap on process exit.
<rmk@flint.arm.linux.org.uk>
[ARM] Remove DMA support in Versatile
We don't have DMA support for AMBA devices yet.
<rmk@flint.arm.linux.org.uk>
[ARM] Enclose MMC-related code in #ifdef CONFIG_MMC .. #endif
<rmk@flint.arm.linux.org.uk>
[SERIAL] Remove unmerged 'clk' subsystem from PL011 driver.
<chaapala@cisco.com>
[CRYPTO]: Fix typing in crc32c's chksum_update
<torvalds@ppc970.osdl.org>
All the Intel LPC bridges have the same PCI quirks.
They all have 128 bytes of ACPI/TCO IO space pointed to
by config space register 0x40, and 64 bytes of GPIO space
pointed to by 0x58.
Thanks to Jun Nakajima for the full list.
<armin@melware.de>
[PATCH] ISDN Eicon driver: fix empty queue check
Check for last adapter link is done by next member,
because entries are not removed yet.
<benh@kernel.crashing.org>
[PATCH] Fix CTS handling in pmac-zilog.c
From: Paul Mackerras <paulus@samba.org>
This patch fixes a bug in the pmac-zilog driver where if you enable
CRTSCTS mode, it won't output data when CTS is asserted. On
powermacs, the CTS input is inverted. It also fixes a logic bug in
testing for CTS and DCD changes.
<akpm@osdl.org>
[PATCH] fix WARN_ON on XFS module unload
From: Christoph Hellwig <hch@lst.de>
This one is a little funny. The SGI trees don't show this issue because
dmapi
and quota are separate modules so they must be unloaded before xfs_fs_exit
can
be called at all.
So let's move the exitcalls for them in mainline first to simulate that
behaviour.
<benh@kernel.crashing.org>
[SUNZILOG]: Fix DCD/CTS change tests, just like in pmac_zilog.
<joshk@triplehelix.org>
[SPARC64]: Use $(CC) in NEW_GCC checks.
<jmorris@redhat.com>
[NET]: Add sock_create_kern()
Under SELinux, and potentially other LSMs, we need to be able to
distinguish between user sockets and kernel sockets. For SELinux
specifically, kernel sockets need to be specially labeled during creation,
then bypass access control checks (they are controlled by the kernel
itself and not subject to SELinux mediation).
This addresses a class of potential issues in SELinux where, for example,
a TCP NFS session times out, then the kernel re-establishes an RPC
connection upon further user activity. We do not want such kernel
created sockets to be labeled with user security contexts.
sock_create() and sock_create_kern() are wrapper functions, which seems
semantically clearer to me than e.g. adding a flag to sock_create(). If
you prefer the latter, then let me know.
The patch also adds an argument to the LSM socket creation functions
indicating whether the socket being created is a kernel socket or not.
<jmorris@redhat.com>
[NET]: Add sock_create_lite()
The purpose of this is to allow sockets created by the kernel in this way
to be passed through the LSM socket creation hooks and be labeled and
mediated in the same manner as other sockets.
This patches addresses a class of potential issues with LSMs, where such
sockets will not be labeled correctly (if at all), or mediated during
creation. Under SELinux, it fixes a specific bug where RPC sockets
created by the kernel during TCP NFS serving are unlabeled.
<dlstevens@us.ibm.com>
[IPV4]: Use time_after() in override ARP calculation.
<sri@us.ibm.com>
[SCTP]: Fix multihomed connection failures on 64-bit systems.
Avoid the use of sizeof() and pointer arithmetic to get to the end
of sctp_cookie structure. Instead use the last element peer_init which
is a zero-sized array as the offset.
<shemminger@osdl.org>
[TCP]: BIC TCP for Linux 2.6.6
This is a version of Binary Increase Control (BIC) TCP
developed by NCSU. It is yet another TCP congestion control
algorithm for handling big fat pipes. For normal size congestion
windows it behaves the same as existing TCP Reno, but when window
is large it uses additive increase to ensure fairness and when
window is small it uses binary search increase.
For more details see the BIC TCP web page
http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/
The original code was for web100 (2.4); this version is pretty
much the same but targeted for 2.6 with less sysctl parameters
and more constants.
I don't have a real high speed long haul network to test, but
when running over 1G links with delays, the performance is more stable
(ie tests are repeatable) and as fast as existing Reno.
<davem@nuts.davemloft.net>
[NET]: Undo marking sock_alloc() as static, still exported to modules.
<davem@nuts.davemloft.net>
[SPARC64]: hugetlbpage.c needs linux/module.h
<akpm@osdl.org>
[PATCH] run populate_rootfs() before initcalls
I moved this a little too late - we need to run populate_rootfs() before
running initcalls because some driver initcalls need to open files for
firmware.
The populate_rootfs() call is still coming after init_idle(), so it won't
knock the scheduler over.
<torvalds@ppc970.osdl.org>
Waste less memory in dentries.
We don't bother aligining them on a cacheline boundary, since
that is totally excessive in some configurations (especially
P4's with 128-byte cachelines).
Instead, we make the minimum inline string size a bit longer,
and re-order a few fields that allow for better packing on
64-bit architectures, for better memory utilization.
<tony@com.rmk.(none)>
[ARM PATCH] 1844/1: Allow OMAP-730 and OMAP-5910 to use ARM926 in mm/Kconfig
Patch from Tony Lindgren
Adds OMAP-730 and OMAP-5910 support
<tony@com.rmk.(none)>
[ARM PATCH] 1846/1: OMAP update 1/2: arch files
Patch from Tony Lindgren
This patch syncs the mainline kernel with the linux-omap tree. The
patch contains following updates:
- Move virtual IO area to 0xfefb0000 from 0xfffb0000 to fix parts of
IO area overlapping with ARM Linux reserved memory area
- Add support to OMAP-730, OMAP-5912, and OMAP-1710 processors
- Reorganize board support
- Add OMAP core detection
This patch requires ARM Linux patch 1844/1 be applied to compile
OMAP-730 and OMAP-5912
<tony@com.rmk.(none)>
[ARM PATCH] 1847/1: OMAP update 2/2: include files
Patch from Tony Lindgren
This patch syncs the mainline kernel with the linux-omap tree. The
patch contains following updates:
- Move virtual IO area to 0xfefb0000 from 0xfffb0000 to fix parts of
IO area overlapping with ARM Linux reserved memory area
- Add support to OMAP-730, OMAP-5912, and OMAP-1710 processors
- Reorganize board support
- Add OMAP core detection
This patch requires ARM Linux patch 1844/1 be applied to compile
OMAP-730 and OMAP-5912
<elf@com.rmk.(none)>
[ARM PATCH] 1816/1: lh7a40x #2 (1/7) core
Patch from Marc Singer
Updated change set for the 2.6.5 kernel *and* for the April 8th arm
patch. Also included are changes suggested by Russell that merge
several of the files in the mach- directory. I have also endeavored
to remove all unnecessary whitespace additions.
Note that since I've found the cause of an annoying user-space crash,
I believe that this patch is OK. The crash appears to have nothing to
do with the system setup.
<elf@com.rmk.(none)>
[ARM PATCH] 1817/1: lh7a40x #2 (2/7) core-include
Patch from Marc Singer
Include files for this updated lh7a40x patch set. The changes in this
set from the previous are mostly cosmetic. The memory macros were
reworked in order to be more similar to the other ARM versions. The
previous versions produced the same results, but the forms are
slightly different.
<elf@com.rmk.(none)>
[ARM PATCH] 1818/1: lh7a40x #2 (3/7) doc
Patch from Marc Singer
Documentation for the Sharp-LH machines.
<armin@melware.de>
[PATCH] ISDN Eicon driver: fix idi cleanup deadlock
On IDI module cleanup, the freed card must be removed from list.
Use list_empty() instead of list_for_each() loop. Thanks Linus.
<ak@suse.de>
[PATCH] Fix machine check handler on x86-64
This fixes a bug in the new machine check handler on x86-64.
One nasty part was that when you got an MCE during boot up
then it would not always print it on the screen, but still
panic because it attempted to kill the idle task.
This patch does:
- Always use KERN_EMERG when printing MCEs
- Always panic and print on screen before killing idle loop
or init.
<ak@suse.de>
[PATCH] Fix x86-64 compilation without iommu for 2.6.6rc3
Various people hit this in earlier kernels. The x86-64 kernel did not
compile
without CONFIG_IOMMU_GART in various configurations. Just add the missing
symbol
and export it. Also export iommu_merge while I am at it.
<torvalds@ppc970.osdl.org>
Mark the ACPI CPU throttle and timer IO regions busy.
This should help some laptops where the generic PCI
code might otherwise believe that this range is unused.
The ACPI IO range is usually not visible as a standard
BAR.
<torvalds@ppc970.osdl.org>
Linux 2.6.6
(
Log in to post comments)