2004-03-16 05:52:43

by Linus Torvalds

[permalink] [raw]
Subject: Linux 2.6.5-rc1


Here's the current set of patches I've merged from various poeple..

Merging from Andrew, but also i2c updates, ALSA CVS merge, netconsole,
prism54 driver merge, sata updates, carmel driver, pcmcia and nfs client
updates..

And a few architectures updated: ia64, ppc32, sparc32, arm.

Linus

----

Summary of changes from v2.6.4 to v2.6.5-rc1
============================================

<aurelien:aurel32.net>:
o I2C: New chip driver: ds1621

<bunk:de.rmk.(none)>:
o [SERIAL] serialP.h: remove a kernel 2.2 #ifdef

<clemy:clemy.org>:
o I2C: add w83627hf driver

<colin:gibbsonline.net>:
o [NET_SCHED]: Use time_after, fixes htb on 64-bit arch

<dave.jiang:intel.com>:
o I2C: IOP3xx i2c driver update

<edwardsg:sgi.com>:
o ia64: fix missing include in include/asm-ia64/sn/router.h

<jonas.larsson:net.rmk.(none)>:
o [ARM PATCH] 1753/1: Devfs support for the 21285 serial driver - try
2

<komoriya:paken.org>:
o I2C: it87 reset option

<paul:wagland.net>:
o Set module owner in megaraid driver

<perrye:linuxmail.org>:
o I2C: i2c-voodoo3.c needs I2C_ADAP_CLASS_TV_ANALOG

<sryoungs:au.rmk.(none)>:
o [SERIAL] Add alias for TTY_MAJOR character device

<tim:cambrant.com>:
o [VLAN]: Use array for static const char 'fmt'

Adrian Bunk:
o I2C: update I2C help text

Alex Williamson:
o ia64: minor 2.6 sba_iommu update

Andi Kleen:
o netpoll for 3c59x
o netpoll for tulip
o netpoll for amd8111e
o Netpoll for pcnet32
o fix tg3 netpoll
o netpoll for eepro100
o x86-64 merge for 2.6.4
o Fix a 64bit bug in kobject module request
o Fix CONFIG_DEBUG build on x86-64 & small cleanup

Andreas Schwab:
o ia64: Fix staircase effect on Altix serial console

