Summary of changes from v2.6.9-rc1 to v2.6.9-rc2 ============================================ ALSA CVS update - Clemens Ladisch ALSA sequencer,ALSA<-OSS sequencer export snd_seq_set_queue_tempo() for OSS to prevent calling snd_seq_kernel_client_ctl() (using copy_from_user()) in interrupt context ALSA CVS update - Takashi Iwai ATIIXP driver - continue to probe other codecs even if a codec returns error (instead of breaking the probing). this will fix some cases with both AC97 and MC97 codecs. ALSA CVS update - Takashi Iwai Documentation,ICE1712 driver,ICE1724 driver - fixed the description of model module parameters for ice1712 and ice1724 drivers. - added the support of VT1720-based mobo. (still experimental and supporting AC97 only) ALSA CVS update - Takashi Iwai Memalloc module - added ifdef CONFIG_PCI around the enable module option to avoid the compile warnings without PCI support. ALSA CVS update - Takashi Iwai AC97 Codec Core - added the global mutex for ac97_t (ad18xx mutex is removed). used to protect paging and AD18xx multi-codecs. - set PAGE_INT register explicitly before accessing (for STAC9758). - moved ALC650 revision check to patch_alc650(). - support stereo Mic playback. - moved STAC9708 quirk to patch_stac9708(). - don't clear PC_BEEP high bits (ac97 2.3 sets frequency there). - avoid the unnecessary RESET-waiting for audio/modem codec. - fixed the evaluation of modem codec to call mpatch callback properly. - determine the SPDIF rate in the build path. - added suffix argument to snd_ac97_rename|remove|swap_ctl(). - added snd_ac97_rename_vol_ctl(). ALSA CVS update - Takashi Iwai Digigram VX core fixed sleep while atomic in the trigger callback. ALSA CVS update - Takashi Iwai PARISC Harmony driver - fixed the buffer handling without dma_alloc_coherent support. ALSA CVS update - Takashi Iwai Digigram VX core fixed the compile warnings due to the last change. ALSA CVS update - Takashi Iwai Digigram VX core added 'Clock Mode' control to choose the clock source. ALSA CVS update - Takashi Iwai ICE1724 driver avoid to change the AC97 rate registers. this seems conflicting with the rate conversion on VT172x. ALSA CVS update - Clemens Ladisch Wavefront drivers fix possible buffer overflow in wavefront_download_firmware() ALSA CVS update - Takashi Iwai VIA82xx driver added the DXS entry for Mitac/Vobis/Yakumo laptop. ALSA CVS update - Takashi Iwai AC97 Codec Core added ac97_can_spdif() for checking the SPDIF support. ALSA CVS update - Takashi Iwai VIA82xx driver - use snd_pcm_limit_hw_rates() and removed redundant codes. - fixed the rate constraints when 'IEC958 Output Switch' is on. - check the SPDIF support on AC97 and don't build IEC958 stuffs if not available. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Signed-off-by: Kevin Mack For Gateway M675 notebook - this will direct mixer output to speaker, headphone and line-out instead of just the front(DAC-A) signal. ALSA CVS update - Takashi Iwai PARISC Harmony driver fixed typos. ALSA CVS update - Takashi Iwai AC97 Codec Core Avoid warning message during codec probing in case SKIP_AUDIO flag is not set. ALSA CVS update - Takashi Iwai AC97 Codec Core - Added the single mixer control with AC97 2.3 paging. - Handle the paging for some ALC655/658 registers. - Added the experimental support for ALC850. ALSA CVS update - Jaroslav Kysela ALSA Core Fixed warnings for pci PM callbacks when not CONFIG_PCI ALSA 1.0.5 ALSA CVS update - Takashi Iwai AC97 Codec Core Fixed mutex deadlocks. ALSA CVS update Documentation Added snd-fm801 tuner parameter description Signed-off-by: Jaroslav Kysela ALSA CVS update ICE1724 driver SPDIF output fixes - Fixed the encoding of SPDIF status bits in the consumer mode. - Change the SPDIF status bits according to the current sample rate. Signed-off-by: Takashi Iwai ALSA CVS update ATIIXP driver,VIA82xx driver Added the missing RESUME info bits to pcm. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added the PCI ID for nVidia CK8. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,ALSA<-OSS emulation Clean up and optimization of PCM format-specific functions. - Use array indexing instead of huge swith/case. - Removed superfluous handling of floats. - Use memcpy for silencing to simplify the codes. Signed-off-by: Takashi Iwai ALSA CVS update USB generic driver Quattro USB: handle the different endianness of playback and recording sample data Signed-off-by: Clemens Ladisch ALSA CVS update Opti9xx drivers Fixed spin deadlocks. Signed-off-by: Takashi Iwai ALSA CVS update OPL4 add newline at end of file Signed-off-by: Clemens Ladisch ALSA CVS update OSS sequencer emulation Use separate functions for some ioctls to reduce stack usage. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela ALSA CVS update CS46xx driver,MIXART driver reduce stack usage Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel Removed the obsoleted init for boot parameters. Signed-off-by: Takashi Iwai ALSA CVS update ES1968 driver Fix the crash at unloading the module due to the shared interrupt with other devices. Signed-off-by: Karsten Wiese Signed-off-by: Takashi Iwai ALSA CVS update Generic drivers Do the buffer allocation in hw_params callback instead of open callback. This will prevent to use the allocation of excessive size. Pre-allocation is called with the default size 0, ie. no buffer will be pre-allocated as default. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver Trident driver Clean up the buffer management in the PCM runtime record. The buffer-allocation record is hold in runtime instance, so that it can be checked more cleanly. dma_private is removed from runtime (it's used for SG-buffers). The macro snd_pcm_substream_sgbuf() should be used instead of direct access to the pointer, to retrieve the sgbuf struct from the PCM substream instance. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Fixed the calculation of the current DMA position on some sloppy devices. Signed-off-by: Takashi Iwai ALSA CVS update VIA82xx driver Fixed the calculation of the current DMA position at the period boundary. In some cases, DMA residue returns the value 0 during the transition at the DMA boundary. The patch handles it as the position 0. This may prevent the flood of 'invalid last pointer' debug messages on some devices. Signed-off-by: Takashi Iwai ALSA CVS update USB generic driver handle devices that allow setting but not reading sample rate Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver - Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96. Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case. - Clean up the indirect accessing on RME32/RME96 drivers. Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Merge EFX playback and capture streams to the single device (hw:0,2). Signed-off-by: Takashi Iwai ALSA CVS update au88x0 driver - Fixed the wrong pointer cast on 64bit architectures. Signed-off-by: Andi Kleen Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,ALSA<-OSS emulation,CMIPCI driver reduce stack usage Signed-off-by: Clemens Ladisch ALSA CVS update CMIPCI driver don't sleep in prepare callback Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel Each of snd_pcm_hw_refine_old_user() and snd_pcm_hw_params_old_user() consume 856 bytes of stack and can invoke deep calls via the page allocator. Signed-off-by: Andrew Morton Signed-off-by: Jaroslav Kysela ALSA CVS update USB generic driver new functions snd_usbmidi_input_stop() and snd_usbmidi_input_start() needed by snd-usb-usx2y to be able to use usb_set_interface() Signed-off-by: Clemens Ladisch ALSA CVS update ALSA sequencer,Instrument layer,ISA,GUS drivers Clean up Makefiles for the sequencer stuff using reverse selections. Signed-off-by: Takashi Iwai [PATCH] qla1280: add ISP1040 register definitions The old 1020/1040 has some registers where the newer controlers only have reserved space, add that to qla1280.h Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: add IS_ISP* helpers The code is already messy due to the explicit pci id checks for 1280 vs 1x160, so add some nice helpers for that. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: cleanup firmware loading, add pio-based loading The ISP1040 needs to load firmware by PIO, and while we're at it clean the convoluted mess of firmware loading up by splitting it into managable subroutines. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: cleanup qla1280_nvram_config qla1280_nvram_config is a huge mess. Split it up into managable subroutines and add suport for the ISP1040 to it. Add missing call to set the age limit also on 1280/1x160. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: cleanup qla1280_initialize_adapter no function changes, just some more gotos and less nested ifs to make the code readable. Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley [PATCH] qla1280: update changelog and version Signed-off-by: Jes Sorensen Signed-off-by: James Bottomley Add dma_declare_coherent_memory() API This adds the description and a null prototype. Signed-off-by: James Bottomley Add memory region bitmap implementations These APIs deal with bitmaps representing contiguous memory regions. The idea is to set, free and find a contiguous area. For ease of implementation (as well as to conform to the standard requirements), the bitmaps always return n aligned n length regions. The implementation is also limited to BITS_PER_LONG contiguous regions. Signed-off-by: James Bottomley Add vmalloc alignment constraints vmalloc is used by ioremap() to get regions for remapping I/O space. To feed these regions back into a __get_free_pages() type memory allocator, they are expected to have more alignment than get_vm_area() proves. So add additional alignment constraints for VM_IOREMAP. Signed-off-by: James Bottomley Add x86 implementation of dma_declare_coherent_memory This actually implements the API (all except for DMA_MEMORY_INCLUDES_CHILDREN). Signed-off-by: James Bottomley Convert NCR_Q720 to use dma_declare_coherent_memory This board makes an ideal example for using the API since it consists of 4 SCSI I/O processors and a 0.5-2MB block of memory on a single MCA card. Signed-off-by: James Bottomley This patch introduces a kcalloc() in the kernel that is used to replace the ALSA subsystem-specific snd_kcalloc() and snd_magic_kcalloc(). Signed-off-by: Pekka Enberg ALSA CVS update AC97 Codec Core Fixed the detection of STAC9708/11 surround control. Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Fix Audigy + FX8010 capture (hw:x,2) This patch fixes capture problems from hw:x,2 on Audigy. It is same as previous, because it can be applied cleanly against CVS (I tested version from 23.06.2004) and hope it is still true for current CVS. I tested 4 channel recrding and it was OK. hw:x,2 records outputs from FX8010 (not FX buses) Using 'EFX voices mask' you can set channels what you want record. use alsactl store to store config edit this config (set true for needed channel for 'EFX voices mask' control) - I recorded channels 8,9,14,15 (front and rear output). use alsactl restore to restore config Looks like channel count must be power of 2 (1, 2, 4, 8, ...). Signed-off-by: Peter Zubaj Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Audigy 2 ZS - side support Added the support of side speakers on Audigy 2 ZS. TODO - detection of audigy 2 zs. Now it will add side controls to mixer for audigy 2 to. Maybe left or right slider can control volume of back center on audigy 2 too. Signed-off-by: Peter Zubaj Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver,ICE1724 driver Fixes for VT1720/VT1724 - Fixed the volume update on aureon. - Removed the bogus master volume from aureon. - Fixed the wrong number of ADCS (not used, though). - Don't access GPIO high bits on VT1720. - Fixed the buffer byte alignment for SPDIF and independen PCMs. - Proper rate constraints according to the I2S/AC-link connection. - Clean up the private data for PCM callbacks. Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver Synth,Common EMU synth Removal of snd_kcalloc() This patch removes snd_kcalloc() from the kernel and updates callers to use the new generic kcalloc(). Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer Removal and replacement of magic memory allocators and casts (core part) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver Trident driver,Digigram VX222 driver,YMFPCI driver Removal and replacement of magic memory allocators and casts (pci part) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers Wavefront drivers Removal and replacement of magic memory allocators and casts (isa part) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3 OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers AK4117 receiver,Serial BUS drivers,PARISC Harmony driver Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth USB generic driver Removal and replacement of magic memory allocators and casts (other parts) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core Fixed STAC9758 output jack selection control - fixed unbalnaced mutex. - use ac97_update_bits_page() instead of snd_ac97_update_bits(). Signed-off-by: Takashi Iwai ALSA CVS update CMIPCI driver Fix the i/o port range of gameport on cmipci Gameport use only 1 I/O port not 8. Attached patch fix gameport on CMIPCI soundcards. Signed-off-by: Artur Frysiak Signed-off-by: Takashi Iwai ALSA CVS update Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer Clean up of obsolete MODULE_* stuff (core part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver GUS Classic driver,GUS Extreme driver,GUS MAX driver AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers Clean up of obsolete MODULE_* stuff (isa part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver Trident driver,Digigram VX222 driver,YMFPCI driver Clean up of obsolete MODULE_* stuff (pci part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers PARISC Harmony driver,Sound Core PDAudioCF driver Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver SPARC cs4231 driver,USB generic driver Clean up of obsolete MODULE_* stuff (other part) Removed MODULE_CLASSES() and MODULE_SYNTAX(). Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE() Signed-off-by: Takashi Iwai ALSA CVS update NM256 driver Added AC97 CD register to the list of allowed registeres. Signed-off-by: Takashi Iwai ALSA CVS update ALSA<-OSS sequencer Suppress the error message when no device is found. Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core Check the validity of registers before creating controls. Signed-off-by: Takashi Iwai ALSA CVS update CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel Clean up of indirect PCM data transfer with helper functions. Signed-off-by: Takashi Iwai ALSA CVS update RME32 driver Added the experimental fullduplex support. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel snd_pcm_timer_resolution_change(): Right, that function doesn't work well for 44100/1024 in 32 bits -- it ends up trying to calculate 1e7 * 1024 / 441 and having to divide both numerator and denominator by 4 (thus losing the rather crucial 1 at the end of 441) before it can do the calculation without overflow. Attached is a patch against 1.0.5a that gets better results in this instance, by leaving the denominator alone and instead doubling the result back up by the same number of times as the multiplier had to be halved by. Signed-off-by: Chris Cannam Signed-off-by: Jaroslav Kysela ALSA CVS update Instrument layer LD .tmp_vmlinux1 sound/built-in.o(.text+0xfb4ae): In function nd_gus_synth_new_device': : undefined reference to nd_seq_iwffff_init' make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Jaroslav Kysela ALSA CVS update EMU10K1/EMU10K2 driver Clean up the invalid (commented out) lines for emu10k1x. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel,RME32 driver - Fixed the int types in indirect_pcm helpers. - Added the missing initialization of fullduplex mode on rme32. Signed-off-by: Takashi Iwai ALSA CVS update ES1938 driver Playing Quake1 (quakeforge-flavor with ALSA-driver) I hear cracks and blibs. Other apps (xine, mpg321) are fine. The OSS driver in 2.6.7 produces no cracks (but reverses stereo BTW). I fixed it, i.e. it works for me: *No swapping of stereo channels *no cracks Signed-off-by: Signed-off-by: Jaroslav Kysela ALSA CVS update au88x0 driver - asXtalkGainsAllChan -> vortex_asXtalkGainsAllChan - fixed extern/static problem Signed-off-by: Jaroslav Kysela Fix incorrect prototype in the dma_declare_coherent_memory API dma_mark_declared_memory_occupied() wasn't declared static inline in the NULL (default) implementation leading to compile failures. Fix bug in __get_vm_area() alignment code If we are still above the vma start address on the last vma, we can use addr even if it is inside the vma (i.e. addr < vma->addr + vma->size). Fix this by aligning addr past the end of the vma in this case [PATCH] Fix sparc compile error in dma-mapping.h William Lee Irwin III wrote: > > SPLIT include/linux/autoconf.h -> include/config/* > CHK include/linux/compile.h > UPD include/linux/compile.h > In file included from include/asm/sbus.h:10, > from arch/sparc64/kernel/auxio.c:15: It needs err.h. Signed-off-by: James Bottomley Fix region sizing problem in dma_mark_declared_memory_occupied() The current code reserves too few pages if addr isn't page aligned and size just spans onto the last page. Fix by increasing size by the addr misalignment amount. Signed-off-by: James Bottomley dma_alloc_coherent() still needs to support a NULL device Fix the part of the on-chip memory API that broke this. Signed-off-by: James Bottomley [PATCH] fix JAZZ_ESP driver config depends Use correct config symbol name for MACH_JAZZ in JAZZ_ESP driver config. Acked by Ralf. Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley [PATCH] aacraid reset handler This restores a fix to the aacraid reset handler. It makes sure that there are no active commands on any attached device before exiting with SUCCESS. Signed-off-by: Mark Haverkamp Signed-off-by: James Bottomley [PATCH] fix scsi_remove_device locking The following patch fixes an oops I was seeing on a machine with misconfigured scsi cables, but could feasibly happen in other paths. The oops was occurring because scsi_remove_device was getting called for a device before scsi_add_device had fully completed. This resulted in sysfs_remove_link being called with a NULL dentry. Signed-off-by: Brian King Signed-off-by: James Bottomley MPT Fusion driver 3.01.10 update From: "Moore, Eric Dean" This driver incorporates the patches from Christoph Hellwig and Masao Fukuchi. Changelog of this release: * Patch provided by Masao Fukuchi [fukuchi.masao@jp.fujitsu.com] - mptctl updates for hot plug * Patch provided by Christoph Hellwig [hch@infradead.org] - mptlan updates for hot plug - remove CONFIG_LBD ifdefs from fusion { mptscsih.c} Signed-off-by: James Bottomley [PATCH] mptbase.c warning fix drivers/message/fusion/mptbase.c: In function `GetIocFacts': drivers/message/fusion/mptbase.c:2420: warning: int format, different type arg (arg 4) Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] tmscsim: kernel bugzilla bug #2139 > Short: The attached patch fixes the bug-report #2139 from kernel bugzilla. I wasn't quite convenient with the previous version of the patch, but I just wanted to get it working at first and get some comments as to whether the approach (put a workaround vs. blacklisting) is at all valid. Since no objections arrived, I guess, nobody minds this small trick. So, I am enclosing a reworked patch, which does essentially the same, but has some more careful checking, and overall looks saner, than the previous one. Signed-off-by: James Bottomley [PATCH] update contact address for SCSI megaraid.c If you send an email to linux-megaraid-devel@dell.com, you get an automated response to send the mail to linux-scsi@vger.kernel.org instead. The patch below updates megaraid.c accordingly. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] warning fix to include/scsi/scsi_device.h From: Mika Kukkonen CC [M] drivers/block/cciss.o In file included from drivers/scsi/scsi.h:27, from drivers/block/cciss_scsi.c:31, from drivers/block/cciss.c:188: include/scsi/scsi_device.h:191: warning: `inline' is not at beginning of declaration Another case of reordering the 'inline' and function return value. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] SCSI ips: remove inlines Trying to compile drivers/scsi/ips.c with gcc 3.4 and # define inline __inline__ __attribute__((always_inline)) results in the following error: <-- snip --> ... CC drivers/scsi/ips.o drivers/scsi/ips.c: In function `ips_eh_abort': drivers/scsi/ips.c:490: sorry, unimplemented: inlining failed in call to 'ips_removeq_copp': function body not available drivers/scsi/ips.c:843: sorry, unimplemented: called from here drivers/scsi/ips.c:488: sorry, unimplemented: inlining failed in call to 'ips_removeq_wait': function body not available drivers/scsi/ips.c:847: sorry, unimplemented: called from here make[2]: *** [drivers/scsi/ips.o] Error 1 <-- snip --> The patch below removes all inlines from ips.c. As a side effect, this showed that 3 formerly inlined functions are completely unused which are also removed in the patch. An alternative approach to removing the inlines would be to keep all inlines that are _really_ required and reorder the functions in the file accordingly. diffstat output: drivers/scsi/ips.c | 130 ++++++--------------------------------------- 1 files changed, 19 insertions(+), 111 deletions(-) Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [ADD] Add pci=firmware command line option This change is specifically needed for the IXP2000 platform. IXP2000 platforms have various PCI devices with large memory space requirements (~3.5 GB total sometimes) and a banked PCI window that allows for accessing all 4GB of memory space. The FW configures the devices on the bus in such a way that standard linux drivers (e100, e1000, ide) can work w/o any changes and places devices specific to Intel's closed source IXA sdk in regions of PCI memory space that require using special registers on the IXP. This can be accomplished in the kernel using a board-specific enumerator or a lot of fixups, but it is far easier to just accept what the FW has provided. Signed-off-by: Deepak Saxena [PATCH] another small advansys cleanup The patch below does the following small cleanups for the advansys driver: - remove obsolete maintainer information - remove kernel 2.2 code from advansys.h diffstat output: MAINTAINERS | 7 drivers/scsi/advansys.c | 342 +++++++--------------------------------- drivers/scsi/advansys.h | 26 --- 3 files changed, 60 insertions(+), 315 deletions(-) Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley ALSA CVS update Intel8x0 driver set msbits for 20-bit sample format Signed-off-by: Clemens Ladisch ALSA CVS update OPL4 reorganize locking; optimize memory accesses Signed-off-by: Clemens Ladisch ALSA CVS update Generic drivers,AK4531 codec One space at the end of a line is evil. So how do we call it if a line has 300 of them? :) Signed-off-by: Clemens Ladisch ALSA CVS update USB generic driver remove whitespace at end of lines Signed-off-by: Clemens Ladisch ALSA CVS update PCM Midlevel fix memory leak Signed-off-by: Clemens Ladisch ALSA CVS update GUS Library,Wavefront drivers reduce stack usage; fix buffer overflow Signed-off-by: Clemens Ladisch ALSA CVS update AMD InterWave driver reduce stack usage; fix ROM checksum check Signed-off-by: Clemens Ladisch ALSA CVS update AC97 Codec Core fix odd comment :) Signed-off-by: Clemens Ladisch ALSA CVS update USB generic driver allow USB MIDI devices without audio control interface Signed-off-by: Clemens Ladisch ALSA CVS update Documentation,AC97 Codec Core,ATIIXP driver,CS4281 driver ENS1370/1+ driver,ES1968 driver,FM801 driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,VIA82xx driver,ALI5451 driver au88x0 driver,CS46xx driver,EMU10K1/EMU10K2 driver,ICE1712 driver ICE1724 driver,NM256 driver,Trident driver,YMFPCI driver move AC'97 bus callbacks into seperate ops record; remove ac97_bus_t template requirement from snd_ac97_bus() Signed-off-by: Clemens Ladisch ALSA CVS update Documentation Removed obsolete sndmagic.h. Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core Fixed compile warnings withoug CONFIG_PM. Signed-off-by: Takashi Iwai ALSA CVS update Documentation Fixed missing . Signed-off-by: Takashi Iwai ALSA CVS update Memalloc module - Don't mark pages from dma_alloc_coherent as reserved. The pages from __get_free_pages() are still marked as reserved, but this could be also unnecessary. - Fixed a typo in comment. - Fixed the pre-allocated buffer size for rme9652 & hdsp. Signed-off-by: Takashi Iwai ALSA CVS update CS46xx driver change codec index computation in snd_cs46xx_read/write; replace ac97_t template with ac97_template_t Signed-off-by: Clemens Ladisch ALSA CVS update Documentation,AC97 Codec Core,ATIIXP driver,CS4281 driver ENS1370/1+ driver,ES1968 driver,FM801 driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,VIA82xx driver,ALI5451 driver au88x0 driver,EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver NM256 driver,Trident driver,YMFPCI driver replace ac97_t template with ac97_template_t Signed-off-by: Clemens Ladisch ALSA CVS update ALSA<-OSS emulation fix missing semaphore release in snd_mixer_oss_build_input() Signed-off-by: Clemens Ladisch ALSA CVS update Documentation fix typo Signed-off-by: Clemens Ladisch ALSA CVS update RME HDSP driver ALSA rme9652/hdsp: remove inlines The patch below removes all inlines from hdsp.c. As a side effect, it showed that snd_hdsp_9652_disable_mixer() is completely unused, and it's therefore also removed in the patch. Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai ALSA CVS update ATIIXP driver Fixed a typo in the check of buffer/period size configuration. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,PCI drivers,ATIIXP-modem driver Added snd-atiixp driver for ATI IXP AC97 modem controllers. Signed-off-by: Takashi Iwai ALSA CVS update Memalloc module Mark the allocated DMA pages as reserved for certain architectures. Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel Fixed the unbalanced spinlock in the error path. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0-modem driver Added -MODEM suffix to the driver name string to distinguish from the intel8x0 audio driver. Signed-off-by: Takashi Iwai ALSA CVS update CS46xx driver Fixed a compile warning in the debug code. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,PCM Midlevel Changed the atomicity of PCM prepare callback. The PCM prepare callback is now non-atomic, so that the driver can use the functions calling schedule (e.g. kmalloc with GFP_KERNEL). Signed-off-by: Takashi Iwai ALSA CVS update ALS4000 driver,ATIIXP driver,ATIIXP-modem driver,AZT3328 driver BT87x driver,CMIPCI driver,CS4281 driver,ENS1370/1+ 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,NM256 driver,RME HDSP driver RME9652 driver,Trident driver,YMFPCI driver,PPC PMAC driver USB generic driver Clean up spinlocks. - Removed superfluous spinlocks. - Replaced spin_lock_irqsave() with spin_lock_irq() in the obvious places. - Make sure that prepare callback be non-atomic. - Removed SNDRV_PCM_INFO_NONATOMIC_OPS flag (which is default now). Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core,Intel8x0 driver,Intel8x0-modem driver Fixed the detection of sample rates with no VRA support. - Changed ac97bus->vra to ac97bus->no_vra to indicate the VRA is NOT supported. - In the case of no_vra=1, only 48k is set as the possible rates in snd_ac97_pcm_assign(). Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Enable low latency EFX capture on emu10k1 The following patch fixes EFX capture on the emu10k1. The capture_period_sizes table is in bytes, but the hardware constraint was being set in frames. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai ALSA CVS update VIA82xx driver Added the ac97_quirk entry for ECS K7VTA3 v8.0 mobo. Signed-off-by: Takashi Iwai ALSA CVS update ALSA sequencer Fixed the bad check on copy_from_user() return value Signed-off-by: Mika Kukkonen Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver Fixed the detection of Audigy 2 ZS. Signed-off-by: Lee Revell Signed-off-by: Takashi Iwai ALSA CVS update ALI5451 driver Fixed the suspend/resume. The suspend callback wasn't set the power state correctly, so the resume process was skipped. Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver,Trident driver,ALS4000 driver,ATIIXP driver ATIIXP-modem driver,AZT3328 driver,BT87x driver,CMIPCI driver CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver ALI5451 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver MIXART driver,RME HDSP driver,RME9652 driver,Digigram VX222 driver Clean up the PCI resource allocation. Replaced the manual resource allocations with request_[mem_]region() with pci_request_regions(). Signed-off-by: Takashi Iwai ALSA CVS update Documentation Changed the description of PCI resource allocation to use pci_request_regions(). Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core,ATIIXP driver,ATIIXP-modem driver,Intel8x0 driver VIA82xx driver Clean up the suspend/resume: save/restore of pci state PCI status is restored in the common resume callback. (Stored in the saved_config array of pci_dev struct.) Signed-off-by: Takashi Iwai ALSA CVS update ALI5451 driver Added the missing snd_power_change_state() in the resume callback. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,SA11xx UDA1341 driver,PCM Midlevel,IOCTL32 emulation ALSA<-OSS emulation,Generic drivers,I2C cs8427,I2C tea6330t,L3 drivers OPL3SA2 driver,AD1816A driver,CS4231 driver,CS4236+ driver ES1688 driver,GUS Library,AMD InterWave driver,Opti9xx drivers EMU8000 driver,PARISC Harmony driver,AZT3328 driver,CMIPCI driver CS4281 driver,FM801 driver,Intel8x0 driver,Maestro3 driver,RME32 driver RME96 driver,SonicVibes driver,AK4531 codec,CS46xx driver ICE1712 driver,KORG1212 driver,NM256 driver,RME HDSP driver RME9652 driver,YMFPCI driver,PPC AWACS driver,PPC Burgundy driver PPC DACA driver,SPARC AMD7930 driver,SPARC cs4231 driver Common EMU synth use ARRAY_SIZE() instead of sizeof() computations Signed-off-by: Clemens Ladisch ALSA CVS update BT87x driver use exact values of analog clock rate Signed-off-by: Clemens Ladisch ALSA CVS update PPC The alsa driver for powermacs requires i2c support. Signed-off-by: Olaf Hering Signed-off-by: Jaroslav Kysela ALSA CVS update ALSA Core use list_for_each() in core/memory.c Signed-off-by: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: Jaroslav Kysela ALSA CVS update PPC PMAC driver Fixed typo. Signed-off-by: Nicolas Kaiser Signed-off-by: Jaroslav Kysela ALSA CVS update PPC PowerMac driver Fixed typo. Signed-off-by: Nicolas Kaiser Signed-off-by: Jaroslav Kysela ALSA CVS update ALSA Core,MIXART driver Removed the obsolete NONATOMIC_OPS flag. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Added master volume control. The master volume control is added again, this time with the digital attenuation so that it works independently from the DAC volumes. Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core Added unlikely() to the debug check macros. Signed-off-by: Takashi Iwai ALSA CVS update ALSA Core Clean up: removed ifdefs and obsolete codes. Signed-off-by: Takashi Iwai ALSA CVS update Control Midlevel,HWDEP Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel Timer Midlevel,ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer Unlock BKL in ioctl callback to avoid the long preempt-disabling. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel Fixed/improved XRUN detection - don't print XRUN message in the case of draining. - pointer callback can return SNDRV_PCM_POS_XRUN to notify the middle layer. Signed-off-by: Takashi Iwai ALSA CVS update PCM Midlevel Notify PCM buffer overrun of the intermidate buffer on capture. Signed-off-by: Takashi Iwai ALSA CVS update RME32 driver Fixed the fullduplex mode. Signed-off-by: Takashi Iwai ALSA CVS update RME32 driver Fixed the address mask to get the correct DMA pointer value. Signed-off-by: Pilo Chambert Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Added the (experimental) support of Terratec Phase 88. Signed-off-by: Takashi Iwai ALSA CVS update VIA82xx driver Fixed the check of invalid DMA position. The workaround for buggy mobo to correct the DMA position is fixed so that it works properly on normal chips. Signed-off-by: Takashi Iwai [PATCH] qla2xxx: EH host-reset fixes Fix issue where host-reset would incorrectly return a FAILED status. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] qla2xxx: Set firmware options fixes Fix issue where firmware options were not properly being set before firmware initialization. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] qla2xxx: TCQ fixes Correct usage of tag-command-queueing methods: o Properly call scsi_activate_tcq() rather than scsi_adjust_queue_depth(). o Properly retrieve tag message from command via scsi_populate_tag_msg(). Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] qla2xxx: Update version Update version number to 8.00.00b15-k. Signed-off-by: Andrew Vasquez Signed-off-by: James Bottomley [PATCH] drivers/scsi/sg.c kill local jiffies functions [patch] kill local sg_ms_to_jif/sg_jif_to_ms functions and use msecs_to_jiffies/jiffies_to_msecs instead Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] SCSI dc395x.c: fix inline compile errors Trying to compile drivers/scsi/dc395x.c in 2.6.8-rc1-mm1 using gcc 3.4 results in compile errors starting with the following: <-- snip --> ... CC drivers/scsi/dc395x.o drivers/scsi/dc395x.c: In function `dc395x_handle_interrupt': drivers/scsi/dc395x.c:388: sorry, unimplemented: inlining failed in call to 'enable_msgout_abort': function body not available drivers/scsi/dc395x.c:1740: sorry, unimplemented: called from here make[2]: *** [drivers/scsi/dc395x.o] Error 1 <-- snip --> The patch below moves enable_msgout_abort above the place where it is called the first time and removes the bogus inline from the prototype of set_xfer_rate (the function itself isn't marked as inline). An alternative approach would be to remove the inline from enable_msgout_abort. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] SCSI nsp32.c: remove inlines Trying to compile drivers/scsi/nsp32.c in 2.6.8-rc1-mm1 using gcc 3.4 results in compile errors starting with the following: <-- snip --> ... CC drivers/scsi/nsp32.o drivers/scsi/nsp32.c: In function `nsp32_prom_start': drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3348: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3349: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3350: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3351: sorry, unimplemented: called from here drivers/scsi/nsp32.c:270: sorry, unimplemented: inlining failed in call to 'nsp32_prom_set': function body not available drivers/scsi/nsp32.c:3353: sorry, unimplemented: called from here make[2]: *** [drivers/scsi/nsp32.o] Error 1 <-- snip --> The patch below removes the inlines from nsp32_prom_{get,set}. An alternative approach would be to move the functions above the place where they are called the first time. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] tmscsim: MAINTAINERS add new maintainer Signed-off-by: James Bottomley [PATCH] SCSI tmscsim.c: fix inline compile errors Original Patch From: Adrian Bunk I looked at those 3 functions. dc390_EnableMsgOut_Abort is called 5 times in the code and is 0x30 bytes long (as compiled with 3.3.2), so, uninlining it, probably, makes most sense. The other 2 functions are called only ones each and from the interrupt, so, I applied the "alternative approach" to them - moved above the calling functions. Signed-off-by: James Bottomley [PATCH] ibmvscsi driver v1.5.1 Based on comments from hch and jejb, an update to the ibmvscsi driver patch. Primarily style issues, though the removal of gratuitous casting lead to some significant refactoring of functions. - Moved #include after #include - removed the map_direct_data and map_indirect_data and moved the function inline - Fixed function declaration style issues (static on a line by itself) - Removed bogus cast from dma_map_single - Moved setting of data transfer direction to a single helper function - Fixed up some gratuitous casting of types - Collapsed a couple of other functions inline - Removed bogus check for NULL from remove - Removed the "evt_struct_for" routine as being needlessly obfuscatory Signed-off-by: James Bottomley [PATCH] add MODULE_VERSION to drivers/scsi Set MODULE_VERSION for drivers/scsi for Adaptec SCSI, megaraid qla1280, qla2x00 Signed-off-by: James Bottomley [PATCH] add MODULE_VERSION to drivers/scsi On Thu, Jul 22, 2004 at 01:28:23PM +0100, Matthew Wilcox wrote: > > +#define SYM_VERSION "2.1.18j" > > +#define SYM_DRIVER_NAME "sym-" SYM_VERSION > > Umm. No. This is ridiculous. I'm not having a 51 line copyright message > with 2 lines of #define. It's not even clear to me that these two lines > have artisitic merit. How about putting these defines in sym_defs.h, > at the top? It's already included in both sym_glue.c and sym_hipd.c by > being included by sym_glue.h. Indeed, point well taken. Done, they're now at the top of defines in sym_defs.h, and I've updated my BK tree accordingly. Signed-off-by: James Bottomley [PATCH] scsi/eata_pio: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Nishanth Aravamudan Signed-off-by: James Bottomley ALSA CVS update ALSA<-OSS emulation Fixed a typo in the last change, resulting in the infinite loop. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver,ICE1724 driver Added the support of Pontis MS300 to snd-ice1724 driver. Signed-off-by: Takashi Iwai [PATCH] gcc-3.5 fixes to advansys From: Andi Kleen Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] Fix double reset in aic7xxx driver From: Joe Korty Fix occasional PCI bus parity errors on the Dell PowerEdge 4600 during boot. Symptoms: The LCD display would turn orange and display "PCI SYSTEM E13F5", and the following message would appear in /var/log/dmesg: "Uhhuh. NMI received. Dazed and confused, but trying to continue". By inserting a PCI card with a PDC20268 IDE controller and attaching to that a Sony DRU-510A DVD RW burner with an unloaded tray, the failure can be made to happen on every boot. Cause: The aic7xxx driver was resetting the onboard AIC7891 SCSI controller while waiting for a previous reset to complete. This second reset confuses the controller causing it to put bad data onto the PCI bus. This is a backport of a RedHat 2.4.21-15.ELsmp fix. A letter discussing this problem, or one very close to it, may be found at: http://lists.us.dell.com/pipermail/linux-poweredge/2003-May/025010.html Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] fix aic driver build for db4 From: "J.A. Magallon" This allows to build aic with db4. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] sg.c: remove unused sg_jif_to_ms() Signed-off-by: Andrew Morton Signed-off-by: James Bottomley [PATCH] let AIC7{9,X}XX_BUILD_FIRMWARE depend on The patch below lets AIC7{9,X}XX_BUILD_FIRMWARE depend on !PREVENT_FIRMWARE_BUILD. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley ALSA CVS update VIA82xx driver Added the quirk entry for ECS L7VMM2 uATX. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added the support of nVidia CK804. Signed-off-by: Andrew Chew Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added the support of MCP04. Signed-off-by: Takashi Iwai ALSA CVS update AC97 Codec Core,ATIIXP driver,ATIIXP-modem driver,Intel8x0 driver Intel8x0-modem driver Fixed the reset problem of shared audio/modem drivers. This patch fixes the problem that the shared audio/modem drivers reset the codecs with each other at loading time. Currently, intel8x0 and atiixp drivers are supported. The other drivers (if any) should add the new shared type in ac97_codec.h. Signed-off-by: Takashi Iwai ALSA CVS update Memalloc module,PCM Midlevel,CS46xx driver,EMU10K1/EMU10K2 driver ALSA Core,YMFPCI driver,Sound Scape driver,ATIIXP driver ATIIXP-modem driver,BT87x driver,ENS1370/1+ driver,ES1968 driver Intel8x0 driver,Intel8x0-modem driver,VIA82xx driver,KORG1212 driver MIXART driver,RME HDSP driver,RME9652 driver,Trident driver Clean up DMA buffer allocation routines. - snd_dma_alloc_pages*() take the device type and device pointer directly as arguments. snd_dma_free_pages() takes only dma_buffer instance. - snd_dma_device struct is removed in each driver's instance (no longer needed due to the change above). - snd_malloc_pages_fallback() is removed since it's no longer used. - The buffer reservation / preallocation in snd-page-alloc module is performed only when the buffer id is given. Normal PCM buffers won't be reserved any more (unless the driver specifies). The module keeps the linked list of free-reserved buffers, instead of the whole buffers Reservation is done via snd_dma_reserve_buf(), and retrieved via snd_dma_get_reserved_buf()). - Other misc clean-ups/fixes. Signed-off-by: Takashi Iwai ALSA CVS update PARISC Harmony driver Clean up DMA buffer allocation routines. - snd_dma_alloc_pages*() take the device type and device pointer directly as arguments. snd_dma_free_pages() takes only dma_buffer instance. - snd_dma_device struct is removed in each driver's instance (no longer needed due to the change above). - snd_malloc_pages_fallback() is removed since it's no longer used. - The buffer reservation / preallocation in snd-page-alloc module is performed only when the buffer id is given. Normal PCM buffers won't be reserved any more (unless the driver specifies). The module keeps the linked list of free-reserved buffers, instead of the whole buffers Reservation is done via snd_dma_reserve_buf(), and retrieved via snd_dma_get_reserved_buf()). - Other misc clean-ups/fixes. Signed-off-by: Takashi Iwai ALSA CVS update PCI drivers,Intel8x0-modem driver Added the support of Nvidia modem. Signed-off-by: Sasha Khapyorsky Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Fixed the handling of unknown irqs on ICH5. This patch fixes (hopefully) the handling of unkown irqs triggered on some ICH5 mobo. Also, free_irq() is moved before releasing i/o ports to avoid hang-up at removal. Signed-off-by: Takashi Iwai ALSA CVS update Intel8x0 driver Added an ac97 quirk for ICH/AD1885 mobo. Signed-off-by: Takashi Iwai ALSA CVS update ICE1712 driver Added the support of ZNF3-250 (supposed to be ZNF3-150 compatible). Signed-off-by: Takashi Iwai ALSA CVS update IOCTL32 emulation Added the wrapper for sync_ptr and hwsync ioctls. Signed-off-by: Takashi Iwai ALSA CVS update PPC,PPC AWACS driver,PPC Beep,PPC PMAC driver,PPC PowerMac driver Added the PCM beep support. enable_beep module option is back again (default = 1). Beep is emulated via PCM playback when enabled. Signed-off-by: Takashi Iwai ALSA CVS update PPC PMAC driver pmac also apply the DMA stop work around to fix capture on iBook2 the attached patch for the pmac driver fixes capture for at least all iBook2s I have access to. Without the fix arround 33% percent of all recordings are just white noise. Signed-off-by: Rene Rebe Signed-off-by: Takashi Iwai ALSA CVS update PPC PMAC driver Bailed a long delay out of the spin_lock_irq. Signed-off-by: Takashi Iwai KREF: shrink the size of struct kref down to just a single atomic_t This was based on a patch from Kiran, but tweaked further by me. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Greg Kroah-Hartman KREF: fix up the current kref users for the changed api. Based on work from Kiran, but fixed up by me to actually build and link properly. Signed-off-by: Ravikiran Thirumalai Signed-off-by: Greg Kroah-Hartman From: "Andrew Chew" This patch updates include/linux/pci_ids.h with the CK804 audio controller ID, and adds the CK804 audio controller to the sound/pci/intel8x0.c audio driver. Signed-off-by: Andrew Morton From: Jaroslav Kysela ALSA patch Removed duplicate CK804_AUDIO from intel8x0.c ALSA CVS update VIA82xx driver Added the DXS whitelist entry for Acer Inspire 1353LM. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,USB,USB generic driver,USB USX2Y Added snd-usb-usx2y driver for Tascam US-122/224/428 support. Driver written by Karsten Wiese The shared code is split from usbaudio as snd-usb-lib module. Currently, only MIDI part is included there. In future, more audio part will be shared, too. Signed-off-by: Takashi Iwai ALSA CVS update Documentation,Intel8x0 driver Added buggy_irq module parameter to intel8x0 driver. On some (broken :) motherboards, unknown irq is triggered when the audio is started. This this option, the irq handler returns IRQ_HANDLED for such an irq, so that the irq line won't be disabled. Signed-off-by: Takashi Iwai ALSA CVS update USB generic driver fix email address and license Signed-off-by: Clemens Ladisch [PPC32] Add a weak version of embed_config(). This allows boards with U-Boot to have a functional 'all' target. Signed-off-by: Andreas Oberritter Signed-off-by: Tom Rini [PPC32] Give PPC8xx a callback into board-specific code in m8xx_setup_arch(). Signed-off-by: Andreas Oberritter Signed-off-by: Tom Rini [PPC32] Add a watchdog driver on PPC8xx. Signed-off-by: Andreas Oberritter Signed-off-by: Tom Rini ALSA CVS update au88x0 driver Cleanup the private_data initialization Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela ALSA misc - control.c - compilation fixes - es1968.c - hw volume fix ALSA CVS update PPC PMAC driver Removed non-functional 48kHz support from pmac driver. Signed-off-by: Rene Rebe Signed-off-by: Takashi Iwai ALSA CVS update SoundFont,Common EMU synth Fixed messy locks in soundfont support code. Removed hacky down_trylock() in the interrupt context, and check the busy lock flag explicitly. Signed-off-by: Takashi Iwai ALSA CVS update PCI drivers,Intel8x0-modem driver Added the support of SIS7013 modem. Signed-off-by: Sasha Khapyorsky Signed-off-by: Takashi Iwai ALSA CVS update EMU10K1/EMU10K2 driver,KORG1212 driver Fixed the compile warnings on 64bit architectures. Signed-off-by: Takashi Iwai ALSA CVS update USB USX2Y fix compilation on 2.2.x kernels Signed-off-by: Clemens Ladisch ALSA CVS update au88x0 driver Fixed asXtalkGainsAllChan problem for the solid kernel build. Signed-off-by: Jaroslav Kysela ALSA CVS update au88x0 driver Cleans up the equalizer code by converting some loops to proper for loops and fixes the conditions for looping. Signed-off-by: Jeff Muizelaar Signed-off-by: Jaroslav Kysela ALSA CVS update au88x0 driver some other misc eq cleanups Signed-off-by: Jeff Muizelaar Signed-off-by: Jaroslav Kysela [PATCH] KOBJECT: add kobject_get_path Add a new kobject helper, kobject_get_path(), which is the greatest function ever. Signed-Off-By: Robert Love Signed-off-by: Greg Kroah-Hartman [ARM] Switch CPU to BE mode before uncompressing when running BE This is needed for certain systems (IXP2000,IXP1200) where the bootloader switches back to LE before jumping into the kernel or when we are trying to boot a BE kernel from an LE bootloader. Signed-off-by: Deepak Saxena [ARM] Add IXP2000 support to arch/arm/Makefile & Kconfig Signed-off-by: Deepak Saxena [ARM] Add IXP2000 support to arch/arm/kernel Signed-off-by: Deepak Saxena [ARM] Add IXP2000 CPU support to arch/arm/mm Signed-off-by: Deepak Saxena [ARM] Add IXP2000 support to arch/arm/boot Signed-off-by: Deepak Saxena [ARM] Add IXP2000 platform implementation (arch/arm/mach-ixp2000) Signed-off-by: Deepak Saxena [ARM] Add IXP2000 header files (include/asm-arm/arch-ixp2000) Signed-off-by: Deepak Saxena [ARM] Add IXP2000 documentation Signed-off-by: Deepak Saxena [ARM] Various IXP2000 fixes - Fix IXP2000_MSF_CLK_CNTRL typo - Use unsigned long instead of int for local_irq_save() flags variable - Fix "pci=firmware" handling - Remove redundant IXP2000 zreladdr - Fix IXP2000 def-configs Signed-off-by: Deepak Saxena [ARM] Add support for ENP-2611 platform Signed-off-by: Deepak Saxena [PATCH] export legacy pty info via sysfs You missed that one last year. export the legacy pty/tty device nodes via sysfs, so udev has a chance to create them if /dev is in tmpfs. Signed-off-by: Olaf Hering Signed-off-by: Greg Kroah-Hartman [PATCH] Driver Core: fix minor class reference counting issue on the error path Signed-off-by: Thomas Koeller Signed-off-by: Greg Kroah-Hartman PPC32: Rename pq2ads_setup.c to pq2ads.c Signed-off-by: Tom Rini PPC32: Merge mcpn765_serial.h into mcpn765.h Signed-off-by: Tom Rini PPC32: Update the Motorola LoPEC support Signed-off-by: Tom Rini PPC32: Finish cleanup of platforms that just needed _serial.h merged. Signed-off-by: Tom Rini PPC32: Update the Motorola MVME5100 support. Signed-off-by: Tom Rini [PATCH] fix imm to build with IMM_DEBUG Fix imm for IMM_DEBUG (changed device id struct). Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley [PATCH] SCSI nsp32.c: missing parts of inline removal patch The SCSI tree as included in 2.6.8-rc2-mm2 only removes the inline's from the functions prototypes, but the part of my original patch that also removes the inline's from the functions was lost. Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] fd_mcs: fix __setup function Use correct __setup function type and parameters. Return result from __setup function. Don't confuse and . Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley [PATCH] NCR53c406a: fix __setup function Use correct __setup function type and parameters. Return result from __setup function. Signed-off-by: Randy Dunlap Signed-off-by: James Bottomley ppc32: Re-work the cpuinfo hooks on MPC82xx Now we define CPUINFO_VENDOR and CPUINFO_MACHINE in one callback instead of using show_cpuinfo and show_percpuinfo call-backs to print constant per-board information. Signed-off-by: Tom Rini ppc32: Small cleanups to the CPM2 PIC code. Signed-off-by: Tom Rini ppc32: Redo the MPC82xx set of call-backs. This removes at lot of the nearly empty files, and allows for boards to do the board-specific init stuff they need in their own file still. lib/bitmap.c: fix incorrect use of BITS_TO_LONGS() Bug spotted by: Ian Molton BITS_TO_LONGS() can't be used to derive an index into a bitmap array. Also put a BUG_ON() for the pages > BITS_PER_LONG case we don't cope with. [PATCH] Add bus dependencies to two scsi drivers Two scsi drivers do not compile on systems without ISA/PCI. Therefore allyesconfig breaks on hardware like s390. Signed-off-by: Christian Bornträger Signed-off-by: James Bottomley [PATCH] tmscsim: (CH) Fix error handling I might be wrong, but it looks like the attached patch has still not been applied, although it is pretty important - it fixes error handling in tmscsim. E.g., it was reported, that this patch fixes a problem with tmscsim in 2.6.7 with a SCSI-3 scanner, that doesn't support REPORT LUNS command. Signed-off-by: James Bottomley [PATCH] ipr: Use sector_t type in sector_div call From: Pawel Sikora The first parameter for sector_div must be sector_t rather than int. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Use cancel all instead of abort task Currently, ABORT_TASK does not work properly on ipr adapters. It results in timeouts and eh ends up getting escalated to eh_host_reset to recover. The adapters are supposed to be fixed to properly handle this at some point in the future, but until that updated microcode is available, we need to send a cancel all to the device instead. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Bump driver version. Bump driver version. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Properly retry aborted reponse The ipr device driver runs tagged queuing with QERR=1. When a check condition occurs on a device running tagged queuing, the other queued commands get aborted by the ipr driver and will be returned by the adapter with the IPR_IOASC_ABORTED_CMD_TERM_BY_HOST response. These commands should be retried by the midlayer and their retry counter not decremented. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: New adapter support This patch adds support for 2 new ipr adapters. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: minor fixes and assorted nit From: Francois Romieu Subject: [PATCH 2.6.7-mm3] ipr: minor fixes and assorted nit - balance pci_enable_device() with pci_disable_device() where appropriate; - pci_release_regions() replaces release_mem_region(); - ipr_alloc_mem() can not simply issue a call to ipr_free_mem() when something goes wrong as it would lead to pci_free_consistent() of unset data. Let ipr_alloc_mem() carefully release whatever it has allocated instead; - no need to memset(..., 0, ...) an area returned by pci_alloc_consistent; - ipr_probe_ioa: + DMA_32BIT_MASK for all; + error path rework (includes bug fix when ipr_alloc_mem fails); - ipr_init() can fail: return adequate status code. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Use kref instead of a kobject The following patch converts ipr to use a kref rather than a kobject to do reference counting on an internal data structure. The added overhead of a kobject is not needed. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Add maintainers email address to comment block The following patch adds my email address to the block comment at the start of each file of the ipr driver to make it easier to find. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: New PCI IDs Add a couple new devices supported by the ipr device driver. This patch has already been sent to pciids-devel@lists.sourceforge.net. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Fix assorted dma_addr_t typing errors From: Alan Cox Subject: PATCH: Fix assorted dma_addr_t typing errors in ipr driver Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Properly enable/disable TCQ This patch correctly enables tagged command queuing for the ipr driver. I had misinterpreted scsi_mid_low_api.txt. The following patch has the appropriate scsi_activate_tcq/scsi_deactivate_tcq calls. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Sparse warnings fixes From: Mika Kukkonen The following patch fixes some sparse warnings. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Dead adapter I/O hang fix The following patch fixes a hang in i/o that could occur if an adapter was ever declared "dead" by the ipr driver due to repeated failed attempts to revive the card. The patch now allows ipr to fail new commands when in this state rather than endlessly return SCSI_MLQUEUE_HOST_BUSY. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Set allow_restart for disk devices only This fixes ipr to only allow eh initiated start_unit commands following erp to disk devices. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: Don't log adapter shutdown error response code The following patch adds an adapter response code to the table in the driver to prevent an error from being logged when this response is received. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] ipr: replace schedule_timeout() with msleep() From: Nishanth Aravamudan Subject: [PATCH] scsi/ipr: replace schedule_timeout() with msleep() Description: Use msleep() instead of schedule_timeout() to guarantee the task delays for the desired time. Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] aacraid patch for new device support Here is a patch from Adaptec for new adapter support. Signed-off-by: Mark Haverkamp Signed-off-by: James Bottomley [PATCH] SCSI gdth: kill #define __devinitdata I got the following warning in 2.6.8-rc3-mm2: <-- snip --> ... CC drivers/scsi/gdth.o drivers/scsi/gdth.c:622:1: warning: "__devinitdata" redefined In file included from include/linux/moduleparam.h:4, from include/linux/module.h:20, from drivers/scsi/gdth.c:375: include/linux/init.h:227:1: warning: this is the location of the previous definition ... <-- snip --> The #define in question seems bogus, and the following patch simply removes it: Signed-off-by: Adrian Bunk Signed-off-by: James Bottomley [PATCH] Re: 2.6.8-rc3-mm2: Debug: sleeping function called from invalid > Andrew Vasquez wrote: > > > > >This allocation should be done with GFP_ATOMIC flags. The attached > >patch should apply cleanly to any recent kernel > > > > and seems to work fine. > Signed-off-by: James Bottomley [PATCH] aacraid driver update Here are some changes from Adaptec for the AACRAID driver. Change the pae_support flag to dac_support. This was suggested sometime last year and never made it in. Fix some cast problems in pci_set_dma_mask. Was casting the mask to dma_addr_t when it should be a u64. Fix SCp.ptr problem, should be SCp.dma_handle. Applies to the scsi-misc bk tree. Signed-off by: Mark Haverkamp Signed-off-by: James Bottomley AUTOSENSE bug in NCR5380.c From: Kenn Humborg round line 2470 in NCR5380.c, if a command fails, and AUTOSENSE is on, the current command is converted into a REQUEST_SENSE command and put at the top of the request queue. Part of this setup, is setting up cmd->SCp to point at the sense_buffer, so that the received sense data goes straight into the sense buffer. Around line 1730, NCR5380_select() calls initialize_SCp() which ends up clobbering cmd->SCp, and the sense data get written into the original request buffer. This is what happens if cmd->use_sg = 0. I haven't looked at what happens if use_sg is non-zero, but I expect the effect will be the same. Signed-off-by: James Bottomley [PATCH] switch sd numbering to idr Switch sd.c device number allocation to use idr, this limits memory usage for lowend setups and highend setups are only limited by the available names now. Signed-off-by: James Bottomley ALSA CVS update PCM Midlevel Serialize runtime->status->state access Signed-off-by: Jaroslav Kysela ALSA CVS update Intel8x0-modem driver Added SiS, NVidia modem descriptions Signed-off-by: Jaroslav Kysela ALSA CVS update AC97 Codec Core Don't use mute bit in REC_GAIN register during tests. We have at least one case when the mute bit is zero. Signed-off-by: Jaroslav Kysela ALSA CVS update PCM Midlevel Fixed cut-n-paste typo Signed-off-by: Jaroslav Kysela ALSA CVS update AC97 Codec Core Add more timeout to avoid not respond messages Signed-off-by: Jaroslav Kysela ALSA CVS update USB generic driver add support for Yamaha CVP-301, CVP-303, CVP-305, CVP-307, CVP-309, CVP-309GP, PSR-1500, PSR-3000, ELS-01, ELS-01C, PSR-295, PSR-293, DGX-205, DGX-203, DGX-305, DGX-505, DGP-7, DGP-5, PM5D, DME64N, DME24N, DTX, UB99 Signed-off-by: Clemens Ladisch version.h: ALSA 1.0.6 [PPC32] Default to conswitchp=&dummy_con if DUMMY_CONSOLE. Signed-off-by: Tom Rini ppc32: Fix MPC8260 with an initrd and no root=/dev/ram0 Signed-off-by: Tom Rini ppc32: Introduce a have_residual_data macro and switch to it. This is mainly to avoid my additions adding loads of ugly #ifdef CONFIG_RESIDUAL_DATA sections. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini This allows use of the IBM status LED if it's found in the residual data, plus a couple of other bells and whistles. It removes the 140-specific code. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: On PReP, use residual data for PCI dev -> IRQ, and use it. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: On PReP, allow for residual data to provide IRQ level/edge info This adds a function to determine the 8259 level/edge mask word. With this function we can now (in theory) support any IBM PReP machine. We therefore add a little bit more code to fallback to using residual data if we don't recognise the machine. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Use residual data to determine the addr to pass i8259_init() Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Add support for PCIBridgeRS6K to prep_find_bridges(). Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Fixup the OpenPIC code for older implementations. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: The planar id is only 1 byte, so only display that much. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Correct the output of /proc/interrupts on PReP. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini [TIGON3]: Mention that firmware is copyrighted by Broadcom. MPT Fusion driver 3.01.15 update Highlights of this release: - Patch provided by Christoph Hellwig to remove the isense code. - Fix compile errors when CONFIG_PROC_FS=n. - A fix for the module parameter "mptscsih" which was not being exported. - The port of the 2.05.17 thru 2.05.23 of the lk 2.4 mpt driver. Signed-off-by: James Bottomley [TG3]: Revamp fibre PHY handling. - Clearly seperate hw-assisted vs. by-hand handling. - Seperate PHY ID vs. Serdes state. Should fix 5704 Fibre brokenness introduced by Sun patches. Signed-off-by: David S. Miller [PATCH] reorder call in scsi_remove_host This patch against scsi-misc-2.6 reorders a call to scsi_forget_host in the scsi_remove_host function. This removes the error message "Synchronizing SCSI cache..." on rmmod of a scsi host driver module as shown in example output 1 and 2 below. I had previous created a much more complicated patch to work around this problem. In response Christoph mention a simpler solution (pointer to thread below) which is this patch. http://marc.theaimsgroup.com/?l=linux-scsi&m=108720042210331&w=2 Example output. 1.) Before patch. elm:~# scsi1 : scsi_debug, version 1.73 [20040518], dev_size_mb=8, opts=0x0 Vendor: Linux Model: scsi_debug Rev: 0004 Type: Direct-Access ANSI SCSI revision: 03 SCSI device sdc: 16384 512-byte hdwr sectors (8 MB) SCSI device sdc: drive cache: write back sdc: unknown partition table Attached scsi disk sdc at scsi1, channel 0, id 0, lun 0 Attached scsi generic sg4 at scsi1, channel 0, id 0, lun 0, type 0 Synchronizing SCSI cache for disk sdc: <4>FAILED status = 0, message = 00, host = 1, driver = 00 2.) After patch. elm:~# scsi1 : scsi_debug, version 1.73 [20040518], dev_size_mb=8, opts=0x0 Vendor: Linux Model: scsi_debug Rev: 0004 Type: Direct-Access ANSI SCSI revision: 03 SCSI device sdc: 16384 512-byte hdwr sectors (8 MB) SCSI device sdc: drive cache: write back sdc: unknown partition table Attached scsi disk sdc at scsi1, channel 0, id 0, lun 0 Attached scsi generic sg4 at scsi1, channel 0, id 0, lun 0, type 0 Synchronizing SCSI cache for disk sdc: Signed-off-by: Mike Anderson Signed-off-by: James Bottomley [PCMCIA] Fix case of two "skt" variables. We want the value preserved across both sections of code such that the cleanup works as expected. Add new Megaraid driver version 2.20.0.1 From: Mukker, Atul This is a complete re-write to replace the now obsoleted megaraid2 driver. Signed-off-by: James Bottomley ppc32: Add a 'noresidual' option, to ignore residual data. Signed-off-by: Leigh Brown Signed-off-by: Tom Rini ppc32: Fix an LSB floating-point test failure. Signed-off-by: Greg Weeks under TS0087 Signed-off-by: Tom Rini ppc32: Make use of cpufeatures in some flush rountines This is based on an observation from Pantelis Antoniou. We get a minor speedup of flush_icache_range, __flush_dcache_icache and __flush_dcache_icache_phys, in that we do not need to do this on CPUs with a unified cache (601), so check for that feature bit instead of a PVR check. Signed-off-by: Tom Rini [ACPI] ia64 build fix Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] various issues in the IA64 swiotlb code The biggest change is better overflow handling, partly ported from the AMD64 IOMMU code. This is important for some 3d drivers who make use of this and can map a lot of memory. First it increases the default memory usage of swiotlb to 64MB. This was the value used in production systems in 2.4 (e.g. in SLES8) and the default was far too small. Note this is only allocated when the swiotlb is needed. pci_map_single will not panic anymore on an overflow. Instead it returns a pointer to a scratch area and allows the caller to check using dma_mapping_error(). It still panics when the overflow buffer is exceeded. dma_mapping_error support is implemented. pci_map_sg will never panic now, but just return 0. Near all callers of it seem to have proper error checking for this (IDE will even handle it without erroring out) The handling of passing a NULL device is improved, previously it would never map in this case. i386 and other architectures assume NULL means a 4GB limit instead. This code does this now too. I added support for swiotlb=force for easier testing. Patch supplied by Andi Kleen & Suresh Siddha Signed-off-by: Tony Luck [IA64] floating point regs are not 16-byte aligned inside SAL error record Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck [IA64] still declares deleted acpi_register_irq. Signed-off-by: Andreas Schwab Signed-off-by: Tony Luck [IA64-SGI] Assign parent to PCI devices. In working on the patch to export PCI ROM space via sysfs, I found that the sn2 PCI code doesn't assign a parent resource to any of the PCI device resources as it builds them. This provides a simple fix for that problem. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64-SGI] bte.c: kill expression as lvalue warning A recent patch caused a warning about not using expressions as lvalues to crop up in bte.c (or maybe it's just that I'm using gcc-3.4.1 now). This patch fixes it by creating a temporary to store the register whose address we want to get and stuff into the per-bte info structure. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64-SGI] The SN2 fakeprom directories/files should be deleted. Signed-off-by: Jack Steiner Signed-off-by: Tony Luck [IA64] ia32_support.c: Check whether page_alloc failed. It's pretty unlikely these page allocations would fail, but we should still check them. Signed-off-by: Greg Edwards Signed-off-by: Tony Luck [IA64] time.c: Downgrade printk of cpu speed to KERN_DEBUG This patch turns the per-CPU frequency printk into a KERN_DEBUG instead of a KERN_INFO so it'll show up in the system log but won't be printed at boot, since it's a big pain on system with a lot of CPUs. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64-SGI] report coherence id in /proc/sgi_sn/coherence_id Current SGI Altix systems have a NUMAlink domain size of 1024 compute nodes and are fully cache coherent up to 256 compute nodes (compute nodes are even-numbered). Systems larger than 256 nodes are partitioned into multiple cache coherent systems. This patch exports a partition's coherence id to users via the /proc/sgi_sn/coherence_id file. Signed-off-by: Dean Roe Signed-off-by: Tony Luck [IA64] cyclone.c: Add includes for build on uni-processor. Small patch to fix the includes for the cyclone timer. We just happen to be getting these if CONFIG_SMP is on, but if it's turned off the build breaks. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [IA64] head.S: update comments to match code Update comments in function ia64_switch_mode_virt() to reflect actual implementation from recent region 5 init_task bug fix. Signed-off-by: Ken Chen Signed-off-by: Tony Luck ppc32: Move ppc32-specific sysctls to arch/ppc Remove both of the PPC32 && 6xx sysctls from kernel/sysctl.c to arch/ppc/ Signed-off-by: Tom Rini JFS: disk quota support This patch adds disk quota support to jfs. A patch is required for quota-tools to work with jfs. It can be found at http://oss.software.ibm.com/jfs/project/pub/quota-tools.patch Quota tools source can be downloaded from https://sourceforge.net/projects/linuxquota/ Written by: Karl Rister & Dave Kleikamp Signed-off-by: Dave Kleikamp Fix the new megaraid compat code to work on all 64 bit systems make it universally include linux/ioctl32.h for its compat ioctl. This fixes a build failure on parisc64 Signed-off-by: James Bottomley [ACPI] ia64 build fix Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck [TG3]: Remove autoneg handling from fibre_autoneg() unneeded. Signed-off-by: David S. Miller [TG3]: Always set MAC_EVENT_LNKSTATE_CHANGED even when serdes polling. Signed-off-by: David S. Miller Cset exclude: davem@nuts.davemloft.net|ChangeSet|20040817010613|52352 [TG3]: Do tg3_netif_start() under lock. Signed-off-by: David S. Miller [TG3]: Disable CIOBE split, as per Broadcom's driver. Signed-off-by: David S. Miller [PATCH] megaraid build fix drivers/scsi/megaraid/megaraid_mm.c: In function `mraid_mm_init': drivers/scsi/megaraid/megaraid_mm.c:1069: `mraid_mm_compat_ioctl' undeclared (first use in this function) drivers/scsi/megaraid/megaraid_mm.c:1069: (Each undeclared identifier is reported only once drivers/scsi/megaraid/megaraid_mm.c:1069: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: James Bottomley CIFS: fix 64 bit compiler warning in cifs debug code Signed-off-by: Steve French (sfrench@us.ibm.com) get the kernel to warn about deprecated SCSI ioctls The non unique SCSI ioctls: SCSI_IOCTL_SEND_COMMAND SCSI_IOCTL_TEST_UNIT_READY SCSI_IOCTL_BENCHMARK_COMMAND SCSI_IOCTL_SYNC SCSI_IOCTL_START_UNIT SCSI_IOCTL_STOP_UNIT Have been deprecated for a while now. We should make the kernel complain when a program actually uses one of them, so users have had adequate warning before they are removed. Signed-off-by: James Bottomley [PATCH] Allow TCQ depth to be lowered properly Ran into a couple small issues with the patch. First, blk_queue_resize_tags wasn't getting exported, so I sent Jens a patch to fix this, which he has now sent upstream. Second, the comment above blk_queue_resize_tags says the queue_lock must be held when calling this routine. Attached is an updated patch that grabs the lock. Other than that, it looks good. James Bottomley wrote: > On Tue, 2004-08-03 at 10:50, Brian King wrote: >>Currently, it is possible to call scsi_activate_tcq with a small queue depth, >>then later call scsi_adjust_queue_depth with a larger queue depth. This results >>in the scsi layer having a larger queue depth than the block layer knows about. >>This results in these additional commands being issued as untagged ops rather than >>tagged ops. This patch changes scsi_activate_tcq to call blk_queue_init_tags with >>the maximum supported number of tags so this cannot occur. > > > Sorry, been away at conferences with not enough time to remember what > went on here. > > The reason it looks the way it does is historical...when the blk layer > tcq interfaces were created, there was no way to resize the queue. Jens > later added resize (for me) and I forgot to incorporate it into the > code. > > Another small point is that the max number of tags can be greater than > 256. 256 is a SPI limit only (and even the qla1280, a SPI card which > could use the tag as its global queue index would take > 256). The > limit in scsi_adjust_queue_depth has long since been obsoleted by our > dynamic command allocation. > > I think the attached should work correctly (as long as it compiles...I > coded it up on the flight home). Signed-off-by: Brian King Signed-off-by: James Bottomley [PATCH] fix for Domain Validation hang on some devices with sym_2 There's a bad hang where the driver locks the system solid trying to do domain validation with certain devices. The one I've managed to reproduce it with is a Quantum Atlas. What happens is that setting the offset to zero is an async negotiation message. However, the driver still seems to have DT set (which is illegal). Most devices just reject this as stupid, but the Quantum seems to try to obey it and hangs the bus. The simple fix is to reset all PPR options when the offset is set to zero. Signed-off-by: James Bottomley JFS: Trivial: remove dead code Signed-off-by: Dave Kleikamp [PATCH] fix qla1280 build on visws From: Andrey Panin attached patch fixes qla1280 SCSI driver build failure on visws due to undefined RD_REG_WORD_dmasync() macro. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley CIFS: Workaround Samba bug in incorrectly setting extended security flag in negotiate response (which caused mounts to fail to Samba server which have short, one or two byte, domain names). Signed-off-by: Steve French (sfrench@us.ibm.com) CIFS: xsymlink support part 1 of 2 Signed-off-by: Steve French (sfrench@us.ibm.com) [PATCH] kill tmscsim ->proc_info hrrible code like all proc_info implementations and no really usefull information. We might want to add sysfs attributes if some users really miss anything. Signed-off-by: James Bottomley [PATCH] clean up some more tmscsim scan logic - cleanup checks in ->queuecommand, we only get here either for inquiry or a found device now - DCBmap in the acb is gone, was only used for debug prints after the prevous changes - kill some more debugging keyed of by ->scan_devices Signed-off-by: James Bottomley [PATCH] tmscsim: remove unused / redundant bios_param Signed-off-by: James Bottomley [PATCH] add ssleep(), kill scsi_sleep() So, the kernel needs a 'sleep', but that token is far too common, so I chose ssleep(). scsi_sleep() is a manually implemented msleep(), so I remove it. Signed-off-by: James Bottomley Add accessor functons for scsi_device 56 byte inquiry data Signed-off-by: James Bottomley fix sym2 negotiation The problems with domain validation were just the tip of the iceberg in the sym2 driver. Most of its problems seem to come from an overly complex set of negotiating rules, which I've swept away with this patch. I also removed the ability to set parameters in the on-board bios and have the driver respect them. (this hasn't worked for a while in 2.6 because after the driver sets them, Domain Validation resets them again). Finally, there was a really nasty bug where the driver negotiates improperly when turning off DT clocking. If you simply turn it off, the driver originally fell back to using the old WDTR/SDTR method of negotiation. However, since it thought the bus was already wide, it only emitted a SDTR, which causes the device to reset from wide to narrow. Hence the driver thinks the device is wide and the device thinks it is narrow => boom. I redid the negotiation to predicate PPR messages on whether the device claims support for them or not. Signed-off-by: James Bottomley [PCMCIA] Use struct resource rather than sys_start/sys_stop Convert 16-bit PCMCIA socket drivers to use the struct resource rather than the sys_start and sys_stop members of pccard_mem_map. [PCMCIA] Convert PCI socket drivers to use struct resource. Convert PCI socket drivers to use the resource passed in rather than pccard_mem_map's sys_start and sys_stop elements. This also means that we convert the struct resource to a PCI bus region, thereby performing any platform specific fixups which may be necessary. [PCMCIA] Don't use sys_start for static-mapped sockets. Add static_start element to pccard_mem_map - which is used by statically mapped sockets to return the physical address which should be used to access the memory region. [PCMCIA] Remove pccard_mem_map's sys_start and sys_stop elements. Update to megaraid version 2.20.3.0 From: Mukker, Atul Signed-off-by: James Bottomley [PATCH] nsc-ircc driver crashes on shutdown From: Petr Vandrovec bk-dma-decleare-coherent-memory patch adds a requirement for dma_free_coherent that dev cannot be NULL... But it can (nsc-ircc has no suitable dev) and as dma_alloc_coherent allows NULL dev, dma_free_coherent should allow it too IMHO. Signed-off-by: Andrew Morton Signed-off-by: James Bottomley We weren't including from , so _IO_BASE was defined to zero instead of isa_io_base. Signed-Off-By: David Woodhouse Signed-Off-By: Tom Rini KREF: make kref_get() return void as it makes sense to do so. Thanks to Kiran for bugging me to do this. Signed-off-by: Greg Kroah-Hartman [PATCH] Remove struct bus_type->add() I recently went looking for users of the add() method in struct bus_type, only to discover that there are none. A query to Pat confirmed that it is surplus and should come out. So here's a patch that does it. While I was at it, I updated Documentation/driver-model/bus.txt to at least get rid of the blatantly untrue stuff; it is still rather far from being up to date, however. I may be able to fix that later on. Signed-off-by: Jonathan Corbet Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman [CPUFREQ] Introduce some defines for the longhaul version, and use them. This makes some of the code quite a bit cleaner, and a lot more obvious whats going on on which CPUs. Signed-off-by: Dave Jones [CPUFREQ] Powersaver also has voltage scaling abilities. We currently don't do voltage scaling, but we can at least set things up to prepare for when we do. Signed-off-by: Dave Jones [CPUFREQ] Remove extraneous comment Signed-off-by: Dave Jones ppc32: Fix a compile error when CONFIG_PREP && !CONFIG_PREP_RESIDUAL Signed-off-by: Tom Rini ppc32: Fix a typo in cputable.c Signed-off-by: Tom Rini [CPUFREQ] Prettyprint longhaul speeds. If its >= 1000MHz print it as GHz. Signed-off-by: Dave Jones [CPUFREQ] Further cleanups to longhaul driver using defines. By defining the cpu type at startup, we can make a lot of comparisons a lot more obvious what they are meaning. Signed-off-by: Dave Jones [CPUFREQ] fix up random CodingStyle /whitespace regressions. Signed-off-by: Dave Jones [CPUFREQ] Samuel2 can use eblcr to determine FSB. From: Sven Traenkle. here's a patch that solves some issues I have with the longhaul cpufreq driver on my epia 6000CL/Via EDEN (actually reporting as CentaurHauls, family 6, model 7, VIA Samuel 2). The driver tries to compute the fsb speed while it could actually use the fixed values (as it does for model == 6). I got this change from the via forum, so no credits to me. Signed-off-by: Dave Jones [CPUFREQ] Fix reset-to-max-speed on unloading of longhaul driver. From: Sven Traenkle The second part adresses a problem of resetting the max cpu-freq when unloading the driver. This didn't work for my cpu and I doubt it does for other. There is no need to pass the computed index of the max. multiplier in the clock_ratio[] table to longhault_table[] cause the longhaul_setstate function works with the clock_ratio[] index. Changing the while loop to a for loop with upper limit isn't actually necessary as long as the driver is bug free, but thats IMHO not yet the case, so I suggest this change in order to not loop endlessly or read beyond the limits of the clock_ratio array. Signed-off-by: Dave Jones [CPUFREQ] Merge on-demand cpufreq policy governor. From: "Pallipadi, Venkatesh" Signed-off-by: Dave Jones [CPUFREQ] Work around some broken userspace daemons. Some daemons try to set the speed to the same speed we're currently running at. Detect that, and bail out early before we fiddle with registers and such. Signed-off-by: Dave Jones [PATCH] sched: fix timeslice calculations for HZ=1000. The main benefit is that with the default HZ=1000 nice +19 tasks now get 5 msecs of timeslices, so the ratio of CPU use is linear. (nice 0 task gets 20 times more CPU time than a nice 19 task. Prior this change the ratio was 1:10) another effect is that nice 0 tasks now get a round 100 msecs of timeslices (as intended), instead of 102 msecs. here's a table of old/new timeslice values, for HZ=1000 and 100: HZ=1000 ( HZ=100 ) old new ( old new ) nice -20: 200 200 ( 200 200 ) nice -19: 195 195 ( 190 190 ) ... nice 0: 102 100 ( 100 100 ) nice 1: 97 95 ( 90 90 ) nice 2: 92 90 ( 90 90 ) ... nice 17: 19 15 ( 10 10 ) nice 18: 14 10 ( 10 10 ) nice 19: 10 5 ( 10 10 ) i've tested the patch on x86. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: cleanup init_idle() Clean up init_idle to not use wake_up_forked_process, then undo all the stuff that call does. Instead, do everything in init_idle. Make double_rq_lock depend on CONFIG_SMP because it is no longer used on UP. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: cleanup, improve sched <=> fork APIs Move balancing and child-runs-first logic from fork.c into sched.c where it belongs. * Consolidate wake_up_forked_process and wake_up_forked_thread into wake_up_new_process, and pass in clone_flags as suggested by Linus. This removes a lot of code duplication and allows all logic to be handled in that function. * Don't do balance-on-clone balancing for vfork'ed threads. * Don't do set_task_cpu or balance one clone in wake_up_new_process. Instead do it in sched_fork to fix set_cpus_allowed races. * Don't do child-runs-first for CLONE_VM processes, as there is obviously no COW benifit to be had. This is a big one, it enables Andi's workload to run well without clone balancing, because the OpenMP child threads can get balanced off to other nodes *before* they start running and allocating memory. * Rename sched_balance_exec to sched_exec: hide the policy from the API. From: Ingo Molnar rename wake_up_new_process -> wake_up_new_task. in sched.c we are gradually moving away from the overloaded 'process' or 'thread' notion to the traditional task (or context) naming. Signed-off-by: Nick Piggin Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] kernel thread idle fix Now that init_idle does not remove tasks from the runqueue, those architectures that use kernel_thread instead of copy_process for the idle task will break. To fix, ensure that CLONE_IDLETASK tasks are not put on the runqueue in the first place. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: misc cleanups #2 - fix two stale comments - cleanup Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: make rt_task unlikely From: Ingo Molnar RT tasks are unlikely, move this into rt_task() instead of open-coding it. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: sched misc changes Add some likely/unliklies, a for_each_cpu => for_each_cpu_online, and close the sched_exit race. From: Ingo Molnar fix a typo in a previous patch breaking RT scheduling & interactivity. Signed-off-by: Nick Piggin Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: disable balance on clone Don't balance on clone by default. Balance on clone has a number of trivial performance failure cases, but it was needed to get decent OpenMP performance on NUMA (Opteron) systems. Not doing child-runs-first for new threads also solves this problem in a nicer way (implemented in a previous patch). Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: remove balance on clone This removes balance on clone capability altogether. I told Andi we wouldn't remove it yet, but provided it is in a single small patch, he mightn't get too upset. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: fork hotplug hanling cleanup - remove the hotplug lock from around much of fork(), and re-copy the cpus_allowed mask to solve the hotplug race cleanly. Signed-off-by: Ingo Molnar Signed-off-by: Srivatsa Vaddagiri Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: consolidate sched domains Teach the generic domains builder about SMT, and consolidate all architecture specific domain code into that. Also, the SD_*_INIT macros can now be redefined by arch code without duplicating the entire setup code. This can be done by defining ARCH_HASH_SCHED_TUNE. The generic builder has been simplified with the addition of a helper macro which will probably prove to be useful to arch specific code as well and should be exported if that is the case. Signed-off-by: Nick Piggin From: Matthew Dobson The attached patch is against 2.6.8-rc2-mm2, and removes Nick's conditional definition & population of cpu_sibling_map[] in favor of my unconditional ones. This does not affect how cpu_sibling_map is used, just gives it broader scope. From: Nick Piggin Small fix to sched-consolidate-domains.patch picked up by From: Suresh another sched consolidate domains fix From: Nick Piggin Don't use cpu_sibling_map if !CONFIG_SCHED_SMT This one spotted by Dimitri Sivanich Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: limit cpuspan of node scheduler domains This patch limits the cpu span of each node's scheduler domain to prevent balancing across too many cpus. The cpus included in a node's domain are determined by the SD_NODES_PER_DOMAIN define and the arch specific sched_domain_node_span routine if ARCH_HAS_SCHED_DOMAIN is defined. If ARCH_HAS_SCHED_DOMAIN is not defined, behavior is unchanged--all possible cpus will be included in each node's scheduling domain. Currently, only ia64 provides an arch specific sched_domain_node_span routine. From: Jesse Barnes This patch adds some more NUMA specific logic to the creation of scheduler domains. Domains spanning all CPUs in a large system are too large to schedule across efficiently, leading to livelocks and inordinate amounts of time being spent in scheduler routines. With this patch applied, the node scheduling domains for NUMA platforms will only contain a specified number of nearby CPUs, based on the value of SD_NODES_PER_DOMAIN. It also allows arches to override SD_NODE_INIT, which sets the domain scheduling parameters for each node's domain. This is necessary especially for large systems. Possible future directions: o multilevel node hierarchy (e.g. node domains could contain 4 nodes worth of CPUs, supernode domains could contain 32 nodes worth, etc. each with their own SD_NODE_INIT values) o more tweaking of SD_NODE_INIT values for good load balancing vs. overhead tradeoffs From: mita akinobu Compile fix Signed-off-by: Jesse Barnes Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: isolated sched domains Here's a version of the isolated scheduler domain code that I mentioned in an RFC on 7/22. This patch applies on top of 2.6.8-rc2-mm1 (to include all of the new arch_init_sched_domain code). This patch also contains the 2 line fix to remove the check of first_cpu(sd->groups->cpumask)) that Jesse sent in earlier. Note that this has not been tested with CONFIG_SCHED_SMT. I hope that my handling of those instances is OK. Signed-off-by: Dimitri Sivanich Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] Create cpu_sibling_map for PPC64 In light of some proposed changes in the sched_domains code, I coded up this little ditty that simply creates and populates a cpu_sibling_map for PPC64 machines. The patch just checks the CPU flags to determine if the CPU supports SMT (aka Hyper-Threading aka Multi-Threading aka ...) and fills in a mask of the siblings for each CPU in the system. This should allow us to build sched_domains for PPC64 with generic code in kernel/sched.c for the SMT systems. SMT is becoming more popular and is turning up in more and more architectures. I don't think it will be too long until this feature is supported by most arches... Signed-off-by: Matthew Dobson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: adjust p4 per-cpu gain The smt-nice handling is a little too aggressive by not estimating the per cpu gain as high enough for pentium4 hyperthread. This patch changes the per sibling cpu gain from 15% to 25%. The true per cpu gain is entirely dependant on the workload but overall the 2 species of Pentium4 that support hyperthreading have about 20-30% gain. P.S: Anton - For the power processors that are now using this SMT nice infrastructure it would be worth setting this value separately at 40%. Signed-off-by: Con Kolivas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] scheduler statistics It adds lots of CPU scheduler stats in /proc/pid/stat. They are described in the new Documentation//sched-stats.txt We were carrying this patch offline for some time, but as there's still considerable ongoing work in this area, and as the new stats are a configuration option, I think it's best that this capability be in the base kernel. Nick removed a fair amount of statistics that he wasn't using. The full patch gathers more information. In particular, his patch doesn't include the code to measure the latency between the time a process is made runnable and the time it hits a processor which will be key to measuring interactivity changes. He passed his changes back to me and I got finished merging his changes with the current statistics patches just before OLS. I believe this is largely a superset of the patch you grabbed and should port relatively easily too. Versions also exist for 2.6.8-rc2 2.6.8-rc2-mm1 2.6.8-rc2-mm2 at http://eaglet.rain.com/rick/linux/schedstat/patches/ and within 24 hours at http://oss.software.ibm.com/linux/patches/?patch_id=730&show=all The version below is for 2.6.8-rc2-mm2 without the staircase code and has been compiled cleanly but not yet run. From: Ingo Molnar this code needs a couple of cleanups before it can go into mainline: fs/proc/array.c, fs/proc/base.c, fs/proc/proc_misc.c: - moved the new /proc//stat fields to /proc//schedstat, because the new fields break older procps. It's cleaner this way anyway. This moving of fields necessiated a bump to version 10. Documentation/sched-stats.txt: - updated sched-stats.txt for version 10 - wake_up_forked_thread() => wake_up_new_task() - updated the per-process field description Kconfig: - removed the default y and made the option dependent on DEBUG_KERNEL. This is really for scheduler analysis, normal users dont need the overhead. include/linux/sched.h: - moved the definitions into kernel/sched.c - this fixes UP compilation and is cleaner. - also moved the sched-domain definitions to sched.c - now that the sched-domains internals are not exposed to architectures this is doable. It's also necessary due to the previous change. kernel/fork.c: - moved the ->sched_info init to sched_fork() where it belongs. kernel/sched.c: - wake_up_forked_thread() -> wake_up_new_task(), wuft_cnt -> wunt_cnt, wuft_moved -> wunt_moved. - wunt_cnt and wunt_moved were defined by never updated - added the missing code to wake_up_new_task(). - whitespace/style police - removed whitespace changes done to code not related to schedstats - i'll send a separate patch for these (and more). Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] move CONFIG_SCHEDSTATS to arch/ppc64/Kconfig.debug Otherwise it shows up under "iSeries device drivers", which doesn't seem right. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: consolidate init_idle() and fork_by_hand() It appears that init_idle() and fork_by_hand() could be combined into a single method that calls init_idle() on behalf of the caller. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: sparc32 fixes Fix up sparc32 properly. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] schedstat: UP fix SMP fix -- for_each_domain() is not defined if not CONFIG_SMP, so show_schedstat needed a couple of extra ifdefs. Signed-off-by: Rick Lindsley Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: whitespace cleanups - whitespace and style cleanups Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: nonlinear timeslices * Nick Piggin wrote: > Increasing priority (negative nice) doesn't have much impact. -20 CPU > hog only gets about double the CPU of a 0 priority CPU hog and only > about 120% the CPU time of a nice -10 hog. this is a property of the base scheduler as well. We can do a nonlinear timeslice distribution trivially - the attached patch implements the following timeslice distribution ontop of 2.6.8-rc3-mm1: [ -20 ... 0 ... 19 ] => [800ms ... 100ms ... 5ms] the nice-20/nice+19 ratio is now 1:160 - sufficient for all aspects. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: new task fix Rusty noticed that we update the parent ->avg_sleep without holding the runqueue lock. Also the code needed cleanups. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] permit sleeping in release_task() release_task() calls proc_pid_flush() call dput(), which can sleep. But that's a late-in-exit no-preempt path with CONFIG_PREEMPT. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: self-reaping atomicity fix disable preemption in the self-reap codepath, as such tasks may not be on the tasklist anymore and CPU-hotplug relies on the tasklist to migrate tasks. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sched: smt fixes while looking at HT scheduler bugreports and boot failures i discovered a bad assumption in most of the HT scheduling code: that resched_task() can be called without holding the task's runqueue. This is most definitely not valid - doing it without locking can lead to the task on that CPU exiting, and this CPU corrupting the (ex-) task_info struct. It can also lead to HT-wakeup races with task switching on that other CPU. (this_CPU marking the wrong task on that_CPU as need_resched - resulting in e.g. idle wakeups not working.) The attached patch against fixes it all up. Changes: - resched_task() needs to touch the task so the runqueue lock of that CPU must be held: resched_task() now enforces this rule. - wake_priority_sleeper() was called without holding the runqueue lock. - wake_sleeping_dependent() needs to hold the runqueue locks of all siblings (2 typically). Effects of this ripples back to schedule() as well - in the non-SMT case it gets compiled out so it's fine. - dependent_sleeper() needs the runqueue locks too - and it's slightly harder because it wants to know the 'next task' info which might change during the lock-drop/reacquire. Ripple effect on schedule() => compiled out on non-SMT so fine. - resched_task() was disabling preemption for no good reason - all paths that called this function had either a spinlock held or irqs disabled. Compiled & booted on x86 SMP and UP, with and without SMT. Booted the SMT kernel on a real SMP+HT box as well. (Unpatched kernel wouldn't even boot with the resched_task() assert in place.) Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] i386 virtual memory layout rework Rework the i386 mm layout to allow applications to allocate more virtual memory, and larger contiguous chunks. - the patch is compatible with existing architectures that either make use of HAVE_ARCH_UNMAPPED_AREA or use the default mmap() allocator - there is no change in behavior. - 64-bit architectures can use the same mechanism to clean up 32-bit compatibility layouts: by defining HAVE_ARCH_PICK_MMAP_LAYOUT and providing a arch_pick_mmap_layout() function - which can then decide between various mmap() layout functions. - I also introduced a new personality bit (ADDR_COMPAT_LAYOUT) to signal older binaries that dont have PT_GNU_STACK. x86 uses this to revert back to the stock layout. I also changed x86 to not clear the personality bits upon exec(), like x86-64 already does. - once every architecture that uses HAVE_ARCH_UNMAPPED_AREA has defined its arch_pick_mmap_layout() function, we can get rid of HAVE_ARCH_UNMAPPED_AREA altogether, as a final cleanup. the new layout generation function (__get_unmapped_area()) got significant testing in FC1/2, so i'm pretty confident it's robust. Compiles & boots fine on an 'old' and on a 'new' x86 distro as well. The two known breakages were: http://www.redhatconfig.com/msg/67248.html [ 'cyzload' third-party utility broke. ] http://www.zipworld.com/au/~akpm/dde.tar.gz [ your editor broke :-) ] both were caused by application bugs that did: int ret = malloc(); if (ret <= 0) failure; such bugs are easy to spot if they happen, and if it happens it's possible to work it around immediately without having to change the binary, via the setarch patch. No other application has been found to be affected, and this particular change got pretty wide coverage already over RHEL3 and exec-shield, it's in use for more than a year. The setarch utility can be used to trigger the compatibility layout on x86, the following version has been patched to take the `-L' option: http://people.redhat.com/mingo/flexible-mmap/setarch-1.4-2.tar.gz "setarch -L i386 " will run the command with the old layout. From: Hugh Dickins The problem is in the flexible mmap patch: arch_get_unmapped_area_topdown is liable to give your mmap vm_start above TASK_SIZE with vm_end wrapped; which is confusing, and ends up as that BUG_ON(mm->map_count). The patch below stops that behaviour, but it's not the full solution: wilson_mmap_test -s 1000 then simply cannot allocate memory for the large mmap, whereas it works fine non-top-down. I think it's wrong to interpret a large or rlim_infinite stack rlimit as an inviolable request to reserve that much for the stack: it makes much less VM available than bottom up, not what was intended. Perhaps top down should go bottom up (instead of belly up) when it fails - but I'd probably better leave that to Ingo. Or perhaps the default should place stack below text (as WLI suggested and ELF intended, with its text defaulting to 0x08048000, small progs sharing page table between stack and text and data); with a further personality for those needing bigger stack. From: Ingo Molnar - fall back to the bottom-up layout if the stack can grow unlimited (if the stack ulimit has been set to RLIM_INFINITY) - try the bottom-up allocator if the top-down allocator fails - this can utilize the hole between the true bottom of the stack and its ulimit, as a last-resort effort. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] flexmmap patchkit: fix for 32 bit emu for 64 bit arches Utz Lehmann found a problem with the flexmmap patches on x86-64, what he is seeing is that the 32 bit personality isn't set at the first point of setting the allocator strategy. The solution is simple, in binfmt_elf the personality is set so put the pick-layout function there. Please consider, Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] sysctl tunable for flexmmap Create /proc/sys/vm/legacy_va_layout. If this is non-zero, the kernel will use the old mmap layout for all tasks. it presently defaults to zero (the new layout). From: William Lee Irwin III hugetlb CONFIG_SYSCTL=n fix Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] flex mmap for s390(x) Below is a patch from Pete Zaitcev (zaitcev@redhat.com) to also use the flex mmap infrastructure for s390(x). The IBM Domino guys *really* seem to want this. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] flexible-mmap for ppc64 From: Implement the new address space layout for 32-bit apps running on ppc64. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] uml: Uml base patch The main part of UML; it is the last distributed patch for 2.6.7 Removes skas support from the main UML patch; apply or get conflicts. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Cc: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] UML: remove the COW block driver The code is still there but it's not built. Below is a patch which removes it totally. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [PATCH] UML updates The patch below brings UML up to date with some changes in the rest of the kernel: an updated defconfig checksum.h includes in6.h to get a definition of in6_addr added a missing cpu_{set,clear} change removed include/asm-um/module.h since it's really a link Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds