| Change log for patch v2.5.41 |
|---|
Summary of changes from v2.5.40 to v2.5.41
============================================
<thockin@freakshow.cobalt.com>
Add dp83816 support to drivers/net/natsemi.c
<jgrimm@touki.austin.ibm.com>
sctp: mark functions needed by testsuite as SCTP_STATIC
The lksctp project implemenents a regressions suite which needs
certain functions exported. SCTP_STATIC is used to compile
the function as 'static' when not in the testsuite.
<manfred@colorfullife.com>
drivers/net/natsemi.c: create a function for rx refill
<manfred@colorfullife.com>
drivers/net/natsemi.c: combine drain_ring and init_ring
<manfred@colorfullife.com>
drivers/net/natsemi.c: OOM handling
<manfred@colorfullife.com>
drivers/net/natsemi.c: stop abusing netdev_device_{de,a}ttach
<manfred@colorfullife.com>
drivers/net/natsemi.c: write MAC address back to the chip
<manfred@colorfullife.com>
drivers/net/natsemi.c: lengthen EEPROM timeout, and always warn about all timeouts
<manfred@colorfullife.com>
drivers/net/natsemi.c: comments update
<thockin@freakshow.cobalt.com>
drivers/net/natsemi.c: janitorial - whitespace, wrap, and indenting cleanup
<thockin@freakshow.cobalt.com>
drivers/net/natsemi.c: stop tx/rx and reinit_ring on a PHY reset
<thockin@freakshow.cobalt.com>
drivers/net/natsemi.c: cleanup version string, fix compile error
<thockin@freakshow.cobalt.com>
drivers/net/natsemi.c: boost some printk() levels to WARN
<kai@tp1.ruhr-uni-bochum.de>
NET: Do not use dev->hard_header_len in eth_header()
The actual return value of eth_header() is never used, only its sign.
So it does not make a difference if we return dev->hard_header_len or
ETH_HLEN, but the latter makes more sense as that is the number of bytes
we added to the front of the frame.
For 99% of the drivers, dev->hard_header_len == ETH_HLEN, so no difference
at all, but if a driver actually needs additional headroom and thus
has dev->hard_header_len > ETH_HLEN, the process of building the ethernet
header should not care at all.
<kai@tp1.ruhr-uni-bochum.de>
NET: Do not use dev->hard_header_len in eth_type_trans()
eth_type_trans() currently pulls dev->hard_header_len off a frame
passed to it, however always interpreting it as a ethernet header.
Grepping shows that it is only used on net devices where
dev->hard_header_len == ETH_HLEN. It makes more sense to actually
pull of ETH_HLEN for the header (it's treated as a struct of the length
anyway), not changing the behavior for the existing users but allowing
two places which had to use their private copies of eth_trans_type to
use the generic routine now.
One place is in drivers/net/hamachi.c and converted in this cset, the other
one is in the ISDN network code, patch will follow.
<jgrimm@touki.austin.ibm.com>
sctp: Fix GFP_KERNEL allocation with lock held.
<acme@conectiva.com.br>
o LLC: remove unused mac_dev_peer
Also move code around in llc_sap.c so that we don't need the prototypes
on the top, makes cflags actually work when finding those functions,
not going to the prototypes instead of the actual functions.
<acme@conectiva.com.br>
o LLC: grab the skb in llc_conn_state_event, use llc_pdu_sn_hdr
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Use a skb queue instead of open coded solution in isdn_ppp.c
Apart from cleaning up and simplifying the code, this also gets rid of
some cli() and stuff, since skb_queue accesses are atomic via an internal
spinlock.
<acme@conectiva.com.br>
o LLC: kill llc_conn_free_ev, use plain kfree_skb instead
Also flush the backlog in llc_ui_wait_for_data before going to sleep.
Also fix a bug in llc_backlog_rcv where I was double freeing a skb.
<jgrimm@touki.austin.ibm.com>
sctp: Fix GFP_KERNEL allocation with lock held.
<kuznet@ms2.inr.ac.ru>
net/ipv6/mcast.c: Handle IPV6_LEAVE_GROUP with ipv6mr_interface==0
<kai@tp1.ruhr-uni-bochum.de>
ISDN: More moving of per-channel stuff into isdn_net_dev
<jgarzik@mandrakesoft.com>
Fix natsemi net drvr build, s/KERN_WARN/KERN_WARNING/
<kai@tp1.ruhr-uni-bochum.de>
ISDN: More sorting out of members for isdn_net_local / isdn_net_dev
There is a one-to-one relation between struct net_device and
isdn_net_local, so reflect that in the declaration. There is
one list of active channels per network interface, so put
the list head into isdn_net_local, the list members are isdn_net_dev's.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: adapt to task queue changes
Use a tasklet for pushing supervisory frames down the ISDN line and
schedule_task() for flipping ttyI's buffers.
<jejb@mulgrave.(none)>
[PATCH] first cut at fixing unable to requeue with no outstanding
commands
The attached represents an attempt to break the scsi mid-layer of the
assumption that any device can queue at least one command.
What essentially happens if the host rejects a command with no other
outstanding commands, it does a very crude countdown (basically counts the
number of cycles through the scsi request function) until the device gets
enabled again when the count reaches zero. I think the iteration in the
request function is better than a fixed timer because it makes the system more
responsive to I/O pressure (and also, it's easier to code).
I've tested this by making a SCSI driver artificially reject commands with
none outstanding (and run it on my root device). A value of seven seems to
cause a delay of between half and five seconds before the host starts up again
(depending on the I/O load).
If this approach looks acceptable, I plan the following enhancements
1. Make device_busy count down in the same fashion
2. give ->queuecommand() a two value return (one for blocking the entire host
and another for just blocking the device).
3. Make the countdown tuneable from the host template.
<jejb@mulgrave.(none)>
[PATCH] add cache synchronisation to sd
Not that I agree with running ordinary (non UPS battery backed) devices with
writeback caches, but I know most modern SCSI devices come with writeback
caches, so this code (like the corresponding IDE code) detects the cache
setting on attach and flushes the drive cache on shutdown.
<hugh@veritas.com>
[PATCH] Oracle startup split_vma fix
Alessandro Suardi and Zlatko Calusic independently reported that
Oracle cannot start on recent 2.5: excellent research by Zlatko
quickly pointed to vm_pgoff buglet in the new split_vma.
<paulus@au1.ibm.com>
[PATCH] pcmcia resource allocation fix
The patch below is a forward-port from 2.4 of a fix that went in to
the 2.4.x PCMCIA code some time back. It makes sure that that we
request I/O and memory regions from the correct resource (the parent
of the PCMCIA bridge chip, for PCMCIA bridges connected to a PCI bus)
rather than always requesting them from the top-level ioport_resource
or iomem_resource.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Use list.h list for list of online channels
Cleaner and less error-prone than the open coded doubly linked
list.
<mingo@elte.hu>
[PATCH] Workqueue Abstraction
This is the next iteration of the workqueue abstraction.
The framework includes:
- per-CPU queueing support.
on SMP there is a per-CPU worker thread (bound to its CPU) and per-CPU
work queues - this feature is completely transparent to workqueue-users.
keventd automatically uses this feature. XFS can now update to work-queues
and have the same per-CPU performance as it had with its per-CPU worker
threads.
- delayed work submission
there's a new queue_delayed_work(wq, work, delay) function and a new
schedule_delayed_work(work, delay) function. The later one is used to
correctly fix former tq_timer users. I've reverted those changes in 2.5.40
that changed tq_timer uses to schedule_work() - eg. in the case of
random.c or the tty flip queue it was definitely the wrong thing to do.
delayed work means a timer embedded in struct work_struct. I considered
using split struct work_struct and delayed_work_struct types, but lots
of code actively uses task-queues in both delayed and non-delayed mode,
so i went for the more generic approach that allows both methods of work
submission. Delayed timers do not cause any other overhead in the
normal submission path otherwise.
- multithreaded run_workqueue() implementation
the run_workqueue() function can now be called from multiple contexts, and
a worker thread will only use up a single entryy - this property is used
by the flushing code, and can potentially be used in the future to extend
the number of per-CPU worker threads.
- more reliable flushing
there's now a 'pending work' counter, which is used to accurately detect
when the last work-function has finished execution. It's also used to
correctly flush against timed requests. I'm not convinced whether the old
keventd implementation got this detail right.
- i switched the arguments of the queueing function(s) per Jeff's
suggestion, it's more straightforward this way.
Driver fixes:
i have converted almost every affected driver to the new framework. This
cleaned up tons of code. I also fixed a number of drivers that were still
using BHs (these drivers did not compile in 2.5.40).
while this means lots of changes, it might ease the QA decision whether to
put this patch into 2.5.
The pach converts roughly 80% of all tqueue-using code to workqueues - and
all the places that are not converted to workqueues yet are places that do
not compile in vanilla 2.5.40 anyway, due to unrelated changes. I've
converted a fair number of drivers that do not compile in 2.5.40, and i
think i've managed to convert every driver that compiles under 2.5.40.
<jejb@mulgrave.(none)>
[PATCH] remove mid-layer assumption that devices must be able to queue at least one command
This allows the request_fn() to recover properly from either host_blocked
or device_blocked at zero command depth.
Also adds the facility for queuecommand() to tell us whether it wants
the host or only the device blocked
<jejb@mulgrave.(none)>
[PATCH SCSI] make BUSY status stall the device for a while
<jejb@mulgrave.(none)>
[SCSI] remove debugging from zero depth queue handling
<florian.thiel@gmx.net>
Documentation/networking/tuntap.txt: Completely rework, this document was much outdated.
<daisy@teetime.dynamic.austin.ibm.com>
sctp: Added the 'Unrecognized Parameter' handling.
<hch@dhcp212.munich.sgi.com>
XFS: temporarily switch to schedule_task for I/O completion
This is a huge performance drop for SMP, but at least XFS is working
again. Expect a better solution soon.
<hch@dhcp212.munich.sgi.com>
XFS: remove description of mount option not in mainline
<hch@sgi.com>
[PATCH] XFS updates for workqueues
<hch@sgi.com>
[PATCH] workqueue flush on destroy
<jgarzik@mandrakesoft.com>
airo wireless netdrvr: s/routine/func/ to fix build (wq-related breakage)
<hch@sgi.com>
[PATCH] no more flush_workqueue in xfs
I see you just applied my patch to make destroy_workqueue do the
flush. Fix up XFS for it.
<pavel@ucw.cz>
[PATCH] Swsusp updates, do not thrash ide disk on suspend
This cleans up swsusp a little bit and fixes ide disk corruption on
suspend/resume.
Pavel
<perex@suse.cz>
[PATCH] ALSA update [1/12] - 2002/08/09
- Corrections for PCM sample silence (24-bits)
- OPL3 code fixes (delays)
- CS4281
- added the power management code
- added mixer controls for internal FM and PCM volumes
- EMU10K1
- fixed the dma mask
- ICE1712
- replaced EREMOTE with EIO
- check the return value from ews88mt_chip_select()
- Maestro3
- corrected the wrong pci id for inspiron 8000
- use the quirk list for gpio workarounds
<perex@suse.cz>
[PATCH] ALSA update [2/12] - 2002/08/12
- removed __NO_VERSION__
- CS46xx
- SDPIF input support, only 48khz
- PCM multichannel bug fix
- EMU10K1
- Added workaround for EMU10K1 capture (wrong pointer)
- Keywest (PPC)
- fixed the initialization of driver
<perex@suse.cz>
[PATCH] ALSA update [3/12] - 2002/08/13
- C99-like structure initializers - first bunch of changes
- CS46xx
- fixed the compile with the older image
- AC'97 codec
- added the ids for ITE chips
- check the validity of registers always in the limited register mode
- intel8x0
- allow ICH4 to proceed without probing PCR / SCR bits
- VIA686
- AC97 cold reset only when AC-link is down
<perex@suse.cz>
[PATCH] ALSA update [4/12] - 2002/08/14
- added USB Audio and USB MIDI drivers
- VIA686
- AC97 cold reset only when AC-link is down
<perex@suse.cz>
[PATCH] ALSA update [5/12] - 2002/08/15
- C99 structure initializers - second set of changes
- USB MIDI driver
- more device info for Roland/EDIROL devices
<perex@suse.cz>
[PATCH] ALSA update [6/12] - 2002/08/21
- CS46xx
- SPDIF input fixes
- fixed missplaced #ifndef
- amplifier fix for Game Theater XP
- refine on the PCM multichannel functionality
- EMU10K1
- added the support for Audigy spdif controls
- PCM midlevel
- fixed hw_free (wrong state for drivers with no callback
- fixed sw_params (runtime) lock
- AC'97 codec
- fixed spin deadlock
- CS4281
- fixed wrong mdelays and allowed scheduling in module_init
- PPC drivers
- added the missing inclusion of linux/slab.h
- USB MIDI driver
- replaced urb_t -> struct urb
<perex@suse.cz>
[PATCH] ALSA update [7/12] - 2002/08/26
- AC'97 codec
- added ac97_can_amap() condition
- removed powerup/powerdown sequence when sample rate is changed
- added ac97_is_rev22 check function
- added AC97_EI_* defines
- available rates are in array
- CS46xx
- improved the SCB link mechanism
- SMP deadlock should have been fixed now
- OSS mixer emulation
- added the proc interface for the configuration of OSS mixer volumes
- rawmidi midlevel
- removed unused snd_rawmidi_transmit_reset and snd_rawmidi_receive_reset functions
- USB MIDI driver
- integration of USB MIDI driver into USB audio driver by Clemens
- intel8x0 - the big intel8x0 driver update
- added support for ICH4
- rewrited I/O (the third AC'97 codec registers are available only through memory)
- code cleanups
- ALI5455 specific code
- added proc interface
- VIA686, VIA8233
- set the max periods to 128
<perex@suse.cz>
[PATCH] ALSA update [8/12] - 2002/09/06
- VIA686 and VIA8233 driver merge to VIA82xx
- ioctl32 fixes
- fixed OOPS in snd_pcm_sgbuf_delete (not initialized)
- I2C - call hw_stop() before returning at the error pointer
- AC'97 codec - added more AC97 IDs by Laszlo Melis
- CS46xx - mutex initialization fix
- ENS1371 - added one more card to S/PDIF capabilities
- intel8x0
- fixed secondary and third codec indexes
- PPC Keywest - initialize MCS in loop until it succeeds
- PPC Tumbler - the initial support for snapper (TAS3004) on some tibook
- USB Audio - mixer fixes
<perex@suse.cz>
[PATCH] ALSA update [9/12] - 2002/09/11
- AC'97 codec
- added support/detection for MC'97 (modem codecs)
- improved/updated register bit constants
- AD1980 codec ID with patch code
- added eMicro and Philips UCB1400 codecs
- PCM Scatter-Gather support
- added a function snd_pcm_sgbuf_get_addr()
- rewritten PCI DMA allocation
- ENS1371 - fixed IEC958 control index when AC'97 codec has S/PDIF capability, too
- intel8x0
- don't break when second codec cannot be initialized
- via82xx
- improved sg buffer handling
- added "Input Source Select" control for via8233
- fixed the registers for via8233
- fixed the detection of via8233 chip
- clean up the configuration of bd arrays
- USB Audio
- added the missing initialization of curframesize field (fixes capture)
<perex@suse.cz>
[PATCH] ALSA update [10/12] - 2002/09/16
- OSS mixer emulation
- save the current volume values permanently
- PCM midlevel
- fixed 64bit division on non-ix86 32bit architectures
- exported snd_pcm_new_stream()
- PCI DMA allocation
- fixes and updates
- PCM Scatter-Gather code
- don't set runtime->dma_bytes if runtime is null
- CMI8330 - fix nor non-IsaPnP build
- CMIPCI - added "Mic As Center/LFE" switch for model 039 or later
- more initialization of structs in C99 style
- intel8x0 - fixes for nvidia nforce
- Maestro3 - added quirk for CF72 toughbook
- VIA82xx - reset codec only when it's not ready
- USB Audio
- fixed oops at unloading if non-intialized substream exists
- show interface number in proc files
- clean up and fixed the parser of audio streams
<perex@suse.cz>
[PATCH] ALSA update [11/12] - 2002/09/17
- changed bitmap_member -> DECLARE_BITMAP
- EMU10K1
- added gpr_list_control* variables to emu10k1_fx8010_code_t
- added snd_emu10k1_list_controls for code_peek() and fixes few typos
- ICE1712
- split ice1712 code to several files for better readability
<perex@suse.cz>
[PATCH] ALSA update [12/12] - 2002/10/01
- deleted sound/pci/ice1712.c
- fixed Makefile to point to sound/pci/ice1712 directory
- added Ensoniq SoundScape header file and HWDEP IFACE
- CS4231
- added CS4231_HW_AD1845 and register definitions for AD1845
- USB
- added snd-rawmidi.o to the snd-usb-audio's dependency if sequencer is
- PCI DMA allocation
- fixed the wrapper again
- AC'97 codec
- added HSD11246 identification (Conexant), a bit improved proc contents
- CMIPCI
- changed the DMA configuration for period size
- fixed compile with SOFT_AC3 option
- added PCM_INFO_PAUSE to hw settings. now pause should work properly
- corrected the modem on/off bit (FLINK)
- ICE1712
- compilation fixes
- intel8x0
- use mmio for codec on nforce (pci resource 2)
- clean up and fix ali5455 codes
- RME32
- enable 88.2/96kHz on capture with CS8414
- VIA82xx
- fixed the size of allocated bd array to be released
- fixed the allocation size of idx_table
- PPC Awacs
- replaced one more mdelay() with schedule
- try to touch mic boost on screamer at init
- USB Audio
- reset each interface at initialization
- reset the old interface if a new interface is chosen
- don't claim the interface which already claimed
<ahaas@neosoft.com>
[PATCH] C99 designated initializers for include/linux/isapnp.h
<trond.myklebust@fys.uio.no>
[PATCH] NFS: readdir reply truncated
Fix the tests for readdir reply truncation so that we don't get
uncalled for kernel verbiage.
<torvalds@penguin.transmeta.com>
bitmap_member() => DECLARE_BITMAP()
<kai@tp1.ruhr-uni-bochum.de>
Cset exclude: kai@tp1.ruhr-uni-bochum.de|ChangeSet|20020929194514|33195
<jgrimm@touki.austin.ibm.com>
sctp: Fix bug where we were erroneously throwing away packets > frag_point. (jgrimm)
<petkan@users.sourceforge.net>
[PATCH] USB: rtl8150 update
set_mac_address is now added to the driver. thanks to Orjan Friberg <orjan.friberg@axis.com>
the actual writing to the eeprom is disabled by default
<jejb@mulgrave.(none)>
[SCSI] remove comment that every host is expected to be able to queue at least one command
<petkan@users.sourceforge.net>
[PATCH] USB: pegasus update
device ID fix
<shaggy@kleikamp.austin.ibm.com>
JFS: Releasing LOGGC_LOCK too early
In txLazyCommit, we are releasing log->gclock (LOGGC_LOCK) before
checking tblk->flag for tblkGC_LAZY. For the case that tblkGC_LAZY
is not set, the user thread may release the tblk, and it may be
reused and the tblkGC_LAZY bit set again, between the time we release
the spinlock until we check the flag. This is a lot to happen in an
SMP environment, but when CONFIG_PREEMPT is set, it is very easy to
see the problem.
The fix is to hold the spinlock until after we've checked the flag.
(Yes, I know the symbol names are ugly.)
<davem@redhat.com>
[PATCH] USB: usbkbd fix
<luc.vanoostenryck@easynet.be>
[PATCH] 2.5.40: warning fix for drivers/usb/core/usb.c
usb_hotplug()' prototype doesn't match when CONFIG_HOTPLUG is not defined.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Small cleanups
o Use a function "descend" for descending into subdirectories
o Remove unused (?) "boot" target
o Remove unnecessary intermediate "sub_dirs" target from Rules.make
o Use /bin/true instead of echo -n to suppress spurious
"nothing to be done for ..." output from make
<daisy@teetime.dynamic.austin.ibm.com>
Remove excessive spaces.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Remove xfs vpath hack
xfs.o is built as one modules out of objects distributed into
multiple subdirs. That is okay with the current kbuild, you just
have to include the path for objects which reside in a subdir, then.
xfs used vpath instead of explicitly adding the paths, which is
inconsistent and conflicts e.g. with proper module version generation.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Standardize ACPI Makefiles
ACPI was a bit lazy and just said compile all .c files in this directory,
which is different from all other Makefiles and will not work very
well e.g. bk, where a .c file may not be checked out yet, or separate
obj/src dirs. So just explicitly list the files we want to compile.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Small quirks for separate obj / src trees
Add a couple of missing $(obj) and the like.
Also, remove the __chmod hack which made some files in the source tree
executable - hopefully, everybody's copy is by now ;)
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Add some bug traps
Makefiles which still use obsolete 2.4 constructs now give a warning.
<daisy@teetime.dynamic.austin.ibm.com>
Remove more excessive spaces.
<cip307@cip.physik.uni-wuerzburg.de>
[PATCH] USB: string query fix
Query for stringlen before reading a string in usb.c
<david-b@pacbell.net>
[PATCH] USB: framework for testing usbcore
USB test driver
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Handle $(core-y) the same way as $(init-y), $(drivers-y) etc
$(CORE_FILES) did not quite follow the way the other vmlinux parts where
handled, due to potential init order dependencies. However, it seems
everybody is putting arch specific stuff in front, so we keep doing
this and nothing should break ;)
<greg@kroah.com>
USB: speedtouch driver fix due to ioctl function parameter change
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Use $(core-y) and friends directly
The capitalized aliases $(CORE_FILES) etc are basically superfluous now,
move the remaining users to $(core-y) and the like.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Always build helpers in script/
As noticed by Sam Ravnborg, we need the targets in scripts (fixdep,
in particular) considered always, i.e. also when compiling modules.
<greg@kroah.com>
[PATCH] hotplug: fix for non-pci and usb calls
clear the environment variables so for busses without callbacks, we can
successfully call /sbin/hotplug.
Thanks to patmans@us.ibm.com for finding this bug.
<yoshfuji@linux-ipv6.org>
[IPv6]: Rework default router selection.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Don't cd into subdirs during build
Instead of using make -C <subdir>, just use make -f <subdir>/Makefile.
This means we now call gcc/ld/... always from the topdir.
Advantages are:
o We don't need to use -I$(TOPDIR)/include and the like, just
-Iinclude works.
o __FILE__ gives the correct relative path from the topdir instead
of an absolute path, as it did before for included headers
o gcc errors/warnings give the correct relative path from the topdir
o takes us a step closer to a non-recursive build (though that's probably
as close as it gets)
The changes to Rules.make were done in a way which only uses the new way
for the standard recursive build (which remains recursive, just without
cd), all the archs do make -C arch/$(ARCH)/boot ..., which should keep
working as before. However, of course this should be converted eventually,
it's possible to do so piecemeal arch by arch.
It seems to work fine for most of the standard kernel. Potential places
which need changing are added -I flags to the command line, which now
need to have the path relative to the topdir and explicit rules for
generating files, which need to properly use $(obj) / $(src) to work
correctly.
<torvalds@home.transmeta.com>
Update to DRI CVS tree
<greg@kroah.com>
USB: split the usb serial console code out into its own file.
<davem@nuts.ninka.net>
[EQL]: Rewrite to be SMP safe.
<davem@nuts.ninka.net>
net/sctp/inqueue.c: Convert to work queue.
<davem@nuts.ninka.net>
net/ipv6/route.c: Fix typo in previous change.
<davem@nuts.ninka.net>
net/ipv6/ipv6_sockglue.c: Support IPV6_ADDRFORM getsockopt.
<willy@debian.org>
[NET]: Move common ioctl code up a layer.
<perex@suse.cz>
[PATCH] ALSA fixes
- save_flags/cli/restore_flags removal
- updated USB code for 2.5
- fixed SPARC configuration
- fixed spinlock/sleep race in PCM midlevel
<kai@tp1.ruhr-uni-bochum.de>
kbuild: include arch-Makefile in common place
The top-level Makefile is separated into two parts, one which does
include .config, so it can access CONFIG_FOO, and one which does not,
since it may not even exist yet (make *config).
However, both parts need to include arch/$(ARCH)/Makefile, be it for
arch-specific settings or just for archclean/archmrproper.
So we now include arch/$(ARCH)/Makefile before the config/noconfig split,
which also has the advantage of giving us the arch-specific build dirs
(e.g. arch/i386/{kernel,mm,lib}) in both cases.
In addition, fix a couple of small glitches (make menuconfig, make
modules_install, proper output when descending)
<davem@nuts.ninka.net>
[SPARC64]: header cleanup, extern inline --> static inline
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Adapt mrproper targets
Use $(call descend,..) for mrproper as well.
<davem@nuts.ninka.net>
include/asm-sparc64/pstate.h: Kill asm routines, nobody uses them.
<viro@math.psu.edu>
[PATCH] pd switched to dynamic allocation
<viro@math.psu.edu>
[PATCH] pd.c cleanups
Removed cruft from pd_ioctl() and friends.
<viro@math.psu.edu>
[PATCH] mtd switched to dynamic allocation
<viro@math.psu.edu>
[PATCH] md switched to dynamic allocation
<viro@math.psu.edu>
[PATCH] old cdroms switched to dynamic allocation
<viro@math.psu.edu>
[PATCH] loop.c switched to dynamic allocation
<viro@math.psu.edu>
[PATCH] rd.c switched to dynamic allocation
<viro@math.psu.edu>
[PATCH] hd.c switched to dynamic allocation
<viro@math.psu.edu>
[PATCH] floppy.c switched to dynamic allocation
<akpm@digeo.com>
[PATCH] misc (mainly documentation)
- hugetlb Documentation update
- Add /proc/buddyinfo documentation
- nano-cleanup in __remove_from_page_cache.
<akpm@digeo.com>
[PATCH] sys_ioperm atomicity fix
sys_ioperm() is calling kmalloc(GFP_KERNEL) inside get_cpu(). That's
wrong, because the memory allocation could schedule away and return on
a different CPU.
So change it to perform the memory allocation outside the atomic region.
<akpm@digeo.com>
[PATCH] mprotect bugfix
Patch from Hugh Dickins
Our earlier fix for mprotect_fixup was broken - passing an
already-freed VMA to change_protection().
<akpm@digeo.com>
[PATCH] remove bogus BUG in page_remove_rmap()
Pages with no reverse mapping can be present in page tables as a result
of a driver performing remap_page_range(). Don't go BUG over them.
<akpm@digeo.com>
[PATCH] radix tree gang lookup
Adds a gang lookup facility to radix trees. It provides an efficient
means of locating a bunch of pages starting at a particular offset.
The implementation is a bit dumb, but is efficient enough. And it is
amenable to the `tagged lookup' extension which is proving tricky to
write, but which will allow the dirty pages within a mapping to be
located in pgoff_t order.
Thanks are due to Huch Dickins for finding and fixing an unpleasant bug
in here.
<akpm@digeo.com>
[PATCH] truncate/invalidate_inode_pages rewrite
Rewrite these functions to use gang lookup.
- This probably has similar performance to the old code in the common case.
- It will be vastly quicker than current code for the worst case
(single-page truncate).
- invalidate_inode_pages() has been changed. It used to use
page_count(page) as the "is it mapped into pagetables" heuristic. It
now uses the (page->pte.direct != 0) heuristic.
- Removes the worst cause of scheduling latency in the kernel.
- It's a big code cleanup.
- invalidate_inode_pages() has been changed to take an address_space
*, not an inode *.
- the maximum hold times for mapping->page_lock are enormously reduced,
making it quite feasible to turn this into an irq-safe lock. Which, it
seems, is a requirement for sane AIO<->direct-io integration, as well
as possibly other AIO things.
(Thanks Hugh for fixing a bug in this one as well).
(Christoph added some stuff too)
<akpm@digeo.com>
[PATCH] add /proc/vmstat (start of /proc/stat cleanup)
Moves the VM accounting out of /proc/stat and into /proc/vmstat.
The VM accounting is now per-cpu.
It also moves kstat.pgpgin and kstat.pgpgout into /proc/vmstat.
Which is a bit of a duplication of /proc/diskstats (SARD), but it's
easy, super-cheap and makes life a lot easier for all the system
monitoring applications which we just broke.
We now require procps 2.0.9.
Updated versions of top and vmstat are available at http://surriel.com
and the Cygnus CVS is uptodate for these changes. (Rik has the CVS
info at the above site).
This tidies up kernel_stat quite a lot - it now only contains CPU
things (interrupts and CPU loads) and disk things. So we now have:
/proc/stat: CPU things and disk things
/proc/vmstat: VM things (plus pgpgin, pgpgout)
The SARD patch removes the disk things from /proc/stat as well.
<akpm@digeo.com>
[PATCH] add kswapd success accounting to /proc/vmstat
Tells us how many pages were reclaimed by kswapd.
The `pgsteal' statistic tells us how many pages were reclaimed
altogether. So
kswapd_steal - pgsteal
is the number of pages which were directly reclaimed by page allocating
processes.
Also, the `pgscan' data is currently counting the number of pages
scanned in shrink_cache() plus the number of pages scanned in
refill_inactive_zone(). These are rather separate concepts, so I
created the new `pgrefill' counter for refill_inactive_zone().
`pgscan' is now just the number of pages scanned in shrink_cache().
<akpm@digeo.com>
[PATCH] "io wait" process accounting
Patch from Rik adds "I/O wait" statistics to /proc/stat.
This allows us to determine how much system time is being spent
awaiting IO completion. This is an important statistic, as it tends to
directly subtract from job completion time.
procps-2.0.9 is OK with this, but doesn't report it.
<akpm@digeo.com>
[PATCH] convert direct-io to use bio_add_page()
From Badari Pavlati.
Use bio_add_page() in direct-io.c.
<hugh@veritas.com>
[PATCH] tmpfs swapoff deadlock
tmpfs 1/5 swapoff deadlock: my igrab/iput around the yield in
shmem_unuse_inode was rubbish, seems my testing never really hit the
case until last week, when truncation of course deadlocked on the page
held locked across the iput (at least I had the foresight to say "ugh!"
there). Don't yield here, switch over to the simple backoff I'd been
using for months in the loopable tmpfs patch (yes, it could loop
indefinitely for memory, that's already an issue to be dealt with
later). The return convention from shmem_unuse to try_to_unuse is
inelegant (commented at both ends), but effective.
<hugh@veritas.com>
[PATCH] cleanup of page->flags manipulations
I've had this patch hanging around for a couple of months (you liked an
earlier version, but I never found time to resubmit it), remove some
unnecessary PageDirty and PageUptodate manipulations.
add_to_page_cache can only receive a dirty page in the add_to_swap
case, so deal with it there. add_to_swap is better off using
add_to_page_cache directly than add_to_swap_cache. Keep move_to_ and
_from_swap_cache simple, and don't fiddle with flags without reason.
It's a little less efficient to correct clean->dirty list as an
afterthought, but cuts unusual code from slow path.
<hugh@veritas.com>
[PATCH] shmem_rename() fixes
shmem_rename still didn't get parent directory link count quite right,
in the case where you rename a directory in place of an empty directory
(with rename syscall: doesn't happen like that with mv command); and it
forgot to update new directory's ctime and mtime. (I'll be sending 2.4
version to Marcelo shortly.)
<hugh@veritas.com>
[PATCH] tpmfs: fake a non-zero size for directories
Apparently some applications are confused by tmpfs's practice of
returning zero for the size of diretories. In 2.4.20-pre6 Peter Anvin
submitted a change to make tmpfs directories always have a size of "1".
In the same spirit, this patch arranges for tmpfs directories to show
up as having 20 * number_of_entries, including "." and "..".
Apparently counting up the size of all the entries isn't worth the
hassle.
<hugh@veritas.com>
[PATCH] tmpfs: minor fixes
tmpfs contributes to the AltSysRqM swapcache add and delete statistics,
but not to its find statistics: use lookup_swap_cache wrapper to
find_get_page, to contribute to those statistics too. Elsewhere, use
existing info pointer and NAME_MAX definition. (I'll be sending 2.4
version to Marcelo shortly.)
<hugh@veritas.com>
[PATCH] add shmem_vm_writeback()
Give tmpfs its own shmem_vm_writeback (and empty shmem_writepages):
going through the default mpage_writepages is very wrong for tmpfs,
since that may write nearby pages while still mapped into mms, but
"writing" converts pages from tmpfs file identity to swap backing
identity: doing so while mapped breaks assumptions throughout e.g. the
shared file is liable to disintegrate into private instances.
<hugh@veritas.com>
[PATCH] shmem truncate race fix
The earlier partial truncation fix in shmem_truncate admits it is racy,
and I've now seen that (though perhaps more likely when
mpage_writepages was writing pages it shouldn't). A cleaner fix is,
not to repeat the memclear in shmem_truncate, but to hold the partial
page in memory throughout truncation, by shmem_holdpage from
shmem_notify_change.
<hugh@veritas.com>
[PATCH] shmem: remove info->sem
Between inode->i_sem and info->lock comes info->sem; but it doesn't
guard thoroughly against the difficult races (truncate during read),
and serializes reads from tmpfs unlike other filesystems. I'd prefer
to work with just i_sem and info->lock, backtracking when necessary
(when another task allocates block or metablock at the same time).
(I am not satisfied with the locked setting of next_index at the start
of shmem_getpage_locked: it's one lock hold too many, and it doesn't
really fix races against truncate better than before: another patch in
a later batch will resolve that.)
<hugh@veritas.com>
[PATCH] consolidate shmem_getpage and shmem_getpage_locked
The distinction between shmem_getpage and shmem_getpage_locked is not
helpful, particularly now info->sem is gone; and shmem_getpage
confusingly tailored to shmem_nopage's expectations. Put the code of
shmem_getpage_locked into the frame of shmem_getpage, leaving its
callers to unlock_page afterwards.
<hugh@veritas.com>
[PATCH] shmem: avoid metadata leakiness
akpm and wli each discovered unfortunate behaviour of dbench on tmpfs:
after tmpfs has reached its data memory limit, dbench continues to
lseek and write, and tmpfs carries on allocating unlimited metadata
blocks to accommodate the data it then refuses. That particular
behaviour could be simply fixed by checking earlier; but I think tmpfs
metablocks should be subject to the memory limit, and included in df
and du accounting. Also, manipulate inode->i_blocks under lock, was
missed before.
<hugh@veritas.com>
[PATCH] put shmem metadata in highmem
wli suffered OOMs because tmpfs was allocating GFP_USER, for its
metadata pages. This patch allocates them GFP_HIGHUSER (default
mapping->gfp_mask) and uses atomic kmaps to access (KM_USER0 for upper
levels, KM_USER1 for lowest level). shmem_unuse_inode and
shmem_truncate rewritten alike to avoid repeated maps and unmaps of the
same page: cr's truncate was much more elegant, but I couldn't quite
see how to convert it.
I do wonder whether this patch is a bloat too far for tmpfs, and even
non-highmem configs will be penalised by page_address overhead (perhaps
a further patch could get over that). There is an attractive
alternative (keep swp_entry_ts in the existing radix-tree, no metadata
pages at all), but we haven't worked out an unhacky interface to that.
For now at least, let's give tmpfs highmem metadata a spin.
<hugh@veritas.com>
[PATCH] shmem accounting fixes
If we're going to rely on struct page *s rather than virtual addresses
for the metadata pages, let's count nr_swapped in the private field:
these pages are only for storing swp_entry_ts, and need not be examined
at all when nr_swapped is zero.
<hugh@veritas.com>
[PATCH] shmem: misc changes and cleanups
If PAGE_CACHE_SIZE were to differ from PAGE_SIZE, the VM_ACCT macro,
and shmem_nopage's vm_pgoff manipulation, were still not quite right.
Slip a cond_resched_lock into shmem_truncate's long loop; but not into
shmem_unuse_inode's, since other locks held, and swapoff awful anyway.
Move SetPageUptodate to where it's not already set. Replace
copy_from_user by __copy_from_user since access already verified.
Replace BUG()s by BUG_ON()s. Remove an uninteresting PAGE_BUG().
<hugh@veritas.com>
[PATCH] shmem whitespace cleanups
Regularize the erratic whitespace conventions in mm/shmem.c. Removal
of blank line changes BUG_ON line numbers, otherwise builds the same.
<rth@twiddle.net>
[PATCH] alpha strncpy fix
Ported across from a nearly identical fix to the glibc tree. Under
some conditions we'd read one too many source words and segfault.
<ink@jurassic.park.msu.ru>
[PATCH] alpha compile fixes
- alpha/kernel/signal.c: sigmask_lock to sig->siglock transition;
- alpha/lib/Makefile: fix EV6 targets (restore EXTRA_AFLAGS accidentally
killed by previous patch).
<mingo@elte.hu>
[PATCH] dump_stack() cleanup, BK-curr
This modifies x86's dump_stack() to print out just the backtrace, not
the stack contents. The patch also adds one more whitespace after the
numeric EIP value. The old dump looked this way:
bad: scheduling while atomic!
Stack: ffffffff c041c72f 0000006a 00000068 000000f0 c13e1f28 c04c49c0 c13e1f28
c02a4099 c04c49c0 000000f0 00000000 00003104 c012592e 00003104 00003104
ffffffff 34000286 00000282 00000000 00000000 c13e1f28 c04c49c0 c04c4468
Call Trace:
[<c011f009>]sys_gettimeofday+0x89/0x90
[<c0113e40>]do_page_fault+0x0/0x49e
[<c0107d63>]syscall_call+0x7/0xb
the new output is:
bad: scheduling while atomic!
Call Trace:
[<c011f009>] sys_gettimeofday+0x89/0x90
[<c0113e40>] do_page_fault+0x0/0x49e
[<c0107d63>] syscall_call+0x7/0xb
much nicer and much more compact.
<mingo@elte.hu>
[PATCH] futex-2.5.40-B5
This does a number of futex bugfixes, performance improvements and
cleanups.
The bugfixes are:
- fix locking bug noticed by Martin Wirth: the ordering of
page_table_lock, vcache_lock and futex_lock was inconsistent and
created the possibility of an SMP deadlock.
- fix spurious wakeup noticed by Andrew Morton: the get_user() in
futex_wait() can set the task state to TASK_RUNNING.
- fix futex_wake COW race, noticed by Martin Wirth - futex_wake() has to
go through the same lookup rules as the futex_wait() code, otherwise it
might end up trying to wake up based on the wrong physical page.
Improvements:
- speed up the basic addrs => page lookup done by the futex code. It used
to do an unconditional get_user_pages() call, which did a vma lookup
and other heavy-handed tactics - while the common case is that the
page is mapped and available. Furthermore, due to the COW-race code we
had to re-check the mapping anyway, which made the get_user_pages()
thing pretty unnecessery. This inefficiency was noticed by Martin
Wirth.
the new lookup code first does a lightweight follow_page(), then if no
page is present we do the get_user_pages() thing.
- locking cleanups - the new lookup code made some things simpler, eg.
the hash calculation can now be done in queue_me().
- added comments
- reduced include file use.
- increased the futex hashtable.
<mingo@elte.hu>
[PATCH] sigfix-2.5.40-D6
This fixes all known signal semantics problems.
sigwait() is really evil - i had to re-introduce ->real_blocked. When a
signal has no handler defined then the actual action taken by the kernel
depends on whether the sigwait()-ing thread was blocking the signal
originally or not. If the signal was blocked => specific delivery to the
thread, if the signal was not blocked => kill-all.
fortunately this meant that PF_SIGWAIT could be killed - the real_blocked
field contains all the necessery information to do the right decision at
signal-sending time.
i've also cleaned up and made the shared-pending code more robust: now
there's a single central dequeue_signal() function that handles all the
details. Plus upon unqueueing a shared-pending signal we now re-queue the
signal to the current thread, which this time around is not going to end
up in the shared-pending queue. This change handles the following case
correctly: a signal was blocked in every signal, then one thread unblocks
it and gets the signal delivered - but there's no handler for the signal
=> the correct action is to do a kill-all.
i removed the unused shared_unblocked field as well, reported by Oleg
Nesterov.
now we pass both signal-tst1 and signal-tst2, so i'm confident that we got
most of the details right.
<mingo@elte.hu>
[PATCH] timer-2.5.40-F7
This does a number of timer subsystem enhancements:
- simplified timer initialization, now it's the cheapest possible thing:
static inline void init_timer(struct timer_list * timer)
{
timer->base = NULL;
}
since the timer functions already did a !timer->base check this did not
have any effect on their fastpath.
- the rule from now on is that timer->base is set upon activation of the
timer, and cleared upon deactivation. This also made it possible to:
- reorganize all the timer handling code to not assume anything about
timer->entry.next and timer->entry.prev - this also removed lots of
unnecessery cleaning of these fields. Removed lots of unnecessary list
operations from the fastpath.
- simplified del_timer_sync(): it now uses del_timer() plus some simple
synchronization code. Note that this also fixes a bug: if mod_timer (or
add_timer) moves a currently executing timer to another CPU's timer
vector, then del_timer_sync() does not synchronize with the handler
properly.
- bugfix: moved run_local_timers() from scheduler_tick() into
update_process_times() .. scheduler_tick() might be called from the fork
code which will not quite have the intended effect ...
- removed the APIC-timer-IRQ shifting done on SMP, Dipankar Sarma's
testing shows no negative effects.
- cleaned up include/linux/timer.h:
- removed the timer_t typedef, and fixes up kernel/workqueue.c to use
the 'struct timer_list' name instead.
- removed unnecessery includes
- renamed the 'list' field to 'entry' (it's an entry not a list head)
- exchanged the 'function' and 'data' fields. This, besides being
more logical, also unearthed the last few remaining places that
initialized timers by assuming some given field ordering, the patch
also fixes these places. (fs/xfs/pagebuf/page_buf.c,
net/core/profile.c and net/ipv4/inetpeer.c)
- removed the defunct sync_timers(), timer_enter() and timer_exit()
prototypes.
- added docbook-style comments.
- other kernel/timer.c changes:
- base->running_timer does not have to be volatile ...
- added consistent comments to all the important functions.
- made the sync-waiting in del_timer_sync preempt- and lowpower-
friendly.
i've compiled, booted & tested the patched kernel on x86 UP and SMP. I
have tried moderately high networking load as well, to make sure the timer
changes are correct - they appear to be.
<mingo@redhat.com>
[PATCH] workqueue lossage (fwd)
patch from DaveM
<manfred@colorfullife.com>
[PATCH] pipe bugfix /cleanup
pipe_write contains a wakeup storm, 2 writers that write into the same
fifo can wake each other up, and spend 100% cpu time with
wakeup/schedule, without making any progress.
The only regression I'm aware of is that
$ dd if=/dev/zero | grep not_there
will fail due to OOM, because grep does something like
for(;;) {
rlen = read(fd, buf, len);
if (rlen == len) {
len *= 2;
buf = realloc(buf, len);
}
}
if it operates on pipes, and due to the improved syscall merging, read
will always return the maximum possible amount of data. But that's a grep
bug, not a kernel problem.
<greg@kroah.com>
PCI: remove pcibios_find_class()
<alan@lxorguk.ukuu.org.uk>
[PATCH] PATCH: 2.5 trivial - MCA comments
<alan@lxorguk.ukuu.org.uk>
[PATCH] disable GMX2000
The GMX code in the DRI is unfinished stuff. You need the old 4.0 DRM
for the GMX2000 until 4.3 at least
<alan@lxorguk.ukuu.org.uk>
[PATCH] PC110 pad docs are wrong
Someone tweaked the PC110 documents changing touchpad to touchscreen,
this changes it back because it is a touchpad and _not_ a touchscreen
<alan@lxorguk.ukuu.org.uk>
[PATCH] Forward port AMD random number generator
<alan@lxorguk.ukuu.org.uk>
[PATCH] 2.5 Fix set_bit abuse in ATP driver
<alan@lxorguk.ukuu.org.uk>
[PATCH] move tulip into ethernet 10,100
<alan@lxorguk.ukuu.org.uk>
[PATCH] aacraid driver for 2.5
Forward port from 2.4
<arjanv@redhat.com>
[PATCH] Remove sys_call_table export
The following patch removes the export of the sys_call_table.
There are no uses of this export that are valid and correct. The uses I've
found so far are
1. Calling syscalls from inside kernel modules
iBCS/Linux-abi used to do this (and this is the reason for the export
in the first place), however it does
no longer, because newer gcc's (2.96/3.x) don't allow
function pointer calls with a mismatching type. Also it's much better to
just call the sys_foo functions directly (most are export symbol'd already
and exporting more if needed wouldn't be a problem, they are clearly a
stable interface). Since gcc does no longer allow this
(and I doubt older ones allowed it for all platforms) this I
consider invalid and unneeded use.
2. Install new syscalls from kernel modules
LiS seems to be doing this. The correct way to do this is how NFS does
it for its syscall, and that doesn't need the syscall table to be
exported for this. Without an in-kernel helper like NFS has, it is not
possible to do this race free wrt module-unloads etc. Eg this use of the
export is unneeded and incorrect.
3. Intercept system calls
OProfile (and intel's vtune which is similar in function) used to do this;
however what they really need is a notification on certain
events (exec() mostly). The way modules do this is store the original
function pointer, install a new one that calls the old one after storing
whatever info they need. This mechanism breaks badly in the light of
multiple such modules doing this versus modules
unloading/uninstalling their handlers (by restoring their saved pointer
that may or may not point to a valid handler anymore).
Eg the use of the export in this just a bandaid due to lack of a
proper mechanism, and also incorrect and crash prone.
4. Extend system calls
The mechanism for this is identical to the previous one, except
that now the actual syscall behavior is changed. I don't think open source
modules do this (generally they don't need to, just adding things to the
kernel proper works for them), however I've
seen IBM's closed source cluster fs do this.
The objections to the mechanism are the same as in 3. Also
this changes the userspace ABI effectively, something which is undesireable.
<greg@kroah.com>
PCI: remove pci_find_device()
<hch@sgi.com>
[PATCH] Remove some more devfs crap
Translation code for old devfs names that _never_ were in mainline
for root=.
<greg@kroah.com>
PCI: removed pcibios_present()
<jgrimm@touki.austin.ibm.com>
sctp: Cleanup 'sacked' queue upon teardown. (jgrimm)
The sacked queue holds chunks that have been gap ack'd, but we
forgot to free them.
<torvalds@penguin.transmeta.com>
Add <linux/linkage.h> include to get FASTCALL() define.
<willy@debian.org>
[PATCH] Remove another for_each_process loop
Convert send_sigurg() to the for_each_task_pid() mechanism. Also in
the case where we were trying to send a signal to a non-existent PID,
don't bother searching for -PID in the PGID array; we won't find it.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Alloc isdn_net_dev and struct net_device separately
This a big patch, which now mostly finishes the separation work
of isdn_net_dev, isdn_net_local and struct net_device.
The latter two are allocated per network-layer known network interface,
while isdn_net_dev is the entity which is accessed using isdnctrl,
i.e. a per-channel thing.
Since we allow for channel bundling, isdn_net_local, the priv data of
an ISDN network interface, gets a list of isdn_net_dev's which can be
used for transfering data on that interface.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Use generic eth_type_trans()
Now that the generic eth_type_trans() has changed in a way that
it works for dev->hard_header_size != ETH_HLEN, use it for
ethernet-over-ISDN instead of the private copy.
Also, kill the pointless isdn_net_adjust_hdr() function.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Separate hard_start_xmit() for different types of ISDN net devices
Really use three different functions, which can call back into
library-type functions (isdn_net_autodial) as needed.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Make hard_start_xmit() device type specific
One goal is now achieved: Different types of ISDN net devices now have
a struct ops which describes them, so we don't have a mess of
if (lp->p_encap == <whatever>) everywhere, but things even nicely
split into
isdn_net.c: Common stuff and ethernet, raw-ip, and similar
isdn_ciscohdlck.c: Cisco HDLC + keepalive
isdn_ppp.c: Sync PPP
where common code to be used library-like is provided by isdn_net.c
<torvalds@home.transmeta.com>
Fix sigio process lookup handling
<perex@suse.cz>
ALSA
- DEVFS cleanup - removal of compatibility code for 2.2 and 2.4 kernels
- fixed sgalaxy driver (save_flags/cli/restore_flags removal)
- USB Audio driver
- added the missing dev_set_drvdata() for 2.5 API
- simplified the conexistence of old and new USB APIs
- don't skip the active capture urbs
- added the debug print for active capture urbs
- don't change runtime->rate even if the current rate is not same
- check the bandwidth for urbs (for tests only, now commented out)
<greg@kroah.com>
PCI: fixed remaining usages of pcibios_present() that I missed previously.
<bcollins@debian.org>
[PATCH] IEEE1394 updates to 2.5.40
- Fixup for new tq changes
- Fix dv1394 for use without devfs
- Fix dv1394 for PAL capture
- Fix a hard to trigger bug in nodemgr.c
- Add another broken firmware device to sbp2's list
<bcollins@debian.org>
[PATCH] More 1394 updates
This incorporates security fixes from Alan that I brought from the
2.4.20-pre9 tree.
<torvalds@penguin.transmeta.com>
IO scheduler is a subsystem, not a driver. Initialize it as such.
<axboe@suse.de>
[PATCH] deadline updates
o Remove unused drq entry in deadline_merge()
o Quit if insertion point found in deadline_merge()
<axboe@suse.de>
[PATCH] ide-cd updates
Here starts some new ide updates.
o Don't turn on dma before after having sent the packet cdb
o Clear sense data given in generic command, otherwise the user cannot
trust it. I already sent this patch for 2.4.20-pre inclusion.
<axboe@suse.de>
[PATCH] ide config.in
o Make CONFIG_BLK_DEV_IDEPCI read 'PCI IDE chipset support' and not
'Generic...', it's just confusing.
<axboe@suse.de>
[PATCH] cleanup taskfile submit
We don't need to care about the request, just look purely at the
taskfile itself.
<axboe@suse.de>
[PATCH] remove _P/_p delaying iops
Lets kill these off for good.
o Remove OUT_BYTE/IN_BYTE and variants. We defaulted to the fast ones
even before
o Add read barrier for ppc, it needs it
<axboe@suse.de>
[PATCH] ide low level driver updates
All of them in a single patch, would be silly to split. Does two things:
o Inc module usage count to forcefully pin the module
o Make the chipset init data __devinitdata
o Kill ->init_setup() and just make it generic
<axboe@suse.de>
[PATCH] pass elevator type by reference, not value
Ingo spotted this one too, it's a leftover from when the elevator type
wasn't a variable. Also don't pass in &q->elevator, it can always be
deduced from queue itself of course.
<torvalds@penguin.transmeta.com>
Oops, it's 'xxx_initcall()', not 'xxx_init()' (except for the
legacy module_init(), just to confuse people).
<root@viper.(none)>
Sync up Bluetooth core with 2.4.x.
SMP locking fixes.
Support for Hotplug.
Support for L2CAP connectionless channels (SOCK_DGRAM).
HCI filter handling fixes.
Other minor fixes and cleanups.
<greg@kroah.com>
PCI: remove usages of pcibios_find_class()
<schwidefsky@de.ibm.com>
[PATCH] s390 update (1/27): arch.
s390 arch file changes for 2.5.39.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (2/27): include.
s390 include file changes for 2.5.39.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (3/27): drivers.
s390 minimal device drivers changes for 2.5.39.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (4/27): syscalls.
New system calls: security, async. i/o and sys_exit_group. Add 31 bit emulation
function for sys_futex.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (5/27): ibm partition.
Correct includes in ibm.c to make it compile.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (6/27): config.
Remove some configuration options that don't really make sense.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (7/27): dasd driver.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (8/27): xpram driver.
Remove reference to xpram_release. Correct calls to bi_end_io and bio_io_error.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (9/27): bottom half removal.
Replace IMMEDIATE_BH bottom half by tasklets in 3215, ctc and iucv driver.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (10/27): bitops bug.
Fix broken bitops for unaligned atomic operations on s390.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (11/27): 31 bit emulation.
Fix bug in 31 bit emulation of sys_msgsnd and rename sys32_pread/sys32_pwrite
to sys32_pread64/sys32_pwrite64.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (12/27): linker scripts.
Use a preprocessed linker script for building vmlinux on s390/s390x.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (13/27): preemption support.
Add support for kernel preemption on s390/s390x.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (14/27): inline optimizations.
Inline csum_partial for s390, the only reason it was out-of-line previously
is that some older compilers could not get the inline version right.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (15/27): 64 bit spinlocks.
Use diag 0x44 on s390x for spinlocks.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (16/27): timer interrupts.
Make timer interrupt independent from boot cpu and do several ticks in one
go if a virtual cpu didn't get an interrupt for a period of time > HZ.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (17/27): beautification.
Remove bogus sanity checks and code cleanup.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (18/27): fpu registers.
Cleanup load/store of fpu register on s390.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (19/27): ptrace cleanup.
Rewrite s390 ptrace code in a more readable and less buggy way. As a part of
this, all psw related definitions are moved into ptrace.h from a number of
different locations.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (20/27): signal quiesce.
Add 'signal quiesque' feature to s390 hardware console. A signal quiesce
is sent from VM or the service element every time the system should shut
down. We receive the quiesce signal and call ctrl_alt_del(). Finally the
mainframes have ctrl-alt-del as well :-)
<schwidefsky@de.ibm.com>
[PATCH] s390 update (21/27): sync i/o bug.
Remove bogus sanity check from {en,dis}able_sync_isc() and really disable all
interrupt sub classes except isc 7 in wait_cons_dev.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (22/27): s390_process_IRQ.
Cleanup s390_process_IRQ a little, the ending_status argument is never
really used.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (23/27): channel paths.
Check if defined chpids are available. Some code simplification.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (24/27): boot sequence.
Rework boot sequence on s390:
Traditionally, device detection os s390 is done completely
at a _very_ early stage during bootup (from init_irq(),
i.e. before memory management or the console are there).
This has always been a bad idea, but now it broke even more
since the linux driver model requires devices detection
to take place after the core_initcalls are done.
We now do only a small amount of scanning (probably
less in the future) at the early stage, the bulk of it
is done from a proper subsys_initcall(). This requires
some changes in related areas:
- the machine check handler initialization is split in
two halves, since we want to catch major machine malfunctions
as early as possible, but device machine checks can only
be caught after the channel subsystem is up.
- some functions that are called from the css initialization
made some assumptions of when to use kmalloc or bootmem_alloc,
which were broken anyway. We fix this here and hopefully
can get rid of bootmem_alloc for the css completely in the future.
- the debug logging feature for s390 was not used for functions
in the initialization before, since it requires the memory
management to be working. Now that we can be sure that it
works, some special cases can be removed.
Now that these changes are done, a partial implementation of the
device model for the channel subsystem is possible, but at this
point, none of the device drivers make use of that yet.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (25/27): init call.
Remove call to s390_init_machine_check in init/main.c, the new boot code
on s390 calls it via arch_initcall.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (26/27): /proc/interrupts.
Don't create /proc/interrupts on s390.
<schwidefsky@de.ibm.com>
[PATCH] s390 update (27/27): control characters.
Replace IMMEDIATE_BH bottom half by tasklets in helper functions for
console control characters. Fix a race condition and make it look nicer.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Fix build with modversions
Sam Ravnborg missed a place I missed converting, and I found another one,
too.
<greg@kroah.com>
PCI: remove pcibios_find_device() from the 53c7,8xx.c SCSI driver
<torvalds@penguin.transmeta.com>
Export the gdt table GPL-only for APM.
<maxk@viper.(none)>
Bluetooth USB driver update.
Remove firmware loading support, it's handled in hotplug.
Other minor fixes.
<maxk@viper.(none)>
Syncup HCI UART driver with 2.4.x.
New improved UART proto interface.
Support for BCSP protocol.
<maxk@viper.(none)>
BNEP (Bluetooth Network Encapsulation Protocol) support.
<maxk@viper.(none)>
RFCOMM protocol support.
RFCOMM socket and TTY emulation APIs.
<yoshfuji@linux-ipv6.org>
[IPV4/IPV6]: General cleanups.
- Use s6_XXX instead of in6_u.s6_XXX
- Use macros not magic numbers
- Avoid __constant_{hton,ntoh}{l,s} in runtime code.
<anton@samba.org>
[PATCH] 64-bit timer fix
I think I have found it and it only hits on a 64 bit machine.
If the timeout is big enough we still need to initialise timer->entry.
Otherwise bad things happen we we hit del_timer.
<trond.myklebust@fys.uio.no>
[PATCH] NFS: readdir reply truncated!
Duh... Even a simple one-liner test can be wrong. The really sad bit
is that I made the same mistake 3 weeks ago, fixed it, and then lost
track of the fix...
To recap fix to fix: A valid end of directory marker has to read
(entry[0]==0 && entry[1]!=0). Here is final correct (I hope) patch.
<maxk@viper.(none)>
Fix designated initializers in RFCOMM TTY layer.
<torvalds@home.transmeta.com>
Undo due to weird behaviour on various boxes
Cset exclude: ink@jurassic.park.msu.ru|ChangeSet|20021003201553|58706
<andmike@us.ibm.com>
[PATCH] sg might_sleep fixes
This is a update to a previous patch that fixed some sg might sleep
errors.
This patch corrects a problem in sg.c where a lock is held during calls to
vmalloc and calls for device model registration.
Note:
Douglas Gilbert is the maintainer of this driver.
dougg@gear.torque.net
http://www.torque.net/sg/
During Douglas Gilbert's time-off he connects when he can so it
maybe a bit until he can address this.
In the interim this patch should fix the problem, and
still provide for safe additions.
The full patch is available at:
http://www-124.ibm.com/storageio/patches/2.5/sg
-andmike
--
Michael Anderson
andmike@us.ibm.com
sg.c | 83 +++++++++++++++++++++++++++++++++++++++++--------------------------
1 files changed, 52 insertions(+), 31 deletions(-)
<ahaas@neosoft.com>
[IPV4/IPV6]: C99 designated initializers.
<buytenh@gnu.org>
[NET]: Remove net_call_rx_atomic.
<buytenh@gnu.org>
[BRIDGE]: Skip the LISTENING_STP state if STP is disabled.
<buytenh@gnu.org>
[BRIDGE]: take BR_NETPROTO_LOCK for unlinking bridge device slaves
<torvalds@home.transmeta.com>
Use dump_stack() for the USB storage buffer size checking,
to make it possible to track down.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: small fixes
Fix "make xconfig" and remove a reference to drivers/sbus/audio,
which does not exist.
(Sam Ravnborg)
<perex@suse.cz>
ALSA update
- CS46xx driver - removed unused variable
- USB code
- pass struct usb_interface pointer to the usb-midi parser.
in usb-midi functions, this instance is used instead of parsing
the interface from dev and ifnum.
- allocate the descriptor buffer only for parsing the audio device.
- clean up, new probe/disconnect callbacks for 2.4 API.
- added the support for Yamaha and Midiman devices.
<davem@nuts.ninka.net>
[SPARC]: Update for dequeue_signal changes.
<davem@nuts.ninka.net>
[SPARC]: Uninline kmap atomic operations.
<zaitcev@redhat.com>
mm/highmem.c: Include asm/tlbflush.h
<zaitcev@redhat.com>
arch/sparc/kernel/sun4d_irq.c: init_timers --> sparc_init_timers
<perex@suse.cz>
ALSA update
- updated config descriptions for EMU10K1 and INTEL8X0
<davem@nuts.ninka.net>
arch/sparc64/defconfig: Update.
<vandrove@vc.cvut.cz>
[PATCH] FAT/VFAT memory corruption during mount()
This patch fixes memory corruption during vfat mount: one byte
before mount options is overwritten by ',' since strtok->strsep
conversion happened.
This patch also fixes another problem introduced by strtok->strsep
conversion: VFAT requires that FAT does not modify passed options,
but unfortunately FAT driver fails to preserve options string if
there is more than one consecutive comma in option string.
<jejb@mulgrave.(none)>
[SCSI] tidy up sd synchronize cache messages into a single line
<christer@weinigel.se>
[PATCH] Updated NatSemi SCx200 patches for Linux-2.5
This patch adds support for the National Semiconductor SCx200
processor family to Linux 2.5.
The patch consists of the following drivers:
arch/i386/kernel/scx200.c -- give kernel access to the GPIO pins
drivers/chars/scx200_gpio.c -- give userspace access to the GPIO pins
drivers/chars/scx200_wdt.c -- watchdog timer driver
drivers/i2c/scx200_i2c.c -- use any two GPIO pins as an I2C bus
drivers/i2c/scx200_acb.c -- driver for the Access.BUS hardware
drivers/mtd/maps/scx200_docflash.c -- driver for a CFI flash connected
to the DOCCS pin
<Kai.Makisara@kolumbus.fi>
[PATCH] SCSI tape devfs & driverfs fix
fix device numbering in driverfs and devfs broken by previous patch
(bug found by Bjoern A. Zeeb (bz@zabbadoz.net))
<bgerst@didntduck.org>
[PATCH] struct super_block cleanup - hpfs
Remove hpfs_sb from struct super_block.
<bgerst@didntduck.org>
[PATCH] struct super_block cleanup - ext3
Removes the last member of the union, ext3.
<akpm@digeo.com>
[PATCH] fix /proc/vmstat:pgpgout/pgpgin
These numbers are being sent to userspace as number-of-sectors, whereas
they should be number-of-k.
<akpm@digeo.com>
[PATCH] hugetlb kmap fix
From Bill Irwin
This patch makes alloc_hugetlb_page() kmap() the memory it's zeroing,
and cleans up a tiny bit of list handling on the side. Without this
fix, it oopses every time it's called.
<akpm@digeo.com>
[PATCH] remove debug code from list_del()
It hasn't caught any bugs, and it is causing confusion over whether
this is a permanent part of list_del() behaviour.
<akpm@digeo.com>
[PATCH] distinguish between address span of a zone and the number
From David Mosberger
The patch below fixes a bug in nr_free_zone_pages() which shows when a
zone has hole. The problem is due to the fact that "struct zone"
didn't keep track of the amount of real memory in a zone. Because of
this, nr_free_zone_pages() simply assumed that a zone consists entirely
of real memory. On machines with large holes, this has catastrophic
effects on VM performance, because the VM system ends up thinking that
there is plenty of memory left over in a zone, when in fact it may be
completely full.
The patch below fixes the problem by replacing the "size" member in
"struct zone" with "spanned_pages" and "present_pages" and updating
page_alloc.c.
<akpm@digeo.com>
[PATCH] truncate fixes
The new truncate code needs to check page->mapping after acquiring the
page lock. Because the page could have been unmapped by page reclaim
or by invalidate_inode_pages() while we waited for the page lock.
Also, the page may have been moved between a tmpfs inode and
swapper_space. Because we don't hold the mapping->page_lock across the
entire truncate operation any more.
Also, change the initial truncate scan (the non-blocking one which is
there to stop as much writeout as possible) so that it is immune to
other CPUs decreasing page->index.
Also fix negated test in invalidate_inode_pages2(). Not sure how that
got in there.
<akpm@digeo.com>
[PATCH] O_DIRECT invalidation fix
If the alignment checks in generic_direct_IO() fail, we end up not
forcing writeback of dirty pagecache pages, but we still run
invalidate_inode_pages2(). The net result is that dirty pagecache gets
incorrectly removed. I guess this will expose unwritten disk blocks.
So move the sync up into generic_file_direct_IO(), where we perform the
invalidation. So we know that pagecache and disk are in sync before we
do anything else.
<akpm@digeo.com>
[PATCH] mempool wakeup fix
When the mempool is empty, tasks wait on the waitqueue in "exclusive
mode". So one task is woken for each returned element.
But if the number of tasks which are waiting exceeds the mempool's
specified size (min_nr), mempool_free() ends up deciding that as the
pool is fully replenished, there cannot possibly be anyone waiting for
more elements.
But with 16384 threads running tiobench, it happens.
We could fix this with a waitqueue_active() test in mempool_free().
But rather than adding that test to this fastpath I changed the wait to
be non-exclusive, and used the prepare_to_wait/finish_wait API, which
will be quite beneficial in this case.
Also, convert the schedule() in mempool_alloc() to an io_schedule(), so
this sleep time is accounted as "IO wait". Which is a bit approximate
- we don't _know_ that the caller is really waiting for IO completion.
But for most current users of mempools, io_schedule() is more accurate
than schedule() here.
<akpm@digeo.com>
[PATCH] separation of direct-reclaim and kswapd functions
There is some lack of clarity in what kswapd does and what
direct-reclaim tasks do; try_to_free_pages() tries to service both
functions, and they are different.
- kswapd's role is to keep all zones on its node at
zone->free_pages >= zone->pages_high.
and to never stop as long as any zones do not meet that condition.
- A direct reclaimer's role is to try to free some pages from the
zones which are suitable for this particular allocation request, and
to return when that has been achieved, or when all the relevant zones
are at
zone->free_pages >= zone->pages_high.
The patch explicitly separates these two code paths; kswapd does not
run try_to_free_pages() any more. kswapd should not be aware of zone
fallbacks.
<akpm@digeo.com>
[PATCH] fix reclaim for higher-order allocations
The page reclaim logic will bail out if all zones are at pages_high.
But if the caller is requesting a higher-order allocation we need to go
on and free more memory anyway. That's the only way we have of
addressing buddy fragmentation.
<akpm@digeo.com>
[PATCH] use bio_get_nr_vecs() hint for pagecache writeback
Use the bio_get_nr_pages() hint for sizing the BIOs which writeback
allocates.
<akpm@digeo.com>
[PATCH] Documentation/filesystems/ext3.txt
By Vincent Hanquez <tab@tuxfamily.org>
<akpm@digeo.com>
[PATCH] use bio_get_nr_vecs() for sizing direct-io BIOs
From Badari Pulavarty.
Rather than allocating maximum-sized BIOs, use the new
bio_get_nr_vecs() hint when sizing the BIOs.
Also keep track of the approximate upper-bound on the number of pages
remaining to do, so we can again avoid allocating excessively-sized
BIOs.
<akpm@digeo.com>
[PATCH] remove write_mapping_buffers()
When the global buffer LRU was present, dirty ext2 indirect blocks were
automatically scheduled for writeback alongside their data.
I added write_mapping_buffers() to replace this - the idea was to
schedule the indirects close in time to the scheduling of their data.
It works OK for small-to-medium sized files but for large, linear writes
it doesn't work: the request queue is completely full of file data and
when we later come to scheduling the indirects, their neighbouring data
has already been written.
So writeback of really huge files tends to be a bit seeky.
So. Kill it. Will fix this problem by other means.
<akpm@digeo.com>
[PATCH] use buffer_boundary() for writeback scheduling hints
This is the replacement for write_mapping_buffers().
Whenever the mpage code sees that it has just written a block which had
buffer_boundary() set, it assumes that the next block is dirty
filesystem metadata. (This is a good assumption - that's what
buffer_boundary is for).
So we do a lookup in the blockdev mapping for the next block and it if
is present and dirty, then schedule it for IO.
So the indirect blocks in the blockdev mapping get merged with the data
blocks in the file mapping.
This is a bit more general than the write_mapping_buffers() approach.
write_mapping_buffers() required that the fs carefully maintain the
correct buffers on the mapping->private_list, and that the fs call
write_mapping_buffers(), and the implementation was generally rather
yuk.
This version will "just work" for filesystems which implement
buffer_boundary correctly. Currently this is ext2, ext3 and some
not-yet-merged reiserfs patches. JFS implements buffer_boundary() but
does not use ext2-like layouts - so there will be no change there.
Works nicely.
<akpm@digeo.com>
[PATCH] remove page->virtual
The patch removes page->virtual for all architectures which do not
define WANT_PAGE_VIRTUAL. Hash for it instead.
Possibly we could define WANT_PAGE_VIRTUAL for CONFIG_HIGHMEM4G, but it
seems unlikely.
A lot of the pressure went off kmap() and page_address() as a result of
the move to kmap_atomic(). That should be the preferred way to address
CPU load in the set_page_address() and page_address() hashing and
locking.
If kmap_atomic is not usable then the next best approach is for users
to cache the result of kmap() in a local rather than calling
page_address() repeatedly.
One heavy user of kmap() and page_address() is the ext2 directory code.
On a 7G Quad PIII, running four concurrent instances of
while true
do
find /usr/src/linux > /dev/null
done
on ext2 with everything cached, profiling shows that the new hashed
set_page_address() and page_address() implementations consume 0.4% and
1.3% of CPU time respectively. I think that's OK.
<akpm@digeo.com>
[PATCH] stricter dirty memory clamping
The ratelimiting logic in balance_dirty_pages_ratelimited() is designed
to prevent excessive calls to the expensive get_page_state(): On a big
machine we only check to see if we're over dirty memory limits once per
1024 dirtyings per cpu.
This works OK normally, but it has the effect of allowing each process
to go 1024 pages over the dirty limit before it gets throttled.
So if someone runs 16000 tiobench threads, they can go 16G over the
dirty memory threshold and die the death of buffer_head consumption.
Because page dirtiness pins the page's buffer_heads, defeating the
special buffer_head reclaim logic.
I'd left this overshoot artifact in place because it provides a degree
of adaptivity - of someone if running hundreds of dirtying processes
(dbench!) then they do want to overshoot the dirty memory limit.
But it's hard to balance, and is really not worth the futzing around.
So change the logic to only perform the get_page_state() call rate
limiting if we're known to be under the dirty memory threshold.
<akpm@digeo.com>
[PATCH] clean up ll_rw_block()
Hardly anything uses this function, so the debug checks in there are
not of much value.
The check for bdev_readonly() should be done in submit_bio().
Local variable `major' was altogether unused.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Nicer warnings
Improve the warning messages when using obsolete features, kill one
remaining user of $(list-multi)
(by Sam Ravnborg)
I also made O_TARGET != built-in.o an error, since compatibility code for
that case has already been dropped
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Don't descend into arch/i386/boot
We don't descend anymore when building vmlinux, so don't do so for
the i386 specific boot targets, either.
Plus, more cleanup in arch/i386/Makefile
<acme@conectiva.com.br>
o LLC: start using seq_file for proc stuff
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Put .bss back to the end of vmlinux
The kallsyms patches added __kallsyms as last section into vmlinux,
behind .bss.
This was done to save two additional kallsyms passes, since as the
added section was last, it did not change the symbols before it.
With the new infrastructure in the top-level Makefile, we do not need
to do full relinks for these passes, so they are cheaper. We now
use one additional link/kallsyms run to be able to place the __kallsyms
section before .bss. The other pass is saved by adding an empty but
allocated __kallsyms section in kernel/kallsyms.c, so the first kallsyms
pass already generates a section of the final size.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Allow PCMCIA serial cards to work again.
The PCMCIA layer claims the IO or memory regions for all cards. This
means that any port registered via 8250_cs must not cause the 8250
code to claim the resources itself.
We also add support for iomem-based ports at initialisation time for
PPC.
<rmk@flint.arm.linux.org.uk>
[SERIAL] Fix serial includes for modversions/modules.
This fixes the build error that occurs if you have a certain selection
of module/modversions settings.
<acme@conectiva.com.br>
o LLC: now it only uses seq_file for proc stuff
some extra trivial cleanups.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: New file for net interface config and basic setup
Add a new file isdn_net_lib.c, where code which is shared among different
kind of network interface will gradually migrate to.
For now, move the ioctl config code out of isdn_{common,net}.c there,
and the basic register_netdev() + associated methods.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Convert remaining users of the old slave list
->slave and ->master have been superseded, remove remaining traces.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: split isdn_net state machine
No code change, just splitting different states into separate functions.
<torvalds@home.transmeta.com>
Increase the delay in waiting for pcmcia drivers to register.
Reported by Peter Osterlund.
(Yeah, the real fix would be to make driver services not have to
know about low-level pcmcia core drivers beforehand, but that's not
life as we know it right now).
<perex@suse.cz>
[PATCH] fix sgalaxy.c driver cli/sti code.
<viro@math.psu.edu>
[PATCH] pcd switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] initrd fix (missing set_capacity)
<viro@math.psu.edu>
[PATCH] umem switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] ps2esdi switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] xd switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] acorn mfm switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] i2o switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] stram/z2ram switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] nbd switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] dasd switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] ubd switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] swim* switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] jsflash switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] xpram switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] atari floppy switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] amiga floppy switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] acorn floppy switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] paride floppy switched to alloc_disk()
<viro@math.psu.edu>
[PATCH] DAC960 switched to alloc_disk()
<bgerst@didntduck.org>
[PATCH] unistd.h cleanups
This patch removes the stubs for syscalls that are not used from the
kernel anymore.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: fix make -jN warnings
If you hide the sub-make in a function, 'make' needs a little help...
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Reuse the dial_timer for idle hangup
Since we use the dial timer only during setup and the idle timer
only when the connection is active, we can simply (and cleanly) use
the same timer.
<viro@math.psu.edu>
[PATCH] cciss.c switched to use of alloc_disk()
<viro@math.psu.edu>
[PATCH] fix of bug in previous DAC960 patch
Missed memset() when switching DAC960 to alloc_disk(). Fixed.
<acme@conectiva.com.br>
o IPX: use seq_file for proc stuff
Also move the lenghty ChangeLog to a separate file.
It also tidies a tiny bit of LLC.
<torvalds@home.transmeta.com>
Make wildcard dependency filenames be relative, not absolute.
That also matches the other dependency filenames these days,
and makes the tree more position-independent.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Fix arch/i386/boot clean targets
We removed some files which are long since dead, but on the other
hand forgot some of the current ones.
Also, add a missing ) in a warning (introduced and fixed by Sam Ravnborg ;)
<viro@math.psu.edu>
[PATCH] cpqarray switched to alloc_disk()
In addition to usual switch and cleanup, switched the damn thing
to use of module_init/module_exit (and removed call from device_init()).
<torvalds@home.transmeta.com>
Don't add the $(obj) prefix twice..
<akpm@digeo.com>
[PATCH] smbfs compile fix
smbfs compilation fix
<jejb@mulgrave.(none)>
[SCSI] sd moved synchronisation from release to detach
<viro@math.psu.edu>
[PATCH] acsi switched to alloc_disk()
That's the last one. Now we can start doing refcounting...
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Make idle timeout and retry wait parts of the state machine
<bjorn.andersson@erc.ericsson.se>
net/8021q/vlan_dev.c: Fix lockup when setting egress priority.
<kai@tp1.ruhr-uni-bochum.de>
Cset exclude: kai@tp1.ruhr-uni-bochum.de|ChangeSet|20021005215705|12351
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Fix kallsyms build
After reverting my nice but totally broken idea about accelerating
the linking steps, make the three-stage .tmp_kallsyms.o generation
/ addition work again.
Yeah, that means that we now link vmlinux three times when
CONFIG_KALLSYMS is set, and that's annoying.
<kai@tp1.ruhr-uni-bochum.de>
kbuild: Fix make clean in scripts/lxdialog
<kai@tp1.ruhr-uni-bochum.de>
ISDN: tidy up isdn_net_log_skb()
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Replace rx_netdev, st_netdev by a single field
For some unknown reason, isdn_net kept two pointers back from the channel
to the associated isdn_net_dev, one is enough, though.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Separate state machine actions into single functions
Additionally, a little further cleanup, use the same timer
for incoming call timeout no matter if D- or B-channel connect
times out.
Simplify idle hang-up code.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Move call control to isdn_net_lib.c
No code change, just move the call control state machine from
isdn_net.c to isdn_net_lib.c
<alan@lxorguk.ukuu.org.uk>
[PATCH] forward port toughbook fixes for maestro3
(Jaroslav you may want to clone this into ALSA if ALSA lacks this one)
<alan@lxorguk.ukuu.org.uk>
[PATCH] fix warning in longhaul.c
<alan@lxorguk.ukuu.org.uk>
[PATCH] update docs to match maestro3 changes
<alan@lxorguk.ukuu.org.uk>
[PATCH] flush the right thing in the rd cache
(From Matthew Wilcox)
<alan@lxorguk.ukuu.org.uk>
[PATCH] Clean up sf16fmi radio
<alan@lxorguk.ukuu.org.uk>
[PATCH] Fix cs89x0 warnings
<alan@lxorguk.ukuu.org.uk>
[PATCH] NCR5380 port to 2.5 first pass
There is still more work to do, the driver sucks in 2.4 and 2.5 but 2.5 has a
lot more of what is needed to make it work nicely. Basically NCR5380_main
probably has to become a thread in the next generation of the code.
This however seems to get it up and crawling
<alan@lxorguk.ukuu.org.uk>
[PATCH] Fix stupid scsi setup bug in 53c406, fix addressing
<alan@lxorguk.ukuu.org.uk>
[PATCH] first pass at the ancient wd7000 crap
(Wants indenting but I'll do an indenting pass after the code changes
are accepted)
<alan@lxorguk.ukuu.org.uk>
[PATCH] bring telephony in line with 2.4
Also note the pcmcia fix - I think the other pcmcia cards should be
using del_timer_sync, but seem not to be.
<alan@lxorguk.ukuu.org.uk>
[PATCH] add the mini 4x6 font from uclinux
This stands alone from UCLinux and is independent of whether it ever
merges with the mainstream. Its rather handy for getting an entire oops
onto a PDA screen
<alan@lxorguk.ukuu.org.uk>
[PATCH] make jffs/jffs2 work with signal changes
<alan@lxorguk.ukuu.org.uk>
[PATCH] 6x4 font headers
Oops forgot this in the first patch set
<alan@lxorguk.ukuu.org.uk>
[PATCH] sane minimum proc count
Again from UCLinux merge but relevant on its own for any embedded tiny box
<gotom@debian.or.jp>
[PATCH] NinjaSCSI-32Bi/UDE PCI/Cardbus SCSI core driver
This patch supports new driver nsp32 - NinjaSCSI-32Bi/UDE PCI/Cardbus
SCSI adapter for 2.5.40. This driver supports at least (we tested) 7
different PCI/Cardbus SCSI cards which use Workbit NinjaSCSI-32 SCSI
processor.
This is the driver part, next one is for things like Config.help,
Makefile, and so on.
<gotom@debian.or.jp>
[PATCH] NinjaSCSI-32Bi/UDE PCI/Cardbus SCSI driver incidentals
Config files, makefiles etc for the NinjaSCSI driver.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Make the state machine explicit
Add a finite state machine helper module, which is basically copied over
from the hisax driver with a little bit of beautification.
Eventually, all ISDN should be converted to using these routines.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Use a tasklet for the Eicon driver
Armin Schindler converted the driver to use tasklets, which makes more
sense than the new work_struct stuff here.
<marcel@holtmann.org>
[PATCH] Bluetooth kbuild fix and config cleanup
This removes the obsolete O_TARGET and cleans up the Config.* and *.c
files to have a unique CONFIG_BLUEZ prefix. Additional two missing help
entries are added.
<devik@cdi.cz>
net/sched/sch_htb.c: Check that node is really leaf before modifying cl->un.leaf
<acme@conectiva.com.br>
o X25: use seq_file for proc stuff
Also some CodingStyle cleanups.
<acme@conectiva.com.br>
o X25: fix permission bogosity in create_proc_entry usage
Thanks to Al Viro for reviewing this, this also fixes the
example that made me do this copy'n'paste brain fart.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Extend state machine
Do dial-out via the state machine as well, and add a state
to wait for the D-channel hangup as well before unbinding
the isdn_net_dev.
Plus assorted compile/warning fixes.
<davem@nuts.ninka.net>
[VLAN]: Accept zero vlan at unregister.
<kai@tp1.ruhr-uni-bochum.de>
ISDN: Allow for return values in the state machine
It does not make sense for all events (like timer expiry), but for
some uses it's helpful for the called routine to return an error
code.
<acme@conectiva.com.br>
o Appletalk: use seq_file for proc stuff
And also move MODULE_LICENSE from aarp.c to ddp.c, as its there
that the module_init/exit is.
Also added MODULE_AUTHOR and MODULE_DESCRIPTION.
<davem@nuts.ninka.net>
arch/sparc64/mm/init.c: Initialize {min,max}_low_pfn and max_pfn properly.
<davem@nuts.ninka.net>
net/core/dev.c: Print lethal dev/protocol errors with KERN_CRIT.
<davem@nuts.ninka.net>
net/8021q/vlan.c: Unsigned value may never be < 0.
<steve@gw.chygwyn.com>
[PATCH] Trivial fix to aio.c:__aio_get_req()
This is a simple fix to aio.c:__aio_get_req() where it appears that
a freed aio request could be incorrectly returned in the error path,
<axboe@suse.de>
[PATCH] ide io port types
IDE uses u32 as being an io port, which is wrong. We even have an arch
type for this, ide_ioreg_t. Use that.
Also fix a bad printk() in ide-disk, introduced with the swsusp stuff.
<schwidefsky@de.ibm.com>
[PATCH] s390 dasd driver update
Get rid of name and bdev in dasd_device_t structure.
<cel@citi.umich.edu>
[PATCH] add struct file* to ->direct_IO addr space op
This makes file credentials available to the ->direct_IO address space
operation by replacing its struct inode* argument with a struct file*
argument. this patch is a prerequisite for NFS direct I/O support. it
breaks the raw device driver.
<cel@citi.umich.edu>
[PATCH] remove NFS client internal dependence on page->index
This makes the NFS client copy the page->index field into its read and
write request structures (struct nfs_page) when setting up I/O on a
page. this makes it possible for NFS direct I/O support to reuse
existing NFS client subroutines, and helps eventually allow NFS I/O to
and from anonymous pages. it is a prerequisite for NFS direct I/O
support.
<cel@citi.umich.edu>
[PATCH] initial support for NFS direct I/O for 2.5
This adds initial support for NFS direct I/O in the 2.5 kernel. many
have asked for this support to be included in 2.5. this patch does not
provide working NFS direct I/O, but i'm sending what i have now so that
it can be included before October 20.
NFS direct I/O is enabled by its very own kernel config option. when
enabled, the NFS client won't build to prevent people from using this and
possibly corrupting their NFS files. later i will send a patch that
finishes the implementation.
[ Config option currently disabled ]
<david-b@pacbell.net>
[PATCH] pci/pool.c less spinlock abuse
That previous patch got rid of a boot time might_sleep() warning,
but I noticed two later on:
- kmalloc() needed SLAB_ATOMIC
- destroying the 'pools' driverfs attribute could sleep too
The clean/simple patch for the second one tweaked an API:
- pci_pool_create() can't be called in_interrupt() any more.
nobody used it there, and such support isn't needed; plus
that rule matches its sibling call, pci_pool_destroy().
- that made its SLAB_* flags parameter more useless, so it's
removed and the DMA-mapping.txt is updated. (this param
was more trouble than it was worth -- good that it's gone.)
Nobody (even DaveM) objected to those API changes, so I think
this should be merged.
<torvalds@penguin.transmeta.com>
Linux v2.5.41
|