Andrew Morton:
o fix netpoll printk bug
o netconsole warning fix
o eepro100.c warning fix
o ini9100u build fix
o gcc-3.5: acpi build fix
o print kernel version in oops messages
o ppc64: fix initialisation of NUMA arrays
o Clean up sys_ioperm stubs
o readdir() cleanups
o adaptive lazy readahead
o read-only support for UFS2
o fb_console_init fix
o time interpolator fix
o teach /proc/kmsg about O_NONBLOCK
o remove __io_virt_debug
o genrtc: cleanups
o i386 very early memory detection cleanup patch
o Allow X86_MCE_NONFATAL to be a module
o dm: endio method
o dm: list_for_each_entry audit
o dm: default queue limits
o dm: list targets cmd
o dm: stripe width fix
o selinux: clean up binary mount data
o UDF filesystem update
o kbuild: Remove CFLAGS assignment in i386/mach-*/Makefile
o NUMA-aware zonelist builder
o Redundant unplug_timer deletion
o compiler.h scoping fixes
o Fix elf mapping of the zero page
o kbuild: Cause `make clean' to remove more files
o LOOP_CHANGE_FD ioctl
o loop setup race fix
o kbuild: fix usage with directories containing '.o'
o Remove unneeded unlock in ipc/sem.c
o /proc data corruption check
o Enable i810 fb on x86-64
o Remove arbitrary #acl entries limits on ext[23] when reading
o watchdog: moduleparam-patches
o AMD ELAN Kconfig fix
o fadvise(POSIX_FADV_DONTNEED) fixups
o Fix and harden validate_mm
o current_is_keventd() speedup
o Fix rootfs on ramdisk
o Fix reading the last block on a bdev
o wavfront.c needs syscalls.h
o EDD: Get Legacy Parameters
o cciss: init section fix
o add nowarn to a few pte chain allocators
o Disable Macintosh device drivers for all but PPC || MAC
o Applicom warning
o Fix CONFIG_NVRAM dependencies
o fix raid0 readahead size
o Fix NULL pointer dereference in blkmtd.c
o fbdev: monitor detection fixes
o m68k: __test_and_set_bit()
o m68k: Amiga Framemaster II fb sysfsification
o Apollo fb sysfsification
o m68k: Macintosh IDE fixes
o m68k: interrupt management cleanups
o Add barriers to avoid race in mempool_alloc/free
o synclinkmp.c update
o synclink_cs.c update
o synclink.c update
o vm: per-zone vmscan instrumentation
o return remaining jiffies from blk_congestion_wait()
o Narrow blk_congestion_wait races
o mm/vmscan.c: remove unused priority argument
o kswapd throttling fixes
o vmscan: preserve page referenced info in refill_inactive()
o shrink_slab: math precision fix
o vm: shrink slab evenly in try_to_free_pages()
o vmscan: fix calculation of number of pages scanned
o vm: scan slab in response to highmem scanning
o vmscan: zone balancing fix
o vmscan: drive everything via nr_to_scan
o Balance inter-zone scan rates
o vmscan: avoid bogus throttling
o kswapd: avoid unnecessary reclaiming from higher zones
o kswapd: fix lumpy page reclaim
o fix the kswapd zone scanning algorithm
o vmscan: less throttling of page allocators and kswapd
o vmscan: batch up inactive list scanning work
o fix vm-batch-inactive-scanning.patch
o vm: balance inactive zone refill rates
o vmscan: add lru_to_page() helper
o slab: avoid higher-order allocations
o ppc64: fix NUMA compile with large cpumasks
o Use 64-bit counters for scheduler stats
o Manfred's patch to distribute boot allocations across nodes
o further __KERNEL_SYSCALLS__ removal
o use wait_task_inactive() in kthread_bind()
o md: use "shedule_timeout()" instead of yield()
o md: allow assembling of partitioned arrays at boot time
o Work around an AMD768MPX erratum
o DMA: Fill gaping hole in DMA API interfaces
o module unload deadlock fix
o gcc-3.5 libata build fix
o move consistent_dma_mask to the generic device
o s390: update for altered page_state structure
o __kill_pg_info() return value fix
o cdev: warning fix
o generic 32 bit emulation for System-V IPC

Angelo Dell'Aera:
o [TCP]: Clean up some westwood comments

Anton Blanchard:
o fix ppc64 in kernel syscalls

Aristeu Sergio Rozanski Filho:
o qlogicfas: use a static string as name
o qlogic_cs: don't release region
o qlogic_cs: use a static string as name
o qlogic_cs: use scsi_host_put
o qlogicfas: force can_queue
o qlogic_cs: use own detect and release functions
o qlogic_cs: don't call qlogic_release on fail
o qlogicfas: kill QL_USE_IRQ
o qlogicfas: use qlogicfas_name instead qinfo
o qlogicfas: begin to convert qlogicfas to new driver
o qlogicfas: disable irqs on exit
o qlogicfas: support multiple cards
o qlogicfas: move common definitions to qlogicfas.h
o qlogicfas: finish to convert to new scsi driver
o qlogic_cs: use own MODULE_ macros

Arjan van de Ven:
o xirc2ps ethtool fix

Bartlomiej Zolnierkiewicz:
o update for pdc202xx_new driver
o ide-disk.c: cleanup get_command()
o remove ide_cmd_type_parser() logic
o remove IDE_*_OFFSET_HOB and IDE_*_REG_HOB defines
o remove ide_init_drive_taskfile()
o piix_ide_init() can be __init

Benjamin Herrenschmidt:
o G5 temperature control update
o ppc32: Fix G5 config space access lockup

Bjorn Helgaas:
o [SERIAL] fix PCI interrupt setting for ia64

Brian King:
o SCSI: Recognize device type 0x0C
o SCSI Midlayer initiated START_UNIT

Chas Williams:
o [ATM]: [suni] dev_data should really be phy_data

Chris Wright:
o Patch to hook up PPP to simple class sysfs support
o class_simple clean up in lp
o class_simple cleanup in input
o class_simple cleanup in misc
o class_simple cleanup in sg

Christoph Hellwig:
o ia64: simserial module refcounting update

Dave Jones:
o sort SCSI blacklist
o USB 6-in-1 card reader blacklist addition
o Remove unneeded cast
o Whitespace fixes
o Fix sysfs leak

David Mosberger:
o ia64: Move irq_enter()/irq_exit() from hardirq.h to irq_ia64.c.
The work done by these routines is very special and needs to be
done at exactly the right time. Removing it from the header-file
reduces the risk of accidental misuse. Other arch maintainers
agree that this is the Right Thing to do.
o ia64: Rename ia64_invoke_kernel_thread_helper() to
start_kernel_thread() for symmetry with start_kernel() and to make
it obvious when the end of the call-chain has been reached.
o ia64: More SAL cleanups/fixes
o ia64: Reserve 3 syscall numbers for Andi Kleen's NUMA interface
o ia64: fix preempt bug in IA32 subsystem

David S. Miller:
o [IPV6]: Kill unused warnings in addrconf.c
o [SOUND]: Fix typo in SBUS memalloc changes
o [NETDEV]: pcnet32, eepro100, and 8139too need asm/irq.h
o [SPARC]: Include linux/linkage.h in asm/unistd.h

Deepak Saxena:
o I2C: Support for IXP42x GPIO-based I2C

Don Fry:
o pcnet32 correct names for changes
o netdevice.h add netif_msg_init helper

Greg Kroah-Hartman:
o I2C: fix oops in i2c-ali1535 driver if no hardware is present
o I2C: fix compiler warnings in 2 drivers
o I2C: show adapter name in i2c-dev class directory to make it easier
for userspace tools
o I2C: keep i2c-dev numbers in sync with i2c adapter numbers
o Driver core: make CONFIG_DEBUG_DRIVER implementation a whole lot
cleaner
o Kobject: add decl_subsys_name() macro for users who want to set the
subsystem name
o PCI Hotplug: use the new decl_subsys_name() macro instead of
rolling our own
o remove cdev_set_name completely as it is not needed
o I2C: fix up CONFIG_I2C_DEBUG_BUS logic to be simpler on the .c
files
o I2C: fix up CONFIG_I2C_DEBUG_CORE logic to be simpler on the .c
files
o I2C: add CONFIG_I2C_DEBUG_ALGO to be consistant
o I2C: fix up CONFIG_I2C_DEBUG_CHIP logic to be simpler on the .c
files
o I2C: delete the i2c-elv.c driver as it is obsoleted by the
i2c-parport.c driver
o I2C: delete the i2c_philips-par.c and i2c-veleman.c drivers
o kref: add kref structure to kernel tree

James Bottomley:
o SCSI: mptfusion update to 3.00.04
o Add SCSI lots of disk support
o Add SCSI transport attributes
o Add full complement of SPI transport attributes
o SCSI: Make SPI transport attributes mutable
o SCSI: implement transport attributes for 53c700
o fix Kconfig select problem with SCSI_SPI_ATTRS
o CONFIG_SCSI_AIC7XXX Kconfig bug
o Make the SCSI mempool allocations variable
o MPT Fusion driver 3.01.00 update
o MPT Fusion driver 3.01.01 update
o add device quiescing to the SCSI API
o more SPI transport attribute updates
o update the 53c700 use of transport attributes
o Add Domain Validation to the SPI transport class
o Fix removable USB drive oops
o Add Domain Validation to 53c700 driver
o Fix voyager to boot again

James Morris:
o [CRYPTO]: Fix arc4 test vector

Jamie Lenehan:
o dc395x [1/5] - formatting cleanups
o dc395x [2/5] - sg list handling cleanups
o dc395x [3/5] - remove old debugging stuff
o dc395x [4/5] - debugging cleanup
o dc395x [5/5] - version update

Jaroslav Kysela:
o ALSA CVS update - Takashi Iwai <[email protected]> Intel8x0 driver
o ALSA CVS update - Takashi Iwai <[email protected]> AC97 Codec Core
o ALSA CVS update - Takashi Iwai <[email protected]> AC97 Codec Core
o ALSA CVS update - Takashi Iwai <[email protected]> USB generic driver
o ALSA CVS update - Takashi Iwai <[email protected]> Digigram VX core
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation,ALSA
Core,PCI drivers,MIXART driver,IGNORE
o ALSA CVS update - Takashi Iwai <[email protected]> Digigram VX core
o ALSA CVS update - Takashi Iwai <[email protected]> ICE1712
driver,ICE1724 driver
o ALSA CVS update - Takashi Iwai <[email protected]> Intel8x0 driver
o ALSA CVS update - Takashi Iwai <[email protected]> VIA82xx driver
o ALSA CVS update - Takashi Iwai <[email protected]> AC97 Codec Core
o ALSA CVS update - Takashi Iwai <[email protected]> AC97 Codec Core
Clemens Ladisch <[email protected]>:
o ALSA CVS update - Takashi Iwai <[email protected]> USB generic driver
Clemens Ladisch <[email protected]>:
o ALSA CVS update - Takashi Iwai <[email protected]> Digigram VX core
Alain Cretet <[email protected]>:
o ALSA CVS update - Takashi Iwai <[email protected]> Digigram VX core
Alain Cretet <[email protected]>:
o ALSA CVS update - Takashi Iwai <[email protected]> ALSA sequencer
o ALSA CVS update - Takashi Iwai <[email protected]> AC97 Codec Core
o ALSA CVS update - Jaroslav Kysela <[email protected]> Intel8x0 driver
Added spinlock to pointer callback - ichdev->position is not
changed atomically
o ALSA CVS update - Takashi Iwai <[email protected]> VIA82xx driver
o ALSA CVS update - Takashi Iwai <[email protected]> MIXART driver
o ALSA CVS update - Takashi Iwai <[email protected]> Intel8x0 driver
o ALSA CVS update - Takashi Iwai <[email protected]> ALSA<-OSS sequencer
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA<-OSS
emulation Added period_frames to fix poll behavior
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA<-OSS
emulation Fixed oss.period_frames setup
o ALSA CVS update - Jaroslav Kysela <[email protected]> PCM Midlevel
Added OSS period frames to proc interface
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA<-OSS
emulation Fixed oops regarding last period_frames update
o ALSA CVS update - Takashi Iwai <[email protected]> USB generic driver
Clemens Ladisch <[email protected]>:
o ALSA CVS update - Jaroslav Kysela <[email protected]> AC97 Codec Core
Fixed swap_headphone() when headpone controls do not exist
o ALSA CVS update - Jaroslav Kysela <[email protected]> Trident driver
Fixed s/pdif control initialization
o ALSA CVS update - Jaroslav Kysela <[email protected]> RME HDSP driver
Fixed wrong assert, added checks for copy_*_user functions
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA sequencer
Clemens Ladisch <[email protected]> Timestamping (if enabled on a
subscription or a port) is not applied to the quoted event but to
the quoting event. This patch adds a function to copy only
selected fields into the event to be delivered.
o ALSA CVS update - Jaroslav Kysela <[email protected]> MPU401 UART
Clemens Ladisch <[email protected]> remove unneeded technical
information from port names
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA sequencer
Clemens Ladisch <[email protected]> This patch reverses the order
of the 'Rawmidi x' and rawmidi name parts of client names to enable
selecting clients by a unique prefix (as snd_seq_parse_address
does).
o ALSA CVS update - Jaroslav Kysela <[email protected]> USB generic
driver Clemens Ladisch <[email protected]>
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA sequencer
Clemens Ladisch <[email protected]>
o ALSA CVS update - Jaroslav Kysela <[email protected]> MIXART driver
Added missing header file inclusion
o ALSA CVS update - Jaroslav Kysela <[email protected]>
Documentation,ALSA Core,PCMCIA Kconfig,PCMCIA Sound Core PDAudioCF
driver Added Sound Core PDAudioCF driver
o ALSA CVS update - Jaroslav Kysela <[email protected]> EMU10K1/EMU10K2
driver Fixed page overflow
o ALSA CVS update - Jaroslav Kysela <[email protected]> Serial BUS
drivers Moved AK4117 from alsa-driver tree to satisfy dependency
for PDAudioCF driver
o ALSA CVS update - Jaroslav Kysela <[email protected]> AK4117 receiver
Added missing ak4117.h file
o Fixed compilation of PDAudioCF driver
o ALSA CVS update - Jaroslav Kysela <[email protected]> USB generic
driver usb_ch9.h is already included in usb.h
o ALSA CVS update - Takashi Iwai <[email protected]> ALS4000 driver
o ALSA CVS update - Takashi Iwai <[email protected]> CMIPCI driver
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation
o ALSA CVS update - Takashi Iwai <[email protected]> AC97 Codec Core
o ALSA CVS update - Takashi Iwai <[email protected]> MIXART driver
o ALSA CVS update - Takashi Iwai <[email protected]> PCM
Midlevel,Intel8x0 driver
o ALSA CVS update - Takashi Iwai <[email protected]> VIA82xx driver
o ALSA CVS update - Jaroslav Kysela <[email protected]> EMU10K1/EMU10K2
driver James Courtier-Dutton <[email protected]>, some
additions
o ALSA CVS update - Jaroslav Kysela <[email protected]> Sound Core
PDAudioCF driver [email protected] Fix pdaudiocf_irq.c for gcc-3.5
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation
o ALSA CVS update - Takashi Iwai <[email protected]> VIA82xx driver
o ALSA CVS update - Takashi Iwai <[email protected]> PPC Tumbler driver
fixed the resume of bass/treble volumes on snapper.
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA Core Fixed
snd_info_set_text_ops() wwhen CONFIG_PROC_FS is not defined
o ALSA CVS update - Jaroslav Kysela <[email protected]> Sound Core
PDAudioCF driver Fixed pcm->name settings
o ALSA CVS update - Jaroslav Kysela <[email protected]> AK4531 codec Aux
Input Route -> Aux Capture Route renaming
o ALSA CVS update - Jaroslav Kysela <[email protected]> PCI drivers
Select CONFIG_VIDEO_DEV when CONFIG_SND_FM801_TEA575X is wanted
o ALSA CVS update - Jaroslav Kysela <[email protected]> OPL3,OPL4,Synth
Fixed sequencer dependency for opl3, opl4 and emux objects.
o ALSA CVS update - Jaroslav Kysela <[email protected]> PCI drivers
<[email protected]> fix Kconfig thinko
o ALSA - 1.0.3
o ALSA CVS update - Jaroslav Kysela <[email protected]> FM801 driver
tea575x can be module, too
o ALSA CVS update - Jaroslav Kysela <[email protected]> Big DMA cleanup
originated by Russell King <[email protected]>
o ALSA CVS update - Jaroslav Kysela <[email protected]> CMI8330
driver,ES18xx driver,AD1816A driver,AD1848 driver,CS4231 driver
ES1688 driver,GUS Library,Opti9xx drivers,SB16/AWE driver,SB8
driver Fixed old function name (snd_pcm_isa_flags ->
snd_pcm_dma_flags)
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA Core Russell
King <[email protected]>
o ALSA CVS update - Clemens Ladisch <[email protected]> USB generic
driver Fix for Creamware Noah:
o ALSA CVS update - Takashi Iwai <[email protected]> Memalloc module,ALSA
Core
o ALSA CVS update - Takashi Iwai <[email protected]> ES1968 driver
o ALSA CVS update - Takashi Iwai <[email protected]> Intel8x0 driver
o ALSA CVS update - Takashi Iwai <[email protected]> Memalloc module
o ALSA CVS update - Jaroslav Kysela <[email protected]> Intel8x0 driver
Converted to new DMA allocation API
o ALSA CVS update - Jaroslav Kysela <[email protected]> ARM,ALSA
Core,Generic drivers,ISA,PARISC,PCI drivers,PCMCIA Kconfig,PPC
SPARC,USB This is part of a patch series to clean up
sound/core/Makefile in Linux 2.6.4-rc1.
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA Core,Generic
drivers,ISA,PCI drivers,USB Russell King
<[email protected]>
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA Core,ISA,PCI
drivers,PCMCIA Kconfig Russell King <[email protected]>
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA Core,Generic
drivers Russell King <[email protected]>
o ALSA CVS update - Jaroslav Kysela <[email protected]> Generic
drivers,MPU401 UART,OPL3,OPL4,ISA,PCI drivers More Kconfig and
Makefile cleanups following Russell's direction:
o ALSA CVS update - Jaroslav Kysela <[email protected]> Generic
drivers,Digigram VX core,PCI drivers,PCMCIA Kconfig More Kconfig
and Makefile cleanups following Russell's direction:
o ALSA CVS update - Clemens Ladisch <[email protected]> USB generic
driver
o ALSA CVS update - Takashi Iwai <[email protected]> Memalloc module
fixed the missing inclusion.
o ALSA CVS update - Takashi Iwai <[email protected]> PCI drivers,AC97
Codec Core
o ALSA CVS update - Takashi Iwai <[email protected]> Memalloc module
o ALSA CVS update - Clemens Ladisch <[email protected]> USB generic
driver fixes for broken SB Audigy 2 NX descriptors
o ALSA - fixed compilation
o ALSA CVS update - Takashi Iwai <[email protected]> ALSA Core
o ALSA CVS update - Takashi Iwai <[email protected]> PPC Tumbler driver
o ALSA CVS update - Jaroslav Kysela <[email protected]> ICE1724
driver,ICE1712 driver Dirk Kalis <[email protected]> Added
num_total_adcs.
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA<-OSS
sequencer mpkelly - fixed channel settings for input events
o ALSA CVS update - Takashi Iwai <[email protected]> Opti9xx drivers
fixed the code with obsolete check_region().
o ALSA CVS update - Takashi Iwai <[email protected]> AC97 Codec
Core,Intel8x0 driver,VIA82xx driver,CS46xx driver
o ALSA CVS update - Takashi Iwai <[email protected]> Intel8x0 driver
fixed the interrupt problem with NForce(2).
o ALSA CVS update - Jaroslav Kysela <[email protected]> PCM Midlevel Fix
in playback_silence routine - don't silence whole buffer at start
if samples are filled
o ALSA CVS update - Jaroslav Kysela <[email protected]> ALSA Core PCM API
is 2.0.6
o ALSA CVS update - Takashi Iwai <[email protected]> Memalloc module,PCM
Midlevel,ALSA Core,CMI8330 driver,ES18xx driver Sound Scape
driver,AD1816A driver,AD1848 driver,CS4231 driver ES1688 driver,GUS
Library,Opti9xx drivers,SB16/AWE driver,SB8 driver ALS4000
driver,AZT3328 driver,BT87x driver,CMIPCI driver,CS4281 driver
ENS1370/1+ driver,ES1938 driver,ES1968 driver,FM801 driver Intel8x0
driver,Maestro3 driver,RME32 driver,RME96 driver SonicVibes
driver,VIA82xx driver,ALI5451 driver,CS46xx driver EMU10K1/EMU10K2
driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART
driver,RME HDSP driver,RME9652 driver,Trident driver YMFPCI
driver,Sound Core PDAudioCF driver,USB generic driver
o ALSA CVS update - Takashi Iwai <[email protected]> PARISC Harmony
driver,SPARC AMD7930 driver,SPARC cs4231 driver fixed for the new
DMA buffer handler.
o ALSA - fix compilation (header files)
o ALSA CVS update - Clemens Ladisch <[email protected]> ALSA
sequencer remove superfluous call to snd_seq_event_port_detach
o ALSA CVS update - Clemens Ladisch <[email protected]> ALSA
sequencer,ALSA<-OSS sequencer use wrapper function for DELETE_PORT
ioctl calls
o ALSA CVS update - Clemens Ladisch <[email protected]> USB generic
driver use MIN_PACKS_URB as lower bound for nrpacks parameter
o ALSA CVS update - Clemens Ladisch <[email protected]> USB generic
driver show one decimal place of momentary frequency in proc file
o ALSA CVS update - Clemens Ladisch <[email protected]> USB generic
driver prevent twenty-seconds wait when unplugging USB MIDI device
with a port subscription
o ALSA CVS update - Takashi Iwai <[email protected]> VIA82xx driver
restrict the PCM sample rates to 32, 44.1 and 48kHz when the SPDIF
switch is on.
o ALSA CVS update - Jaroslav Kysela <[email protected]> DT019x driver
Fixed warnings
o ALSA CVS update - Takashi Iwai <[email protected]> VIA82xx driver patch
was applied wrongly. fixed the rate restriction of spdif output
again.
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation,PCI
drivers,au88x0 driver added the au88x0 drivers for Aureal
soundcards by Manuel Jander <[email protected]>
o ALSA CVS update - Takashi Iwai <[email protected]> PPC Tumbler driver
added input source switch to select mic/line-in.
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation
changed the description of the buffer allocation routines for the
new designed functions.
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation fixed
the files to include.
o ALSA CVS update - Takashi Iwai <[email protected]> USB generic driver
added fix and workaround for the mixer problem on SB Extigy.
o ALSA CVS update - Takashi Iwai <[email protected]> PPC Tumbler driver
fixed the info callback of mixer input source (for enum type).
o ALSA CVS update - Takashi Iwai <[email protected]> au88x0 driver
removed EXPORT_NO_SYMBOLS.
o ALSA CVS update - Takashi Iwai <[email protected]> EMU10K1/EMU10K2
driver disabled Dell OEM Emu10k1x from the pci id list.
o ALSA CVS update - Takashi Iwai <[email protected]> MIXART driver fixed
the compile warning.
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation,PCI
drivers,ATIIXP driver added snd-atiixp driver for the ATI
IXP150/200/250 AC97 controllers.
o ALSA CVS update - Takashi Iwai <[email protected]> Documentation,PCI
drivers,Intel8x0-modem driver added Intel-compatible onboard MC97
modem driver by Sasha Khapyorsky <[email protected]>
o ALSA CVS update - Takashi Iwai <[email protected]> ALSA Core added the
new magic numbers for atiixp and au88x0 drivers.
o ALSA CVS update - Takashi Iwai <[email protected]> ALSA Core fixed the
wrong release of id proc file.
o ALSA CVS update - Jaroslav Kysela <[email protected]> Intel8x0 driver
Added slot definitions for s/pdif pcm - ICH4
o ALSA CVS update - Jaroslav Kysela <[email protected]> AC97 Codec Core
Kevin Mack <[email protected]> Here's a quick and dirty patch
that's given me basic sound from my Gateway M675 notebook (Sigmatel
9758 AC97 codec).
o ALSA CVS update - Clemens Ladisch <[email protected]>
Documentation,MPU401 UART integrate MPU-401 ACPI PnP from
alsa-driver
o ALSA CVS update - Clemens Ladisch <[email protected]> au88x0
driver fix compilation on gcc 2.95.x
o ALSA CVS update - Clemens Ladisch <[email protected]> Intel8x0
driver add Intel ICH6 and ESB
o ALSA CVS update - Jaroslav Kysela <[email protected]> au88x0 driver
Make mchannels and rampchs static
o ALSA CVS update - Jaroslav Kysela <[email protected]> au88x0 driver
Fixed gameport dependency and solid kernel build

Jean Delvare:
o I2C: Enable debugging in fscher
o I2C: Credit James Bolt in w83l785ts
o I2C: New chip driver ported: lm80
o I2C: fix space in message
o I2C: fix mor rmmod oopses
o I2C: Lowercase chips name
o I2C: fix Hangs with w83781d
o I2C: fix it87 sensor type
o I2C: fix another oops in i2c-core with debug
o I2C: Remove asb100 support from w83781d
o I2C: update for sysfs-interface documentation
o I2C: rename sysfs files, part 1 of 2
o I2C: rename sysfs files, part 2 of 2
o I2C: Prevent i2c-dev oops with debug
o I2C: fix i2c adapters class for now
o I2c: Kconfig for non-sensors i2c chip drivers
o I2C: Cleanup fan_div in w83781d
o I2C: fix forced i2c chip drivers have no name
o I2C: Don't handle kind errors that cannot happen
o I2C: Setting w83781d fan_div preserves fan_min

Jeff Garzik:
o [libata] make set_{pio,udma}mode hooks optional
o [wireless] Add new Prism54 wireless driver
o [wireless prism54] remove WIRELESS_EXT ifdefs
o Add Promise SX8 (carmel) block driver
o [libata] clean up module_init() hook of sata_{promise,sil,svw}
drivers
o [blk carmel] fix bug, minor cleanups
o [libata sata_sil] remove incorrect limit on drive quirk
o [libata] disable clustering by default, whitespace cleanups
o [libata] kill the warning everybody grumbles about

Jens Axboe:
o user data -> request mapping
o CDROMREADAUDIO dma support
o sys_swapon bad arg causing slab corruption

Jeremy Higdon:
o SCSI: remove some SGI devices from the device list
o [libata] Split up shared IO register locations into individual
components
o [libata] misc fixes, and an export
o [libata] Add new driver for Vitesse VSC-7174
o update for sata_vsc

Jesse Barnes:
o ia64: Don't assume iosapic interrupt controllers
o ia64: fix misc. sn2 warnings

Jonathan Corbet:
o cdev 1/2: Eliminate /sys/cdev
o cdev 2/2: hide cdev->kobj

Kai M?kisara:
o SCSI tape sysfs name fixes

Keith M. Wesolowski:
o [SPARC32]: Rework the CPU enumeration and probing code
o [SPARC32]: Also remove num_cpus_possible as was done on sparc64
o [SPARC32]: Fix build; we don't need KERNEL_SYSCALLS but
asm/unistd.h is necessary
o [SBUS]: Fix sound build if CONFIG_SBUS is set
o [SPARC32]: Add per-cpu data header

Kenji Kaneshige:
o ia64: don't unmask iosapic interrupts by default

Krishna Kumar:
o [IPV4]: Do not leak cork.opt in ip_push_pending_frames()

Kumar Gala:
o PPC32: Added big-endian cfg_addr access
o PPC32: Simplified handling of big/little endian pci indirect access

Kurt Garloff:
o SCSI sysfs host name support

Leann Ogasawara:
o Add sysfs simple class support for netlink
o Fix class_register() always returns 0
o add sysfs simple class support for DRI char device

Len Brown:
o asmlinkage acpi_enter_sleep_state_s4bios() - from Pavel Machek
o [ACPI] comments
o [ACPI] global lock macro fixes (Paul Menage, Luming Yu)
http://bugzilla.kernel.org/show_bug.cgi?id=1669
o Delete (void)func() casts considered cruft in Linux style
o [ACPI] fix printk and build warning from previous csets
o [ACPI] SMP poweroff (David Shaohua Li)
http://bugzilla.kernel.org/show_bug.cgi?id=1141
o [ACPI] ACPICA 20040311 from Bob Moore
o [ACPI] add boot parameters "acpi_osi=" and "acpi_serialize"
acpi_osi= will disable the _OSI method -- which by default tells
the BIOS to behave as if Windows is the OS.

Linus Torvalds:
o Revert attribute_used changes in module.h. They were wrong
o Linux 2.6.5-rc1

Manfred Spraul:
o forcedeth update

Marc Singer:
o [ARM PATCH] 1772/1: ARM README changes

Marcel Holtmann:
o [Bluetooth] Make use of the MODULE_VERSION macro
o [Bluetooth] Fix compile errors with enabled debugging
o [Bluetooth] Declare more functions static

Mark Haverkamp:
o aacraid driver patch
o add adapter support to aacraid driver (update)

Mark M. Hoffman:
o PCI: fix i2c quirk for SiS735 chipset SMBus driver
o I2C: sysfs interface update for w83627hf
o I2C: sensor chip driver refactoring

Matt Mackall:
o [NET] add netpoll API
o [NET] Add netpoll support for tg3
o [NET] use the netpoll API to transmit kernel printks over UDP
o netpoll: fix compilation with CONFIG_NETPOLL_RX
o netpoll: push zap_completion_queue for lkcd
o netpoll abort for bad interface
o [netdrvr] add netpoll support to several 8390-based drivers
o netconsole init return code
o netconsole init return code
o netpoll carrier handling
o fix for netpoll braindamage for 64-bit

Matthew Wilcox:
o ia64: add zx1_defconfig
o ia64: SAL cleanup
o ia64: Add support for extended PCI config space
o ia64: Convert to use the generic drivers/Kconfig mechanism
o sym2 2.1.18i
o PA-RISC update

Mike Christie:
o add missing free sgtable in scsi_init_io error path

Naveen Burmi:
o New SCSI host_byte status code

Pat Gefre:
o ia64: fix SN2 console driver to use console_initcall()
o ia64: minor cleanups for SN2 console driver
o ia64: Altix affinity fix

Paul Wagland:
o SCSI: megaraid /proc dir fix

Pavel Machek:
o [netdrvr via-rhine] add netpoll support

Prasanna S. Panchamukhi:
o [netdrvr smc-ultra] netpoll support
o [netdrvr tlan] netpoll support

Randy Dunlap:
o I2C: fix i2c-prosavage.c section usage
o buslogic init. section fix
o eepro init section usage
o smctr: fix init section usage
o use netdev_priv() in appletalk & fc
o use netdev_priv() in /hamradio/
o use netdev_priv() in 3com net drivers
o use netdev_priv() in net/ lance drivers
o use netdev_priv() in net/arm drivers
o use netdev_priv() in net/ intel drivers
o use netdev_priv() in net/pcmcia/ drivers
o use netdev_priv() in net/tulip drivers
o use netdev_priv() in net/tokenring/ drivers
o use netdev_priv() in net/wireless/ drivers
o use netdev_priv() in tap/tun/plip/loop/skel
o use netdev_priv() in fusion/mptlan
o use netdev_priv() in net/wan drivers
o use netdev_priv() in drivers/net/ (others)

Rene Herman:
o 8139too assertions

Russell King:
o I2C: Fix i2c_use_client()
o [PCMCIA] Add, fix, update PCMCIA debugging
o [PCMCIA] Clean up socket state handling around shutdown
o [PCMCIA] Rename driver services constants
o [PCMCIA] move_pcmcia_bind_device
o [PCMCIA] move_pcmcia_bind_mtd
o [PCMCIA] move pcmcia_report_error and cs_error
o [PCMCIA] socket user operations should take pcmcia_socket
o [ARM] Update ARM README
o [ARM] Update mach-types file
o [ARM] Provide userspace method for controlling LEDs in ARM machines
o [ARM] Move consistent_xxx exports to arch/arm/mm/consistent.c
o [ARM] Remove export of kd_mksound
o [ARM] Allow run-time selection of user debugging messages
o [ARM] Add asm/irq.h include - required for NR_IRQS

Rusty Russell:
o drivers_net_wireless_airo.c '< 0' comparison make sense

Scott Feldman:
o [netdrvr e100] fix stray skb pointer

Stephen Hemminger:
o 3c59x netpoll typo
o [TUN]: Name fix
o [TUN]: Do not obscure error return from misc_register in tun_init
o [TUN]: Fix user buffer verification
o [TCP]: Kill westwood bw_sample, set but never used
o [NET]: Make netdevice.h more non-kernel friendly

Stephen Rothwell:
o fix PPC64 iSeries virtual console devices

Tom Rini:
o PPC32: More cleanups of the IBM Spruce code
o PPC32: Fix a thinko in the gen550 code
o PPC32: Make {in,out}[bwl] be consistent on all platforms
o PPC32: Make sure the read in in_8, in_{le,be}{16,32} happens before
we return
o PPC32: print useful flags in oops, like x86 / ppc64
o PPC32: Kill off arch/ppc/boot/prep and rearrange some files
o PPC32: Update the TODC code from 2.4
o PPC32: Add and make use of ppc_md.rtc_{read,write}_val
o PPC32: Fix 'make znetboot' on CONFIG_PPC_MULTIPLATFORM
o PPC32: Fix an old thinko in arch/ppc/boot/simple/relocate.S
o PPC32: Update the Motorola PowerPlus family support
o PPC32: Fix include/asm-ppc/dma-mapping.h for the !CONFIG_PCI case
o PPC32: consistent_free only takes one arguement

Trond Myklebust:
o NFSv2/v3/v4: New attribute revalidation code that no longer relies
on ctime for correctness in avoiding update races.
o NFSv2/v3/v4: New file writeout strategy. Defer writes until a flush
is requested by the application (or memory pressure).
o Configuration: simplify configuration options. Automatically select
RPCSEC_GSS if NFSv4 is selected. Remove need for user to select
SUNRPC_GSS, and the crypto options.
o NFSv2/v3: Ensure that we only use GETATTR+STATFS (NFSv2) and FSINFO
(NFSv3) when mounting. This should allow us to use AUTH_SYS
credentials when mounting, (even when the user requests RPCSEC_GSS
authentication) due to the hack described in RFC2623.
o NFSv2/v3/v4: Ensure that fsync() flushes all writebacks to disk
rather than just the
o NFSv2/v3/v4: A patch by Greg Banks that fixes the "VFS: Busy inodes
after unmount." problem.
o RPC: Make XIDs unique on a per-transport basis rather than globally
unique. Gets rid
o RPC: Sync rpc_set_timeo() up to the 2.4.x version. In particular,
this will ensure that the timeout shift is clamped to a maximum
value of 8.
o RPC: Ensure that we have the correct capabilities when binding a
socket to a reserved port. Fixes a privilege bug when
CONFIG_SECURITY is set.
o RPC,NFSv2/v3/v4: Ensure that xprt_create_proto() and
rpc_create_client() return full error codes. Should allow the
"mount" program to print more useful error diagnostics.
o NFSv2/v3/v4: Parenthesize #defines in nfs?xdr.c. Fix an off-by-one
error on the value
o NFSv2/v3 locking: Patch by Patrice Dumas to implement
nlmsvc_proc_granted_res
o NFSv2/v3 locking: Patch by Patrice Dumas that adds a check to
ensure we really were requesting a blocking lock when we get a
reply from the server asking us to block.
o NFSv2/v3 locking: Patch by Patrice Dumas to ensure that the server
index blocks uniquely by using the client address in addition to
the value of the NLM cookie field.
o NFSv2/v3 locking: A patch to ensure that blocks which are not going
to time out are placed last on the ordered list nlm_block (problem
reported by Olaf Kirch).
o RPC,NFSv3: remove the redundant "memset()" in call_encode(). Fix up
the only places where this causes a padding error:
xdr_encode_fhandle() and unx_marshal()
o RPC: patch by Chuck Lever to make the number of RPC slots a tunable
parameter
o NFSv2: Fix up NFSv2 reads so that they report when the server
returned a short read due to EOF.
o NFSv4: Fix a list corruption in the NFSv4 state engine
o NFS: From the suse kenrel RPM: handle ENOMEM from nfs_fhget()
o From: <[email protected]>
o [email protected]: For complex reasons it is not possible to hold i_sem
in nfs_update_inode()

Tuncer M. Zayamut Ayaz:
o [IPVS]: Fix typo in Config.in

Wim Van Sebroeck:
o [WATCHDOG] v2.6.4 pcwd_pci-v1.00_20040313-patch
o WATCHDOG] v2.6.4 wdt977-v0.03-patch
o [WATCHDOG] v2.6.4 notifier_block-patches

Yoshinori Sato:
o H8/300: Interrupt handling cleanup
o H8/300: fix build error
o H8/300: fix waring
o H8/300: makefile cleanup




2004-03-16 16:27:58

by John Cherry

[permalink] [raw]
Subject: Re: Linux 2.6.5-rc1 (compile stats)

Linux 2.6 Compile Statistics (gcc 3.2.2)
Warnings/Errors Summary

Kernel bzImage bzImage bzImage modules bzImage modules
(defconfig) (allno) (allyes) (allyes) (allmod) (allmod)
----------- ----------- -------- -------- -------- -------- ---------
2.6.5-rc1 0w/0e 0w/0e 138w/ 0e 8w/0e 3w/0e 135w/0e
2.6.4 1w/0e 0w/0e 145w/ 0e 7w/0e 3w/0e 142w/0e
2.6.4-rc2 1w/0e 0w/0e 148w/ 0e 7w/0e 3w/0e 145w/0e
2.6.4-rc1 1w/0e 0w/0e 148w/ 0e 7w/0e 3w/0e 145w/0e
2.6.3 1w/0e 0w/0e 142w/ 0e 9w/0e 3w/0e 142w/0e
2.6.3-rc4 1w/0e 0w/0e 142w/ 0e 9w/0e 3w/0e 142w/0e
2.6.3-rc3 1w/0e 0w/0e 145w/ 7e 9w/0e 3w/0e 148w/0e
2.6.3-rc2 1w/0e 0w/0e 141w/ 0e 9w/0e 3w/0e 144w/0e
2.6.3-rc1 1w/0e 0w/0e 145w/ 0e 9w/0e 3w/0e 177w/0e
2.6.2 1w/0e 0w/0e 152w/ 0e 12w/0e 3w/0e 187w/0e
2.6.2-rc3 0w/0e 0w/0e 152w/ 0e 12w/0e 3w/0e 187w/0e
2.6.2-rc2 0w/0e 0w/0e 153w/ 8e 12w/0e 3w/0e 188w/0e
2.6.2-rc1 0w/0e 0w/0e 152w/ 0e 12w/0e 3w/0e 187w/0e
2.6.1 0w/0e 0w/0e 158w/ 0e 12w/0e 3w/0e 197w/0e
2.6.1-rc3 0w/0e 0w/0e 158w/ 0e 12w/0e 3w/0e 197w/0e
2.6.1-rc2 0w/0e 0w/0e 166w/ 0e 12w/0e 3w/0e 205w/0e
2.6.1-rc1 0w/0e 0w/0e 167w/ 0e 12w/0e 3w/0e 206w/0e
2.6.0 0w/0e 0w/0e 170w/ 0e 12w/0e 3w/0e 209w/0e

Web page with links to complete details:
http://developer.osdl.org/cherry/compile/
Daily compiles (ia32):
http://developer.osdl.org/cherry/compile/2.6/linus-tree/running.txt
Daily compiles (ia64):
http://developer.osdl.org/cherry/compile/2.6/linus-tree/running64.txt
Latest changes in Linus' bitkeeper tree:
http://linux.bkbits.net:8080/linux-2.5

John



2004-03-16 21:12:24

by Matthias Andree

[permalink] [raw]
Subject: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Mon, 15 Mar 2004, Linus Torvalds wrote:

> Here's the current set of patches I've merged from various poeple..
>
> Merging from Andrew, but also i2c updates, ALSA CVS merge, netconsole,
> prism54 driver merge, sata updates, carmel driver, pcmcia and nfs client
> updates..
>
> And a few architectures updated: ia64, ppc32, sparc32, arm.
>

> Summary of changes from v2.6.4 to v2.6.5-rc1
> ============================================

...

I have some SCSI troubles with 2.6.5-rc1 (from BK) that 2.6.4 didn't
have.

Modprobe, loading the st driver, tries a NULL pointer dereference in
kernel space and my 2nd tape drive isn't found: st1 is not shown. cat
/proc/scsi/scsi (typed after the attempted zero page dereference) hangs
in rwsem_down_read_failed with process state D.

I've re-built the kernel after doing a "make clean"
but to no avail (as expected).

...
sym0: <875> rev 0x26 at pci 0000:00:0d.0 irq 16
sym0: Tekram NVRAM, ID 7, Fast-20, SE, parity checking
sym0: SCSI BUS has been reset.
scsi0 : sym-2.1.18i
Vendor: FUJITSU Model: MAH3182MP Rev: 0114
Type: Direct-Access ANSI SCSI revision: 04
sym0:1:0: tagged command queuing enabled, command queue depth 32.
Vendor: PLEXTOR Model: CD-ROM PX-32TS Rev: 1.02
Type: CD-ROM ANSI SCSI revision: 02
Vendor: TANDBERG Model: TDC 4222 Rev: =07:
Type: Sequential-Access ANSI SCSI revision: 02
Vendor: TANDBERG Model: SLR6 Rev: 0404
Type: Sequential-Access ANSI SCSI revision: 02
DC390: 0 adapters found
libata version 1.01 loaded.
sym0:1: FAST-20 WIDE SCSI 40.0 MB/s ST (50.0 ns, offset 16)
SCSI device sda: 35701260 512-byte hdwr sectors (18279 MB)
SCSI device sda: drive cache: write through
sda: sda1 sda2 sda3 < sda5 >
Attached scsi disk sda at scsi0, channel 0, id 1, lun 0
...
Attached scsi generic sg0 at scsi0, channel 0, id 1, lun 0, type 0
Attached scsi generic sg1 at scsi0, channel 0, id 2, lun 0, type 5
Attached scsi generic sg2 at scsi0, channel 0, id 6, lun 0, type 1
Attached scsi generic sg3 at scsi0, channel 0, id 8, lun 0, type 1
sym0:2: FAST-20 SCSI 20.0 MB/s ST (50.0 ns, offset 15)
sr0: scsi-1 drive
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 2, lun 0
st: Version 20040226, fixed bufsize 32768, s/g segs 256
Unable to handle kernel NULL pointer dereference at virtual address 0000002e
printing eip:
d1ba00fc
*pde = 00000000
Oops: 0002 [#1]
CPU: 0
EIP: 0060:[<d1ba00fc>] Not tainted
EFLAGS: 00010282 (2.6.5-rc1)
EIP is at st_probe+0x7dc/0x99f [st]
eax: cd20024c ebx: ffffffea ecx: 00000000 edx: 0000000a
esi: 00000004 edi: 00000000 ebp: cd10bdbc esp: cd10bd34
ds: 007b es: 007b ss: 0068
Process modprobe (pid: 1303, threadinfo=cd10a000 task=cd148d80)
Stack: cd5f9cc0 00900000 cfa3597c d1ba0628 cd70c6c4 00000000 cd10bd68 cd10bd68
00000000 cd20024c 00000000 cd20024c cc623c80 cd10bd84 00000000 cd200200
cd9d2980 00000008 cd88b000 00000000 d1ba2bf0 00000000 00000000 cd20024c
Call Trace:
[<c027eaeb>] bus_match+0x3b/0x70
[<c027ed00>] driver_attach+0x50/0x90
[<c027eddb>] bus_add_driver+0x9b/0xc0
[<c027f3c1>] driver_register+0x31/0x40
[<d19e50b6>] init_st+0xb6/0x155 [st]
[<c0131200>] sys_init_module+0x130/0x1670
[<c01bd5c1>] journal_stop+0x171/0x210
[<c01af4b7>] ext3_mark_inode_dirty+0x47/0x60
[<c0157110>] cdev_alloc+0x0/0x60
[<c0144c55>] do_mmap_pgoff+0x365/0x6c0
[<c014cda7>] filp_close+0x57/0x90
[<c014ce2f>] sys_close+0x4f/0x60
[<c01070ff>] syscall_call+0x7/0xb

Code: 89 43 44 89 1c 24 c7 44 24 04 5c 2a ba d1 e8 f1 fb 6d ee c7
<6>sym0:6: FAST-5 SCSI 4.8 MB/s ST (208.0 ns, offset 8)
st0: Block limits 1 - 16777215 bytes.
...

2004-03-16 21:17:05

by Matthew Wilcox

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Tue, Mar 16, 2004 at 10:12:03PM +0100, Matthias Andree wrote:
> I have some SCSI troubles with 2.6.5-rc1 (from BK) that 2.6.4 didn't
> have.
>
> Modprobe, loading the st driver, tries a NULL pointer dereference in
> kernel space and my 2nd tape drive isn't found: st1 is not shown. cat
> /proc/scsi/scsi (typed after the attempted zero page dereference) hangs
> in rwsem_down_read_failed with process state D.

I notice you're using the sym2 driver. Could you try backing out the
changes made to it in 2.6.5-rc1, just to be sure we're looking at an st
problem, not a sym2 problem?

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain

2004-03-16 21:57:26

by Matthias Andree

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Tue, 16 Mar 2004, Matthew Wilcox wrote:

> On Tue, Mar 16, 2004 at 10:12:03PM +0100, Matthias Andree wrote:
> > I have some SCSI troubles with 2.6.5-rc1 (from BK) that 2.6.4 didn't
> > have.
> >
> > Modprobe, loading the st driver, tries a NULL pointer dereference in
> > kernel space and my 2nd tape drive isn't found: st1 is not shown. cat
> > /proc/scsi/scsi (typed after the attempted zero page dereference) hangs
> > in rwsem_down_read_failed with process state D.
>
> I notice you're using the sym2 driver. Could you try backing out the
> changes made to it in 2.6.5-rc1, just to be sure we're looking at an st
> problem, not a sym2 problem?

I've backed out the 2004-03-12 ChangeSet,
[email protected]|ChangeSet|20040312212827|57687

and rebooted, result (does that make sense? Was that a complete
back-out?):

...
sym0: <875> rev 0x26 at pci 0000:00:0d.0 irq 16
sym0: Tekram NVRAM, ID 7, Fast-20, SE, parity checking
sym0: SCSI BUS has been reset.
scsi0 : sym-2.1.18f
Vendor: FUJITSU Model: MAH3182MP Rev: 0114
Type: Direct-Access ANSI SCSI revision: 04
sym0:1:0: tagged command queuing enabled, command queue depth 32.
Vendor: PLEXTOR Model: CD-ROM PX-32TS Rev: 1.02
Type: CD-ROM ANSI SCSI revision: 02
Vendor: TANDBERG Model: TDC 4222 Rev: =07:
Type: Sequential-Access ANSI SCSI revision: 02
Vendor: TANDBERG Model: SLR6 Rev: 0404
Type: Sequential-Access ANSI SCSI revision: 02
DC390: 0 adapters found
libata version 1.01 loaded.
sym0:1: FAST-20 WIDE SCSI 40.0 MB/s ST (50.0 ns, offset 16)
SCSI device sda: 35701260 512-byte hdwr sectors (18279 MB)
SCSI device sda: drive cache: write through
sda: sda1 sda2 sda3 < sda5 >
Attached scsi disk sda at scsi0, channel 0, id 1, lun 0
...
Attached scsi generic sg0 at scsi0, channel 0, id 1, lun 0, type 0
Attached scsi generic sg1 at scsi0, channel 0, id 2, lun 0, type 5
Attached scsi generic sg2 at scsi0, channel 0, id 6, lun 0, type 1
Attached scsi generic sg3 at scsi0, channel 0, id 8, lun 0, type 1
sym0:2: FAST-20 SCSI 20.0 MB/s ST (50.0 ns, offset 15)
sr0: scsi-1 drive
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 2, lun 0
st: Version 20040226, fixed bufsize 32768, s/g segs 256
Unable to handle kernel NULL pointer dereference at virtual address 0000002e
printing eip:
d1ba00fc
*pde = 00000000
Oops: 0002 [#1]
CPU: 0
EIP: 0060:[<d1ba00fc>] Not tainted
EFLAGS: 00010282 (2.6.5-rc1)
EIP is at st_probe+0x7dc/0x99f [st]
eax: cd4d824c ebx: ffffffea ecx: 00000000 edx: 0000000a
esi: 00000004 edi: 00000000 ebp: c135fdbc esp: c135fd34
ds: 007b es: 007b ss: 0068
Process modprobe (pid: 1304, threadinfo=c135e000 task=c1384620)
Stack: ccab5cc0 00900000 cfa3597c d1ba0628 ccbaf6c4 00000000 c135fd68 c135fd68
00000000 cd4d824c 00000000 cd4d824c cc6d0c80 c135fd84 00000000 cd4d8200
cd979980 00000008 cdb39000 00000000 d1ba2bf0 00000000 00000000 cd4d824c
Call Trace:
[<c027eaeb>] bus_match+0x3b/0x70
[<c027ed00>] driver_attach+0x50/0x90
[<c027eddb>] bus_add_driver+0x9b/0xc0
[<c027f3c1>] driver_register+0x31/0x40
[<d19e50b6>] init_st+0xb6/0x155 [st]
[<c0131200>] sys_init_module+0x130/0x1670
[<c01bd5c1>] journal_stop+0x171/0x210
[<c01af4b7>] ext3_mark_inode_dirty+0x47/0x60
[<c0157110>] cdev_alloc+0x0/0x60
[<c0144c55>] do_mmap_pgoff+0x365/0x6c0
[<c014cda7>] filp_close+0x57/0x90
[<c014ce2f>] sys_close+0x4f/0x60
[<c01070ff>] syscall_call+0x7/0xb

Code: 89 43 44 89 1c 24 c7 44 24 04 5c 2a ba d1 e8 f1 fb 6d ee c7
<6>sym0:6: FAST-5 SCSI 4.8 MB/s ST (208.0 ns, offset 8)
st0: Block limits 1 - 16777215 bytes.

--
Matthias Andree

Encrypt your mail: my GnuPG key ID is 0x052E7D95

2004-03-16 22:29:56

by Matthew Wilcox

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Tue, Mar 16, 2004 at 10:56:59PM +0100, Matthias Andree wrote:
> I've backed out the 2004-03-12 ChangeSet,
> [email protected]|ChangeSet|20040312212827|57687
>
> and rebooted, result (does that make sense? Was that a complete
> back-out?):
[...]
> Attached scsi CD-ROM sr0 at scsi0, channel 0, id 2, lun 0
> st: Version 20040226, fixed bufsize 32768, s/g segs 256
> Unable to handle kernel NULL pointer dereference at virtual address 0000002e
> printing eip:
> d1ba00fc
> *pde = 00000000
> Oops: 0002 [#1]

OK, that confirms it's not the sym2 changes that were the problem.
Thanks for testing!

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain

2004-03-17 20:35:23

by Kai Mäkisara (Kolumbus)

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Tue, 16 Mar 2004, Matthias Andree wrote:

> On Tue, 16 Mar 2004, Matthew Wilcox wrote:
>
> > On Tue, Mar 16, 2004 at 10:12:03PM +0100, Matthias Andree wrote:
> > > I have some SCSI troubles with 2.6.5-rc1 (from BK) that 2.6.4 didn't
> > > have.
> > >
> > > Modprobe, loading the st driver, tries a NULL pointer dereference in
> > > kernel space and my 2nd tape drive isn't found: st1 is not shown. cat
> > > /proc/scsi/scsi (typed after the attempted zero page dereference) hangs
> > > in rwsem_down_read_failed with process state D.
> >
> > I notice you're using the sym2 driver. Could you try backing out the
> > changes made to it in 2.6.5-rc1, just to be sure we're looking at an st
> > problem, not a sym2 problem?
>
I was able to reproduce this with the scsi_debug driver (you can use it
for simple tape tests by changing TYPE_DISK to TYPE_TAPE). Reverting the
patch:

# ChangeSet
# 2004/03/12 16:22:36-08:00 [email protected]
# remove cdev_set_name completely as it is not needed.

(and editing drivers/char/tty_io.c to get the kernel to compile) solved
the problem for me. st.c is using the name put into kobj.name in making
the class file names. I will make a patch that removes this dependency.

While looking at this problem, I noticed that the naming changes already
committed to BK had disappeared. Looking at st.c history revealed that the
following change had been committed (sorry for wrapping) by [email protected]
46 hours ago:

--- 1.80+1.79.1.2/drivers/scsi/st.c Wed Mar 17 12:25:28 2004
+++ 1.81/drivers/scsi/st.c Wed Mar 17 12:25:28 2004
@@ -3896,11 +3896,6 @@
dev_num);
goto out_free_tape;
}
- /* Make sure that the minor numbers corresponding
to the four
- first modes always get the same names */
- i = mode << (4 - ST_NBR_MODE_BITS);
- snprintf(cdev->kobj.name, KOBJ_NAME_LEN, "%s%s%s",
j ? "n" : "",
- disk->disk_name, st_formats[i]);
cdev->owner = THIS_MODULE;
cdev->ops = &st_fops;

The change comment was "merge" and it resulted in st.c version 1.81. (I am
not using Bitkeeper but trying to extract information from bkbits.net.)

Kai

2004-03-17 21:18:59

by Kai Mäkisara (Kolumbus)

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Wed, 17 Mar 2004, Kai Makisara wrote:

> On Tue, 16 Mar 2004, Matthias Andree wrote:
>
> > On Tue, 16 Mar 2004, Matthew Wilcox wrote:
> >
> > > On Tue, Mar 16, 2004 at 10:12:03PM +0100, Matthias Andree wrote:
> > > > I have some SCSI troubles with 2.6.5-rc1 (from BK) that 2.6.4 didn't
> > > > have.
> > > >
> > > > Modprobe, loading the st driver, tries a NULL pointer dereference in
> > > > kernel space and my 2nd tape drive isn't found: st1 is not shown. cat
> > > > /proc/scsi/scsi (typed after the attempted zero page dereference) hangs
> > > > in rwsem_down_read_failed with process state D.
> > >
> > > I notice you're using the sym2 driver. Could you try backing out the
> > > changes made to it in 2.6.5-rc1, just to be sure we're looking at an st
> > > problem, not a sym2 problem?
> >
...
> st.c is using the name put into kobj.name in making
> the class file names. I will make a patch that removes this dependency.
>
The patch at the end of this message removes the dependency on the kobj
name being set. It also tries to once more restore the naming that is
defined in devices.txt. The patch is against 2.6.5-rc1-bk2 and it seems to
work correctly in my tests.

--
Kai
------------------------------8<-------------------------------------------
--- linux-2.6.5-rc1-bk2/drivers/scsi/st.c 2004-03-17 22:37:11.000000000 +0200
+++ linux-2.6.5-rc1-bk2-k1/drivers/scsi/st.c 2004-03-17 23:03:57.000000000 +0200
@@ -17,7 +17,7 @@
Last modified: 18-JAN-1998 Richard Gooch <[email protected]> Devfs support
*/

-static char *verstr = "20040226";
+static char *verstr = "20040317";

#include <linux/module.h>

@@ -4193,19 +4193,24 @@

static void do_create_class_files(Scsi_Tape *STp, int dev_num, int mode)
{
- int rew, error;
+ int i, rew, error;
+ char name[10];
struct class_device *st_class_member;

if (!st_sysfs_class)
return;

for (rew=0; rew < 2; rew++) {
+ /* Make sure that the minor numbers corresponding to the four
+ first modes always get the same names */
+ i = mode << (4 - ST_NBR_MODE_BITS);
+ snprintf(name, 10, "%s%s%s", rew ? "n" : "",
+ STp->disk->disk_name, st_formats[i]);
st_class_member =
class_simple_device_add(st_sysfs_class,
MKDEV(SCSI_TAPE_MAJOR,
TAPE_MINOR(dev_num, mode, rew)),
- &STp->device->sdev_gendev, "%s",
- STp->modes[mode].cdevs[rew]->kobj.name);
+ &STp->device->sdev_gendev, "%s", name);
if (!st_class_member) {
printk(KERN_WARNING "st%d: class_simple_device_add failed\n",
dev_num);

2004-03-17 21:32:22

by Matthias Andree

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Wed, 17 Mar 2004, Kai Makisara wrote:

> # ChangeSet
> # 2004/03/12 16:22:36-08:00 [email protected]
> # remove cdev_set_name completely as it is not needed.
>
> (and editing drivers/char/tty_io.c to get the kernel to compile) solved
> the problem for me. st.c is using the name put into kobj.name in making
> the class file names. I will make a patch that removes this dependency.

I had backed out that ChangeSet here as I was suspecting it (about the
only one "new enough" to cause these problems) but bumped into tty_io.c
compile failures and didn't have time to investigate.

> While looking at this problem, I noticed that the naming changes already
> committed to BK had disappeared. Looking at st.c history revealed that the
> following change had been committed (sorry for wrapping) by [email protected]
> 46 hours ago:

This is how the change tree looks like in BitKeeper's histtool,
the top line is the date in MM-DD format:

02-22 02-24 03-03 03-13 03-13 03-15
kai -> axb? -> kai -------------------------------> greg
1.78 1.79\ 1.80 1.81
\ /
`----------corbet-------greg------'
1.79.1.1 1.79.1.2

