Summary of changes from v2.6.3 to v2.6.4
============================================
<scott.feldman@intel.com>
[netdrvr] e100 version 3 (complete rewrite)
<scott.feldman@intel.com>
[e100] ICH6 IDs + ia64 memcpy fix + module_param
* Add ICH6 device IDs. Devices funcionally equivalent to supported ICH5
devices, but new IDs.
* Fixed unaligned access to casted skb->data (Matt Willcox
[willy@debian.org]).
* MODULE_PARM -> module_param
* Bug printk after register_netdev to identify nic details.
* misc cleanups.
<jgarzik@redhat.com>
[netdrvr e100] include linux/moduleparam.h
Fixes build.
<amir.noam@intel.com>
[netdrvr bonding] Cannot remove and re-enslave the original active slave
In TLB/ALB modes, when enslaving a slave that has the bond's mac
address, allow the operation if no other slave has that address.
Should be applied after the cleanup patch set.
<amir.noam@intel.com>
[netdrvr bonding] Releasing the original active slave causes mac address
duplication
When releasing the active slave in TLB/ALB modes,
bond_alb_deinit_slave() must be called before trying to select a new
active slave.
<amir.noam@intel.com>
[netdrvr bonding] Add support for slaves that use ethtool_ops
When collecting link information from slaves via ETHTOOL, first try
using the relevant ethtool_ops functions.
<scott.feldman@intel.com>
[netdrvr e100] netpoll + fixes to speed/duplex forced settings
* Preserve forced speed/duplex settings during close/open sequence.
* Reset PHY when going from autoneg to forced speed/duplex settings
using ethtool.
* Add netpoll support.
<amir.noam@intel.com>
[netdrvr bonding] fix build breakage
<amir.noam@intel.com>
[PATCH] [bonding 2.6] Fix compilation warning in bond_alb.c
The IPX_TYPE_* constants and ipxhdr.ipx_type are u8 values, so we
shouldn't use __constant_htons().
<shmulik.hen@intel.com>
[netdrvr bonding] trivial - Update comment blocks and version field
Update comment blocks, version field and copyright years to match all
the recent changes that were accepted into 2.4/2.6.
<amir.noam@intel.com>
[PATCH] [bonding 2.6] Save parameters in a per-bond data structure
- Save the bonding parameters in a per-bond data structure.
- Move all handling of the insmod parameters to bond_check_params().
- Fix the handling of some warning messages regarding parameter use.
<amir.noam@intel.com>
[PATCH] [bonding 2.6] Use the per-bond value of the bond_mode parameter
Change usage of the global 'bond_mode' parameter to the per-bond
value.
<amir.noam@intel.com>
[PATCH] [bonding 2.6] Use the per-bond values of all remaining parameters
Change usage of the all remaining global parameters to the per-bond
values.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan lapb] beginning of cleanups
Beginning of lapb cleanups: lapb_register gets net_device along with the
"token" and it gets stored in lapb_cb (token argument will die later).
<viro@parcelfarce.linux.theplanet.co.uk>
[wan lapb] switch to use net_device instead of custom token
lapb functions that used to take a token to select lapb_cb they'll deal with
are switched to getting net_device instead. Callbacks switched to using
lapb->dev instead of lapb->token.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan lapb] Printks switched from %p lapb->token to %p lapb->dev.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan lapb] kill now-unused custom token container
Nothing is using lapb->token anymore; removed, along with the old "token"
argument of lapb_register().
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] hdlc_open() switched to net_device
Beginning of hdlc fixes. hdlc_open() switched from hdlc_device to
net_device.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] hdlc_close() switched to net_device.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] new port_to_dev() helper
New helper in hd6457x.c: port_to_dev(). A bunch of port->hdlc eliminated.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] switch sca_xxx() to use net_device
More hd6457x.c massage: sca_open(), sca_close(), sca_dump_rings() switched
to net_device. Bunch of hdlc_to_port() eliminated in favor of dev_to_port().
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] hdlc_set_carrier() switched to net_device.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] hdlc->attach() switched to net_device.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan farsync] Eliminated a bunch of port->hdlc and hdlc_to_dev() uses
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] hdlc->proto.*() switched to net_device.
Eliminated a bunch of ->netdev and hdlc_to_dev() uses.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] hdlc_cisco: killed ->netdev, hdlc_to_name() and hdlc_to_dev()
uses.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] hdlc_fr: eliminated ->netdev, hdlc_to_dev() and hdlc_to_name()
uses.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc_x25] eliminated hdlc_to_dev() and hdlc_to_name() uses.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan wanxl] eliminated hdlc_to_name() uses and a bunch of port->hdlc ones.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] switch internal ioctl dispatch to net_device
Switched remaining ioctls to net_device, killed a bunch of hdlc_to_dev()
and killed hdlc_to_name().
<viro@parcelfarce.linux.theplanet.co.uk>
[wan pc300] more direct use of net_device
In pc300 replaced dev->hdlc with dev->dev (hdlc to net_device). Killed a
bunch of ugliness in pc300_tty.c, killed hdlc_to_dev() uses.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] new hdlc_stats() helper
New inlined helper - hdlc_stats(). A lot of places had it spelled out;
replaced with calls.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan dscc4] Uses of ->hdlc and hdlc_to_dev() encapsulated into
dscc4_to_dev().
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] switch register_hdlc_device() to take net_device arg
register_hdlc_device()/unregister_hdlc_device() switched to net_device.
Now all remaining callers of hdlc_to_dev() are isolated and we can
start killing them.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] new private struct pointer in hdlc_device, and helpers for it
New field in hdlc_device: void *priv;
New helpers:
struct net_device *alloc_hdlcdev(priv) allocates hdlc, sets ->priv
and
returns pointer to hdlc->netdev
free_hdlcdev(dev) takes such pointer and frees its hdlc.
wanxl switched to use of those; instead of embedding hdlc into card->ports[]
we allocate it separately right after card had been allocated and store
pointer
to hdlc->netdev in card->ports[]->dev. Freeing is done just before freeing
card. Pointer back to card->ports[] is stored in hdlc->priv. port_to_dev()
and dev_to_port() rewritten in the obvious way; by now the rest of driver
doesn't care whether hdlc is embedded or not - everything uses port_to_dev()
and dev_to_port().
That killed embedded hdlc replacing it with pointer to net_device. Fairly
similar work will be done in the next few patches for other drivers.
Additionally, setup-after-register and free_irq()-before-unregister races
had been fixed.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] kill embedded struct in various drivers
Killed embedded hdlc in hd6457x.c derivatives (same as wanxl in previous
patch)
<viro@parcelfarce.linux.theplanet.co.uk>
[wan pc300] use alloc_hdlcdev()/free_hdlcdev(). Leak fixed
<viro@parcelfarce.linux.theplanet.co.uk>
[wan farsync] embedded struct hdlc_device removal
Removed embedded hdlc in farsync (same as for wanxl and friends).
setup-after-registration race fixed.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan dscc4] embedded struct removal
Killed embedded hdlc in dscc4 (same as for other drivers). Fixed a
setup-after-registration race.
That was the last user of hdlc_to_dev(); killed.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] removal hdlc_to_dev()
No more users, we may remove it.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc] kill embedding of struct net_device
Now we can kill the embedding of net_device into hdlc_device. Indeed,
all instances of hdlc_device are created by alloc_hdlcdev() and nothing
uses hdlc->netdev directly. So we can
* remove hdlc->netdev
* have alloc_hdlcdev() implemented via alloc_netdev() with the rest
of hdlc_device as private part of net_device.
* replace free_hdlcdev() with free_netdev().
* have dev_to_hdlc(dev) simply return netdev_priv(dev).
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hdlc_fr] Switched allocation of net_device to alloc_netdev().
<viro@parcelfarce.linux.theplanet.co.uk>
[wan hostess_sv11] sane net_device allocation
Sane allocation in sv11. Switched it to SET_MODULE_OWNER(), while we are
at it. Fixed a leak on exit and destroy-before-unregister race.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan sbni] sane net_device allocation; plug a bunch of leaks
Plugged a bunch of leaks in sbni. Replaced check_region() with intended
request_region() in pci probe (BTW, that bugger should be turned into
normal PCI driver at some point).
<viro@parcelfarce.linux.theplanet.co.uk>
[wan sealevel] Plugged a leak
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr tun] Killed bogus ->init()
<viro@parcelfarce.linux.theplanet.co.uk>
[wireless airo] switched to sane allocation.
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr s390/netiucv] partially sanitized wrt allocation
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr fec] switched to sane allocation. It still leaks on failure exits,
though.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan sdla] Fixed leaks and double-free
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr isa-skeleton] cleanups and fixes
isa-skeleton.c got the same changes as actual ISA drivers - dynamic
allocation,
leak fixes, clobbering fixes, fix for IO-before-request_region().
<viro@parcelfarce.linux.theplanet.co.uk>
[all over] more kfree -> free_netdev
Remaining kfree -> free_netdev replacements (easy part of free_netdev()
fixes)
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr acenic] Race and leak fixes
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr 3c509] Leak fixed
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr apne] resource leak fix
<viro@parcelfarce.linux.theplanet.co.uk>
[wireless orinoco] check alloc_etherdev for failure
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr s390/lcs] Leak fix
lcs_cleanup_channel() is not enough there, we need full
lcs_cleanup_card() (e.g. to free netdev)
<viro@parcelfarce.linux.theplanet.co.uk>
[wan] leak fixes in hostess_sv11, lapbether
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr arm/am79c961] Fix for IO-before-request_region race
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr saa9730] fix double-free
Fixed double-free in saa9730.c (caller of that function does free_netdev()
itself if we return an error).
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr arch/uml] leak fix
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr dvb/dvb_net] fixes
Don't leave dvbnet->device[...] dangling after we free the sucker
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr shaper] fix double-free
Fix for double-free (we do explicit free_netdev() after unregister_netdev()
in shaper.c)
<viro@parcelfarce.linux.theplanet.co.uk>
[netdrvr s390/qeth] Alloc fixes
<shemminger@osdl.org>
[PATCH] bugfixes for dgrs.c
Update the RightSwitch dgrs.c driver for net-drivers-2.5-exp (2.6.1-rc3)
to resolve some of the outstanding cruft there. Al may have a better/newer
patch.
* Don't copy net_device structure on slave device! This won't work
because of state variables in structure.
* make sure and request_regions before doing i/o to the card
* use cpu_relax rather than barrier while spin waiting
* don't use dev->init to do the probing work because hard to get unwind
correct
* Use new pci/eisa probing model, don't search the bus directly
Beneficial side effect, don't need to keep on device list anymore.
* Be more careful about releaseing resources in error paths
Compiled and module loaded/unloaded, but don't have this hardware.
<viro@parcelfarce.linux.theplanet.co.uk>
Remove unused and invalid 'struct ppp' definition from if_pppvar.h.
<jgarzik@redhat.com>
Eliminate ancient and unused include/linux/{if_pppvar,ppp}.h.
Well, unused except for one silly constant in isdn_ppp.c.
<scott.feldman@intel.com>
[netdrvr e100] fix slab corruption
* Addresses two problems, both resulting in slab corruption: 1)
driver indicating skb while HW is still DMA'ing (ouch!), 2)
driver not stopping receiver activity before downing i/f.
Fix is 1) wait for RNR (receiver-no-resources) interrupt
before restarting receiver, 2) reseting HW to stop receiver
before stopping i/f.
This issue was also reproducible with eepro100. You need to turn off
the copybreak, and reduce the number of descriptors to 4. Then bang on
it with pktgen with 60-byte packets, with slab debugging enabled.
For e100-3.0.x, the issue was a lot easier to reproduce with NAPI,
because NAPI polls independently of where the HW is at, so it's easier
for us to catch HW in the middle of finishing off the last Rx (as
it runs out of resources) and asking HW if it's idle. Checking the
RU status is not-reliable! That's the problem, and the mistake both
eepro100 and e100-3.0.x were making.
The solution is rely on RNR interrupts as the only indicator that HW is
truly done, and then we're ready to restart the RU. We should only get
RNR interrupts when we overrun the Rx ring. With NAPI, if the ring is
overrun, we'll post RNR, but not restart the RU until we're out of
polling. Without NAPI, we'll restart the RU as soon as we get RNR.
I ran some 24-hour tests with and without NAPI (with 4 descriptors)
and didn't get any corruption. Prior to this patch, I would get many
errors about slab corruption.
Also, the patch is larger than you might expect, but I initially thought
I was doing something wrong with managing the <list.h> ring, so I that
code using old fashion double-link list. The ring management wasn't the
problem, after all, but I prefer the old-fashion d-link implementation
as it's easier to read.
<scott.feldman@intel.com>
[netdrvr e100] copyright + trailing blanks + misc
* Misc: 2004 copyright, remove trailing white space, remove some
unused symbols.
<viro@parcelfarce.linux.theplanet.co.uk>
[wan] apply hdlc cleanups to new driver pci200syn
<rth@are.twiddle.net>
[ALPHA] Mark exit_code before waking process for SINGLESTEP.
From Aneesh Kumar <kvaneesh@yahoo.com>.
<jgarzik@redhat.com>
[IA32] VIA C3 crypto/RNG bits
* Enable ACE (crypto) and RNG units on bootup.
* Do not disable RNG unit when unloading hw_random module.
* New bits listed in /proc/cpuinfo: rng_en, ace, ace_en
* Add ACE-associated constants to cpufeature.h
<bcollins@debian.org>
IEEE1394(r1118): Addition of new config-rom processing code
<willy@debian.org>
[TG32]: Use pci_get_slot() to find 5704 peers, to handle domains properly.
<kazunori@miyazawa.org>
[IPV6]: Unify ipv6 output routine.
<yoshfuji@linux-ipv6.org>
[NET]: Kill bogus kmem cache alignment in neigh_table_init().
<grundler@parisc-linux.org>
[TG3]: Reset GRC, if necessary, before DMA test.
With help from Michael Chan.
<linux@kodeaffe.de>
[NET]: Mention tuxmobil.org in drivers/net/Kconfig.
<shaggy@austin.ibm.com>
JFS: get_UCSname does not need nls_tab argument
This is a minor code cleanup. get_UCSname can get nls_tab by
following the dentry to the superblock. This makes the calling code
simpler and prettier.
<yoshfuji@linux-ipv6.org>
[IPV6]: Clean up ndisc printks.
<grundler@parisc-linux.org>
[PKTGEN]: Fix unintentional unaligned access.
<yoshfuji@linux-ipv6.org>
[IPV6]: Spelling corrections, and remove some XXX's
<brazilnut@us.ibm.com>
[NET]: Fix ethtool oops if device support get but not set ringparam.
<miguel@cetuc.puc-rio.br>
[NET_SCHED]: Fix slot leakage in SFQ scheduler.
<kas@informatics.muni.cz>
[NET]: Do not send negative 2nd arg to skb_put().
With help from Yoshfuji Hideaki.
<yoshfuji@linux-ipv6.org>
[IPV6]: Kill remaining in6_u.u6_addrX uses.
<petri.koistinen@iki.fi>
[IRDA]: Fix URLs in Kconfig.
<petri.koistinen@iki.fi>
[HAMRADIO]: Fix URLs in Kconfig.
<shaggy@austin.ibm.com>
JFS: Don't do filename translation by default
Due to its roots in OS/2, JFS has always tried to convert pathnames
into unicode. Unfortunately, it never had a reliable idea of what
the incoming character set was, so it defaulted to CONFIG_NLS_DEFAULT.
This behavior was confusing and many users have requested that JFS
have a more sane behavior. This patch changes the default behavior
to store the incoming bytes directly without translation. This is
consistent with the behavior when the default value of
CONFIG_NLS_DEFAULT (iso8859-1) was defined. The default behavior
can be overridden by using the iocharset mount option.
<dlstevens@us.ibm.com>
[IPV6]: Except MLD packets from source filtering.
Co-authored with Yoshfuji Hideaki.
<davem@nuts.davemloft.net>
[IPV6]: Kill 64-bit warnings in ndisc.c
<davej@redhat.com>
[CPUFREQ] Update URL.
<jgarzik@redhat.com>
[libata] catch, and ack, spurious DMA interrupts
Hardware issue on Intel ICH5 requires an additional ack sequence
over and above the normal IDE DMA interrupt ack requirements. Issue
described in post to freebsd list:
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html
Since the bug workaround only requires a single additional PIO or
MMIO read in the interrupt handler, it is applied to all chipsets
using the standard libata interrupt handler.
Credit for research the issue, creating the patch, and testing the
patch all go to Jon Burgess.
<len.brown@intel.com>
[ACPI] revert previous AML param patch for ACPICA update
<len.brown@intel.com>
[ACPI] ACPICA 20040211 udpate from Bob Moore
Completed investigation and implementation of the
call-by-reference mechanism for control method arguments.
Fixed a problem where a store of an object into an indexed
package could fail if the store occurs within a different
method than the method that created the package.
Fixed a problem where the ToDecimal operator could return
incorrect results.
Fixed a problem where the CopyObject operator could fail
on some of the more obscure objects (e.g., Reference objects.)
Improved the output of the Debug object to display buffer,
package, and index objects.
Fixed a problem where constructs of the form "RefOf (ArgX)"
did not return the expected result.
Added permanent ACPI_REPORT_ERROR macros for all instances of the
ACPI_AML_INTERNAL exception.
<jt@bougret.hpl.hp.com>
[IRDA]: Add stir4200 driver.
After a long maturation, this is time to send you the latest
version of the stir4200 USB driver. Initially started by Paul Stewart,
modified by Martin Diehl and me, and later partially rewriten by
Stephen Hemminger.
The hardware has many quirks. This is the first version that
work reliably at SIR and mostly work at FIR. We may never get optimal
operation from this hardware due to its pecularities, but at least its
now usable.
<davem@nuts.davemloft.net>
[IRDA]: Forgot to add stir4200.c in previous commit.
<herbert@gondor.apana.org.au>
[IPSEC]: Move hardware headers for decaped packets.
Move the hardware header so that it appears next to the payload for AF_PACKET
sockets.
<grundler@parisc-linux.org>
[TG3]: Abstract out mailbox workarounds into tw32_{rx,tw}_mbox().
<ja@ssi.bg>
[IPV4]: Add configurable restriction of local IP announcements in ARP
requests.
<romieu@fr.zoreil.com>
[IRDA]: Fix error return status in stir4200 driver.
If stir_reset() succeeds, stir_net_open() must not return a
success status code for every failure until irlap_open().
<romieu@fr.zoreil.com>
[IRDA]: In stir4200 driver, defer netif_start_queue() until device opening
succeeds.
<petri.koistinen@iki.fi>
[WAN]: Kconfig clean-up and update URL links.
<wensong@linux-vs.org>
[IPVS] remove the superfluous call of waitpid in sync code
<wensong@linux-vs.org>
[IPVS] retry to run kernel_thread when memory is temporarily exhausted
<wensong@linux-vs.org>
[IPVS] update the version number of code to 1.2.0
<hch@lst.de>
[SUNGEM]: Kill unused variable on ppc.
<grundler@parisc-linux.org>
[TG3]: Define MBOX_WRITE_REORDER flag to zero on non-x86.
<sri@us.ibm.com>
[SCTP] Revert back to use kmalloc() for ssnmap allocs of sizes < 128K.
<davej@redhat.com>
[CPUFREQ] bump copyrights.
<david-b@pacbell.net>
[PATCH] USB: EHCI updates (mostly periodic schedule scanning)
[USB] EHCI updates
Update periodic schedule scanning
- fix shutdown sometimes-hangs (Bernd Porr)
- resolve the "whole frame at once" FIXME
- try harder to avoid rescanning
- don't delegate interrupt qh handling to a buggy helper routine
- describe more of the relevant iso tuning parameters
One-liners:
- URB_NO_INTERRUPT hint affects ISO
- show correct data toggle in sysfs debug files
- FIXME is resolved by Linus' 20msec delay
<pmarques@grupopie.com>
[PATCH] USB: fix usblp.c
The line that IMHO triggers the bug is this:
"writecount += usblp->writeurb->transfer_buffer_length;"
It uses "usblp->writeurb->transfer_buffer_length" before initializing it,
assuming that it will be zero on the first run. If it is not zero, but
instead
random *negative* garbage from memory, the loop will start printing endless
data
from user-space data.
<abbotti@mev.co.uk>
[PATCH] USB: ftdi_sio new PIDs and name fix for sysfs
This patch adds a couple of new PIDs for the ftdi_sio driver and
changes the name of the USB-UIRT device to avoid the "/" character,
as that appears as a directory separator in the sysfs namespace.
<dlstevens@us.ibm.com>
[IPV6]: Add sysctl to force MLD version.
<kberg@linux1394.org>
IEEE1394(r1125): Set host field of hpsb_address_serve struct when
registering address spaces.
<bcollins@debian.org>
IEEE1394(r1126): Small cleanup based on patch from Isaac Claymore.
<bcollins@debian.org>
IEEE1394(r1128): Implement bus reset handling for hosts (based on patch from
Oracle)
<bcollins@debian.org>
IEEE1394(r1129): Initial support for reusing node entries over plug/unplug
cycles
<bcollins@debian.org>
IEEE1394(r1130): Conversion of some list_for_each() usages to
list_for_each_entry().
<bcollins@debian.org>
IEEE1394/OHCI(r1131): Suspend/resume isn't dependent on CONFIG_PM.
<kberg@linux1394.org>
IEEE1394(r1132): Update Kconfig description of the eth1394 driver.
<bcollins@debian.org>
IEEE1394: Sync revisions
<bcollins@debian.org>
IEEE1394(r1134): Fix some typos introduced over the last few changes
<bcollins@debian.org>
IEEE1394(r1135): Initial ieee1394_host_class implementation.
<bcollins@debian.org>
IEEE1394(r1136): Implement node class
<davem@nuts.davemloft.net>
[TG3]: Two more PHY bug workaround, plus fix DMA test on big-endian.
<domen@coderock.org>
[PATCH] USB: some stv680 fixes
- swapRGB is already initialized to 0
- change "swapRGB_on == 1" to match in-source documentation
- submit urb with GFP_ATOMIC (interrupt context) - this made driver
unusable because of "might_sleep" messages.
- group some "case"s
- release vdev on fail
- remove "kfree(0)" checking
<davem@nuts.davemloft.net>
[TG3]: Fix early chip programming in tg3_setup_copper_phy().
1) First action must be to set MAC_EVENT to zero.
2) Do not forget to clear MI_COMPLETION/LNKSTATE_CHANGED
status bits in MAC_STATUS register.
This fixes the bug wherein the link does not come up at all
at the first ifup done after tg3 module load.
<stern@rowland.harvard.edu>
[PATCH] USB: Remove unneeded and error-provoking variable in UHCI
This patch removes an unneeded "status" field from the UHCI driver's
URB-private data structure. The driver had been storing the status of
completed URBs there rather than in the URBs themselves. This not only is
wasteful of space but is also a cause of bugs, since the USB core relies
on urb->status for proper synchronization with the driver.
The patch also takes care of a number of small things that have been
bugging me for ages:
Close a small loophole by allowing an URB to be unlinked even
before the uhci_urb_enqueue() procedure has started.
Remove some fossil code from back when interrupt URBs were
automagically resubmitted.
Giveback unlinked URBs in the order they were unlinked.
Don't set urb->status for dequeued URBs; the core has already
set it for us.
Rename uhci_remove_pending_qhs to uhci_remove_pending_urbps.
(That has _really_ bothered me!)
<davem@nuts.davemloft.net>
[TG3]: Bump driver version and reldate.
<stern@rowland.harvard.edu>
[PATCH] USB: Even out distribution of UHCI interrupt transfers
This patch evens out the distribution of interrupt transfers for the UHCI
driver. It insures that no frame must handle interrupt queues for more
than two different periods, thus improving the bandwidth utilization.
It also simplifies the initialization code by replacing a multi-nested
"if" statement with a simple bit-operation (thanks to Eric Piel for
suggesting this approach).
<stern@rowland.harvard.edu>
[PATCH] USB: ERRBUF_LEN compiling error when PAGE_SIZE=64KB on IA64
Randy, thanks for forwarding this to me.
> Johannes,
>
> When I compile base kernel 2.6.1 with PAGE_SIZE=64KB on an IA64
> platform, there is an error.
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> drivers/built-in.o(.init.text+0x168a2): In function `uhci_hcd_init':
> : undefined reference to `__you_cannot_kmalloc_that_much'
> make: *** [.tmp_vmlinux1] Error 1
>
> That's because ERRBUF_LEN (equal to PAGE_SIZE*8) is too long when
> PAGE_SIZE=64KB. Actually, there was a similar error found by Tony. See
> http://marc.theaimsgroup.com/?l=linux-ia64&m=105604765306485&w=2.
>
> Could you change the definition of ERRBUF_LEN to a fixed value? For
> example, 32*1024?
>
> Yanmin
Yanmin, I'm the new maintainer for the UHCI driver. Yep, that's a
definite error. This will fix it.
Also included in this patch: change some confusing references from "high
speed" to "full speed" and add proper hyphenation.
<stern@rowland.harvard.edu>
[PATCH] USB: Simplify locking in UHCI
This patch is an amalgam of 9 contributions from Stephen Hemminger. It
begins the process of straightening out the use of semaphores and locking
in the UHCI driver by removing unneeded irqsaves and irqrestores. It
also removes an unnecessary list node and makes a couple of other small
changes.
clear_next_interrupt only called in IRQ context don't need irqsave/restore
Since uhci_finish_completion is only called from IRQ routine,
the irqsave/irqrestore is redundant and unnecessary.
UHCI transfer_result is only called from IRQ context
so irqsave/restore is unnecessary here.
uhci_finish_urb is always called from irq so
no need for irqsave/irqrestore.
uhci_add_complete only called from IRQ context
The complete_list element in the urb private data is redundant,
since it is only used when the urb is on the complete list.
And given the state transitions, an urb can't be on the complete list
and any other list (remove, or urb_list).
Therefore just use urb_list to link the complete_list
Use list_move_tail to move between remove (or urb_list) and the
complete_list.
Save irq state in uhci_stop so that the irqsave/irqrestore's
in all the free_pending and remove_pending code can be eliminated.
Since uhci_stop now saves IRQ state, the free/remove pending routines
no longer need irqsave/irqrestore.
<stern@rowland.harvard.edu>
[PATCH] USB: Mask "HC Halted" bit in the UHCI status register
Contrary to the UHCI specification document, in real controllers the "HC
Halted" bit in the status register cannot be cleared by writing a 1. It
will persist for as long as the controller is halted. Hence the bit needs
to be masked away before checking whether or not the controller initiated
an interrupt.
Without this patch, other devices sharing the same IRQ line might not get
serviced while the host controller is suspended, because the always-on
status bit would cause the UHCI driver to report that it had handled the
interrupt.
<stern@rowland.harvard.edu>
[PATCH] USB Storage: Handle excess 0-length data packets
This patch is an attempt to cope with Genesys Logic's, shall we say,
creative approach to implementing the USB protocols. Their high-speed
mass storage devices sometimes add an excess 0-length packet to the end of
a data phase transmission. Of course we don't read that packet as part of
the data phase; we see it as a 0-length CSW message. The real CSW follows
immediately after. (Or sometimes a STALL follows immediately after, with
the real CSW coming after that!)
The patch checks the results of the first attempt to read the CSW. If it
sees a normal packet (not a STALL) with length 0, it retries the read.
Reports from two users indicate that it improves the performance of their
USB-2 DVD drives.
<stern@rowland.harvard.edu>
[PATCH] USB Storage: Treat STALL as failure for CB[I]
I recall something like this had to be changed a while ago, but it looks
like it's still not right. A STALL during either the command or data
phase of a CB[I] command should indicate a failure.
<stern@rowland.harvard.edu>
[PATCH] USB Storage: Reduce auto-sensing for CB transport
This patch addresses a problem common among digital cameras that use the
CB transport. Namely, too much auto-sensing confuses them; particularly
auto-sensing after INQUIRY.
I've made some traces of a Windows 2000 driver to see what it does (data
sent to Andries Brouwer for inclusion on his web site; I'll announce
when it's ready for viewing). Basically, it almost never sends REQUEST
SENSE unless it received a STALL from the device.
That's a pretty bogus way to operate, because it means that Windows has no
way to tell when the device has finished executing a command if the
command doesn't involve an IN transfer. Even after a lengthy WRITE,
Windows continues to transmit more commands without regard for whether or
not they will get overwritten in the device's internal buffer (and hence
not executed). Indeed, exactly that happened with some of the commands in
one of my traces.
To be safe, we must follow every non-IN transfer with an auto-sense, but
IN transfers that don't stall can be considered to have succeeded.
That's what this patch does. It reduces auto-sensing by a considerable
factor, probably close to half. It also fixes the problem with INQUIRY,
since INQUIRY involves an IN data transfer.
<mdharm-usb@one-eyed-alien.net>
[PATCH] USB Storage: Save the SCSI residue value when auto-sensing
This patch (a regeneration of as173) saves the residue value of a command
when doing an auto-sense.
Not that it really matters much -- almost nobody looks at that value. But
it's definately incorrect the way it is, and this fixes it.
<mdharm-usb@one-eyed-alien.net>
[PATCH] USB Storage: Reduce unsolicited auto-sense
This patch (a regeneration of as185) reduces the amount of auto-sensing we
do even further. It also zeros-out the sense buffer in those cases where
we do auto-sense and get back no error.
<mdharm-usb@one-eyed-alien.net>
[PATCH] USB Storage: Fix small endian-ness bug
This patch fixes up a small endian-ness bug from mid-January.
<stern@rowland.harvard.edu>
[PATCH] USB Storage: unusual_devs.h fixup
On 15 Feb 2004, Frank D. Cringle wrote:
> Hi,
>
> my syslog requests that I send this message. See below regarding
> usb-storage: This device ... has an unneeded SubClass entry in
unusual_devs.h
> Feb 15 00:11:16 dagger usb-storage: This device (07cf,1001,1000 S 05 P 00)
has an unneeded SubClass entry in unusual_devs.h
> Feb 15 00:11:16 dagger Please send a copy of this message to
<linux-usb-devel@lists.sourceforge.net>
Thank you for sending this in.
Greg, it looks like an earlier patch changed too much. Here is the fix.
Also included in this patch:
Moved several entries that were in the wrong positions.
Removed an entry (0x08ca, 0x2011) that could never be used
because the preceding entry always would take precedence.
<dsaxena@plexity.net>
[PATCH] USB: Fix USB host code to use generic DMA API
<sri@us.ibm.com>
[SCTP] Force enable Crypto options that are needed by SCTP config.
<ja@ssi.bg>
[IPV4]: Add sophisticated ARP reply control via arp_ignore sysctl.
<mbligh@aracnet.com>
[NET]: Ditch TSO in loopback driver, it's had enough testing.
<wesolows@foobazco.org>
[SPARC32] Uninline atomic_t functions to save space.
<mgreer@mvista.com>
[PATCH] PCI: Changing 'GALILEO' to 'MARVELL'
I'm working with some Marvell components (formerly Galileo Technologies)
and noticed that the entries in include/linux/pci_ids.h have become
dated. I have attached a patch that changes 'GALILEO' to 'MARVELL',
adds some more devices, and updates the uses of the macros in the code.
Please note that the newer marvell parts start with 'MV' instead of 'GT'
to represent the new name. Also, I didn't change all uses of galileo to
marvell, only the macro in pci_ids.h.
<tlnguyen@snoqualmie.dp.intel.com>
[PATCH] PCI: add copyright for files msi.c and msi.h
First I would like to say sorry for not responding immediately after
receiving
your email mentioning Copyright. I have contacted Intel Legal for proper text
upon receiving this email; but have not received any response. As a result of
team discussion, the attached patch, based on Linux kernel 2.6.3-rc2,
includes
the Intel Copyright for files: msi.h and msi.c.
<willy@debian.org>
[PATCH] PCI: Fix pci_bus_find_capability()
pci_bus_find_capability() is currently broken. It checks the wrong
device's hdr_type for being a cardbus bridge or not. This patch pulls
the guts of pci_bus_find_capability() and pci_find_capability() into a
new function __pci_bus_find_cap() and changes these two functions to
call it.
<ambx1@neo.rr.com>
[PATCH] PCI: remove unused defines in pci.h
It occured to me that we also have the following related code in pci.h:
Perhaps this should be removed as well?
<ak@suse.de>
[PATCH] Intel x86-64 support merge
This has all the x86-64 specific changes for Intel Prescott/Nocona
support.
It requires a few minor changes outside arch/x86_64, which I am sending
separately.
This patch is needed to boot an 64bit kernel on a 64-bit capable
Prescott machine.
The ugliest part is probably the swiotlb code. In fact the code for
that is not even included, but just reused from IA64. swiotlb
implements the PCI DMA API using bounce buffering. I don't like this at
all, but there was no other way to support non DAC capable hardware
(like IDE or USB) on machines with >3GB. Please redirect all flames for
that to the Intel chipset designers.
ChangeLog:
- Add Kconfig options for PSC
- Add support to reuse microcode driver from i386 (Suresh B Siddha)
- Try to optimize for the selected CPU
- Fix early CPUID check for Intel CPUs (Suresh B Siddha)
- Fix GDT to use the configured cache line size for padding
- Support monitor/mwait idle loop
- Support HyperThreading
- Support Intel CPUID flags
- Remove all 3dnow prefetches
- Add alternative() for the prefetchw prefetch inline.
- Include P4 driver in oprofile
- Support Intel NOPs in alternative
<ak@suse.de>
[PATCH] Update i386 microcode driver for x86-64
The microcode driver needs to support 64bit physical addresses too.
<ak@suse.de>
[PATCH] Enable Intel AGP on x86-64
Enable the Intel AGP driver for x86-64 too.
<ak@suse.de>
[PATCH] Allow P4 oprofile code for x86-64
P4 support was previously ifdefed out for x86-64, remove that.
<maeda.naoaki@jp.fujitsu.com>
[PATCH] ia64: fix possible memory leak in PCI alloc_resource()
<pfg@sgi.com>
[PATCH] ia64: add "platform_data" to struct pci_controller, update SN2
accordingly
Here's a small mod for Altix. It breaks up our 'pci fixup' function and
has some other smallish clean ups.
For the ia64 crowd I've added 'platform_data' to struct pci_controller.
<dlsy@snoqualmie.dp.intel.com>
[PATCH] PCI Hotplug: Add SHPC and PCI Express hot-plug drivers
<lxiep@linux.ibm.com>
[PATCH] PCI Hotplug: Add PPC64 PCI Hotplug Driver for RPA
<johnrose@austin.ibm.com>
[PATCH] PCI Hotplug : add DLPAR driver for PPC64 PCI Hotplug slots
Please consider the following patch for submission. This patch contains the
implementation of the I/O Slot DLPAR Drivers for PPC64 RISC Platform
Architecture. This module depends on the RPA PCI Hotplug Module in the
previous post. The patch is made against kernel version 2.6.3-rc2.
The Dynamic Logical Partitioning Module allows the runtime movement of I/O
Slots between logical partitions. An administrator can logically add/remove
PCI Buses to/from a PPC64 partition at runtime. These operations are
initiated
using interface files located at:
/sys/bus/pci/pci_hotplug_slots/control/
Development contact for this module is John Rose (johnrose@austin.ibm.com).
<wensong@linux-vs.org>
[IPVS] tidy up the header files to include
<davem@nuts.davemloft.net>
[APPLETALK]: Use '%Z' for size_t.
<david-b@pacbell.net>
[PATCH] USB: usbcore, scatterlist cleanups
[USB] minor usb_sg_wait() cleanups
- count urb completions correctly when there's a non-recoverable
fault during scatterlist submission ... prevents a hang (seen
only with already-faulty usb-storage devices).
- don't local_irq_{save,restore}() when not needed
<david-b@pacbell.net>
[PATCH] USB: usbcore, hub driver enables TT-per-port mode
[USB] hub driver turns on multi-TT mode
This turns on the multi-tt mode in hubs that support it; the Cypress
"TetraHub" products are appearing at retail now, complete with some
of the first Mini-B connectors I've seen shipping.
This will be important for hooking up lots of full speed isochronous
devices (audio, video, etc).
<david-b@pacbell.net>
[PATCH] USB: usbcore, avoid RNDIS configs
[USB] usbcore avoids RNDIS configuration.
Modifies the "choose a configuration" heuristic to recognize the other
case that 2.4 handled: RNDIS, a MSFT protocol that's sometimes used as
the first/default configuration (as specified by MSFT) on cable modems.
CDC Ethernet is vendor-neutral, and preferred (except by MSFT).
The initial version didn't catch RNDIS because it cloaks its ethernet
links as a kind of CDC ACM (modem) device.
<david-b@pacbell.net>
[PATCH] USB: usbtest, two more protocol cases
[USB] usbtest, two more control queueing subtests
From Alan Stern. This adds two more "short control read" test cases,
both padding the "expected" transfer to end-of-packet. We need both
hosts and devices/gadgets to behave correctly here.
<davem@nuts.davemloft.net>
[BLUETOOTH]: Use min_t to avoid warning in rfcomm sock.c
<davem@nuts.davemloft.net>
[DECNET]: Make second arg to dn_alloc_send_skb a size_t pointer.
<david-b@pacbell.net>
[PATCH] USB: ehci-hcd, fullspeed iso data structures (1/3)
[USB] start ehci split transaction support
Updates split ISO transaction descriptor structure, add bitmask #defines;
it's groundwork for full speed ISO support in EHCI. Updates periodic
schedule scanning, and bandwidth calculations accordingly.
Fixes bandwidth calculation to behave when the periodic schedule has
entries of multiple types ... as will be more common as ISO support
starts to be used here.
<david-b@pacbell.net>
[PATCH] USB: ehci-hcd, fullspeed iso data structures (2/3)
[USB] ehci, rename some iso data structures
Rename some data and functions used by EHCI to manage ISO transactions,
since they currently assume only high speed transfers. Much of the same
infrastructure will be used for full speed ISO, with split transactions.
<david-b@pacbell.net>
[PATCH] USB: ehci-hcd, scheduler handles TT collisions (3/3)
[USB] ehci-hcd detects microframe transaction scheduling collisions
This detects TT schedule collisions for split periodic transactions
on USB 2.0 hubs, handling both isochronous and interrupt transfers
but not supporting the "wrap around to the next frame" modes for
either transfer type.
The ISO scheduler is modified to use that support for full speed
transfers ... though nothing will yet ask it to do that.
It also tracks schedule depth, to help avoid accepting ISO URBs
which need more time than currently remains unscheduled.
<kaber@trash.net>
[PKTSCHED]: Use queue limit of 1 when tx_queue_len is zero.
<greg@kroah.com>
PCI: fix pci quirk for P4B533-V, fixes bug 1720
Thanks to stephanrave@gmx.de (Stephan Rave) for the patch.
<stern@rowland.harvard.edu>
[PATCH] USB: Improve UHCI root hub code: descriptor, OC bits, etc.
This patch is from David Brownell.
UHCI root hub updates ... minor bugfixes and cleanups, improving
conformance with the USB hub specification.
- UHCI doesn't support any kind of power switching; so modify the
hub descriptor to stop claiming it does! Likewise fail attempts
to disable power on any port.
- Intel defined both overcurrent status overcurrent-change bits, but
the current code only knows about one. Modify hub descriptor to
report per-port overcurrent protection; and use both bits.
- Modify the port status set/clear macros to know about the bits
that must always be written as zero, and the write-to-clear bits.
Update callers which wrote "set" instead of "clear".
- Rewrote code returning port status; magic numbers are gone.
- Driver can't really support 8 root hub ports; don't try.
Also moves the #define DEBUG earlier so that it can kick in any of
the various debug macros ... like pr_debug() and dev_dbg().
<stern@rowland.harvard.edu>
[PATCH] USB: More UHCI root hub code improvements
This adds some minor improvements to the UHCI root hub code. The only
important change is that it handles the overcurrent indicator bits on VIA
controllers properly; they are reported using the opposite sense from
Intel controllers.
Report the OverCurrent status bits in the /proc debugging file
and spontaneously change the use of whitespace.
Remove unused variable in uhci_hub_status_data().
Report OverCurrent status for VIA controllers properly (the
meaning of the status bit is inverted with respect to Intel
controllers).
Save the port status I/O address in a variable rather than
recalculating it many times.
Merge code for handling SetHubFeature and ClearHubFeature since
we don't implement either one.
Remove some unnecessary comments.
Remove redundant min_t calculation.
<torvalds@home.osdl.org>
Fix up the microcode update on regular 32-bit x86. Our wrmsr()
is a bit unforgiving and really doesn't like 64-bit values.
We should possibly make wrmsr() automatically truncate the
arguments, but regardless we should just fix microcode.c.
<bcollins@debian.org>
IEEE1394(r1137): Check to make sure we have a hostinfo in sbp2_host_reset.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] move CONFIG_HOTPLUG to init/Kconfig
As a bonus: cris, h8300, m68k and sparc can use CONFIG_HOTPLUG now.
<johnstul@us.ibm.com>
[PATCH] ia64: add support for time-interpolation via IBM EXA Cyclone timer
This patch provides access to the cyclone time source found on IBM EXA
based systems (x450 and x455). This is needed on multi-node systems
where the CPU ITCs are not synchronized, causing possible time
inconsistencies.
This release fixes one last minor think-o and ran overnight without any
time inconsistencies (when used in conjunction w/ the
time-interpolator-fix_A0 patch).
<brazilnut@us.ibm.com>
[PATCH] 2.6.3 pcnet32.c bus master arbitration failure fix
Here is the first of several individual patches to 2.6.3 for the pcnet32
driver.
The driver did not properly serialize accesses to chip registers, resulting
in reading/writing the wrong register. This patch eliminates this problem
and gets rid of the cause of the symptom of 'bus master arbitration failure'.
It was easier to use generic_mii_ioctl than modify the current pcnet32_ioctl
routine with the necessary locks. This has been re-tested on an IA32 system.
<shemminger@osdl.org>
[PATCH] hp100 pci probe problem
Jean discovered problem with my hp100 PCI changes.
This should fix the problem... The multi-bus probe logic error handling was
botched.
He validated it; so please apply
<brazilnut@us.ibm.com>
[PATCH] 2.6.3 pcnet32.c SLAB_DEBUG length error fix
The pcnet32 driver uses the incorrect length (of zero) in
pci_[un]map_single for receive buffers. This is seen with SLAB_DEBUG
enabled.
Tested in IA32 system. If this patch is not applied after my previous
one hunks #1, #3, and #5 will have an offset of -2 lines.
<mlindner@syskonnect.de>
[PATCH] sk98lin: Added Support for Belkin adapter
Patch 1/2
[SK98LIN]: Added Support for Belkin adapter
[SK98LIN]: Don't handle Yukon2 cards at the moment
<mlindner@syskonnect.de>
[PATCH] [kernel 2.6] sk98lin: Insert revision version and date
to uniquely identify the files, it's necessary to add the version of
each file. Please, don't remove the revision infos. It's really
important for us.
Patch 2/2
[SK98LIN]: Insert revision version and date [back] into the files
<pe1rxq@amsat.org>
[PATCH] 6pack reinit bug
This patch is the same as to mkiss a while ago, the current code triggers a
bug when reattaching a network device.
<shmulik.hen@intel.com>
[PATCH] Add support for HW accel. slaves
Now that David Miller accepted the first half of this set into 2.6,
I'm resending the last half to you for inclusion in netdev-2.6.
Tested against latest netdev-2.6. Summary:
Change the bond interface to publish full VLAN hardware acceleration
offloading capabilities, and add capability in all xmit functions to
take special care for VLAN HW accel. tagged skb's that are going out
through a slave that is not offloading capable.
Add a mechanism to collect and save the VLAN Id's that have been
added on top of a bond interface, and propagate the register/add/kill
operations to the slaves.
Add blocking mechanism to prevent adding VLAN interfaces on top of a
bond that contains VLAN challenged slaves and to prevent adding VLAN
challenged slaves to a bond that already has VLAN interfaces on top
of it.
Add a section about VLAN to Documentation/networking/bonding.txt and
also correct some minor spelling/grammer errors.
<shmulik.hen@intel.com>
[PATCH] Add VLAN support in TLB mode
Add capability to tag self generated learning packets that are
required to speed up port selection in the switch after a fail
over in bonding since some switches will only update their MAC
tables from tagged packets when VLAN support is turned on. All
VLAN Id's that have been configured on top of the bond interface
will be used in cyclic order.
<shmulik.hen@intel.com>
[PATCH] Add VLAN support in ALB mode
Add capability to tag self generated ARP packets that are required
for receive load balancing in bonding. VLAN Id's are saved and used
each time a new IP connection is established since 8021q currently
supports IP binding.
Update module version and comment blocks.
<jhf@rivenstone.net>
[netdrvr sis900] fix multicast bug
<jmorris@redhat.com>
[SELINUX]: Event notifications via netlink.
<davem@nuts.davemloft.net>
[SELINUX]: Forgot to add these in previous commit.
<rddunlap@osdl.org>
[PATCH] depca: remove double semi-colon
description: remove double semi-colon typo;
<brazilnut@us.ibm.com>
[PATCH] 2.6.3 pcnet32.c transmit hang fix
The transmit routine will stop interrupting and hang, causing the
tx_timeout routine to attempt to restart the device when the 32-bit
cur_tx counter wraps below dirty_tx. If the device had called
netif_stop_queue it will never call netif_wake_queue in the interrupt
routine (at least on an IA32 system) due to 32-bit wrap around arithmetic.
On my IA32 system 'dirty_tx > lp->cur_tx - TX_RING_SIZE + 2' would
always evaluate to false when dirty and cur_tx were less than 15,
preventing netif_wake_queue to be called.
By starting dirty_tx and cur_tx at 0xfffffff0 (to reduce test time) I
found that once cur_tx wrapped to zero, that transmitted buffers would
never be unmapped or freed because 'while (dirty_tx < lp->cur_tx) {'
was not true. cur_tx would keep incrementing (in start_xmit) but dirty_tx
would not (in pcnet32_interrupt), thus leaking skb's and pci map entries.
On PPC machines, the system would quickly run out of pci maps.
Fix tested on PPC and IA32.
<rddunlap@osdl.org>
[PATCH] tr/3c359: handle kmalloc failures during init
From: Pablo Menichini <pablo@menichini.com.ar>
and maximilian attems <janitor@sternwelten.at>
while looking at kj mails from 200212 and 200301
this patch slept through
originally from: Pablo Menichini <pablo@menichini.com.ar>
rediffed and compile tested
patch applies on plain 2.6.0
maximilian attems <janitor@sternwelten.at>
handle kmalloc failures during init
diff -puN drivers/net/tokenring/3c359.c~tr3c_kmalloc
drivers/net/tokenring/3c359.c
linux-261-bk4-kj1-rddunlap/drivers/net/tokenring/3c359.c | 13
+++++++++++++
1 files changed, 13 insertions(+)
<romieu@fr.zoreil.com>
[PATCH] 2.6.3 - drivers/net/sis190.c - Tx desc overflow
Tx descriptor overflow - take II.
Assume tp->dirty_tx = NUM_TX_DESC/2, tp->cur_tx = NUM_TX_DESC - 1,
watch "entry" go beyond NUM_TX_DESC. Actually this is where the same
bug in r8169 driver comes from.
<bcollins@debian.org>
IEEE1394(r1138): Cleanup nodemgr probe, and fix a bug with the driver update.
<akpm@osdl.org>
[PATCH] tulip printk warning fix
Don't assume the size of a dma_addr_t
<markh@osdl.org>
[PATCH] add card types to aacraid driver
This patch adds support for new RAID cards. Also removes two cards from
the list that were never products.
Makefile | 2
aacraid.h | 21 +++
linit.c | 32 +++-
rkt.c | 416
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
rx.c | 10 -
5 files changed, 465 insertions(+), 16 deletions(-)
<davej@redhat.com>
[CPUFREQ] Add extra __init markers to longhaul driver.
Caught by Randy Dunlap.
longhaul_cpu_init only gets called during startup, and calls
other __init routines.
<davej@redhat.com>
[CPUFREQ] Add extra __init markers to longrun driver.
Caught by Randy Dunlap.
longrun_cpu_init() only gets called during startup, and calls
other __init routines.
<hch@lst.de>
[PATCH] remove flush_cache_all() from qla1280
It's not needed with the new DMA API and isn't exported to modules on
some architectures. (See davem's qla2xxx patch for reference)
<davem@redhat.com>
[PATCH] qla2xxx: remove flush_cache_all
<akpm@osdl.org>
[PATCH] ISDN udpate
From: Karsten Keil <kkeil@suse.de>
- new port of 2.4 I4L core to 2.6
- new port of 2.4 I4L HiSax to 2.6
- fixes for I4L CAPI subsystem to make it stable in 2.6
- fix parameter handling of AVM ISA cards (calle)
- cleanup ISDN config variables
- SMP in act2000 and pcbit driver
- remove check_region in act2000
- mark hysdn, isdnloop and divert as BROKEN_ON_SMP
<akpm@osdl.org>
[PATCH] i4l: hisax deadlock fix
From: Karsten Keil <kkeil@suse.de>
This patch fix a deadlock in HiSax (reported from David Woodhouse
<dwmw2@infradead.org>). upper layer was called back while holding the card
lock fix is to move the wakeup call into BH handler to avoid direct
callbacks.
<akpm@osdl.org>
[PATCH] Fix for PPP activ/passiv filter
From: Karsten Keil <kkeil@suse.de>
I found a bug in the PPPIOCSPASS PPPIOCSACTIVE IOCTL implementation in
kernel 2.5/2.6.
The current pppd code use a empty filter (uprog.len=0) to detach the filter
in the kernel, but this code was removed in 2.5.71 while fixing a compiler
warning.
Here the new patch, also with better limit checking.
The second patch check for flen == 0 in the filter check too, since later
in this code a filter[flen - 1] access is done, which is not so funny with
flen 0. Maybe it's not really needed anymore, since with the first patch
it would not longer called with flen=0.
paulus says:
It looks correct. Previously we had (and in 2.4 we still have)
if (uprog.len > 0 && uprog.len < 65536) {
...
which gave warnings since uprog.len is unsigned short. So someone
decided that both parts of the condition were redundant.
<akpm@osdl.org>
[PATCH] ia32 early printk
From: Andi Kleen <ak@muc.de>
Implement VGA and serial early printk on x86. We just include the x86_64
version.
<akpm@osdl.org>
[PATCH] early printk tweaks
- Use __pa() around the VGA base address: more friendly for the 4g/4g split.
- Use cpu_relax() rather than open-coding rep_nop().
- Default to 9600 baud
- Move documentation to Documentation/kernel-parameters.txt
- Make CONFIG_EARLY_PRINTK disableable if CONFIG_EMBEDDED
<akpm@osdl.org>
[PATCH] Remove BDEV_RAW and friends
These no longer do anything.
This patch changes modules API. It was acked by Arjan@RH and Hubert@Suse.
<akpm@osdl.org>
[PATCH] msg.h needs list.h
msg.h uses list_head. (I'm not sure what config actually required this, but
it is legit).
<akpm@osdl.org>
[PATCH] ppc64: Fix prom.c warnings
arch/ppc64/kernel/prom.c:200: warning: missing braces around initializer
arch/ppc64/kernel/prom.c:200: warning: (near initialization for
`hmt_thread_data[0]')
arch/ppc64/kernel/prom.c: In function `prom_hold_cpus':
arch/ppc64/kernel/prom.c:1090: warning: implicit declaration of function
`_get_PIR'
<akpm@osdl.org>
[PATCH] ppc64: fix saved_command_line/cmd_line lengths
From: Anton Blanchard <anton@samba.org>
cmd_line was twice the size of saved_command_line but we did a strcpy from
the larger into the smaller. Create COMMAND_LINE_SIZE and use it.
<akpm@osdl.org>
[PATCH] ppc64: fix debugger() warnings
From: Anton Blanchard <anton@samba.org>
Fix compile warnings and add some type safety to debugger macros.
<akpm@osdl.org>
[PATCH] ppc64: iseries IRQ fix
From: Stephen Rothwell <sfr@canb.auug.org.au>
This patch lets 2.6.3-rc4 build and boot on an PPC64 iSeries box (at least
for my configuration). The veth.o bit in the networking Makefile got there
by accident and should be removed anyway ...
There is more to make it work properly (note the "Temporary hack"), but
this gets us closer.
<akpm@osdl.org>
[PATCH] loop: remove the bio remapping capability
This patch removes the loop feature wherein we remap BIOs for block-backed
loop. So file-backed and block-backed loop are handled identically.
It cleans up the code a lot and fixes the low-on-memory lockups which
block-backed loop currently suffers.
What we lose is the journalling ordering guarantees which
exts-on-loop-on-blockdev had. But dm-crypt provides that.
<akpm@osdl.org>
[PATCH] remove useless highmem bounce from loop/cryptoloop
From: Ben Slusky <sluskyb@paranoiacs.org>
The attached patch changes the loop device transfer functions (including
cryptoloop transfers) to accept page/offset pairs instead of virtual
addresses, and removes the redundant kmaps in do_lo_send, do_lo_receive,
and loop_transfer_bio. Per Andrew Morton's request a while back.
<akpm@osdl.org>
[PATCH] loop: BIO handling fix
From: Ben Slusky <sluskyb@paranoiacs.org>
One more patch --- this fixes a minor bio handling bug in the filebacked
code path. I'd fixed it incidentally in the loop-recycle patch.
I don't think you could actually see damage from this bug unless you
run device mapper on top of loop devices, but still this is the correct
behavior.
<akpm@osdl.org>
[PATCH] loop.c doesn't fail init gracefully
From: BlaisorBlade <blaisorblade_spam@yahoo.it>
loop_init doesn't fail gracefully for two reasons:
1) If initialization of loop driver fails, we have an call to
devfs_add("loop") without any devfs_remove; I add that.
2) On lwn.net 2.6 kernel docs, Jonathan Corbet says: "If you are calling
add_disk() in your driver initialization routine, you should not fail
the initialization process after the first call."
So I make loop.c conform to this request by moving add_disk after all
memory allocations.
<akpm@osdl.org>
[PATCH] loop: remove redundant initialisation
From: "Yury V. Umanets" <umka@namesys.com>
This removes a redundant assignment in loop.
<akpm@osdl.org>
[PATCH] ACPI PM timer
From: Dominik Brodowski <linux@dominikbrodowski.de>,
John Stultz <johnstul@us.ibm.com>,
Dmitry Torokhov
Add the ACPI Powermanagement Timer as x86 kernel timing source. Unlike the
Time Stamp Counter, it is a reliable timing source which does not get
affected by aggressive powermanagement features like CPU frequency scaling.
Some ideas and some code are based on Arjan van de Ven's implementation for
2.4, and on R. Byron Moore's drivers/acpi/hardware/hwtimer.c.
We also replace the loop based delay_pmtmr with a TSC based delay_pmtmr,
which resolves a number of issues caused by the loop based delay. Unsynced
TSCs as well frequency changing TSCs will effect the length of __delay(), but
it seems this method works best.
<akpm@osdl.org>
[PATCH] kthread primitive
From: Rusty Russell <rusty@rustcorp.com.au>
These two patches provide the framework for stopping kernel threads to
allow hotplug CPU. This one just adds kthread.c and kthread.h, next
one uses it.
Most importantly, adds a Monty Python quote to the kernel.
Details:
The hotplug CPU code introduces two major problems:
1) Threads which previously never stopped (migration thread,
ksoftirqd, keventd) have to be stopped cleanly as CPUs go offline.
2) Threads which previously never had to be created now have
to be created when a CPU goes online.
Unfortunately, stopping a thread is fairly baroque, involving memory
barriers, a completion and spinning until the task is actually dead
(for example, complete_and_exit() must be used if inside a module).
There are also three problems in starting a thread:
1) Doing it from a random process context risks environment contamination:
better to do it from keventd to guarantee a clean environment, a-la
call_usermodehelper.
2) Getting the task struct without races is a hard: see kernel/sched.c
migration_call(), kernel/workqueue.c create_workqueue_thread().
3) There are races in starting a thread for a CPU which is not yet
online: migration thread does a complex dance at the moment for
a similar reason (there may be no migration thread to migrate us).
Place all this logic in some primitives to make life easier:
kthread_create() and kthread_stop(). These primitives require no
extra data-structures in the caller: they operate on normal "struct
task_struct"s.
Other changes:
- Expose keventd_up(), as keventd and migration threads will use kthread to
launch, and kthread normally uses workqueues and must recognize this case.
- Kthreads created at boot before "keventd" are spawned directly. However,
this means that they don't have all signals blocked, and hence can be
killed. The simplest solution is to always explicitly block all signals in
the kthread.
- Change over the migration threads, the workqueue threads and the
ksoftirqd threads to use kthread.
- module.c currently spawns threads directly to stop the machine, so a
module can be atomically tested for removal.
- Unfortunately, this means that the current task is manipulated (which
races with set_cpus_allowed, for example), and it can't set its priority
artificially high. Using a kernel thread can solve this cleanly, and with
kthread_run, it's simple.
- kthreads use keventd, so they inherit its cpus_allowed mask. Unset it.
All current users set it explicity anyway, but it's nice to fix.
- call_usermode_helper uses keventd, so the process created inherits its
cpus_allowed mask. Unset it.
- Prevent errors in boot when cpus_possible() contains a cpu which is not
online (ie. a cpu didn't come up). This doesn't happen on x86, since a
boot failure makes that CPU no longer possible (hacky, but it works).
- When the cpu fails to come up, some callbacks do kthread_stop(), which
doesn't work without keventd (which hasn't started yet). Call it directly,
and take care that it restores signal state (note: do_sigaction does a
flush on blocked signals, so we don't need to repeat it).
<akpm@osdl.org>
[PATCH] Remove kstat cpu notifiers
From: Rusty Russell <rusty@rustcorp.com.au>
Some well-meaning person put a notifier in for CPUs to update the kstat
structures in sched.c. However, it does nothing, and even with the full
hotplug CPU patch, it still does nothing.
Simple counters very rarely need anything done when CPUs come up or go
down. If you have per-cpu caches, or per-cpu threads, you need to do
something. But very rarely for stats.
<akpm@osdl.org>
[PATCH] Minor workqueue.c cleanup
From: Rusty Russell <rusty@rustcorp.com.au>
Move duplicated code to __queue_work(), and don't set the CPU for
queue_delayed_work() until the timer goes off. The second one only has an
effect on CONFIG_HOTPLUG_CPU where the CPU goes down and the timer goes off
on a different CPU than it was scheduled on.
<akpm@osdl.org>
[PATCH] Remove More Unneccessary CPU Notifiers
From: Rusty Russell <rusty@rustcorp.com.au>
Three more removed CPU notifiers extracted from the hotplug CPU patch.
kernel/softirq.c: the tasklet cpu prepration callback is useless:
the vectors are already initialized to NULL. Even with the hotplug
CPU patches, they're of little or no use.
fs/buffer.c: once again, they are already initialized to zero.
mm/page_alloc.c: once again, already initialized to zero.
<akpm@osdl.org>
[PATCH] Use CPU_UP_PREPARE properly
From: Rusty Russell <rusty@rustcorp.com.au>
The cpu hotplug code actually provides two notifiers: CPU_UP_PREPARE
which preceeds the online and can fail, and CPU_ONLINE which can't.
Current usage is only done at boot, so this distinction doesn't
matter, but it's a bad example to set. This also means that the
migration threads do not have to be higher priority than the
others, since they are ready to go before any CPU_ONLINE callbacks
are done.
This patch is experimental but fairly straight foward: I haven't been
able to test it since extracting it from the hotplug cpu code, so it's
possible I screwed something up.
<akpm@osdl.org>
[PATCH] Limit hashtable sizes
From: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
The issue of exceedingly large hash tables has been discussed on the
mailing list a while back, but seems to slip through the cracks.
What we found is it's not a problem for x86 (and most other
architectures) because __get_free_pages won't be able to get anything
beyond order MAX_ORDER-1 (10) which means at most those hash tables are
4MB each (assume 4K page size). However, on ia64, in order to support
larger hugeTLB page size, the MAX_ORDER is bumped up to 18, which now
means a 2GB upper limits enforced by the page allocator (assume 16K page
size). PPC64 is another example that bumps up MAX_ORDER.
Last time I checked, the tcp ehash table is taking a whooping (insane!)
2GB on one of our large machine. dentry and inode hash tables also take
considerable amount of memory.
Setting the size of these tables is difficult: they need to be constrained on
many-zone ia64 machines, but this could cause significant performance
problems when there are (for example) 100 million dentries in cache.
Large-memory machines which do not slice that memory up into huge numbers of
zones do not need to run the risk of this slowdown.
So the sizing algorithms remain essentially unchanged, and boot-time options
are provided which permit the tables to be scaled down.
<akpm@osdl.org>
[PATCH] add Pentium M and Pentium-4 M options
From: Adrian Bunk <bunk@fs.tum.de>
add Pentium M and Pentium-4 M options:
- add MPENTIUMM (equivalent to PENTIUMIII except for a bigger
X86_L1_CACHE_SHIFT)
- document that MPENTIUM4 is the right choice for a Pentium-4 M
<akpm@osdl.org>
[PATCH] gcc 2.95 supports -march=k6 (no need for check_gcc)
From: Adrian Bunk <bunk@fs.tum.de>
gcc 2.95 supports -march=k6 (no need for check_gcc)
<akpm@osdl.org>
[PATCH] AMD Elan is a different subarch
From: Adrian Bunk <bunk@fs.tum.de>
- AMD Elan is a different subarch, you can't configure a kernel that runs
on both the AMD Elan and other i386 CPUs
- added optimizing CFLAGS for the AMD Elan
<akpm@osdl.org>
[PATCH] Documentation: remove /etc/modules.conf refs
From: Rusty Russell <rusty@rustcorp.com.au>
Someone complained about the number of references to /etc/modules.conf in
the documentation. While fixing them up (and examples where changed),
removed those which are redundant due to MODULE_ALIAS.
<akpm@osdl.org>
[PATCH] add some more MODULE_ALIASes
From: Rusty Russell <rusty@rustcorp.com.au>
New MODULE_ALIASes in:
1) arch/i386/kernel/microcode.c
2) drivers/char/genrtc.c
3) drivers/ide/ide-tape.c
4) drivers/net/bonding/bond_main.c
5) drivers/net/bsd_comp.c
6) drivers/net/ppp_deflate.c
7) drivers/net/ppp_generic.c
<akpm@osdl.org>
[PATCH] bonding alias revert and documentation fix
From: Rusty Russell <rusty@rustcorp.com.au>
Jeff Garzik disliked the bonding driver knowing it was called "bond0".
Remove that alias, and revert documentation.
<akpm@osdl.org>
[PATCH] NGROUPS 2.6.2rc2 + fixups
From: Tim Hockin <thockin@sun.com>,
Neil Brown <neilb@cse.unsw.edu.au>,
me
New groups infrastructure. task->groups and task->ngroups are replaced by
task->group_info. Group)info is a refcounted, dynamic struct with an array
of pages. This allows for large numbers of groups. The current limit of
32 groups has been raised to 64k groups. It can be raised more by changing
the NGROUPS_MAX constant in limits.h
<akpm@osdl.org>
[PATCH] Mark intermezzo as broken
The NGROUPS changes broke it, and we're not sure how to fixit, and nobody
appears to be working on or testing intermezzo.
<akpm@osdl.org>
[PATCH] bd_set_size i_size handling
We need to hold i_sem while running i_size_write(). But that seems like a
lot of fuss and deadlock potential. So just write the dang thing.
<akpm@osdl.org>
[PATCH] snprintf fixes
From: Juergen Quade <quade@hsnr.de>
Lots of places in the kernel are using [v]snprintf wrongly: they assume it
returns the number of characters copied. It doesn't. It returns the
number of characters which _would_ have been copied had the buffer not been
filled up.
So create new functions vscnprintf() and scnprintf() which have the
expected (sane) semaptics, and migrate callers over to using them.
<akpm@osdl.org>
[PATCH] devfs: race fixes and cleanup
From: Andrey Borzenkov <arvidjaar@mail.ru>
- use struct nameidata in devfs_d_revalidate_wait to detect when it is
called without i_sem hold; take i_sem on parent in this case. This
prevents both deadlock with devfs_lookup by allowing it to drop i_sem
consistently and oops in d_instantiate by ensuring that it always runs
protected
- remove dead code that deals with major number allocation. The only
remaining user was devfs itself and patch changes it to
- use register_chardev to get device number for internal /dev/.devfsd and
/dev/.statd.
- remove dead auto allocation flag as well
- remove code that does module get on dev open - it is handled by fops_get.
Use init_special_inode consistently
- get rid of struct cdev_type and bdev_type - both have just single dev_t
now
<akpm@osdl.org>
[PATCH] Enable coredumps > 2GB
From: Andi Kleen <ak@muc.de>
Some x86-64 users were complaining that coredumps >2GB don't work.
This will enable large coredump for everybody. Apparently the 32bit
gdb/binutils cannot handle them, but I hear the binutils people are working
on fixing that. I doubt it will harm people - unreadable coredumps are not
worse than no coredump and it won't make any difference in space usage if
you get a 1.99GB or a 2.5GB coredump. So just enable it unconditionally.
If it should be really a problem for 32bit the rlimit defaults in
resource.h could be changed.
For file systems that don't support O_LARGEFILE you should just get an
truncated coredumps for big address spaces.
<akpm@osdl.org>
[PATCH] MIPS: New 2.6 serial drivers
From: Ralf Baechle <ralf@linux-mips.org>
Three new MIPS-specific serial drivers. ip22.c is derived from the sparc
zilog driver; guess we should write a generic Zilog driver somewhen ...
<akpm@osdl.org>
[PATCH] #if versus #ifdef cleanup
From: Valdis.Kletnieks@vt.edu
15 changes of #if to #ifdef and 2 places CONFIG_FOO should be
defined(CONFIG_FOO). This gets rid of spurious warnings if you build with
"-Wundef" so you get a warning if you have a preprocessor command like:
#if CONFIG_ETRAX_DS1302_RSTBIT == 27
and you'll be told if it's substituting a zero rather than silent
weirdness and unexpected code generation.
<akpm@osdl.org>
[PATCH] kNFSd: Fix possible scheduling_while_atomic in cache.c
From: NeilBrown <neilb@cse.unsw.edu.au>
We currently call cache_put, which can schedule(), under a spin_lock. This
patch moves that call outside the spinlock.
<akpm@osdl.org>
[PATCH] kNFSd: Allow sunrpc/svc cache init function to modify the "key"
From: NeilBrown <neilb@cse.unsw.edu.au>
When adding a item to a sunrpc/svc cache that contains kmalloced data it is
usefully to move the malloced data out of the key object into the new cache
object rather than copying (as then we would need to cope with kmalloc
failure and such). This means modifying the original.
If the kmalloced data forms part of the key, then we must not move the data
out until after the key isn't needed any more. So this patch moves the
call to "INIT" on a new item (which fills in the key) to *after* the item
has been found (or not), and also makes sure we only call the HASH function
once.
Thanks to "J. Bruce Fields" <bfields@fieldses.org>
also
1/ remove unnecessary assignment
2/ fix comments that lag behind implementation.
<akpm@osdl.org>
[PATCH] kNFSd: ip_map_init does a kmalloc which isn't checked...
From: NeilBrown <neilb@cse.unsw.edu.au>
There is no way to return an error from a cache init routine, so instead we
make sure to pre-allocate the memory needed, and free it after the lookup
if the lookup failed.
<akpm@osdl.org>
[PATCH] kNFSd: convert NFS /proc interfaces to seq_file
From: NeilBrown <neilb@cse.unsw.edu.au>
From: shemminger@osdl.org Sat Sep 6 09:19:50 2003
Date: Fri, 5 Sep 2003 16:19:30 -0700
Converts /proc/net/rpc/nfs and /proc/net/rpc/nfsd to use the simpler
seq_file interface.
<akpm@osdl.org>
[PATCH] kNFSd:fix build problems in nfs w/o proc_fs on 2.6.0-test5
From: NeilBrown <neilb@cse.unsw.edu.au>
From: Stephen Hemminger <shemminger@osdl.org>
Date: Fri, 12 Sep 2003 11:31:06 -0700
NFS won't build w/o CONFIG_PROC_FS. Looks like typo's (or a C++
programmer) in stats.h
<akpm@osdl.org>
[PATCH] md: Print "deprecated" warning when START_ARRAY is used.
From: NeilBrown <neilb@cse.unsw.edu.au>
The "START_ARRAY" ioctl depends on major/minor numbers (as stored in the raid
superblock) are stable over reboots, which is increasingly untrue.
There are better ways to start an array (e.g. with mdadm) so we mark the
ioctl as deprecated for 2.6, and will remove it in 2.7.
<akpm@osdl.org>
[PATCH] md: Split read and write end_request handlers
From: NeilBrown <neilb@cse.unsw.edu.au>
Instead of having a single end_request handler that must determine whether it
was a read or a write request, we have two separate handlers, which makes
each of them easier to follow.
<akpm@osdl.org>
[PATCH] md: Discard the cmd field from r1_bio structure
From: NeilBrown <neilb@cse.unsw.edu.au>
The only time it is really needed is to differentiate a retry-on-fail from a
write-after-read-for-resync request to raid1d. So we use a bit in 'state'
for that.
<akpm@osdl.org>
[PATCH] md: Remove some un-needed fields from r1bio_s
From: NeilBrown <neilb@cse.unsw.edu.au>
next_r1 is never used, so it can just go.
read_bio isn't needed as we can easily use one of the pointers in the
write_bios array - write_bios[->read_disk]. So rename "write_bios" to "bios"
and store the pointer to the read bio in there.
<akpm@osdl.org>
[PATCH] md: Avoid unnecessary bio allocation during raid1 resync
From: NeilBrown <neilb@cse.unsw.edu.au>
For each resync request, we allocate a "r1_bio" which has a bio "master_bio"
attached that goes largely unused. We also allocate a read_bio which is
used. This patch removes the read_bio and just uses the master_bio instead.
This fixes a bug wherein bi_bdev of the master_bio wasn't being set, but was
being used.
We also introduce a new "sectors" field into the r1_bio as we can no-longer
rely in master_bio->bi_sectors.
<akpm@osdl.org>
[PATCH] md: Dynamically limit size of bio requests used for raid1 resync
From: NeilBrown <neilb@cse.unsw.edu.au>
Currently raid1 uses PAGE_SIZE read/write requests for resync, as it doesn't
know how to honour per-device restrictions. This patch uses to bio_add_page
to honour those restrictions and ups the limit on request size to 64K. This
has a measurable impact on rebuild speed (25M/s -> 60M/s)
<akpm@osdl.org>
[PATCH] md: Allow partitioning of MD devices.
From: NeilBrown <neilb@cse.unsw.edu.au>
With this patch, md used two major numbers for arrays.
One Major is number 9 with name 'md' have unpartitioned md arrays, one per
minor number.
The other Major is allocated dynamically with name 'mdp' and had on array for
every 64 minors, allowing for upto 63 partitions.
The arrays under one major are completely separate from the arrays under the
other.
The preferred name for devices with the new major are of the form:
/dev/md/d1p3 # partion 3 of device 1 - minor 67
When a paritioned md device is assembled, the partitions are not recognised
until after the whole-array device is opened again. A future version of
mdadm will perform this open so that the need will be transparent.
<akpm@osdl.org>
[PATCH] dm: Export dm_vcalloc()
From: Joe Thornber <thornber@redhat.com>
Export dm_vcalloc()
<akpm@osdl.org>
[PATCH] dm: Move to_bytes() and to_sectors() into dm.h
From: Joe Thornber <thornber@redhat.com>
Move to_bytes() and to_sectors() into dm.h
<akpm@osdl.org>
[PATCH] dm: Get rid of struct dm_deferred_io in dm.c
From: Joe Thornber <thornber@redhat.com>
Remove struct dm_deferred_io from dm.c. [Christophe Saout]
<akpm@osdl.org>
[PATCH] dm: Maintain ordering when deferring bios
From: Joe Thornber <thornber@redhat.com>
Make sure that we maintain ordering when deferring bios.
<akpm@osdl.org>
[PATCH] dm: Tidy up the error path for alloc_dev()
From: Joe Thornber <thornber@redhat.com>
Tidy up the error path for alloc_dev()
<akpm@osdl.org>
[PATCH] dm: Correct GFP flag in dm_table_create()
From: Joe Thornber <thornber@redhat.com>
For some reason dm_table_create() was allocating GFP_NOIO rather than
GFP_KERNEL.
<akpm@osdl.org>
[PATCH] dm: Zero size target sanity check
From: Joe Thornber <thornber@redhat.com>
Add sanity check to dm_table_add_target() against zero length targets.
[Christophe Saout]
<akpm@osdl.org>
[PATCH] dm: Remove redundant spin lock in dec_pending()
From: Joe Thornber <thornber@redhat.com>
Remove redundant spin lock in dec_pending()
<akpm@osdl.org>
[PATCH] dm: drop BIO_SEG_VALID bit
From: Joe Thornber <thornber@redhat.com>
I just noticed that bio_clone copies the BIO_SEG_VALID bit from the original
bio when it was set. When we modify bi_idx or bi_vcnt afterwards the segment
counts are invalid and the bit must be dropped (though it is fairly unlikely
that it has already been set). [Christophe Saout]
<akpm@osdl.org>
[PATCH] Fix printk level on non fatal MCEs
From: Andi Kleen <ak@suse.de>
For various reasons non fatal Machine Checks can happen on Athlons (e.g.
we have reports that laptops like to trigger them on suspend/resume)
They are not necessarily fatal and often only minor hardware glitches.
But what's annoying is that they're KERN_EMERG and pollute your console and
scare the user into writing confused kernel bug reports.
This patch just replaces the KERN_EMERGs with KERN_INFO for now. Longer
term I think it would be better to log this stuff into a separate log.
<akpm@osdl.org>
[PATCH] MCE fixes and cleanups
Andi notes that the
smp_call_function(foo);
foo();
in there is incorrect on preemptible kernels.
Fix that by using on_each_cpu(), which takes care of such things.
Also, remove the open-coded timer from here. We have
schedule_delayed_work().
And remove the `timerset' variable, which doesn't do anything.
<akpm@osdl.org>
[PATCH] Rename bitmap_snprintf() and cpumask_snprintf() to *_scnprintf()
From: Joe Korty <joe.korty@ccur.com>
Rename bitmap_snprintf() to bitmap_scnprintf() and cpumask_snprintf() to
cpumask_scnprintf(), as these functions now belong to the scnprintf family
of functions.
<akpm@osdl.org>
[PATCH] OSS: remove #ifdef's for kernel 2.0
From: Adrian Bunk <bunk@fs.tum.de>
The patch below removes two #ifdef's for kernel 2.0 from OSS.
<akpm@osdl.org>
[PATCH] remove kernel 2.2 #ifdef's from {i,}stallion.h
From: Adrian Bunk <bunk@fs.tum.de>
The patch below removeskernel 2.2 #ifdef's from {i,}stallion.h .
<akpm@osdl.org>
[PATCH] kbuild documentation fix
From: Ryan Boder <icanoop@bitwiser.org>
Explains how to compile external modules in
Documentation/kbuild/modules.txt.
<akpm@osdl.org>
[PATCH] adfs: remove a kernel 2.2 #ifdef
From: Adrian Bunk <bunk@fs.tum.de>
The patch below removes a kernel 2.2 #ifdef from fs/adfs/adfs.h .
Note that this #ifdef was only present in the header, the implementation
of adfs_bmap was already removed.
<akpm@osdl.org>
[PATCH] defer panic for too many items in boot parameter line
From: Werner Almesberger <werner@almesberger.net>
When passing too many unrecognized boot command line options (which become
arguments or environment variables), the 2.6 kernel panics (unlike 2.4,
which just ignores the extra items). Unfortunately, this happens before
the console is initialized, so all you get is a kernel that dies quickly,
for no apparent reason.
This is particularly irritating if using UML with
init=something wi th a lot of ar gu men t s
The patch below delays the panic until after console_init.
(akpm: I mainly added this in because we have other places where the
panic-later-on machinery is needed).
<akpm@osdl.org>
[PATCH] cpufreq_scale() fixes
From: Dominik Brodowski <linux@dominikbrodowski.de>
Use do_div on 32-bit archs in cpufreq_scale, and native "/" on 64-bit
archs.
<akpm@osdl.org>
[PATCH] Minor cross-compile issues
From: Pratik Solanki <pratik.solanki@timesys.com>
- Fix include path for build.c so that it finds asm/boot.h.
/usr/include/asm/boot.h may not be present when cross-compiling on a
non-Linux machine.
- $(CONFIG_SHELL) instead of sh.
<akpm@osdl.org>
[PATCH] /proc thread visibility fixes
From: Kingsley Cheung <kingsley@aurema.com>
Is is possible to examine the data of tasks currently existing in the system
which are not threads of the same thread group.
For example, the only task in the group where init is group leader is itself:
gen2 02:50:44 ~: ls /proc/1/task
1
However, I can then read the contents of 'stat' for any other task in the
system:
gen2 02:49:45 ~: cat /proc/1/task/$$/stat
1669 (bash) S 1668 1669 1669 34816 1730 256 1480 6479 12 4 8 5 5 17 15 0 1 0
+8065 3252224 451 4294967295 134512640 134955932 3221225104 3221222840
+4294960144 0 65536 3686404 1266761467 3222442959 0 0 17 0 0 0
I had a look at fs/proc/base.c and found that the 'lookup' functions for
these directories were checking that the task in question existed, but
overlooked the following:
1. In the function proc_pid_lookup, a check is required to ensure that
the task in question is a thread group leader. Without the check, any
task can have its data retrieved accordingly. Consider the following.
There is a multithreaded process 1777.
gen2 23:22:47 /proc/1777: ls task
1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788
However, I can read the stat file for its thread 1778 as follows:
gen2 23:22:50 /proc/1777: cat /proc/1778/stat
1778 (multithreadtest) T 1777 1777 1672 34816 1672 64 0 0 0 0 14 17 0 0 15 0
12 0 8871 24727552 104 4294967295 134512640 134515104 3221222496 1077365276
4294960144 0 0 0 0 3222479248 0 0 -1 1 0 0
But 1778 is not meant to show up in /proc/, as intended right?:
gen2 23:22:56 /proc/1777: ls /proc/
1 1365 1661 1793 881 dma kcore scsi
10 1371 1662 18 9 driver kmsg self
1014 1372 1663 2 909 execdomains loadavg slabinfo
1032 14 1664 3 963 fb locks stat
1062 15 1665 4 966 filesystems mdstat swaps
1066 16 1666 5 buddyinfo fs meminfo sys
1067 1605 1669 6 bus ide misc sysrq-trigger
1087 1610 1670 7 cmdline interrupts modules sysvipc
1095 1611 1671 736 cpuinfo iomem mounts tty
11 1641 1672 8 crypto ioports mtrr uptime
12 1658 17 807 devices irq net version
13 1660 1777 810 diskstats kallsyms partitions vmstat
2. The other part of the bug is in the function proc_task_lookup. Here
there needs to be a check that the task X is indeed a thread of the
thread group Y when we read /proc/<Y>/task/<X>.
Right now, this check does not exist, which allows for any existing
task to have its data read from another thread group directory. The
following reads the stat directory of my bash shell from the thread
group 1.
gen2 23:28:07 ~: cd /proc/1
gen2 23:28:10 /proc/1: ls
auxv cwd exe maps mounts stat status wchan
cmdline environ fd mem root statm task
gen2 23:28:11 /proc/1: ls task
1
gen2 23:28:27 /proc/1: cat task/$$/stat
1671 (bash) S 1670 1671 1671 34817 1802 256 1953 8101 12 4 10 6 9 26 15 0 1
0 5789 3252224 454 4294967295 134512640 134955932 3221225104 3221222840
4294960144 0 65536 3686404 1266761467 3222442959 0 0 17 0 0 0
<akpm@osdl.org>
[PATCH] drivers/char/vt possible race
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
I falled again on the crash in con_do_write() with driver->data beeing
NULL. It happens during boot, when userland is playing open/close games
with tty's, I was intentionally typing keys like mad during boot trying to
trigger another problem when this one poped up.
Looking at the code, I'm not sure how protected we are by the above (tty)
layer, paulus told me to not rely on anything like locking coming from
there, so I decided to extend the scope of the console semaphore one more
bit to cover races between calls to con_open, con_close and con_write.
Note that in con_do_write, I intentionally drop the semaphore to avoid
keeping it held when waiting on the local buffer, and I added some sanity
checks on tty->driver_data with some printk's in case we still have an open
race by the tty layer. At least, now, the couple vc_allocated &
tty->driver_data should be protected though.
<akpm@osdl.org>
[PATCH] off_t in nfsd_commit needs to be loff_t
From: Neil Brown <neilb@cse.unsw.edu.au>,
From: Miquel van Smoorenburg <miquels@cistron.nl>
While I was stress-testing NFS/XFS on 2.6.1/2.6.2-rc, I found that
sometimes my "dd" would exit with:
# dd if=/dev/zero bs=4096 > /mnt/file
dd: writing `standard output': Invalid argument
1100753+0 records in
1100752+0 records out
After adding some debug printk's to the server and client code and some
tcpdump-ing, I found that the NFSERR_INVAL was returned by nfsd_commit on
the server.
Turns out that the "offset" argument is off_t instead of loff_t. It isn't
used at all (unfortunately), but it _is_ checked for sanity, so that's
where the error came from.
<akpm@osdl.org>
[PATCH] skip offline CPUs in show_free_areas
From: Christoph Hellwig <hch@lst.de>
Don't try to display the per-cpu information for CPUs which aren't there.
<akpm@osdl.org>
[PATCH] fix display of NBD in /proc/partitions
The recent change to /proc/partitions which prevents it from displaying
removeable media accidentally caused 128 NBD and 16 ramdisk partitions to
appear in /proc/partitions instead.
So add a specific gendisk flag which says "don't show me in /proc/partitions"
and use that.
<akpm@osdl.org>
[PATCH] cleanup patch that prepares for 4Kb stacks
From: Arjan van de Ven <arjanv@redhat.com>
I have 4Kb stacks + IRQ stacks working in my tree. The biggest part of the
4K-stacks work is changing hardcoded 8Kb assumptions to the proper,
pre-existing define for this. That part of the patch is appropriate in
general, even when 4Kb stacks might not be.
<akpm@osdl.org>
[PATCH] 3c59x: bring back the `enable_wol' option
Some machines appear to have BIOS problems which are causing 3c59x adapters
to come up in a powered-off state when WOL and PM are enabled.
So bring back the 2.4 `enable_wol' module option which disables wake-on-lan
unless the user specifically asked for it.
<akpm@osdl.org>
[PATCH] Oprofile: fix nmi_timer_int detection
From: Philippe Elie <phil.el@wanadoo.fr>
From: Zwane Mwaikambo <zwane@arm.linux.org.uk>
The nmi_timer_int oprofile driver was enabling itself unconditionally if an
SMP kernel was being used on a UP system without an IOAPIC.
Tested on a P5 using NMI timer int driver and UP system using timer int
driver both running an SMP kernel.
2004-02-11 Zwane Mwaikambo <zwane@arm.linux.org.uk>
* arch/i386/kernel/nmi.c: export nmi_active
* arch/i386/oprofile/nmi_timer_int.c: use it to check if owe can use
an nmi interrupt
<akpm@osdl.org>
[PATCH] oprofile: ARM infrastructure
From: Philippe Elie <phil.el@wanadoo.fr>
From: Zwane Mwaikambo <zwane@arm.linux.org.uk>
This patch adds infrastructure code and enables ARM to utilise the timer
int oprofile driver. There is PMU code under development for the XScale
but that is still forthcoming. In the meantime you can use the timer int
driver with an updated Oprofile-CVS userspace (SF is a bit slow, please
allow 24hrs).
<akpm@osdl.org>
[PATCH] oprofile: add Pentium Mobile support
From: Philippe Elie <phil.el@wanadoo.fr>
From: Will Cohen <wcohen@redhat.com>
Add oprofile support for Pentium Mobile (P6 core). Pentium Mobile needs to
unmask LVPTC vector, since it doesn't hurt other P6 core based cpus we do
it unconditionally for all these.
This patch require userspace tools >= 0.8 (only in sourceforge cvs currently)
<akpm@osdl.org>
[PATCH] remove max_anon limit
From: Tim Hockin <thockin@sun.com>
Remove the max_anon via dynamically allocation. We also change the
idr_pre_get() interface to take a gfp mask, which should have always been
there.
<akpm@osdl.org>
[PATCH] Fix __release_region() race
From: MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>
I am testing PCI hot-plug in 2.6.2 kernel, but sometimes a struct resource
tree in kernel/resource.c was broken if multiple hot-plug requests are
issued at the same time.
The reason is lots of drivers call release_region() on hot removal, and
__release_region(), which is invoked by release_region() macro, changes the
tree without holding a writer lock for resource_lock.
I think __release_region() must hold a writer lock as well as
__request_region() does.
A following patch fixes the issue in my environment.
<akpm@osdl.org>
[PATCH] Documentation on how to debug modules
From: Alex Goddard <agoddard@purdue.edu>
How to debug module loading problems. The wording is a slightly changed
version of what Rusty said.
<akpm@osdl.org>
[PATCH] Module headers cleanup
From: Brian Gerst <bgerst@didntduck.org>
Cleans up some leftovers from the old module loader:
- Remove unused defines from modules.h
- Remove unused file modsetver.h
<akpm@osdl.org>
[PATCH] add clock_was_set() to all architectures
From: Anton Blanchard <anton@samba.org>
Add clock_was_set to all architectures. I'm disappointed this wasnt done by
whoever wrote the code.
(It is a callback which the arch-specific RTC-updating code must make when
someone sets the time).
<akpm@osdl.org>
[PATCH] Fix race in epoll_ctl(EPOLL_CTL_MOD)
From: Davide Libenzi <davidel@xmailserver.org>
A potential race can happen in epoll_ctl(EPOLL_CTL_MOD) where an event can
happen in between f_op->poll() and the lock on ep->lock (we cannot call
f_op->poll() inside a lock, and the f_op->poll() callback does not carry
any info at the current time - missing wake_up_info() already ;). In that
case the event would be removed. We can easily leave the event inside the
ready list and have the ep_send_events() logic do the job for us at later
time. (Thanks to david.lee@teracruz.com for reporting the thing, since it
shouldn't have been a nice one ;)
<akpm@osdl.org>
[PATCH] slab: remove extraneous printk
From: "David S. Miller" <davem@redhat.com>
From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
If I create some kmem cache on 64-bit with like 3 u32's in it, it should
silently just work and not warn.
<akpm@osdl.org>
[PATCH] do_swap_page() return value fix
From: BlaisorBlade <blaisorblade_spam@yahoo.it>
An exhausted do_swap_page() should return VM_FAULT_OOM rather than -ENOMEM.
<akpm@osdl.org>
[PATCH] ide-tape: remove obsolete onstream support
From: Willem Riede <wrlk@riede.org>
The onstream drives, be they scsi, atapi, ieee1394 or usb, are supported by
the
osst driver. When the drives were new, code was introduced in ide-tape
independently, but never really maintained since. There are issues with the
drives I found and dealt with in osst, that ide-tape doesn't address.
So this code in ide-tape is both redundant and imperfect. I assumed from
http://marc.theaimsgroup.com/?l=linux-kernel&m=107550547613846&w=2 that there
was buy in for removing it.
When this patch is applied, ide-tape will refuse to attach to an onstream DI
drive, and will write to syslog to use ide-scsi + osst instead.
<akpm@osdl.org>
[PATCH] Disable bootmem warning
From: Andi Kleen <ak@suse.de>
Make the "hm, page reserved twice" message dependent on CONFIG_DEBUG_BOOTMEM.
<akpm@osdl.org>
[PATCH] dm-crypt
From: Christophe Saout <christophe@saout.de>
Adds a crypto module for device-mapper. The intent here is to remove
cryptoloop ASAP, to pull the remapping gunk out of the loops driver and to
migrate people onto dm-crypt. It is on-disk compatible with existing
cryptolop installations.
See http://www.saout.de/misc/dm-crypt/ for usage details.
<akpm@osdl.org>
[PATCH] Fix make rpm when using RH9 or Fedora..
From: Thomas Davis <tadavis@lbl.gov>
Doing a 'make rpm' will fail with the current RH9/Fedora RPM macros.
The failure message is this:
Processing files: kernel-debuginfo-2.6.3rc1mm1-12
error: Could not open %files file
/usr/src/redhat/BUILD/kernel-2.6.3rc1mm1/debugfiles.list: No such file or
directory
The fix is this patch:
<akpm@osdl.org>
[PATCH] menuconfig: fix the check for ncurses-devel
From: Sam Ravnborg <sam@ravnborg.org>
Corrected check for missing ncurses-devel when executing "make menuconfig".
Now tell user to install 'ncurses-devel' if check fails.
<akpm@osdl.org>
[PATCH] Inefficient TLB flush fix
From: Martin Hicks <mort@wildopensource.com>
This is a patch based on one that Jack Steiner sent to the ia64 list in
November. The original thread can be found at:
http://marc.theaimsgroup.com/?l=linux-ia64&m=106869606922555&w=2
I created the little wrapper function that was requested. I think the only
other arch, other than ia64, that doesn't at least include asm-generic/tlb.h
is arm.
Something appears broken in TLB flushing on IA64 (& possibly other
architectures). Functionally, it works but performance is bad on systems
with large cpu counts.
The result is that TLB flushing in exit_mmap() is frequently being done via
IPIs to all cpus rather than with a "ptc" instruction or with a new
context..
<akpm@osdl.org>
[PATCH] sf16fmr2 radio card driver
From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio@vodafone.com>
Add a new driver for the SF16FMR2 Radio card.
<akpm@osdl.org>
[PATCH] Remove overenthusiastic BUG in smp_boot_cpus
From: "Martin J. Bligh" <mbligh@aracnet.com>
There's no real need to BUG and stop the system from booting if the BIOS
spec'ed apicid for the boot CPU isn't correct - we can continue perfectly
well with the real one.
<akpm@osdl.org>
[PATCH] Codingstyle update
From: Michael Frank <mhf@linuxmail.org>
<akpm@osdl.org>
[PATCH] smbfs: support the loop driver
From: Urban Widmark <urban@teststation.com>
Add the necessary bits for loop-over-smbfs.
<akpm@osdl.org>
[PATCH] Fix sprintf modifiers in usr/gen_init_cpio.c for cygwin
From: Pragnesh Sampat <pragnesh.sampat@timesys.com>
The file initramfs_data.cpio is slightly different when generated on
cygwin, compared to linux, which causes the kernel to panic with the
message "no cpio magic" (See Documentation/early-userspace/README).
The problem in cpio generation is due to the difference in sprintf
modifiers on cygwin. The code uses "%08ZX" for strlen of a device node.
printf man pages discourages "Z" and has 'z' instead. Both of these are
not available on cygwin sprintf (at least some versions of cygwin). The
net result of all of this is that the generated file literally contains
"ZX" and then the strlen after that and messes up that 110 offset etc. The
file is 516 bytes long on the system that I tested and on linux it is 512
bytes.
The fix below just uses "%08X" for that field.
<akpm@osdl.org>
[PATCH] wireless/Kconfig enable/select complete replacement
From: mcgrof@studorgs.rutgers.edu (Luis R. Rodriguez)
Complete the migration from Kconfig's undocumented "enable" to "select".
<akpm@osdl.org>
[PATCH] tuner driver fixes
From: Gerd Knorr <kraxel@bytesex.org>
"options tuner type=2" is just there for historical reasons and should
only be used/needed if the main driver doesn't allow to configure the
tuner type. I'm not sure whenever I can remove that altogether without
breaking anything. There are several users of the tuner module, some
outside the standard kernel tree ...
> > if (type < TUNERS) {
> > + t->type = type;
> > printk("tuner: type forced to %d (%s) [insmod]\n",
> > t->type,tuners[t->type].name);
> > set_type(client,type);
That is wrong, it will break in other corner cases, it may cause the
set_type() function not doing the initializations.
The prink can also be dropped because set_type does that too. The patch
below removes that. It also makes the kernel messages a bit more verbose
and adds support for two new tuners.
<akpm@osdl.org>
[PATCH] crc32.c copyright fix
From: Matt Domsch <Matt_Domsch@dell.com>
Patch below applies to both 2.4.25 and 2.6.3, and replaces the public
domain statement and non-warranty with the GPL, as is permitted by the code
being in the public domain, and is done with legal advice.
<akpm@osdl.org>
[PATCH] Add C99 initializers to arch/i386/pci/fixup.c
From: "Art Haas" <ahaas@airmail.net>
Here's a small patch that adds C99 initializers to the file.
<akpm@osdl.org>
[PATCH] mark ftape un-removable
From: Christoph Hellwig <hch@lst.de>
I've just grepped over the tree for reamining MOD_INC_USE_COUNT users, and
ftape is a really horrible one, it relies on MOD_{INC,DEV}_USE_COUNT in the
most horrible places + it's own bookkepping and the <= 2.4 may unload
hooks. And although I don't have the hardware I can guarantee it doesn't
work as expected.
So let's just remove the module_exit handler and mark it unremovable, if
someone wants to fix up ftape later it's fine with me, but it's a really
scary driver..
<akpm@osdl.org>
[PATCH] aio sysctl parms
From: Janet Morgan <janetmor@us.ibm.com>
It looks like aio_nr and aio_max_nr were intended to be sysctl parameters.
<brking@us.ibm.com>
[PATCH] SCSI: Make retries obey host_self_blocked flag
The following patch against 2.6.2 will prevent the midlayer from
issuing retries if host_self_blocked is set. This was raised as an
issue here:
http://marc.theaimsgroup.com/?l=linux-scsi&m=107357742430401&w=2
<hch@lst.de>
[PATCH] Remove CONFIG_SCSI_DC390T_NOGENSUPP
Now that the Am53C974 driver is gone it doesn't make sense to not
support all Am53C974-based cards, and the amount of code under the ifdef
is tiny anyways.
<hch@lst.de>
[PATCH] fix up ini9100 interrupt handling
Currently is has a different irq handler for every "supported" chip.
Make use of the private data passed to request_irq instead.
<hch@lst.de>
[PATCH] fix up NCR5380 private data
Use the private data passed to request_irq instead of looping over all
controllers. The patch was ACKed by Alan a while ago.
Note that the patch only looks so huge because of the two leves of
indentation removed by the tiny chage.
<andrew.vasquez@qlogic.com>
[PATCH] qla2xxx -- Properly schedule mailbox command timeouts.
For mailbox commands which the firmware internally times-out in
2 * R_A_TOV, the driver should timeout no sooner than 2.5 * R_A_TOV so
we do not inappropriately schedule an ISP abort.
<andrew.vasquez@qlogic.com>
[PATCH] qla2xxx -- FCP_RSP IU check during command completion.
While processing command completions in qla2x00_status_entry()
interrogate the FCP_RSP IU in case of any FCP protocol errors (FCP-3,
9.4.11) during command execution. If there were any failures, schedule
a retry of the command via DID_BUS_BUSY.
[Corrected patch attached. Thanks to RA for pointing this out.]
<hch@lst.de>
[PATCH] move remaining definitions from drivers/scsi/scsi.h to include/scsi
Simple move for a bunch of definitions so driver can finally stop doing
the -Idriver/scsi mess. I'd like to get it out ASAP because the distros
are going to branch their first 2.6 releases soon and the vendors will
want to support those basically forever.
<patmans@us.ibm.com>
[PATCH] have CONFIG_SCSI_PROC_FS depend on CONFIG_PROC_FS
Patch against recent 2.6: have CONFIG_SCSI_PROC_FS depend on
CONFIG_PROC_FS, as configuring CONFIG_SCSI_PROC_FS without
CONFIG_PROC_FS prevents scsi core from initializing.
<gerg@snapgear.com>
[PATCH] fix memory leaks in binfmt_flat loader
Fix a number of memory leaks in the uClinux binfmt_flat loader. All are
related to not cleaning up properly on failure conditions.
<gerg@snapgear.com>
[PATCH] allow configuration for shared flat binary support
This adds the configuration option to enable the uClinux shared flat
binary support. The code support is already in the binfmt_load code,
just the config option is missing.
<gerg@snapgear.com>
[PATCH] add m68k elf relocation types to elf.h
Added ELF relocation type defines. These are needed by the module
loading code for m68knommu.
<gerg@snapgear.com>
[PATCH] fixes to ColdFire/5407 startup code
Correct the cache setup bits for the 5407. This enables the write
buffers properly (despite what the previous comment said). This
combined with fixed cache flushing code provides a nice performance
boost on the 5407.
Also fix the ROMfs setup to only move the ROMfs region if it is actually
configured.
<linux@de.rmk.(none2)>
[ARM] URL change for linux-on-laptops
Patch from: Sebastian Henschel
Attached is a cosmetic patch for arch/arm/Kconfig which updates the
URL for Kenneth's page and introduces the URL of tuxmobil.org.
<bcollins@debian.org>
IEEE1394/SBP2(r1139): Some cleanups, and a better, more unique id for
ieee1394_id attribute.
<bcollins@debian.org>
IEEE1394(r1140): Add a bus rescan bus_attr file, and an ignore_driver attr
for ud's
<akpm@osdl.org>
[PATCH] ramdisk cleanup
Fairly pointless coding-style cleanups which I've been sitting on for ages.
The ramdisk driver is still buggy: it drops pagecache when unmounted. I
still need to fix this.
Apparently it also displays data corruption under load even when not
unmounted.
<akpm@osdl.org>
[PATCH] slab: print slab name in kmem_cache_init()
Print the name of the offending slab if we're going to go BUG in
kmem_cache_init().
<akpm@osdl.org>
[PATCH] prevent ptrace from altering page permissions
From: Roland McGrath <roland@redhat.com>
Under some circumstances, ptrace PEEK/POKE_TEXT can cause page permissions
to be permanently changed. Thsi causes changes in application behaviour
when run under gdb.
Fix that by only marking the pte as writeable if the vma is marked for
writing. A write fault thus unshares the page but doesn't necessarily make
it writeable.
<akpm@osdl.org>
[PATCH] slab: hexdump for check_poison
From: Manfred Spraul <manfred@colorfullife.com>
The patch is designed improve the diagnostics which are presented when the
slab memory poison detector triggers.
check_poison_obj checks for write accesses after kfree by comparing the
object contents with the poison value. The current implementation contains
several flaws:
- it accepts both POISON_BEFORE and POISON_AFTER. check_poison_obj is
only called with POISON_AFTER poison bytes. Fix: only accept
POISON_AFTER.
- the output is unreadable. Fix: use hexdump.
- if a large objects is corrupted, then the relevant lines can scroll of
the screen/dmesg buffer. Fix: line limit.
- it can access addresses behind the end of the object, which can oops
with CONFIG_DEBUG_PAGEALLOC. Fix: bounds checks.
Additionally, the patch contains the following changes:
- rename POISON_BEFORE and POISON_AFTER to POISON_FREE and POISON_INUSE.
The old names are ambiguous.
- use the new hexdump object function in ptrinfo.
- store_stackinfo was called with wrong parameters: it should store
caller, i.e. __builtin_return_address(0), not POISON_AFTER in the
object.
- dump both the object before and after the corrupted one, not just the
one after.
Example output:
<<<
Slab corruption: start=194e708c, len=2048
Redzone: 0x5a2cf071/0x5a2cf071.
Last user: [<02399d7c>](dummy_init_module+0x1c/0xb0)
010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 7b
030: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 63
Prev obj: start=194e6880, len=2048
Redzone: 0x5a2cf071/0x5a2cf071.
Last user: [<00000000>](0x0)
000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
<<<
<akpm@osdl.org>
[PATCH] page_add_rmap(): remove meaningless test
Remove page validity test. I had a warning in there for a few weeks, no
reports of it happening.
<akpm@osdl.org>
[PATCH] Add CONFIG for -mregparm=3
From: Andi Kleen <ak@muc.de>, me.
Using -mregparm=3 shrinks the kernel further:
(compiled with gcc 3.4, without -funit-at-a-time, using the later and
together with -Os shrinks .text even more, making over 700KB difference)
4129346 708629 207240 5045215 4cfbdf vmlinux
3892905 708629 207240 4808774 496046 vmlinux-regparm
This one helps even more, >236KB .text difference. Clearly worth
the effort.
This patch adds an option to use -mregparm=3 while compiling the kernel. I
did an LTP run and it showed no additional failures over an non regparm
kernel.
According to some gcc developers it should be safe to use in all gccs that
are still supports (2.95 and up)
I didn't make it the default because it will break all binary only modules
(although they can be fixed by adding a wrapper that calls them with
"asmlinkage"). Actually it may be a good idea to make this default with
2.7.1 or somesuch.
We add new kbuild infrastructure: the command
scripts/gcc-version.sh $(CC)
will print out the version of gcc in a canonical 4-digit form suitable for
performing numerical tests against.
DESC
arch/i386/Makefile,scripts/gcc-version.sh,Makefile small fixes
EDESC
From: Serge Belyshev <33554432@mtu-net.ru>
arch/i386/Makefile:
* omitted $(KBUILD_SRC)/ in script call.
scripts/gcc-version.sh:
* GNU tail no longer supports 'tail -1' syntax.
We should consider adding -fweb option:
vanilla:
$ size vmlinux
text data bss dec hex filename
3056270 526780 386056 3969106 3c9052 vmlinux
with -fweb:
$ size vmlinux
text data bss dec hex filename
3049523 526780 386056 3962359 3c75f7 vmlinux
Also note 0.1 ... 1.0% speedup in various benchmarks.
This option is not enabled by default at -O2 because it
(like -fomit-frame-pointer) makes debugging impossible.
<akpm@osdl.org>
[PATCH] Use -funit-at-a-time on ia32
From: Andi Kleen <ak@muc.de>
The upcomming gcc 3.4 has a new compilation mode called unit-at-a-time.
What it does is to first load the whole file into memory and then generate
the output. This allows it to use a better inlining strategy, drop unused
static functions and use -mregparm automatically for static functions.
It does not seem to compile significantly slower.
This is also available in some of the 3.3 based "hammer branch"
compilers used in distributions (at least in SuSE and Mandrake)
Some tests show impressive .text shrinkage from unit-at-a-time.
e.g. here is the same kernel compiled with -fno-unit-at-a-time and
-funit-at-a-time with a gcc 3.4 snapshot. The gains are really
impressive:
text data bss dec hex filename
4129346 708629 207240 5045215 4cfbdf vmlinux-nounitatatime
3999250 674853 207208 4881311 4a7b9f vmlinux-unitatatime
.text shrinks by over 130KB!. And .data shrinks too.
At first look the numbers look nearly too good to be true, but they have been
verified with several configurations and seem to be real. It looks like
we have a lot of stupid inlines or dead functions. I'm really not
sure why it is that much better. But it's hard to argue with hard
numbers.
[A bloat-o-meter comparision between the two vmlinuxes can be found in
http://www.firstfloor.org/~andi/unit-vs-no-unit.gz . It doesn't show
any obvious candidates unfortunately, just lots of small changes]
With the gcc 3.3-hammer from SuSE 9.0 the gains are a bit smaller, but
still noticeable (>100KB on .text)
This patch enables -funit-at-a-time on ia32 if the compiler is gcc-3.4 or
later. We had several reports of gcc-3.3 producing very early lockups.
<akpm@osdl.org>
[PATCH] Add noinline attribute
From: Andi Kleen <ak@muc.de>
This patch adds the `noinline' function attribute. It can be used to
explicitly tell the compiler to not inline functions.
We need this due to what is, IMO, a bug present in gcc-3.4 and current
gcc-3.5 CVS: the compiler is inlining init/main.c:rest_init() inside
init/main.c:start_kernel(), despite the fact that thay are declared to be
placed in different text sections.
<akpm@osdl.org>
[PATCH] use noinline for rest_init()
gcc-3.4 incorretly inlines rest_init() into start_kernel(), causing things to
crash when the .text.init section gets unloaded. Use noinline to prevent
that.
<akpm@osdl.org>
[PATCH] gcc-3.5: bonding
drivers/net/bonding/bond_alb.c: In function `bond_alb_xmit':
drivers/net/bonding/bond_alb.c:1188: error: invalid lvalue in assignment
<akpm@osdl.org>
[PATCH] fix access() POSIX compliance
From: Andreas Gruenbacher <agruen@suse.de>
The fix for permission() that makes it compliant with POSIX.1-2001
apparently was lost. Here is the patch I sent before. (The relevant lines
from the standard text are cited in
http://www.ussg.iu.edu/hypermail/linux/kernel/0310.2/0286.html. The fix
proposed in that posting did not handle directories without execute
permissions correctly.)
Make permission check conform to POSIX.1-2001
The access(2) function does not conform to POSIX.1-2001: For root
and a file with no permissions, access(file, MAY_READ|MAY_EXEC)
returns 0 (it should return -1).
<akpm@osdl.org>
[PATCH] fix pfn_valid on ia32 discontigmem
From: "Martin J. Bligh" <mbligh@aracnet.com>
Fix pfn_valid for architctures with discontiguous memory. This only
changes the NUMA definition, and it leaves the NUMA-Q definition as was,
because it's faster that way, it's in hotpaths, and our memory is always
contiguous.
<akpm@osdl.org>
[PATCH] ia32: pfn_to_nid fix
From: "Martin J. Bligh" <mbligh@aracnet.com>
Makes sure pfn_to_nid is defined for all combinations of subarches, and that
it's defined before it's used so we don't run into implicit declaration
problems.
<akpm@osdl.org>
[PATCH] ia32: disallow NUMA on PC subarch
From: "Martin J. Bligh" <mbligh@aracnet.com>
Disallow NUMA on the i386 PC subarch (it doesn't work, nor was it intended
to).
<akpm@osdl.org>
[PATCH] config option for irqbalance
From: "Martin J. Bligh" <mbligh@aracnet.com>
Make irqbalance into a config option - some people (jgarzik, arjan, etc)
wanted to be able to disable it and do things from userspace instead. This
patch allows each camp to do their own thing, which seems fair ;-)
<akpm@osdl.org>
[PATCH] print some x86 build options during oopses
I find this handy sometimes: it makes the oops output include info as to
whether the user has selected CONFIG_PREEMPT, CONFIG_SMP or, particularly,
CONFIG_DEBUG_PAGEALLOC. It can save one email round-trip.
<akpm@osdl.org>
[PATCH] show_task() fix and cleanup
show_task() is preinting negative numbers for free stack due to arithmetic
against the wrong pointer.
Fix that up, and clean up a few related things.
show_task still has bogus code which atempts to work out how much stack the
task has ever used - it cannot work because we don't actually zero out the
stack pages when allocating them. We should fix that, or take it out.
<akpm@osdl.org>
[PATCH] show_task() is not SMP safe
From: Arnd Bergmann <arnd@arndb.de>
Christian Bornträger noticed that the kernel can crash after <SysRq>-T. It
appears that the show_task function gets called for all tasks, which does
not work if one of the tasks is running in a system call on another CPU.
In that case the result of thread_saved_pc and show_stack is undefined and
likely to cause a crash.
For tasks running in user space on other CPUs, show_task() is probably
harmless, but I'm not sure if that's true on all architectures.
The patch below is still racy for tasks that are about to sleep, but it
demonstrates the problem.
<bcollins@debian.org>
IEEE1394(r1141): Add an "ignore_drivers" global default.
<pfg@sgi.com>
[PATCH] ia64: on SN2, use the pda to count interrupts
<pfg@sgi.com>
[PATCH] ia64: on SN2, skip init_platform_hubinfo() if on the simulator
<mort@sgi.com>
[PATCH] ia64: SN2 header file cleanups
Here is a patch to clean up some of the Altix header files and includes.
I've run the patch past the appropriate people at SGI and they seem happy
with the changes.
<mort@sgi.com>
[PATCH] ia64: clean up SN2 setup.c
Cleanup the SN setup.c file. Add __init and static to functions where
required.
<pfg@sgi.com>
[PATCH] ia64: cleanup SN2 pci_bus_cvlink.c
I incorporated (at least in spirit I hope) hch's suggestions on the fixup
code
put in some kfrees that I was missing and static for sn_alloc_pci_sysdata
(thanks Bartlomiej Zolnierkiewicz). White space clean up.
<bcollins@debian.org>
IEEE1394(r1142): Use a kernel thread to rescan devices so we don't block the
writer.
<davidm@tiger.hpl.hp.com>
ia64: Back-port from libunwind: fix off-by-one error in kernel-unwinder.
There are no known failures due to this bug, but it's clearly a bug and
given the right compiler, it could trigger and lead to bad stack traces etc.
<rddunlap@osdl.org>
[PATCH] sys_device_[un]register() are not syscalls
sys_xyz() names in Linux are all syscalls... except for
sys_device_register() and sys_device_unregister().
This patch renames them so that the sys_ namespace is once
again used only by syscalls.
<stern@rowland.harvard.edu>
[PATCH] USB: Another unusual_devs.h update
On Thu, 19 Feb 2004, Agustin De Igartua wrote:
> Initializing USB Mass Storage driver...
> usb-storage: This device (04e6,0002,0100 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>scsi0 : SCSI emulation for USB Mass
Storage devices
Thank you for sending this in. Greg, here's the patch.
<stern@rowland.harvard.edu>
[PATCH] USB: Repair unusual_devs.h entry
On Fri, 20 Feb 2004, Gustavo Guillermo wrote:
> Ok, I tested the patch, The camera works, just as in the old Kernel,
> Thanks, I'm including as an atachment the /proc/bus/usb/devices from
> kernel 2.4.x and 2.6.x, and the kernel log for 2.4.x, but ooops, I forgot
> to biold 2.4.x with full debug, if someone need it I will do.
>
> Please include this FIX in the Next Release.
Greg, I now feel confident that this patch should be applied.
<stern@rowland.harvard.edu>
[PATCH] USB: Use driver-model logging in the UHCI driver
The main item in this patch is the conversion of the UHCI driver from
using the old usb.h logging macros to the new driver-model dev_xxx
macros.
There are a few other minor changes too: updated version number, author,
copyright, and maintainer information, removed some unneeded error
messages, added some line breaks, added a convenience macro for the device
pointer.
<greg@kroah.com>
[PATCH] USB: fix up compile errors in uhci driver.
<shemminger@osdl.org>
[PATCH] propogate errors from misc_register to caller
The patch to check for / in class_device is not enough.
The misc_register function needs to check return value of the things it
calls!
<Andries.Brouwer@cwi.nl>
[PATCH] USB: add comments to sddr09.c
People ask how to write the CIS on a SmartMedia card using an sddr09
reader/writer. The patch below documents the required command (but does
not add the code).
Two years ago or so I used this to fix the CIS on a card that my camera no
longer wanted to accept. A Linux utility to do this might be useful, but
the problem always is that we do not really have a good mechanism.
How does one tell a driver that it has to do something special? Add yet
another ioctl?
<bcollins@debian.org>
IEEE1394(r1143): Fix FCP requests, broken by my change for
list_for_each_entry().
<greg@kroah.com>
USB storage: sync up with some missing unusual_devs entries that were in my
tree.
<davem@nuts.davemloft.net>
[SPARC64]: Update defconfig.
<davem@nuts.davemloft.net>
[I2C]: Fix resource address typing.
<davem@nuts.davemloft.net>
[I2C]: Use correct port address types in i2c-velleman.c
<davem@nuts.davemloft.net>
[I2C]: Fix resource address typing in i2c-voodoo3.c
<benh@kernel.crashing.org>
[PATCH] Be careful about memory ordering in sungem driver
Some barriers between setting up the DMA regions and writing the
descriptor addresses would be most useful.
I had some in my 2.4 version but they got lost someway, probably me not
properly merging with davem at this point. The 970 is definitely more
agressive at re-ordering stores than previous CPUs...
Here is a patch adding some (probably too much, but better safe than
sorry).
<benh@kernel.crashing.org>
[PATCH] Fix a DMA underrun problem with pmac IDE
This fixes the behaviour of the pmac "macio" IDE driver when a DMA
transfer happen to get less data out of the device than expected when
setting up the DMA commands (the device underruns). This is very common
with recent ATAPI stuffs and used to cause problem & disable DMA. This
patch fixes the way we handle that condition, thus also fixing DVD
burning on a bunch of recent pmacs.
<davem@nuts.davemloft.net>
[FREEVXFS]: Fix u64 printk warnings on some 64-bit platforms.
<davem@nuts.davemloft.net>
[I2C]: If comparing against ULONG_MAX, use ulong type, in lm85.c
<akpm@osdl.org>
[PATCH] ppc64 compile fix
From: Arjan van de Ven <arjanv@redhat.com>
fix obvious non-C-standard stubs on ppc64
<akpm@osdl.org>
[PATCH] v850 ptrace.c task_struct leak
From: Herbert Poetzl <herbert@13thfloor.at>
sys_ptrace() for v850, if pid == 1, doesn't put the struct task_struct
(child), the following patch should fix that ...
<akpm@osdl.org>
[PATCH] Fix the display of max-ever-used-stack in sysrq-T output
The sysrq-T output currently tries to display the mimimum amount of free
stack which each task has ever had available. It has been busted for years,
because we forgot to zero out the stack when it is first created.
Fix that up, adding a conig option for it.
If the option is disabled, or the arch is not x86 then the free stack usage
will display as zero.
<akpm@osdl.org>
[PATCH] smbfs: remove debug code
Remove an unneeded WSET() which snuck in there.
<akpm@osdl.org>
[PATCH] x86_64 uniproc build fix
From: Andi Kleen <ak@suse.de>
This fixes some more problems introduced by the IA32e merge on x86-64
- Make it compile on UP again.
- Let the microcode driver build as a module
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] remove dead kernel parameters
Remove "hdx=flash" (ignored since 2.5.63) and "hdx=slow"
(ignored since 2.5.41) kernel parameters.
Also remove "slow" entry from /proc/ide/hdx/settings
and "ata_flash", "nobios" and "slow" fields from ide_drive_t.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] keep documentation of kernel parameters in one place only
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] kill useless IDE_SUBDRIVER_VERSION
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] kill default_shutdown() and ide_drive_t->shutdown
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] kill default_flushcache() and ide_drive_t->flushcache
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] remove bogus comment and code from ide_unregister_driver()
When ide_remove_proc_entries() is called, driver specific /proc/ide/hdx/
entries have been already removed by ->cleanup()->ide_unregister_subdriver().
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] remove dead/unfinished taskfile version of ide_cmd_ioctl()
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] remove unused ide_end_taskfile()
Additionally ide_end_drive_cmd() contains all functionality of this function.
<davem@nuts.davemloft.net>
[NFSD]: Fix u64 printk warnings on some 64-bit platforms.
<B.Zolnierkiewicz@elka.pw.edu.pl>
[PATCH] fix /proc/ide/<chipset> for IDE PCI modules
Make IDE PCI drivers register /proc/ide/<chipset> entries themselves.
<davem@nuts.davemloft.net>
[SMBFS]: Use '%z' printf format for size_t types.
<davem@nuts.davemloft.net>
[MEDIA]: Print out pointers correctly in dst.c
<davem@nuts.davemloft.net>
[MEDIA]: Use '%z' printf format for size_t.
<davem@nuts.davemloft.net>
[SKFDDI]: Use unsigned long for resource base/size.
<davem@nuts.davemloft.net>
[SUNDANCE]: Fix casting so u64 printk does not warn on some 64-bit platforms.
<davem@nuts.davemloft.net>
[MEDIA]: Use '%z' printf format for size_t/ptrdiff_t types in w9968cf.c.
<cpg@puchol.com>
[PATCH] initial support for transmeta's efficeon processors
This implements the initial support for the AGP gart in Transmeta's
Efficeon processors.
This code is based on linus' code from a while ago. Peter and I adapted
it for the current kernel.
The note at the top indicates how it was tested, known issues, and so
forth. It is working quite well, and we'll work to fix the minor issues
and test it some more with s3, more cards, other southbridges, etc.,
next.
<davem@nuts.davemloft.net>
[I2C]: Use correct port address typing in i2c-elv.c
<davem@nuts.davemloft.net>
[SPARC64]: Do similar macro casting for {in,out}{b,w,l}() as we do for
{read,write}{b,w,l,q}().
<torvalds@ppc970.osdl.org>
Include the <linux/dma-mapping.h> header file for DMA mapping.
You know you want it. Give it to me.
<wesolows@foobazco.org>
[SPARC32]: Do similar macro casting for {in,out}{b,w,l}() as we do for {read
,write}{b,w,l,q}().
<davem@nuts.davemloft.net>
[SPARC64]: Update defconfig.
<wesolows@foobazco.org>
[SPARC32]: Nuke a.out build cruft
This removes C_LABEL and asm/cprefix.h as well as NEW_GAS. These were
used to support building on SunOS and with ancient binutils.
<tony@com.rmk.(none)>
[ARM PATCH] 1759/1: Add ARM925 support, updated
Patch from Tony Lindgren
The following patch adds the ARM925 processor support.
This patch is based on the proc-arm925.S in 2.4 kernel, and it has been
modified to be more like the ARM926 support in the 2.6 kernel, except for
the cache flushing and initialization. Also, this patch fixes the
writeback cache flushing for most part.
There are still some issues with writeback cache flushing with devices
using direct memory access, such as USB OHCI. It is recommended to use
the writethrough instead if using USB. This is the default for OMAP-1510.
OMAP-1610 does not have these issues, as it uses ARM926 core.
This patch includes the update for the processor functions to be armv4t
instead armv5t as suggested here:
http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=1740/1
<h.schurig@de.rmk.(none)>
[ARM PATCH] 1670/1: PXA serial driver
Patch from Holger Schurig
PXA Serial port (FFUART, BTUART, STUART) and console support
This patch works perfectly here with "console=ttyS0,115200" in the
kernel command line. It contains Jean-frederic Clere fix to detect
STUART and BTUART.
Nico said that I should post it to your patch tracker. It replaces patch
1662/1
<Martine.Silbermann@hp.com>
[PATCH] PCI: update MSI Documentation
After getting feedback