Summary of changes from v2.6.5 to v2.6.6-rc1
============================================
<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
<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.
<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.
<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
<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
<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.
<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.
<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.
<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
<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).
<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
<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.
<jgarzik@redhat.com>
[libata] more documentation
libata-scsi.c should now be fully documented.
<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().
<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.
<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.
<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.
<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.
<greg@kroah.com>
USB: remove "released" field from struct usb_interface as it is not needed.
<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>
<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.
<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.
<davej@redhat.com>
[CPUFREQ] Various updates/fixes to the powernow-k8 comment header.
<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.
<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.
<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().
<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
<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.
<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.
<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.
<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>
[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>
[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
<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
<davej@redhat.com>
[CPUFREQ] Stop preempt count from going negative.
Broken failure path spotted by Dominik Brodowski.
<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.
<jejb@mulgrave.(none)>
Add missing header changes from SCSI cdrom disconnection fix
<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.
<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.
<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.
<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.
<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.
<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.
<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.
<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.
<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
<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.