...

Logs:

======== st.c 1.1..1.81 ========
D 1.81 04/03/15 15:02:26-08:00 [email protected] 104 101 0/5/4363
P drivers/scsi/st.c
C merge
------------------------------------------------
D 1.79.1.2 04/03/12 08:22:11-08:00 [email protected][greg] 103 102 0/1/4350
P drivers/scsi/st.c
C remove cdev_set_name completely as it is not needed.
------------------------------------------------
D 1.79.1.1 04/03/13 00:47:18-08:00 [email protected][greg] 102 100 2/3/4349
P drivers/scsi/st.c
C cdev 2/2: hide cdev->kobj
------------------------------------------------
D 1.80 04/02/26 05:24:19-06:00 [email protected][jejb] 101 100 28/12/4340
P drivers/scsi/st.c
C SCSI tape sysfs name fixes
------------------------------------------------
D 1.79 04/02/23 06:23:46-08:00 [email protected][torvalds] 100 99 1/1/4351
P drivers/scsi/st.c
C fix SCSI non-sector bio backed IO

> The change comment was "merge" and it resulted in st.c version 1.81. (I am
> not using Bitkeeper but trying to extract information from bkbits.net.)

BitKeeper doesn't have more info and this doesn't look like an auto-generated
comment of BitKeeper's, but seems to have been entered manually. Blame Greg?

--
Matthias Andree

Encrypt your mail: my GnuPG key ID is 0x052E7D95

2004-03-17 21:43:49

by Matthias Andree

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Wed, 17 Mar 2004, Kai Makisara wrote:

> The patch at the end of this message removes the dependency on the kobj
> name being set. It also tries to once more restore the naming that is
> defined in devices.txt. The patch is against 2.6.5-rc1-bk2 and it seems to
> work correctly in my tests.

Your patch fixes my problem. Thank you.

st0* and st1* devices are registered, the devices are properly attached,
mtst -f /dev/nst1 status works (same for nst0).

--
Matthias Andree

Encrypt your mail: my GnuPG key ID is 0x052E7D95

2004-03-17 21:47:12

by Mike Anderson

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

Kai Makisara [[email protected]] wrote:
> if (!st_class_member) {
> printk(KERN_WARNING "st%d: class_simple_device_add failed\n",
> dev_num);

Could you change the if check to use IS_ERR(st_class_member) so in the
future if do_create_class_files return -E* we will not get a oops.

-andmike
--
Michael Anderson
[email protected]

2004-03-17 22:25:20

by Kai Mäkisara (Kolumbus)

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Wed, 17 Mar 2004, Mike Anderson wrote:

> Kai Makisara [[email protected]] wrote:
> > if (!st_class_member) {
> > printk(KERN_WARNING "st%d: class_simple_device_add failed\n",
> > dev_num);
>
> Could you change the if check to use IS_ERR(st_class_member) so in the
> future if do_create_class_files return -E* we will not get a oops.
>
A revised patch is at the end of this message. Thanks for pointing out
this bug.

--
Kai
--------------------------------8<----------------------------------------------
--- linux-2.6.5-rc1-bk2/drivers/scsi/st.c 2004-03-17 22:37:11.000000000 +0200
+++ linux-2.6.5-rc1-bk2-k1/drivers/scsi/st.c 2004-03-18 00:09:07.000000000 +0200
@@ -17,7 +17,7 @@
Last modified: 18-JAN-1998 Richard Gooch <[email protected]> Devfs support
*/

-static char *verstr = "20040226";
+static char *verstr = "20040318";

#include <linux/module.h>

@@ -4193,20 +4193,25 @@

static void do_create_class_files(Scsi_Tape *STp, int dev_num, int mode)
{
- int rew, error;
+ int i, rew, error;
+ char name[10];
struct class_device *st_class_member;

if (!st_sysfs_class)
return;

for (rew=0; rew < 2; rew++) {
+ /* Make sure that the minor numbers corresponding to the four
+ first modes always get the same names */
+ i = mode << (4 - ST_NBR_MODE_BITS);
+ snprintf(name, 10, "%s%s%s", rew ? "n" : "",
+ STp->disk->disk_name, st_formats[i]);
st_class_member =
class_simple_device_add(st_sysfs_class,
MKDEV(SCSI_TAPE_MAJOR,
TAPE_MINOR(dev_num, mode, rew)),
- &STp->device->sdev_gendev, "%s",
- STp->modes[mode].cdevs[rew]->kobj.name);
- if (!st_class_member) {
+ &STp->device->sdev_gendev, "%s", name);
+ if (IS_ERR(st_class_member)) {
printk(KERN_WARNING "st%d: class_simple_device_add failed\n",
dev_num);
goto out;

2004-03-17 22:55:50

by Greg KH

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Thu, Mar 18, 2004 at 12:25:08AM +0200, Kai Makisara wrote:
> On Wed, 17 Mar 2004, Mike Anderson wrote:
>
> > Kai Makisara [[email protected]] wrote:
> > > if (!st_class_member) {
> > > printk(KERN_WARNING "st%d: class_simple_device_add failed\n",
> > > dev_num);
> >
> > Could you change the if check to use IS_ERR(st_class_member) so in the
> > future if do_create_class_files return -E* we will not get a oops.
> >
> A revised patch is at the end of this message. Thanks for pointing out
> this bug.

Yeah, this is a much better fix. Sorry to cause all of this trouble, I
should have checked to see if anyone used the kobject's name of the cdev
structure anywhere before taking that assignement out.

Andrew, this is a better fix than the one that you and Jon came up with
earlier today.

thanks,

greg k-h

> --------------------------------8<----------------------------------------------
> --- linux-2.6.5-rc1-bk2/drivers/scsi/st.c 2004-03-17 22:37:11.000000000 +0200
> +++ linux-2.6.5-rc1-bk2-k1/drivers/scsi/st.c 2004-03-18 00:09:07.000000000 +0200
> @@ -17,7 +17,7 @@
> Last modified: 18-JAN-1998 Richard Gooch <[email protected]> Devfs support
> */
>
> -static char *verstr = "20040226";
> +static char *verstr = "20040318";
>
> #include <linux/module.h>
>
> @@ -4193,20 +4193,25 @@
>
> static void do_create_class_files(Scsi_Tape *STp, int dev_num, int mode)
> {
> - int rew, error;
> + int i, rew, error;
> + char name[10];
> struct class_device *st_class_member;
>
> if (!st_sysfs_class)
> return;
>
> for (rew=0; rew < 2; rew++) {
> + /* Make sure that the minor numbers corresponding to the four
> + first modes always get the same names */
> + i = mode << (4 - ST_NBR_MODE_BITS);
> + snprintf(name, 10, "%s%s%s", rew ? "n" : "",
> + STp->disk->disk_name, st_formats[i]);
> st_class_member =
> class_simple_device_add(st_sysfs_class,
> MKDEV(SCSI_TAPE_MAJOR,
> TAPE_MINOR(dev_num, mode, rew)),
> - &STp->device->sdev_gendev, "%s",
> - STp->modes[mode].cdevs[rew]->kobj.name);
> - if (!st_class_member) {
> + &STp->device->sdev_gendev, "%s", name);
> + if (IS_ERR(st_class_member)) {
> printk(KERN_WARNING "st%d: class_simple_device_add failed\n",
> dev_num);
> goto out;

2004-03-17 23:07:31

by Mike Anderson

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

Kai Makisara [[email protected]] wrote:
> On Wed, 17 Mar 2004, Mike Anderson wrote:
> A revised patch is at the end of this message. Thanks for pointing out
> this bug.

Thanks for the update. I checked it out on my system with a aic and a
TDC 3800 tape drive. It works fine.

-andmike
--
Michael Anderson
[email protected]

2004-03-18 01:45:32

by Andy Isaacson

[permalink] [raw]
Subject: Re: 2.6.5-rc1 SCSI + st regressions (was: Linux 2.6.5-rc1)

On Wed, Mar 17, 2004 at 10:32:01PM +0100, Matthias Andree wrote:
> On Wed, 17 Mar 2004, Kai Makisara wrote:
> > # ChangeSet
> > # 2004/03/12 16:22:36-08:00 [email protected]
> > # remove cdev_set_name completely as it is not needed.
> >
> > (and editing drivers/char/tty_io.c to get the kernel to compile) solved
> > the problem for me. st.c is using the name put into kobj.name in making
> > the class file names. I will make a patch that removes this dependency.
>
> I had backed out that ChangeSet here as I was suspecting it (about the
> only one "new enough" to cause these problems) but bumped into tty_io.c
> compile failures and didn't have time to investigate.
>
> > While looking at this problem, I noticed that the naming changes already
> > committed to BK had disappeared. Looking at st.c history revealed that the
> > following change had been committed (sorry for wrapping) by [email protected]
> > 46 hours ago:
>
> This is how the change tree looks like in BitKeeper's histtool,
> the top line is the date in MM-DD format:
>
> 02-22 02-24 03-03 03-13 03-13 03-15
> kai -> axb? -> kai -------------------------------> greg
> 1.78 1.79\ 1.80 1.81
> \ /
> `----------corbet-------greg------'
> 1.79.1.1 1.79.1.2
>
> ...
>
> Logs:
>
> ======== st.c 1.1..1.81 ========
> D 1.81 04/03/15 15:02:26-08:00 [email protected] 104 101 0/5/4363
> P drivers/scsi/st.c
> C merge
> ------------------------------------------------
> D 1.79.1.2 04/03/12 08:22:11-08:00 [email protected][greg] 103 102 0/1/4350
> P drivers/scsi/st.c
> C remove cdev_set_name completely as it is not needed.
> ------------------------------------------------
> D 1.79.1.1 04/03/13 00:47:18-08:00 [email protected][greg] 102 100 2/3/4349
> P drivers/scsi/st.c
> C cdev 2/2: hide cdev->kobj
> ------------------------------------------------
> D 1.80 04/02/26 05:24:19-06:00 [email protected][jejb] 101 100 28/12/4340
> P drivers/scsi/st.c
> C SCSI tape sysfs name fixes
> ------------------------------------------------
> D 1.79 04/02/23 06:23:46-08:00 [email protected][torvalds] 100 99 1/1/4351
> P drivers/scsi/st.c
> C fix SCSI non-sector bio backed IO
>
> > The change comment was "merge" and it resulted in st.c version 1.81. (I am
> > not using Bitkeeper but trying to extract information from bkbits.net.)
>
> BitKeeper doesn't have more info and this doesn't look like an auto-generated
> comment of BitKeeper's, but seems to have been entered manually. Blame Greg?

That's a pretty nasty merge, so it's not real suprising that Greg didn't
get it completely right.

Nice ASCII art, BTW. If you can reduce it to an algorithm I bet Larry
would like to hire you to add it to BK. :)

-andy

2004-03-21 22:50:31

by Peter Osterlund

[permalink] [raw]
Subject: Re: Linux 2.6.5-rc1

Linus Torvalds <[email protected]> writes:

> o UDF filesystem update

For some reason I don't understand, this makes the UDF filesystem lock
up when I write a bunch of mp3 files to a CDRW using the packet
writing patch. Both "cp" and pdflush get stuck in __down. Reverting
the semaphore changes as in the patch below makes the problem go away,
but it's probably not the right solution to re-introduce lock_kernel()
calls.

diff -puN fs/udf/file.c~udf fs/udf/file.c
--- linux/fs/udf/file.c~udf 2004-03-21 23:25:26.000000000 +0100
+++ linux-petero/fs/udf/file.c 2004-03-21 23:26:46.000000000 +0100
@@ -247,9 +247,9 @@ static int udf_release_file(struct inode
{
if (filp->f_mode & FMODE_WRITE)
{
- down(&inode->i_sem);
+ lock_kernel();
udf_discard_prealloc(inode);
- up(&inode->i_sem);
+ unlock_kernel();
}
return 0;
}
diff -puN fs/udf/inode.c~udf fs/udf/inode.c
--- linux/fs/udf/inode.c~udf 2004-03-21 23:25:53.000000000 +0100
+++ linux-petero/fs/udf/inode.c 2004-03-21 23:26:21.000000000 +0100
@@ -84,9 +84,9 @@ void udf_put_inode(struct inode * inode)
{
if (!(inode->i_sb->s_flags & MS_RDONLY))
{
- down(&inode->i_sem);
+ lock_kernel();
udf_discard_prealloc(inode);
- up(&inode->i_sem);
+ unlock_kernel();
}
}


pdflush D CA33461B 5504 6 3 8 5 (L-TLB)
c5f2bd68 00000046 c3ee2740 ca33461b 0000009f c5f2be8c c5f2bd40 c5478c3c
c10822a8 c5478cf8 ca33461b 0000009f c3ee2740 00097523 ca33461b 0000009f
c5f2d8e0 c5f2dad0 c5478cbc c5f2a000 00000286 c5f2bdc4 c0106303 00000000
Call Trace:
[<c0106303>] __down+0x143/0x360
[<ca8d6710>] udf_writepage+0x0/0x30 [udf]
[<c011a360>] default_wake_function+0x0/0x20
[<c0106a27>] __down_failed+0xb/0x14
[<ca8db8b5>] .text.lock.inode+0x5/0x20 [udf]
[<c019cce6>] iput+0x76/0x90
[<c01a677f>] sync_sb_inodes+0x26f/0x420
[<ca8e0a98>] udf_write_super+0x178/0x1d0 [udf]
[<c01a6acb>] writeback_inodes+0x19b/0x4b0
[<c014e1eb>] wb_kupdate+0x10b/0x190
[<c014e0e0>] wb_kupdate+0x0/0x190
[<c014ebdc>] __pdflush+0x24c/0x660
[<c0119ddb>] schedule+0x3cb/0x900
[<c014f001>] pdflush+0x11/0x20
[<c014e0e0>] wb_kupdate+0x0/0x190
[<c013ceda>] kthread+0xaa/0xb0
[<c014eff0>] pdflush+0x0/0x20
[<c013ce30>] kthread+0x0/0xb0
[<c0105455>] kernel_thread_helper+0x5/0x10

cp D C10573C8 3988 1701 1083 (NOTLB)
c1783b54 00000082 4419442a c10573c8 07d4103c 12171503 0d390f23 c5478c3c
07d4103c 12171503 440f442a c1783b40 07d4103c 0001d27c e17f96d9 0000009a
c1856ca0 c1856e90 c5478cbc c1782000 00000286 c1783bb0 c0106303 c1783b90
Call Trace:
[<c0106303>] __down+0x143/0x360
[<ca8d9883>] udf_write_inode+0xa3/0x1c0 [udf]
[<ca8d6710>] udf_writepage+0x0/0x30 [udf]
[<c011a360>] default_wake_function+0x0/0x20
[<c0106a27>] __down_failed+0xb/0x14
[<ca8db8b5>] .text.lock.inode+0x5/0x20 [udf]
[<c019cce6>] iput+0x76/0x90
[<c01a677f>] sync_sb_inodes+0x26f/0x420
[<c0200000>] nfs_release+0xc0/0x200
[<c01a6acb>] writeback_inodes+0x19b/0x4b0
[<c014cfc9>] get_page_state+0x19/0x20
[<c014dcc4>] get_dirty_limits+0x14/0xd0
[<c014de56>] balance_dirty_pages+0xd6/0x190
[<c01498c4>] generic_file_aio_write_nolock+0x564/0xbf0
[<c0147fbf>] do_generic_mapping_read+0x1bf/0x3e0
[<c0148542>] generic_file_aio_read+0x52/0x70
[<c0149fc8>] generic_file_write_nolock+0x78/0x90
[<c01fd737>] nfs_file_read+0xb7/0x110
[<c0173657>] do_sync_read+0x87/0xc0
[<c014a0d5>] generic_file_write+0x55/0x70
[<ca8d5b44>] udf_file_write+0x44/0x180 [udf]
[<c017391f>] vfs_write+0xaf/0x120
[<c0173a2f>] sys_write+0x3f/0x60
[<c010835b>] syscall_call+0x7/0xb

--
Peter Osterlund - [email protected]
http://w1.894.telia.com/~u89404340

2004-03-21 23:22:14

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 2.6.5-rc1



On Sun, 21 Mar 2004, Peter Osterlund wrote:
>
> For some reason I don't understand, this makes the UDF filesystem lock
> up when I write a bunch of mp3 files to a CDRW using the packet
> writing patch. Both "cp" and pdflush get stuck in __down. Reverting
> the semaphore changes as in the patch below makes the problem go away,
> but it's probably not the right solution to re-introduce lock_kernel()
> calls.

Looks correct. It looks like memory pressure while doign write() on the
semaphore will try to writeback dirty inodes and data, and the kernel lock
allowed that fine, but using the inode semaphore will just deadlock, since
the write() already holds the semaphore.

I think the prealloc stuff could probably be protected by the inode
spinlock instead, but for now your backout patch seems to be the same
thing to do.

Linus