David Brownell [Tue, 26 Jul 2005 11:38:37 +0000 (04:38 -0700)]
[PATCH] ARM: OMAP: RTC
Teach the RTC driver how to work with the driver model;
reserve physical memory addresses, not virtual I/O ones
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Tue, 26 Jul 2005 10:36:59 +0000 (03:36 -0700)]
[PATCH] ARM: OMAP: Watchdog
Teach the OMAP watchdog driver about the driver model, including
defining a shutdown method (to stop the timer before kexec etc)
and suspend/resume methods (for system sleep states).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Tue, 26 Jul 2005 10:32:46 +0000 (03:32 -0700)]
[PATCH] ARM: OMAP: RTC cleanups
The big win here is a shrink of runtime code size, but again there's
the usual MODULE_ALIAS_MISCDEV and sparse stuff and more traditional
coding style.
RTC driver cleanups:
- Various "sparse" fixes
- Reduce some pointless code duplication
- Add a MODULE_ALIAS_MISCDEV (supports KMOD)
- Style and other code cleanups
Object code shrinks by almost 800 bytes.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Tue, 26 Jul 2005 10:31:22 +0000 (03:31 -0700)]
[PATCH] ARM: OMAP: WDT cleanups
Various cleanups to the OMAP watchdog driver:
* match other watchdog drivers
- file name is /dev/watchdog, as known by watchdog tools
- module alias as the watchdog miscdev (for KMOD)
- warn if the NOWAYOUT logic ever triggers
- default to 60 second timeout, per standard watchdog package
* update limits:
- allow much larger timeouts than 32 seconds (up to 1 day)
- set up the prescaler (timeouts could trigger after months)
* autogate the interface clock
* misc stuff:
- comment updates
- move clock get/put to init/exit sections
- "sparse" fixes
- ... etc
So among other things the busybox "watchdog" command is now unlikely to
reboot right away using its default timeout, since the kernel default
is no longer so unusually short.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren [Tue, 26 Jul 2005 08:38:52 +0000 (01:38 -0700)]
ARM: OMAP: Added missing line break that caused I2C patch to fail.
Added missing line break that caused I2C patch to fail.
David Brownell [Tue, 26 Jul 2005 08:19:35 +0000 (01:19 -0700)]
[PATCH] ARM: OMAP: IR
Makes IR driver stop defining and registering its own platform_device.
Also make it properly declare its DMA capability.
Issues noted with IR driver: DMA should just map/unmap SKB data;
no UART1 support; SIR/MIR/FIR selection uses board-specific code.
And there's no OMAP_TAG saying whether IRDA is even relevant.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Tue, 26 Jul 2005 08:10:40 +0000 (01:10 -0700)]
[PATCH] ARM: OMAP: I2C cleanups
I2C driver cleanups, shrinking object code by a bit over 1KB:
* cleanup debug-only code
- remove the scan code ... doesn't work, among other things
- default debug (and scan) code to "off";
- reduce (ab)use of driver-specific printk wrappers;
* comments:
- correct and/or cleanup;
- remove internal changelog (that's for GIT, BK, CVS, etc);
* move all MODULE_* stuff to conventional locations;
* fix some of the whitespace problems
Plus small bugfixes:
* reserve physical memory addresses instead of virtual i/o ones;
* define the adapter as supporting "I2C_CLASS_HWMON"
* don't clobber driver state if reservation fails
* check directly for I2C rev1 instead of omap1510 CPU;
* using the right driver name in several places.
* startup message info is no longer content-free
Plus start on the "sparse" fixes.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Tue, 26 Jul 2005 07:57:42 +0000 (00:57 -0700)]
[PATCH] ARM: OMAP: ohci MODULE_ALIAS
Since the platform device and module name differ, this needs a
MODULE_ALIAS to support coldplug configurations.
Alias the "ohci-hcd" module as "ohci" so that coldplug works
when this driver module is being dynamically linked.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Tue, 26 Jul 2005 07:55:34 +0000 (00:55 -0700)]
[PATCH] ARM: OMAP: ts-input.patch
Properly hook up the fake touchscreen device as the parent of the
touchscreen input device. (No reason to have a broken sysfs tree.)
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Jarkko Lavinen [Tue, 26 Jul 2005 07:51:46 +0000 (00:51 -0700)]
[PATCH] ARM: OMAP: Check for host->cmd being null when card status error occured
Check for host->cmd being null when card status error occured.
Also, I think it is a bit more cleaner to put the STOP cmd workaround
handling under the general OMAP_MMC_STAT_CARD_ERR handling.
Matthew Percival [Tue, 26 Jul 2005 07:40:08 +0000 (00:40 -0700)]
[PATCH] ARM: OMAP: Add mux register N20_1610_GPIO11
Mux related part from the owire patch.
Tony Lindgren [Fri, 8 Jul 2005 13:10:48 +0000 (06:10 -0700)]
Linux v2.6.13-rc1-omap1
Tony Lindgren [Fri, 8 Jul 2005 12:13:42 +0000 (05:13 -0700)]
ARM: OMAP: Fix a warning and cosmetic fixes
Fix a warning and cosmetic fixes
Tony Lindgren [Fri, 8 Jul 2005 11:11:45 +0000 (04:11 -0700)]
ARM: OMAP: Added missing common.h file
Added missing common.h file
Tony Lindgren [Fri, 8 Jul 2005 09:52:09 +0000 (02:52 -0700)]
ARM: OMAP: Remove unnecessary Makefile.boot
Makefile.boot is now unnecessary in plat-omap directory.
Tony Lindgren [Thu, 7 Jul 2005 14:35:17 +0000 (07:35 -0700)]
ARM: OMAP: Make kernel boot after moving the directories
Make kernel boot after moving the directories
Tony Lindgren [Thu, 7 Jul 2005 14:34:01 +0000 (07:34 -0700)]
ARM: OMAP: Move arch/arm/mach-omap to arch/arm/plat-omap
Move arch/arm/mach-omap to arch/arm/plat-omap as discussed on the
armlinux mailing list.
Tony Lindgren [Thu, 7 Jul 2005 14:31:00 +0000 (07:31 -0700)]
ARM: OMAP: Move arch/arm/mach-omap/omap1 to arch/arm/mach-omap1
Move arch/arm/mach-omap/omap1 to arch/arm/mach-omap1 as discussed
on the armlinux mailing list.
Tony Lindgren [Mon, 4 Jul 2005 01:42:12 +0000 (18:42 -0700)]
ARM: OMAP: Added devices.c left out from MMC patch
Added devices.c left out from David Brownell's MMC patch.
Martin Fouts [Fri, 1 Jul 2005 19:04:19 +0000 (12:04 -0700)]
[PATCH] ARM: OMAP: Nand support for Perseus2
Nand support for Perseus2
Signed-off-by: Martin Fouts <Martin.Fouts@palmsource.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren [Fri, 1 Jul 2005 18:40:48 +0000 (11:40 -0700)]
ARM: OMAP: Sync pm.c dyntick call with mainline
Sync pm.c dyntick call with mainline
Todd Poynor [Fri, 1 Jul 2005 18:36:36 +0000 (11:36 -0700)]
[PATCH] ARM: OMAP: omap_pm_idle interrupt race?
Move OMAP pm_idle interrupt reenable until after the next interrupt has
arrived, avoid situation where multiple interrupts are needed to exit
idle.
Signed-off-by: Todd Poynor <tpoynor@mvista.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Juha Yrjölä [Fri, 1 Jul 2005 13:10:58 +0000 (06:10 -0700)]
[PATCH] ARM: OMAP: DMA updates to OMAP MMC driver
DMA updates to the OMAP MMC driver (Juha):
* Accept multi-segment scatterlist requests to reduce the cost
of data transfer operations, increasing speed dramatically
* Release DMA channel lazily for a minor performance boost
* Synchronize the completion of a request to both DMA transfer
completion and command completion to work around a problem of
some response IRQs being lost
Also, updates from DB for handling the individual DMA segments:
* Use the correct sg_dma_*() calls;
* Return to the previous scheme of doing DMA in frames of up
no more than one FIFO's worth of data, and
* Don't print messages in the curious "DMA IRQ with DMA still
pending" case.
This provides about a 10% improvement in elapsed time during large DMA
transfers, 100% improvement in kernel time, and orders of magnitude
reduction in IRQ count.
Signed-off-by: Juha Yrjölä <juha.yrjola@nokia.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Juha Yrjölä [Fri, 1 Jul 2005 12:20:56 +0000 (05:20 -0700)]
[PATCH] ARM: OMAP: Reduce MMC clock frequency
Reduce the MMC clock frequency slightly to make all cards work.
Otherwise weird CRC errors seem to happen with many RS-MMC
cards.
Signed-off-by: Juha Yrjölä <juha.yrjola at nokia.com>
Jarkko Lavinen [Fri, 1 Jul 2005 12:18:44 +0000 (05:18 -0700)]
[PATCH] ARM: OMAP: Fix end of card MMC error
The MMC spev v4.1 has table 23 on page 65 listing the valid response
bits from each command. The table specifies CMD12 response not
containing bit 31 (address out of range) and only 23, 22, and 20
(command crc, illegal command and card error) error bits and some
status bits are defined.
Tony Lindgren [Fri, 1 Jul 2005 12:16:58 +0000 (05:16 -0700)]
ARM: OMAP: Innovator MMC init
Innovator MMC init
David Brownell [Fri, 1 Jul 2005 12:16:11 +0000 (05:16 -0700)]
[PATCH] ARM: OMAP: MMC initialization
This updates the MMC initialization:
- OMAP_TAG_MMC updates:
* Re-factor contents into one struct per silicon block
* Provide information that's useful for SD support, like whether
the board is wired for 4-wire transfers and what gpio (if any)
is used to sense the writeprotect slider.
* Allows for "nonstandard" muxing options, which would mostly
affect boards using MMC2.
* Report whether the MMC switch should use the card detect model,
or the cover switch model.
* Updated/tested board config only for H2 (not H3 or VoiceBlue).
- MMC device initialization moved into mach-omap/omap1/device.c and
out of the MMC driver itself.
- Removed the "what MMC blocks to configure" option from Kconfig;
the board-specific MMC tag holds this info (and more).
This new device init hook should be easy to reuse to set up any of the
other integrated devices.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Toshihiro Kobayashi [Thu, 30 Jun 2005 13:20:40 +0000 (06:20 -0700)]
[PATCH] ARM: OMAP: Updated DSP to use class_device instead of class_simple
Updated DSP to use class_device instead of class_simple
David Brownell [Wed, 29 Jun 2005 15:27:35 +0000 (08:27 -0700)]
[PATCH] ARM: OMAP: H3 leds
Support for LEDs on H3 ... "disco led" on the mainboard, and
four debug board leds act as "red" "amber" "blue" and "green"
through /sys/devices/system/leds/leds0/event commands.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
David Brownell [Wed, 29 Jun 2005 15:23:46 +0000 (08:23 -0700)]
[PATCH] ARM: OMAP: UDC updates
Minor OMAP updates that somehow got dropped from previous patches.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
David Brownell [Wed, 29 Jun 2005 15:22:36 +0000 (08:22 -0700)]
[PATCH] ARM: OMAP: OHCI update
The recent "pm_message_t" changes removed functionality from the Linux
PM framework. This patch removes it from the OMAP OHCI too, removing
the distinction between (previous) PM_SUSPEND_MEM and PM_SUSPEND_DISK
state transitions ... now the only suspend semantics supportable are
what was previously PM_SUSPEND_DISK (4) and is now "PMSG_SUSPEND" (3).
From: Todd Poynor <tpoynor@mvista.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Tony Lindgren [Wed, 29 Jun 2005 15:16:14 +0000 (08:16 -0700)]
ARM: OMAP: Removed extra SUBARCH line
Removed extra SUBARCH line as noted by Geoff Levand.
Tony Lindgren [Wed, 29 Jun 2005 15:12:24 +0000 (08:12 -0700)]
ARM: OMAP: Updated idle to use generic ARM dyntick
Updated idle to use generic ARM dyntick
Tony Lindgren [Wed, 29 Jun 2005 14:31:44 +0000 (07:31 -0700)]
ARM: OMAP: Removed duplicate definition of SA_TIMER
Removed duplicate definition of SA_TIMER
Tony Lindgren [Wed, 29 Jun 2005 14:28:29 +0000 (07:28 -0700)]
ARM: OMAP: Removed duplicate dyntick Kconfig option
Please also note that you now need to pass dyntick=enabled in kernel
command line to turn dyntick on.
Tony Lindgren [Wed, 29 Jun 2005 14:20:31 +0000 (07:20 -0700)]
ARM: OMAP: Copied back OMAP version of TPS65010 driver
Copied back OMAP version of TPS65010 driver
Tony Lindgren [Wed, 29 Jun 2005 14:19:31 +0000 (07:19 -0700)]
ARM: OMAP: Removed temporary arch/arm/mach-omap/time.c
Removed temporary arch/arm/mach-omap/time.c that was used for merge
Tony Lindgren [Wed, 29 Jun 2005 14:18:33 +0000 (07:18 -0700)]
ARM: OMAP: Updated OMAP timer to use generic ARM dyntick
Updated OMAP timer to use generic ARM dyntick
Tony Lindgren [Wed, 29 Jun 2005 14:02:35 +0000 (07:02 -0700)]
ARM: OMAP: Undo of temporary patch after merge with mainline
Undo of temporary patch after merge with mainline
Tony Lindgren [Wed, 29 Jun 2005 14:01:46 +0000 (07:01 -0700)]
Merged with ../linux-2.6
Tony Lindgren [Wed, 29 Jun 2005 14:01:01 +0000 (07:01 -0700)]
ARM: OMAP: Temporary patch to avoid merge conflicts
Temporary patch to avoid merge conflicts
Tony Lindgren [Wed, 29 Jun 2005 13:52:39 +0000 (06:52 -0700)]
ARM: OMAP: Manually merged include/asm-arm/mach/time.h
Manually merged include/asm-arm/mach/time.h
Tony Lindgren [Wed, 29 Jun 2005 13:51:35 +0000 (06:51 -0700)]
ARM: OMAP: Manually merged include/asm-arm/arch-omap/tps65010.h
Manually merged include/asm-arm/arch-omap/tps65010.h
Tony Lindgren [Wed, 29 Jun 2005 13:50:13 +0000 (06:50 -0700)]
ARM: OMAP: Manually merged drivers/usb/gadget/omap_udc.c
Manually merged drivers/usb/gadget/omap_udc.c
Tony Lindgren [Wed, 29 Jun 2005 13:48:59 +0000 (06:48 -0700)]
ARM: OMAP: Manually merged drivers/net/smc91x.h
Manually merged drivers/net/smc91x.h
Tony Lindgren [Wed, 29 Jun 2005 13:47:20 +0000 (06:47 -0700)]
ARM: OMAP: Manually merged drivers/i2c/chips/Makefile
Manually merged drivers/i2c/chips/Makefile
Tony Lindgren [Wed, 29 Jun 2005 13:45:20 +0000 (06:45 -0700)]
ARM: OMAP: Manually merged drivers/i2c/chips/Kconfig
Manually merged drivers/i2c/chips/Kconfig
Tony Lindgren [Wed, 29 Jun 2005 13:41:21 +0000 (06:41 -0700)]
ARM: OMAP: Manually merged drivers/char/watchdog/Makefile
Manually merged drivers/char/watchdog/Makefile
Tony Lindgren [Wed, 29 Jun 2005 13:39:40 +0000 (06:39 -0700)]
ARM: OMAP: Manually merged drivers/Kconfig
Manually merged drivers/Kconfig
Tony Lindgren [Wed, 29 Jun 2005 13:38:27 +0000 (06:38 -0700)]
ARM: OMAP: Synced ARM generic dyntick with mainline
Switched to use ARM generic dyntick.
Tony Lindgren [Wed, 29 Jun 2005 13:25:31 +0000 (06:25 -0700)]
ARM: OMAP: Undo changes for arch/arm/kernel/arch.c
Needed to avoid merge conflicts
Tony Lindgren [Wed, 29 Jun 2005 13:21:36 +0000 (06:21 -0700)]
ARM: OMAP: Temporary change to avoid merge conflicts
Added back arch/arm/mach-omap/time.c and removed
drivers/i2c/chips/tps65010.c to avoid merge conflicts.
Tony Lindgren [Wed, 29 Jun 2005 13:16:03 +0000 (06:16 -0700)]
ARM: OMAP: Moved parse_tag_omap to common.c
In 2.6.13-rc1 arch.c disappears.
Tony Lindgren [Wed, 29 Jun 2005 12:28:21 +0000 (05:28 -0700)]
ARM: OMAP: Commented out low power mode for H3 in TPS6501x
Enabling low power mode for H3 hangs the system.
Linus Torvalds [Wed, 29 Jun 2005 05:57:29 +0000 (22:57 -0700)]
Linux v2.6.13-rc1
Ok, a lot of things were pending after the 2.6.12 release, let's try to
start calming things down again.
Jeff Garzik [Wed, 29 Jun 2005 05:17:55 +0000 (01:17 -0400)]
[PATCH] ieee80211.h build fix
This crept in with the resync-to-mainline. Nothing uses 802.11-crypt in
mainline, so we can safely comment it out for now.
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Wed, 29 Jun 2005 04:24:32 +0000 (21:24 -0700)]
Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Dave Jones [Wed, 29 Jun 2005 00:08:29 +0000 (20:08 -0400)]
[PATCH] sis 760 support.
This patch adds the SiS 760 ID to the amd64-agp driver, so that agpgart can be
used on Athlon64 boards based on this chip.
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
William Lee Irwin III [Wed, 29 Jun 2005 03:45:31 +0000 (20:45 -0700)]
[PATCH] sparc32: Kconfig fixups
Something reverted most of the arch/sparc/Kconfig changes, leaving
arch/sparc/ unconfigurable. This patch re-removes the parts made redundant
by drivers/Kconfig in addition to a mysterious, spurious second instance of
source "mm/Kconfig". cvs strikes again?
Signed-off-by: William Irwin <wli@holomorphy.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Randy Dunlap [Wed, 29 Jun 2005 03:45:30 +0000 (20:45 -0700)]
[PATCH] Doc/Submitting: corrections, additions
Corrections to Documentation/Submitting{Drivers,Patches}
- update LANANA info.
- fix some typos
- update 2.2 kernel maintainer info.
- update 'dontdiff' info.
- update URLs for patch scripts
- add Trivial Patch Monkey URL
- add more references for submitting patches
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mauro Carvalho Chehab [Wed, 29 Jun 2005 03:45:28 +0000 (20:45 -0700)]
[PATCH] V4L: documentation changes - mostly new cards included
New cards included.
V4L1 api renamed. Message included informing it is obsoleted by V4L2 API.
V4L2 api included.
Mark all 7135 cards as 7133.
Signed-off-by: Luc Saillard <luc@saillard.org>.
Signed-off-by: Nickolay V Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Hermann Pitton <hermann.pitton@onlinehome.de>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mauro Carvalho Chehab [Wed, 29 Jun 2005 03:45:27 +0000 (20:45 -0700)]
[PATCH] V4L: API new webcam formats included
Add Philips Webcam format.
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Luc Saillard <luc@saillard.org>.
Signed-off-by: Nickolay V Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mauro Carvalho Chehab [Wed, 29 Jun 2005 03:45:25 +0000 (20:45 -0700)]
[PATCH] v4l: bttv new insmod parameters
* bttv-driver.c, bttvp.h:
- New bttv module params:
- uv_ratio : allow a ratio of saturation between u and v. If you
have a ratio of 40 and a saturation of 100, usat will be 80 and
vstat 120. Useful to correct a bad color balance.
- full_luma_range : provide a better contrast in using the full
range 0-253 of values instead of 16-253.
- coring : to have a better black level.
- radio range is now defined on tuner-core.c. Cleaning up.
* bttvp.h:
- Fix gcc 4.0 compilation
Signed-off-by: Jorik Jonker <jorik@dnd.utwente.nl>
Signed-off-by: Sylvain Meyer <sylvain.meyer@worldonline.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Nickolay V Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mauro Carvalho Chehab [Wed, 29 Jun 2005 03:45:21 +0000 (20:45 -0700)]
[PATCH] v4l: tuner improvements
*tuner-core.c:
- some tuner_info msgs will be generated only if insmod opt
tuner_debug enabled.
- Implemented tuner-core support for VIDIO_S_TUNER to allow
changing mono/stereo mode
- Remove unneeded config options.
- I2C_CLIENT_MULTI option removed.
- support for Philips FMD12ME hybrid tuner
- allow to initialize with another tuner
- Move PHILIPS_FMD initialization code to set_type function,
* tda8290:
- Fix dumb error in tda8290 tunning.
- Radio tuner uses high-precision step instead of 62.5 KHz.
*tea5767.c:
- tuner_info msgs will be generated only if insmod tuner option
tuner_debug enabled.
- some cleanups for better reading.
- Radio tuner uses high-precision step instead of 62.5 KHz.
- Changing radio mode stereo/mono for tea5767 working.
*tuner-simple.c:
- TNF9533-D/IF UHF fixup.
- Radio tuners now uses high-precision step instead of 62.5 KHz.
*mt20xx.c:
- Radio tuner uses high-precision step instead of 62.5 KHz.
*tda9887.c:
- tab and blank spaces corrections.
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Gerd Knorr <kraxel@bytesex.org>
Signed-off-by: Nickolay V Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mauro Carvalho Chehab [Wed, 29 Jun 2005 03:45:20 +0000 (20:45 -0700)]
[PATCH] V4L maintainer patch
This patch updates maintainer info for BTTV and V4L.
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Acked-by: Gerd Knorr <kraxel@bytesex.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Alan Cox [Wed, 29 Jun 2005 03:45:18 +0000 (20:45 -0700)]
[PATCH] irqpoll
Anyone reporting a stuck IRQ should try these options. Its effectiveness
varies we've found in the Fedora case. Quite a few systems with misdescribed
IRQ routing just work when you use irqpoll. It also fixes up the VIA systems
although thats now fixed with the VIA quirk (which we could just make default
as its what Redmond OS does but Linus didn't like it historically).
A small number of systems have jammed IRQ sources or misdescribes that cause
an IRQ that we have no handler registered anywhere for. In those cases it
doesn't help.
Signed-off-by: Alan Cox <number6@the-village.bc.nu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Mingming Cao [Wed, 29 Jun 2005 03:45:16 +0000 (20:45 -0700)]
[PATCH] ext3: reduce allocate-with-reservation lock latencies
Currently in ext3 block reservation code, the global filesystem reservation
tree lock (rsv_block) is hold during the process of searching for a space
to make a new reservation window, including while scaning the block bitmap
to verify if the avalible window has a free block. Holding the lock during
bitmap scan is unnecessary and could possibly cause scalability issue and
latency issues.
This patch tries to address this by dropping the lock before scan the
bitmap. Before that we need to reserve the open window in case someone
else is targetting at the same window. Question was should we reserve the
whole free reservable space or just the window size we need. Reserve the
whole free reservable space will possibly force other threads which
intended to do block allocation nearby move to another block group(cause
bad layout). In this patch, we just reserve the desired size before drop
the lock and scan the block bitmap. This patch fixed a ext3 reservation
latency issue seen on a cvs check out test. Patch is tested with many fsx,
tiobench, dbench and untar a kernel test.
Signed-Off-By: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nick Piggin [Wed, 29 Jun 2005 03:45:15 +0000 (20:45 -0700)]
[PATCH] blk: light iocontext ops
get_io_context needlessly turned off interrupts and checked for racing io
context creations. Both of which aren't needed, because the io context can
only be created while in process context of the current process.
Also, split the function in 2. A light version, current_io_context does not
elevate the reference count specifically, but can be used when in process
context, because the process holds a reference itself.
Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nick Piggin [Wed, 29 Jun 2005 03:45:14 +0000 (20:45 -0700)]
[PATCH] blk: reduce locking
Change around locking a bit for a result of 1-2 less spin lock unlock pairs in
request submission paths.
Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nick Piggin [Wed, 29 Jun 2005 03:45:13 +0000 (20:45 -0700)]
[PATCH] blk: __make_request efficiency
In the case where the request is not able to be merged by the elevator, don't
retake the lock and retry the merge mechanism after allocating a new request.
Instead assume that the chance of a merge remains slim, and now that we've
done most of the work allocating a request we may as well just go with it.
Also be rid of the GFP_ATOMIC allocation: we've got working mempools for the
block layer now, so let's save atomic memory for things like networking.
Lastly, in get_request_wait, do an initial get_request call before going into
the waitqueue. This is reported to help efficiency.
Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
KAMBAROV, ZAUR [Wed, 29 Jun 2005 03:45:12 +0000 (20:45 -0700)]
[PATCH] coverity: tty_ldisc_ref return null check
We add a check of the return value of tty_ldisc_ref(), which
is checked 7 out of 8 times, e.g.:
149 ld = tty_ldisc_ref(tty);
150 if (ld != NULL) {
151 if (ld->set_termios)
152 (ld->set_termios)(tty, &old_termios);
153 tty_ldisc_deref(ld);
154 }
This defect was found automatically by Coverity Prevent, a static analysis
tool.
(akpm: presumably `ld' is never NULL. Oh well)
Signed-off-by: Zaur Kambarov <zkambarov@coverity.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
KAMBAROV, ZAUR [Wed, 29 Jun 2005 03:45:11 +0000 (20:45 -0700)]
[PATCH] coverity: fs/ext3/super.c: match_int return check
The return value of "match_int" is checked 27 out of 28 times
In lib/parser.c
142 /**
143 * match_int: - scan a decimal representation of an integer from a substring_t
144 * @s: substring_t to be scanned
145 * @result: resulting integer on success
146 *
147 * Description: Attempts to parse the &substring_t @s as a decimal integer. On
148 * success, sets @result to the integer represented by the string and returns 0.
149 * Returns either -ENOMEM or -EINVAL on failure.
150 */
151 int match_int(substring_t *s, int *result)
152 {
153 return match_number(s, result, 0);
154 }
Signed-off-by: Zaur Kambarov <zkambarov@coverity.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
KAMBAROV, ZAUR [Wed, 29 Jun 2005 03:45:10 +0000 (20:45 -0700)]
[PATCH] coverity: fs/udf/namei.c null check
"dir" was dereferenced before null check
Signed-off-by: Zaur Kambarov <zkambarov@coverity.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
KAMBAROV, ZAUR [Wed, 29 Jun 2005 03:45:08 +0000 (20:45 -0700)]
[PATCH] coverity: ipmi_msghandler() channels array overrun fix
We fix the check in 1084, which was
1084 if (addr->channel > IPMI_NUM_CHANNELS) {
1085 spin_lock_irqsave(&intf->counter_lock, flags);
1086 intf->sent_invalid_commands++;
1087 spin_unlock_irqrestore(&intf->counter_lock, flags);
1088 rv = -EINVAL;
1089 goto out_err;
1090 }
addr->channel is used in
1092 if (intf->channels[addr->channel].medium
Definitions involved:
221 struct ipmi_channel channels[IPMI_MAX_CHANNELS];
134 #define IPMI_MAX_CHANNELS 8
In /linux-2.6.12-rc6/include/linux/ipmi.h
148 #define IPMI_NUM_CHANNELS 0x10
Signed-off-by: Zaur Kambarov <zkambarov@coverity.com>
Cc: Corey Minyard <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
KAMBAROV, ZAUR [Wed, 29 Jun 2005 03:45:06 +0000 (20:45 -0700)]
[PATCH] coverity: i386: scsi_lib buffer overrun fix
The check in
627 BUG_ON(index > SG_MEMPOOL_NR);
with SG_MEMPOOL_NR defined in
32 #define SG_MEMPOOL_NR (sizeof(scsi_sg_pools)/sizeof(struct scsi_host_sg_pool))
was not sufficient.
sgp, set in
629 sgp = scsi_sg_pools + index;
is dereferenced in
630 mempool_free(sgl, sgp->pool);
Signed-off-by: Zaur Kambarov <zkambarov@coverity.com>
Cc: <linux-scsi@vger.kernel.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
KAMBAROV, ZAUR [Wed, 29 Jun 2005 03:45:06 +0000 (20:45 -0700)]
[PATCH] coverity: i386: build.c: negative return to unsigned fix
Variable "c" was declared as an unsigned int, but used in:
125 for (i=0 ; (c=read(fd, buf, sizeof(buf)))>0 ; i+=c )
126 if (write(1, buf, c) != c)
127 die("Write call failed");
(akpm: read() can return -1. If it does, we fill the disk up with garbage).
Signed-off-by: Zaur Kambarov <zkambarov@coverity.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
GOTO Masanori [Wed, 29 Jun 2005 03:45:05 +0000 (20:45 -0700)]
[PATCH] headers: include linux/types.h for usb_ch9.h
This patch for usb_ch9.h includes linux/types.h instead of asm/types.h so that
__le16 and so on is explicitly defined. It also cleans up non standard //
comment.
Signed-off-by: GOTO Masanori <gotom@debian.or.jp>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
GOTO Masanori [Wed, 29 Jun 2005 03:45:04 +0000 (20:45 -0700)]
[PATCH] headers: include linux/compiler.h for __user
This patch lets i2c-dev.h include linux/compiler.h so that __user is defined.
Signed-off-by: GOTO Masanori <gotom@debian.or.jp>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
GOTO Masanori [Wed, 29 Jun 2005 03:45:03 +0000 (20:45 -0700)]
[PATCH] headers: enable ppc64 ___arch__swab16 and ___arch__swab32
This patch cleans up asm-ppc64/byteorder.h to enable ___arch__swab16 and
___arch__swab32 which are marked TODO currently. It removes ___arch__swab64
because ppc64 does not have short instruction combinations for swab64, the
recent gcc generates enough smart code that is equivalent to hand assembled
code under my tests.
Signed-off-by: GOTO Masanori <gotom@debian.or.jp>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Sébastien Dugu [Wed, 29 Jun 2005 03:44:59 +0000 (20:44 -0700)]
[PATCH] aio-retry-fix: fix aio retry work queueing
In the case of buffered AIO, in the aio retry path (aio_run_iocb), when the
retry method returns EIOCBRETRY the kicked iocb is added to the context run
list but is never queued onto the work queue. The request therefore is
never completed.
This patch fixes that by adding the appropriate call to aio_queue_work in
aio_run_aiocb so that subsequent retries will be handled by the aio worker
thread.
Signed-off-by: Sébastien Dugué <sebastien.dugue@bull.net>
Acked-by: Benjamin LaHaise <benjamin.c.lahaise@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Christoph Hellwig [Wed, 29 Jun 2005 03:44:58 +0000 (20:44 -0700)]
[PATCH] really remove xattr_acl.h
Looks like it sneaked back with the NFS ACL merge..
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Adrian Bunk [Wed, 29 Jun 2005 03:44:56 +0000 (20:44 -0700)]
[PATCH] drivers/isdn/: make some code static
This patch makes some needlessly global code static.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Armin Schindler <armin@melware.de>
Signed-off-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Pekka J Enberg [Wed, 29 Jun 2005 03:44:55 +0000 (20:44 -0700)]
[PATCH] rename wakeup_bdflush to wakeup_pdflush
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Wed, 29 Jun 2005 03:44:54 +0000 (20:44 -0700)]
[PATCH] swabb.h warning fixes
In file included from drivers/media/dvb/ttpci/av7110_hw.c:38:
include/linux/byteorder/swabb.h:96: warning: type qualifiers ignored on function return type
include/linux/byteorder/swabb.h:110: warning: type qualifiers ignored on function return type
In file included from drivers/media/dvb/ttpci/av7110_v4l.c:36:
include/linux/byteorder/swabb.h:96: warning: type qualifiers ignored on function return type
include/linux/byteorder/swabb.h:110: warning: type qualifiers ignored on function return type
In file included from drivers/media/dvb/ttpci/av7110_av.c:37:
include/linux/byteorder/swabb.h:96: warning: type qualifiers ignored on function return type
include/linux/byteorder/swabb.h:110: warning: type qualifiers ignored on function return type
drivers/isdn/icn/icn.c:719:4: warning: #warning TODO test headroom or use skb->nb to flag ACK
In file included from drivers/media/dvb/ttpci/av7110_ca.c:39:
include/linux/byteorder/swabb.h:96: warning: type qualifiers ignored on function return type
include/linux/byteorder/swabb.h:110: warning: type qualifiers ignored on function return type
In file included from drivers/media/dvb/ttpci/av7110.c:41:
include/linux/byteorder/swabb.h:96: warning: type qualifiers ignored on function return type
include/linux/byteorder/swabb.h:110: warning: type qualifiers ignored on function return type
Does declaring a function to return a const value actually mean something to
gcc?
Dunno. Kill it and replace sone `__inline__'s with `inline' too.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Wed, 29 Jun 2005 03:44:53 +0000 (20:44 -0700)]
[PATCH] hisax warning fixes
drivers/isdn/hisax/hfc4s8s_l1.c:317: warning: type qualifiers ignored on function return type
drivers/isdn/hisax/hfc4s8s_l1.c:329: warning: type qualifiers ignored on function return type
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Stanislaw W. Gruszka [Wed, 29 Jun 2005 03:44:51 +0000 (20:44 -0700)]
[PATCH] request_firmware(): avoid race conditions
Avoid race occurs when some process have open file descriptor for class
device attributes and already firmware allocated memory are freed. Don't
allow negative loading timeout.
Signed-off-by: Stanislaw W. Gruszka <stf_xl@wp.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Emmanuel Colbus [Wed, 29 Jun 2005 03:44:49 +0000 (20:44 -0700)]
[PATCH] Adapt drivers/char/vt_ioctl.c to non-x86
This code uses the x86 (non-AMD-ELAN) value of CLOCK_TICK_RATE instead of
CLOCK_TICK_RATE itself, which is wrong for other archs.
Signed-off-by: Emmanuel Colbus <emmanuel.colbus@ensimag.imag.fr>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Oleg Nesterov [Wed, 29 Jun 2005 03:44:47 +0000 (20:44 -0700)]
[PATCH] ITIMER_REAL: fix possible deadlock and race
As Steven Rostedt pointed out, there are 2 problems with ITIMER_REAL
timers.
1. do_setitimer() does not call del_timer_sync() in case
when the timer is not pending (it_real_value() returns 0).
This is wrong, the timer may still be running, and it can
rearm itself.
2. It calls del_timer_sync() with tsk->sighand->siglock held.
This is deadlockable, because timer's handler needs this
lock too.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Lennert Buytenhek [Wed, 29 Jun 2005 03:44:46 +0000 (20:44 -0700)]
[PATCH] ixp4xx/ixp2000 watchdog driver typo
Fix the same typo in the ixp4xx and ixp2000 watchdog drivers.
Signed-off-by: Lennert Buytenhek <buytenh+lkml@wantstofly.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Luc Van Oostenryck [Wed, 29 Jun 2005 03:44:44 +0000 (20:44 -0700)]
[PATCH] drivers/char/tipar.c: off by one array access
In the setup function, the delay variable is initialized with ints[2],
but ints is declared as:
int ints[2];
Since the module parameter should correspond to:
tipar=timeout,delay
I suppose that the following patch fix the problem.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@looxix.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Luca Falavigna [Wed, 29 Jun 2005 03:44:42 +0000 (20:44 -0700)]
[PATCH] Using msleep() instead of HZ
Use msleep() in a few places.
Signed-off-by: Luca Falavigna <dktrkranz@gmail.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Wen-chien Jesse Sung [Wed, 29 Jun 2005 03:44:41 +0000 (20:44 -0700)]
[PATCH] fix semaphore handling in __unregister_chrdev_region
This up() should be down() instead.
Signed-off-by: Wen-chien Jesse Sung <jesse@cola.voip.idv.tw>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
David S. Miller [Tue, 28 Jun 2005 23:27:32 +0000 (16:27 -0700)]
[NET]: drivers/net/slip.c needs linux/delay.h
For msleep_interruptible().
Signed-off-by: David S. Miller <davem@davemloft.net>
Patrick McHardy [Tue, 28 Jun 2005 23:04:44 +0000 (16:04 -0700)]
[NETFILTER]: Fix connection tracking bug in 2.6.12
In 2.6.12 we started dropping the conntrack reference when a packet
leaves the IP layer. This broke connection tracking on a bridge,
because bridge-netfilter defers calling some NF_IP_* hooks to the bridge
layer for locally generated packets going out a bridge, where the
conntrack reference is no longer available. This patch keeps the
reference in this case as a temporary solution, long term we will
remove the defered hook calling. No attempt is made to drop the
reference in the bridge-code when it is no longer needed, tc actions
could already have sent the packet anywhere.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Arnd Bergmann [Tue, 28 Jun 2005 22:58:50 +0000 (15:58 -0700)]
[NET]: Add missing include to linux/netdevice.h
linux/etherdevice.h can't be included standalone at the moment, which
is required in order to sort the header files in the recommended
alphabetic order. This patch fixes that and is needed to build spider_net.
Signed-off-by: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Denis Vlasenko [Tue, 28 Jun 2005 22:49:06 +0000 (15:49 -0700)]
[NET]: Micro optimization in eth_header()
Signed-off-by: Denis Vlasenko <vda@ilport.com.ua>
Signed-off-by: David S. Miller <davem@davemloft.net>
YOSHIFUJI Hideaki [Tue, 28 Jun 2005 22:46:24 +0000 (15:46 -0700)]
[IPV6]: remove more unused IPV6_AUTHHDR things.
Remove two more unused IPV6_AUTHHDR option things,
which I failed to remove them last time,
plus, mark IPV6_AUTHHDR obsolete.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Neil Horman [Tue, 28 Jun 2005 22:40:02 +0000 (15:40 -0700)]
[IPVS]: Close race conditions on ip_vs_conn_tab list modification
In an smp system, it is possible for an connection timer to expire, calling
ip_vs_conn_expire while the connection table is being flushed, before
ct_write_lock_bh is acquired.
Since the list iterator loop in ip_vs_con_flush releases and re-acquires the
spinlock (even though it doesn't re-enable softirqs), it is possible for the
expiration function to modify the connection list, while it is being traversed
in ip_vs_conn_flush.
The result is that the next pointer gets set to NULL, and subsequently
dereferenced, resulting in an oops.
Signed-off-by: Neil Horman <nhorman@redhat.com>
Acked-by: JulianAnastasov
Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller [Tue, 28 Jun 2005 22:25:31 +0000 (15:25 -0700)]
[NET]: Remove gratuitous use of skb->tail in network drivers.
Many drivers use skb->tail unnecessarily.
In these situations, the code roughly looks like:
dev = dev_alloc_skb(...);
[optional] skb_reserve(skb, ...);
... skb->tail ...
But even if the skb_reserve() happens, skb->data equals
skb->tail. So it doesn't make any sense to use anything
other than skb->data in these cases.
Another case was the s2io.c driver directly mucking with
the skb->data and skb->tail pointers. It really just wanted
to do an skb_reserve(), so that's what the code was changed
to do instead.
Another reason I'm making this change as it allows some SKB
cleanups I have planned simpler to merge. In those cleanups,
skb->head, skb->tail, and skb->end pointers are removed, and
replaced with skb->head_room and skb->tail_room integers.
Signed-off-by: David S. Miller <davem@davemloft.net>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Robert Olsson [Tue, 28 Jun 2005 22:00:39 +0000 (15:00 -0700)]
[IPV4]: Broken memory allocation in fib_trie
This should help up the insertion... but the resize is more crucial.
and complex and needs some thinking.
Signed-off-by: Robert Olsson <robert.olsson@its.uu.se>
Signed-off-by: David S. Miller <davem@davemloft.net>