Summary of changes from v2.6.2 to v2.6.3 ============================================ [TCP]: Put Alexey's -EAGAIN change back in with Linus's fix on top. ALSA CVS update - Jaroslav Kysela ICE1712 driver Moved spdif.setup_rate to snd_ice1712_set_pro_rate() function ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver use the standard control names for RCA and optical spdif on audigy. ALSA CVS update - Takashi Iwai AC97 Codec Core fixed snd_ac97_set_rate() to accept surround and LFE sample rates, too. ALSA CVS update - Takashi Iwai VIA82xx driver,AC97 Codec Core - fixed typos in the last change to snd_ac97_set_rate(). the correct flag to check is ac97->scaps. - removed dxs_fixed=1 on VIA8233A (for SPDIF). - added quirks for ASUS A7V8-X and MSI KT4V. ALSA CVS update - Takashi Iwai AC97 Codec Core fixes by James Courtier-Dutton : - fixed the wrong detection of SPDIF output. SPDIF-out is enabled on all chip revisions. - fixed the ac97 codec name shown in proc file, using ac97->id. ALSA CVS update - Jaroslav Kysela PCM Midlevel Simplified snd_pcm_update_hw_ptr*() functions ALSA CVS update - Takashi Iwai VIA82xx driver - fixed the misuse of long pointer for getting the int value in boot parameter. ALSA CVS update - Takashi Iwai Documentation,VIA82xx driver - added dxs_support=4 option. no VRA is used for DXS channels in this case. - fixed the quirk for ASUS A7V8-X. - added the quirk for Gigabyte mobo. - removed the error message in codec_valid(). ALSA CVS update - Takashi Iwai Timer Midlevel,ALSA sequencer Clemens Ladisch : - fixed timer resolution calculations Some functions assumed that timer->hw.resolution is in Hz, while it's actually in ns/tick. ALSA CVS update - Takashi Iwai ALSA Core,Timer Midlevel,ALSA sequencer,PPC DACA driver PPC Tumbler driver - check rootfs before calling request_module() to avoid annoying error messages at the boot time. ALSA CVS update - Takashi Iwai VIA82xx driver - clean up the rate lock routine. - added another gigabyte mobo entry. ALSA CVS update - Takashi Iwai USB generic driver Clemens Ladisch : - fix Edirol comment - use special macros for Yamaha devices - add support for Yamaha MOTIF-R, CVP-204, CVP-206, CVP-208, CVP-210, PSR-1100, PSR-2100, PSR-K1, EZ-250i, MOTIF ES 6, MOTIF ES 7, MOTIF ES 8, CS1D, DSP1D, ACU16-C, NHB32-C, DM1000, 01V96 ALSA CVS update - Takashi Iwai Documentation,PCMCIA Kconfig - added CONFIG_ISA restriction to vxpocket and vxp440 drivers. ALSA CVS update - Takashi Iwai Memalloc module - fixed the compilation without PCI support. added ifdef CONFIG_PCI around preallocate_cards(). ALSA CVS update - Takashi Iwai USB generic driver Clemens Ladisch : - add support for M-Audio OmniStudio MIDI ALSA CVS update - Takashi Iwai VIA82xx driver removed a wrong entry for gigabyte mobos. ALSA CVS update - Jaroslav Kysela Sound Scape driver Chris Rankin - use #define rather than value for the microcode size ALSA CVS update - Takashi Iwai OPL3,Raw OPL FM,ES1968 driver removed obsolete __SND_OSS_COMPAT__. ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver Peter Zubaj : - redesigned the default DSP routing of audigy1/2 boards. the normal PCM output is sent through 'Stereo Mix', while the independent pcm streams can be attenuated by 'PCM Front', 'PCM Rear', and 'PCM Center/LFE' volumes. ALSA CVS update - Jaroslav Kysela Intel8x0 driver Added mpu_port initialization from the kernel command line ALSA CVS update - Takashi Iwai Generic drivers,MPU401 UART,ALSA Core,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,PC98(CS423x) driver,ES1688 driver GUS Classic driver,GUS Extreme driver,GUS MAX driver AMD InterWave driver,Opti9xx drivers,ES968 driver,SB16/AWE driver SB8 driver,Wavefront drivers,CMIPCI driver,VIA82xx driver,YMFPCI driver - fixed the boot parameters with long ints for non-intel architectures. - added get_option_long() for parsing the parameter. ALSA CVS update - Takashi Iwai Documentation,SB drivers,YMFPCI driver,ALS4000 driver,AZT3328 driver CMIPCI driver,ENS1370/1+ driver,ES1968 driver,Intel8x0 driver VIA82xx driver - removed joystick control from the card control API. added joystick (or joystick_port) module option instead. - updated documents for this joystick fix. - moved resource management for ALS4000 from sb-common header to the als4000 local code. ALSA CVS update - Takashi Iwai CS4281 driver,RME32 driver,RME96 driver,CS46xx driver,NM256 driver - fixed compile warnings with cast for memcpy_fromio/toio. - use copy_to_user_fromio() in proc output. ALSA CVS update - Takashi Iwai AC97 Codec Core added ALC655 entry (compatible with ALC650). ALSA CVS update - Takashi Iwai Maestro3 driver don't enable MPU401 irq. ALSA CVS update - Takashi Iwai ALSA<-OSS emulation added fallback device selection for OSS mixer. ALSA CVS update - Takashi Iwai Intel8x0 driver,VIA82xx driver,AC97 Codec Core - use ADI-compatible mode on AD1980 for more better controls. - swap master and headphone on AD1980 and AD1985 as default. - export remove_ctl, swap_ctl and rename_ctl for patch functions. - removed AD1980/AD1985 master-swap quirks (since it's set as default). ALSA CVS update - Takashi Iwai AC97 Codec Core fixed typo in the last AD198x fix. ALSA CVS update - Takashi Iwai VIA82xx driver added the DXS whitelist for twinhead mobo. ALSA CVS update - Jaroslav Kysela Timer Midlevel - fixed problem with hw slave source (PCM timer & dmix plugin) - fixes for slave instances - moved active callback check to snd_timer_close() function ALSA CVS update - Takashi Iwai PCM Midlevel don't call kfree with NULL pointer (constraint rules is not always allocated). ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver - take back the old definition of FXBUS_PCM_LEFT/RIGHT for sb live. - fixed the audigy routing with the new definition. ALSA CVS update - Takashi Iwai Timer Midlevel fixed the unbalanced spinlock at the error path. ALSA CVS update - Takashi Iwai Documentation minor corrections for the recent updates. ALSA CVS update - Takashi Iwai PCM Midlevel removed the export of snd_pcm_lock(). replaced with the normal mutex. ALSA CVS update - Takashi Iwai PCM Midlevel - don't hold power lock while draining - call trigger callback when suspending/resuming a draining substream ALSA CVS update - Takashi Iwai HWDEP Midlevel allow dsp_load callback without dsp_status callback. ALSA CVS update - Jaroslav Kysela PCM Midlevel - don't print debug messages for low count of periods - added right path for one period to the update pointer routine (interrupt) ALSA CVS update - Takashi Iwai VIA82xx driver Zinx Verituse : fixed the calculation of the port for 'Capture Source' control switch. ALSA CVS update - Takashi Iwai Documentation,ALS4000 driver,ENS1370/1+ driver,YMFPCI driver added auto-detection of joystick port. ALSA CVS update - Takashi Iwai ALSA Core - fixed oops at resume. - block also the non-blocking devices until the resume is finished. ALSA CVS update - Takashi Iwai AC97 Codec Core Ted.Wen@ite.com.tw: - added patch for IT2646. ALSA CVS update - Takashi Iwai CS46xx driver fixed the 4channel mode of another CS429x codec (0x592b). ALSA CVS update - Takashi Iwai YMFPCI driver fixed the auto-detection of joystick port. ALSA CVS update - Takashi Iwai Documentation,ALS4000 driver,AZT3328 driver,CMIPCI driver ENS1370/1+ driver,VIA82xx driver,YMFPCI driver - use consistent values for specifying the port address (0 = disable, 1 = auto-detect, others = manual) - fixed the auto-detection of joystick port. ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation - avail_min is now 1 - fixed read1() function for avail_min == 1 - fixed conversion between ALSA and OSS position - fixed info.blocks computing in get_ptr() (included fixup) - fixed get_space() function (included fixup) ALSA CVS update - Jaroslav Kysela AD1848 driver Robert Harris Fixed spinlocks ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation Fixed read for partial OSS period buffer contents ALSA CVS update - Takashi Iwai Documentation,ALSA Core - cards_limit=1 as default instead of 8. - cards_limit means the number of auto-loaded cards. not limits the actual card numbers for manual loading (e.g. hotplug). ALSA CVS update - Takashi Iwai OSS device core,Documentation,ALSA Core,ALSA<-OSS emulation ALSA<-OSS sequencer,ALSA Minor Numbers Rusty Russell : - added MODULE_ALIAS for sound services. clean up the document. modified by Takashi Iwai ALSA CVS update - Takashi Iwai ALSA Core,ALS100 driver,AZT2320 driver,DT019x driver,CS4231 driver CS4236+ driver,PC98(CS423x) driver,Opti9xx drivers,SB16/AWE driver Wavefront drivers use the standard port address, 0 = disable, 1 = auto-probe, others manual. negative values are accepted as disable, too. ALSA CVS update - Takashi Iwai OSS device core,ALSA Core - take MODULE_ALIAS_CHARDEV_MAJOR() back. - added missing inclusion of linux/device.h. ALSA CVS update - Takashi Iwai Opti9xx drivers - fixed the detection of opti92x-ad1848 pnp. ALSA CVS update - Jaroslav Kysela OPL4 Clemens Ladisch use vmalloc instead of kmalloc for temp buffer in proc read()/write() ALSA CVS update - Jaroslav Kysela AC97 Codec Core Clemens Ladisch new controls for AD1981A/B/1980/1985 ALSA CVS update - Takashi Iwai VIA82xx driver added the quirk for ASUS A7V600. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Fixed cut & paste bug ALSA CVS update - Jaroslav Kysela OPL4 Clemens Ladisch oops - use vfree in error paths, too ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation Fixed semantics in snd_pcm_oss_bytes() function. ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver Peter Zubaj : - disable routing from AC97 line out to front speakers. - AC97 ADC is used only for Mic playback and recording - Philips ADC is used for other analog playback and recording (Analog Mix Playback Volume, Analog Mix Capture Volume) - removes unused AC97 controls (is phone used ???) Takashi Iwai : - removed the duplicated IEC958 control on Dell's board. ALSA CVS update - Takashi Iwai CMIPCI driver - set XCHGDAC bit implicitly on MC4/6 models for fixing wrong playback on some boards. - removed 'Exchange DAC' control from such a model. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Added IC Ensemble/KS Waves ID for stereo enhancement ALSA CVS update - Takashi Iwai CS4236+ driver - fixed the detection of combination of pnp and non-pnp devices. ALSA CVS update - Takashi Iwai I2C lib core - fixed sleep in lock. use mutex for the locking. ALSA CVS update - Takashi Iwai USB generic driver - added async_unlink option. the default bahevior is not changed yet. - added some comments. ALSA CVS update - Takashi Iwai USB generic driver - added a workaround for M-Audio Audiophile USB. - avoid async out and adaptive in if other methods are available. - fixed the hw_constraint check for 24bit formats. ALSA CVS update - Jaroslav Kysela GUS Library Fixed duplicate control IDs (PCM Playback Volume) for cards with the codec chip ALSA CVS update - Jaroslav Kysela GUS Library Omited to remove old code ALSA CVS update - Takashi Iwai VIA82xx driver - fixed the (syntax) description of dxs_support module option. ALSA CVS update - Takashi Iwai YMFPCI driver - fixed possible (but rare) deadlock. ALSA CVS update - Takashi Iwai Documentation,Memalloc module,ALS4000 driver,AZT3328 driver ES1938 driver,ES1968 driver,Maestro3 driver,SonicVibes driver ALI5451 driver,EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver Trident driver - use pci_set_consistent_dma_mask(). ALSA CVS update - Takashi Iwai AC97 Codec Core - added new patch codes for ALC655/658. - fixed reset wait loop in the resume phase. - fixed resume of AD1981 multi codecs. ALSA CVS update - Takashi Iwai USB generic driver - clear unlink_mask bit in the complete callback. - make sure to deactivate urbs before starting streams. ALSA CVS update - Takashi Iwai USB generic driver fix by Clemens Ladisch : - don't clear active_mask bits until it's clear that the URB is _not_ resubmitted, to prevent a race with unlinking - initialize active_mask and unlink_mask each time before URBs are started - don't call sleeping functions in trigger callback ALSA CVS update - Takashi Iwai Digigram VX core - added hw_constraint to align 4bytes. this will solve the 24bit problem on vx222. ALSA CVS update - Takashi Iwai PCM Midlevel - clear the status record before calling snd_pcm_status() in proc read. this will prevent to show bogus values when status = OPEN. ALSA CVS update - Takashi Iwai PCM Midlevel,ALSA Core,USB generic driver - prepare callback can sleep if a flag is given in pcm->info_flags. - usbaudio driver uses non-atomic prepare callback for synchronization of pending unlinked urbs. - async_unlink option of usbaudio driver is enabled as default now. - fixed the initialization of pseudo-dma pointers in usbaudio. ALSA CVS update - Takashi Iwai USB generic driver - added the proc files to show ids. ALSA CVS update - Takashi Iwai Digigram VX Pocket driver - added the missing licesne and descriptions. ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver - fixed double entries of the same controls. ALSA CVS update - Takashi Iwai AMD InterWave driver - fixed the detection of STB board via pnp. ALSA CVS update - Takashi Iwai ALSA<-OSS emulation fixed the calculation of bytes. this will fix GETxSPACE, GETxPTR, GETODELAY ioctls. ALSA CVS update - Takashi Iwai ALSA<-OSS emulation - reset auto-silence in the OSS mmap mode. ALSA CVS update - Jaroslav Kysela VIA82xx driver Added EPoX EP-8K9A default settings (VIA_DXS_ENABLE) ALSA CVS update - version 1.0.0pre3 ALSA CVS update - Takashi Iwai YMFPCI driver Clemens Ladisch : - added the support for the timer on ymfpci chips. ALSA CVS update - Takashi Iwai YMFPCI driver Clemens Ladisch : - This patch adds a control to enable S/PDIF direct recording (without resampling) on the YMF754. ALSA CVS update - Jaroslav Kysela Control Midlevel,ALSA Core,EMU8000 driver,SB16/AWE driver EMU10K1/EMU10K2 driver - added support for user control elements (untested) - fixed locking for snd_ctl_remove() function ALSA CVS update - Jaroslav Kysela HWDEP Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel Digigram VX core,L3 drivers,AC97 Codec Core,CS46xx driver Trident driver,YMFPCI driver,GUS Library,SB16/AWE driver,CMIPCI driver CS4281 driver,ENS1370/1+ driver,FM801 driver,Intel8x0 driver Maestro3 driver,RME32 driver,RME96 driver,SonicVibes driver VIA82xx driver,AK4531 codec,ALI5451 driver,EMU10K1/EMU10K2 driver ICE1712 driver,ICE1724 driver,KORG1212 driver,NM256 driver RME HDSP driver,RME9652 driver,USB generic driver - AC97 code - introduced ac97_bus_t structure - moved attached codecs to /proc/asound/card?/codec97#? directory - merged snd_ac97_modem() to snd_ac97_mixer() - proc cleanups - removed already initialized variables - enhanced snd_info_set_text_ops() syntax ALSA CVS update - Takashi Iwai ES1968 driver,AC97 Codec Core fixed the compilation with the recent ac97 and info changes. ALSA CVS update - Takashi Iwai RME HDSP driver Thomas Charbonnel : - include support for hdsp 9632 cards and bugfixes for hdsp 9652 cards. ALSA CVS update - Takashi Iwai RME HDSP driver Thomas Charbonnel : The attached patch fixes matrix mixer and metering problems spotted by Pentti Ala-Vannesluoma for H9632 cards and gcc 2.9x compile errors reported by Martin Langer. ALSA CVS update - Takashi Iwai RME HDSP driver Thomas Charbonnel : The attached patch at last fixes the long lasting firmware loading error after boot, and includes a small cosmetic fix for H9632 cards (fixes SPDIF external rate reporting in /proc/asound/cardX/hdsp and amixer outputs). ALSA CVS update - Takashi Iwai ICE1712 driver,ICE1724 driver Apostolos Dimitromanolakis : - added the partial support of AudioTrak prodigy 7.1 ALSA CVS update - Takashi Iwai ICE1712 driver removed unnecessary codes, which causes compilation error with gcc-2.9.x. ALSA CVS update - Jaroslav Kysela AC97 Codec Core,Intel8x0 driver Moved AC97 slot allocation from intel8x0 to ac97_pcm.c. ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed oops. ALSA CVS update - Takashi Iwai AC97 Codec Core,Intel8x0 driver - fixed the wrong sized allocation of snd_ac97_pcm. - fixed the probing of multiple codecs on intel8x0. - fixed the computation of rates bits. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Clemens Ladisch fix compiler warnings ALSA CVS update - Takashi Iwai RME HDSP driver fix by Thomas Charbonnel : The attach patch fixes problems with speed modes for H9632 cards (many thanks to Pentti Ala-Vannesluoma for testing the driver and helping finding bugs), and the AutoSync mode issue (for all cards) reported by Anders Torger at the end of september. ALSA CVS update - Takashi Iwai ICE1712 driver fixes by Apostolos Dimitromanolakis : - fixed the pop noise at the start up of aureon boards. - update of prodigy driver (modifed by ti). ALSA CVS update - Takashi Iwai Documentation - fixed for the new ac97_bus struct. ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the rates detection for capture. ALSA CVS update - Takashi Iwai AC97 Codec Core fixed typo ALSA CVS update - Jaroslav Kysela AC97 Codec Core Fixed AC97 slot allocation for 2nd+ PCM in assign function ALSA 1.0.0rc1 ALSA CVS update - Takashi Iwai ALSA<-OSS emulation - fixed the bytes field of GETxPTR ioctl in the mmap mode. - fixed the bytes field of GETxSPACE ioctl. - don't count the negative delay values. ALSA CVS update - Takashi Iwai VIA82xx driver - added quirks for another ASUS board and FSC notebook. ALSA CVS update - Takashi Iwai VIA82xx driver - added the missing '\n' to proc output. ALSA CVS update - Takashi Iwai Generic drivers Steve deRosier : * There is a user selectable flag droponfull. Set to 1 and any new bytes delivered to the driver after the buffer fills up will be discarded until the buffer is able to flush some bytes. * If droponfull==0 (or is not set, the default is 0), the driver proceeds to block further input by not calling snd_rawmidi_transmit_ack() and aborting the attempt. It will try again later. * I've redone a bit of the interface for the buffer routines. This was done to support the proper blocking/non-blocking methods as spelled out above, and to try to protect the buffer data a bit. ALSA CVS update - Takashi Iwai Memalloc module - replaced 8 with SNDRV_CARDS. ALSA CVS update - Takashi Iwai AC97 Codec Core,Intel8x0 driver - added spdif field to struct ac97_pcm. - snd_ac97_set_rate() accepts AC97_SPDIF. - allow fixed rate mic capture. - optimized the loop in snd_ac97_pcm_open. ALSA CVS update - Takashi Iwai AC97 Codec Core - don't break the probing even when ac97_reset_wait() returns error. in many cases, it's not critical (e.g. SB audigy). ALSA CVS update - Takashi Iwai AC97 Codec Core - fixed the detection of rates due to collision with the spdif slots. - fixed the typo in the error message. - replaced the numbers with constants. ALSA CVS update - Takashi Iwai VIA82xx driver - added a dxs_support list entry for ASRock K7VM2. ALSA CVS update - Takashi Iwai VIA82xx driver - dxs_support=4 seems ok for the ASRock board. ALSA CVS update - Takashi Iwai VIA82xx driver - added a quirk for ASRock K7VM2. ALSA CVS update - Jaroslav Kysela AC97 Codec Core Commented out debugging printk ALSA version 1.0.0rc2 Support the new 3CR990B cards that require authentication of the runtime firmware image. ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation - added OSS_ALSAEMULVER ioctl - cleanups for put_user() ALSA CVS update - Jaroslav Kysela EMU10K1/EMU10K2 driver Center is initialized to analog to prevent noise at startup (SB Live) ALSA CVS update - Jaroslav Kysela AMD InterWave driver Fixed typo ALSA CVS update - Jaroslav Kysela Timer Midlevel An attempt to fix the system timer behaviour (lost jiffy ticks) ALSA CVS update - Jaroslav Kysela USB generic driver Clemens Ladisch deactivate_urbs didn't return the number of still-active URBs when not unlinking asynchronously, which would prevent calling wait_clear_urbs when some URBs actually are being unlinked asynchronously, so these URBs would be freed while still in use. I removed deactivate_urb's return value because wait_clear_urbs does its own counting anyway. ALSA CVS update - Jaroslav Kysela RME9652 driver Removed duplicated ADAT3 Sync control ALSA CVS update - Jaroslav Kysela Control Midlevel Added snd_ctl_find_hole() function. Added printk when control already exists. ALSA CVS update - Jaroslav Kysela GUS Library Fixed race - scheduling in interrupt ALSA CVS update - Jaroslav Kysela ALSA sequencer Fixed typo ALSA CVS update - Jaroslav Kysela ALSA Core A try to fix get_id() function - use alloc_bootmem() ALSA CVS update - Jaroslav Kysela Documentation Added read_size comment for snd_info_set_text_ops() ALSA CVS update - Jaroslav Kysela ALSA Core petter wahlman vsnprintf does not copy more than 'size' bytes _including_ '\0' ALSA CVS update - Jaroslav Kysela ICE1712 driver DFS bit must be handled also for Delta1010 and Delta2496 ALSA CVS update - Jaroslav Kysela Documentation,ALSA<-OSS emulation - changed whole-frag (default again) => partial-frag - small corrections in snd_pcm_oss_get_ptr() - atomic hw_ptr and info.bytes ALSA CVS update - Jaroslav Kysela VIA82xx driver Added Easy Note 3171, Packard Bell - VIA_DXS_ENABLE ALSA CVS update - Jaroslav Kysela Documentation More complete PCM device example ALSA 1.0.1 ALSA - added missing module_init and module_exit functions to cs8427 and ak4xxx modules ALSA CVS update - Jaroslav Kysela EMU10K1/EMU10K2 driver Georgi Georgiev Line2 LiveDrive Capture Volume control fix ALSA CVS update - Takashi Iwai VIA82xx driver - added the white list for avance logic mobo. ALSA CVS update - Takashi Iwai Documentation,CMIPCI driver - changed joystick option to joystick_port option for cmipci driver. - mentioning alsa-firmware package together with alsa-tools package for firmware loading. - fixed the description of auto-invokation of vxloader for 2.6 kernels. ALSA CVS update - Takashi Iwai ALSA sequencer - new e-mail address of Frank van de Pol. ALSA CVS update - Takashi Iwai VIA82xx driver - added the DXS support for ABIT KD7(-RAID) [netdrvr 8139too] support netif_msg_* interface [PATCH] wan/lmc -- convert to new network device model Resend of LMC driver patch for 2.6.0-test6 * do proper probing * allocate network device with alloc_netdev * use standard pci_id's instead of local defines * use standard PCI device interface to find and remove devices. [PATCH] 2.6.0-test6 - more free_netdev() conversion Compiles ok (with true .o generated, yeah). Please review. free_netdev() of devices allocated through use of alloc_netdev(). Though baroque, drivers/net/3c515.c now uses alloc_etherdev(). drivers/net/3c515.c | 23 ++++++++++++----------- drivers/net/defxx.c | 2 +- drivers/net/dummy.c | 2 +- drivers/net/eql.c | 2 +- drivers/net/ns83820.c | 2 +- drivers/net/plip.c | 14 ++++++++++---- drivers/net/shaper.c | 11 ++++++++--- drivers/net/tun.c | 18 +++++++++--------- 9 files changed, 43 insertions(+), 31 deletions(-) [PATCH] remove dev_get from wanrouter The call to dev_get() in wanrouter_device_new_if is racy and redundant and should be removed. The later 'register_netdev()' does the same test internally and will return the appropriate error if the name already exists. This patch is against 2.6.0-test6. Resend of earlier patch because it was ignored, or missed. [netdrvr tulip] support NAPI Contributed by Robert Ollsson. [PATCH] (1/12) Probe2 infrastructure for 2.6 experimental New infrastructure to allow probing older builtin drivers (like ISA) Originally by Al Viro, updated to apply agains jgarzik/net-drivers-2.5-exp [PATCH] (2/12) Probe2 -- de620 Rework de620 driver to new dynamic allocation Originally by Al Viro. * switched de620 to dynamic allocation * de620: embedded ->priv * de620: fixed IO before request_region() Updated to ~jgarzik/net-drivers-2.5-exp [PATCH] (03/12) Probe2 -- ni65 Convert ni65 driver to new probing; patch sequence goes bottom up on the probe list. * switched ni65 to dynamic allocation * ni65: fixed ->irq and ->dma clobbering on autoprobe [PATCH] (04/12) Probe2 -- ni52 >From viro NE15-ni52 * switched ni52 to dynamic allocation * ni52: embedded ->priv * ni52: fixed clobbering of everything on autoprobe Additional: * add free_netdev [PATCH] (05/12) Probe2 -- ni5010 from viro NE16-ni5010 * switched ni5010 to dynamic allocation * ni5010: embedded ->priv * ni5010: fixed clobbering ->irq * ni5010: fixed IO before request_region() Additional: * add free_netdev [PATCH] (06/12) Probe2 -- sk16 from viro NE17-sk16 * switched sk_g16 to dynamic allocation * sk_g16: embedded ->priv * sk_g16: fixed buggy check for signature (|| instead of &&, somebody forgot to replace it when inverting the test). * sk_g16: fixed use after kfree() * sk_g16: fixed init_etherdev() race Additional: * add free_netdev [PATCH] (07/12) Probe2 -- 3c505 from viro NE18-3c505 * switched 3c505 to dynamic allocation * 3c505: embedded ->priv * 3c505: fixed use of uninitialized variable * 3c505: fixed resource leaks on failure exits Additional: * add free_netdev [PATCH] (08/12) Probe2 -- 3c507 Originally by Al Viro (NE19-3c507) * switched 3c507 to dynamic allocation * 3c507: embedded ->priv * 3c507: fixed clobbering on autoprobe * NB: 3c507.c buggers port 0x100 without claiming it. Most likely it should be doing request_region() there. Updated to apply agains jgarzik/net-drivers-2.5-exp [PATCH] (09/12) Probe2 -- arlan Convert arlan driver to new probing. This meant a rather large rework of the probing code for this driver since it did a lot ofnon standard things. [PATCH] (10/12) Probe2 -- wavelan Original by Al Viro (NE21-wavelan) * switched wavelan to dynamic allocation * wavelan: embedded ->priv * wavelan: fixed clobbering on autoprobe * wavelan: fixed IO before request_region() * wavelan: fixed resource leaks on failure exits * wavelan: fixed order of freeing bugs Updated to apply agains jgarzik/net-drivers-2.5-exp [PATCH] (11/12) Probe2 -- 3c501 >From viro NE22-3c501 * switched 3c501 to dynamic allocation * 3c501: embedded ->priv * 3c501: fixed clobbering on autoprobe * 3c501: fixed resource leaks on failure exits Additional: * probe correctly when no device present * fix loop forever bug in probing * free_netdev [PATCH] (12/12) Probe2 -- 82596 Originally by Al Viro (NE23-82596) * switched 82596 to dynamic allocation * 82596: fixed resource leaks on failure exits Updated to apply agains jgarzik/net-drivers-2.5-exp [PATCH] (1/6) tokenring probing change Ugh, two patches got crossed. This is the correct first one. [PATCH] (2/6) smctr -- probe2 Convert the SMC tokenring driver to new probing. [PATCH] (3/6) proteon -- probe2 Convert proteon token ring driver to new probing. [PATCH] (4/6) skisa -- probe2 Convert the SK-NET TMS380 ISA card to the new probe2 format. [PATCH] typo in net-drivers-2.5-exp 3c507 Fix auto-probing loop in new probing code for 3c507. This patch is against net-drivers-2.5-exp repository. Found by viro. [PATCH] arlan new probe code needs to register Fix arlan registration in the net-drivers-2.5-exp repo. Need to call register_netdev. Found by viro. [PATCH] sk_g16 missing declaration The new probe code in net-drivers-2.5-exp lost a declaration for the module case (thanks al). [PATCH] (1/42) ewrk3 Convert ewrk3 to dynamic allocation * get rid of private device allocation method * fix deeply nested function [PATCH] (2/42) eepro Patch from viro: NE26-eepro * switched eepro to dynamic allocation * eepro: embedded ->priv * eepro: fixed clobbering on autoprobe * eepro: fixed IO before request_region() * eepro: fixed resource leaks on failure exits [PATCH] (3/42) eexpress Based on viro NE27-eexpress * switched eexpress to dynamic allocation * eexpress: embedded ->priv * eexpress: fixed clobbering on autoprobe * eexpress: fixed IO without request_region() * eexpress: fixed resource leaks on failure exits [PATCH] (4/42) eth16i NE28-eth16i * switched eth16i to dynamic allocation * eth16i: embedded ->priv * eth16i: fixed resource leaks on failure exits [PATCH] (5/42) fmv18 Based on viro, NE29-fmv18 * switched fmv18x to dynamic allocation * fmv18x: embedded ->priv * fmv18x: fixed resource leaks on failure exits * fmv18x: fixed clobbering on autoprobe * fmv18x: compile fix - comment is _not_ an empty statement. The thing had been b0rken since 2.4.3-pre2, BTW... [PATCH] (6/42) at1700 Based on viro NE30-at1700 * switched at1700 to dynamic allocation * at1700: embedded ->priv * at1700: fixed resource leaks on failure exits * at1700: fixed clobbering on autoprobe [PATCH] (7/42) cs89x0 Based on viro NE31-cs89x0 * switched cs89x0 to dynamic allocation * cs89x0: embedded ->priv * cs89x0: fixed resource leaks on failure exits * cs89x0: fixed clobbering on autoprobe * NB: cs89x0 calls request_region() with very odd arguments. Somebody ought to check WTF is going on there. [PATCH] (8/42) at1500 Based on viro NE32-at1500 ROTFL. The last remnants of CONFIG_AT1500 removed - that was a hell of an ancient bug (at1500_probe() was never defined, AFAICS - all way back to 0.99.15). [PATCH] (9/42) seeq8005 Based on viro NE33-seeq8005 * switched seeq8005 to dynamic allocation * seeq8005: embedded ->priv * seeq8005: fixed resource leaks on failure exits * seeq8005: fixed clobbering on autoprobe * seeq8005: fixed jiffies truncation * seeq8005: fixed a typo in Kconfig - module is _not_ called ewrk3 [PATCH] (10/42) smc Based on viro NE34-smc * switched smc to dynamic allocation * smc: embedded ->priv * smc: fixed resource leaks on failure exits * smc: fixed clobbering on autoprobe [PATCH] (11/42) lance Based on viro NE35-lance * switched lance to dynamic allocation * lance: fixed init_etherdev races * lance: fixed resource leaks on failure exits * NB: probing code is, to put it mildly, odd. It _always_ does autoprobe, modular or not. WTF is going on there? [PATCH] (12/42) ne Based on NE36-ne * switched ne/ne2k_cbus to dynamic allocation * ne/ne2k_cbus: fixed order of freeing bugs * ne/ne2k_cbus: fixed resource leaks on failure exits * ne/ne2k_cbus: fixed clobbering on autoprobe [PATCH] (13/42) e2100 Based on viro NE37-e2100 * switched e2100 to dynamic allocation * e2100: fixed order of freeing bugs * e2100: fixed resource leaks on failure exits * e2100: fixed clobbering on autoprobe [PATCH] (14/42) hpplus Based on NE38-hpplus * switched hp-plus to dynamic allocation * hp-plus: fixed order of freeing bugs * hp-plus: fixed resource leaks on failure exits * hp-plus: fixed clobbering on autoprobe [PATCH] (15/42) hp Based on viro NE39-hp * switched hp to dynamic allocation * hp: fixed order of freeing bugs * hp: fixed resource leaks on failure exits * hp: fixed clobbering on autoprobe [PATCH] (16/42) 3c503 Based on viro NE40-3c503 * switched 3c503 to dynamic allocation * 3c503: fixed order of freeing bugs * 3c503: fixed IO without request_region * 3c503: fixed resource leaks on failure exits * 3c503: fixed clobbering on autoprobe [PATCH] (17/42) wd Based on viro NE41-wd * switched wd to dynamic allocation * wd: fixed order of freeing bugs * wd: fixed resource leaks on failure exits * wd: fixed clobbering on autoprobe [PATCH] (18/42) ultra Based on viro NE42-ultra * switched smc-ultra to dynamic allocation * smc-ultra: fixed order of freeing bugs * smc-ultra: fixed resource leaks on failure exits * smc-ultra: fixed clobbering on autoprobe [PATCH] (19/42) 3c515-T10 NE43-3c515 * convert to dynamic allocation * fixed up device list handling [PATCH] (20/42) hp100-T10 NE44-hp100 * convert to dynamic allocation * use device model for PCI and EISA * use pci id's to find PCI devices * fix missing id's for 10 Mbit only PCI boards [PATCH] (21/42) sk_mca NE45-sk_mca * switched sk-mca to dynamic allocation * sk-mca: switched to embedded ->priv * sk-mca: fixed order of freeing bugs * sk-mca: fixed resource leaks on failure exits [PATCH] (22/42) 3c527 NE46-3c527 * switched 3c527 to dynamic allocation * 3c527: switched to embedded ->priv * 3c527: fixed resource leaks on failure exits [PATCH] (23/42) 3c523 NE47-3c523 from viro * switched 3c523 to dynamic allocation * 3c523: switched to embedded ->priv * 3c523: fixed order of freeing bugs * 3c523: fixed resource leaks on failure exits [PATCH] (24/42) ne2 NE48-ne2 from viro * switched ne2 to dynamic allocation * ne2: fixed order of freeing bugs * ne2: fixed resource leaks on failure exits [PATCH] (25/42) lne390 NE49-lne390 * switched lne390 to dynamic allocation * lne390: fixed order of freeing bugs * lne390: fixed clobbering on autoprobe * lne390: fixed resource leaks on failure exits [PATCH] (26/42) es3210 NE50-es3210 * switched es3210 to dynamic allocation * es3210: fixed order of freeing bugs * es3210: fixed clobbering on autoprobe [PATCH] (27/42) ac3200 NE51-ac3200 * switched ac3200 to dynamic allocation * ac3200: fixed order of freeing bugs * ac3200: fixed clobbering on autoprobe * ac3200: fixed resource leaks on failure exits [PATCH] (28/42) ultra32 NE52-ultra32 * switched smc-ultra32 to dynamic allocation * smc-ultra32: fixed order of freeing bugs * smc-ultra32: fixed clobbering on autoprobe * smc-ultra32: fixed resource leaks on failure exits [PATCH] (29/42) bagetlance NE54-bagetlance * switched bagetlance to dynamic allocation * bagetlance: embedded ->priv * bagetlance: fixed resource leaks on failure exits * bagetlance: fixed resource leaks on rmmod [PATCH] (30/42) jazzsonic NE55-jazzsonic * switched jazzsonic to dynamic allocation * jazzsonic: fixed resource leaks on failure exits [PATCH] (31/42) mac89x0 NE56-mac8390 * switched mac8390 to dynamic allocation * mac8390: fixed resource leaks on failure exits [PATCH] (32/42) mac8390 NE57-mac8390 * switched mac8390 to dynamic allocation * mac8390: fixed resource leaks on failure exits * get rid of MOD_INC/DEC [PATCH] (33/42) macsonic NE58-macsonic * switched macsonic to dynamic allocation * macsonic: fixed resource leaks on failure exits [PATCH] (34/42) mac_mace NE59-mace * switched mace to dynamic allocation * mace: fixed resource leaks on failure exits [PATCH] (35/42) mvme147 NE60-mvme147lance * switched to dynamic allocation * fixed resource leaks on failure exits [PATCH] (36/42) hplance NE61-hplance * switched to dynamic allocation * fixed resource leaks on failure exits [PATCH] (37/42) pamsnet NE62-pamsnet * switched to dynamic allocation * fixed resource leaks on failure exits [PATCH] (38/42) bionet NE63-bionet * switched to dynamic allocation * fixed resource leaks on failure exits [PATCH] (39/42) apne NE64-apne * switched to dynamic allocation * fixed resource leaks on failure exits [PATCH] (40/42) sun3_82586 NE66-sun3_82586 * switched to dynamic allocation * fixed resource leaks on failure exits [PATCH] (41/42) sun3_lance NE67-sun3lance * switched to dynamic allocation * fixed resource leaks on failure exits [netdrvr 3c515] fix non-modular build [PATCH] (42/42) atari_lance NE68-atarilance * switched to dynamic allocation * fixed resource leaks on failure exits * also kill off last usage of probe_list [e1000] add ethtool ring param support * Add ethtool ring param support [e1000] use pdev->irq rather than netdev->irq for * Use pdev->irq rather than netdev->irq for interrupt registration in anticipation of MSI interrupt API support. [e1000] loopback diag test failing on big-endian * ethtool diag loopback test was failing on ppc because of endianness issue. [e1000] use unsigned long for I/O base addr * Use unsigned long for I/O base addr; can be 64-bit on some archs. [e1000] 82547 interrupt assert/de-assert re-ordering * 82547 needs interrupt disable/enable to keep interrupt assertion state synced between 82547 and APIC. 82547 will re-order assert and de-assert messages if hub link bus is busy (heavy traffic). Disabling interrupt on device works around re- order issue. [e1000] print message if user overrides default ITR * Print message if user overrides default setting of ITR. [e1000] improve Tx flush method * Flush queued in-flight Tx descriptors when link is lost. 8254x stops processing Tx descriptors when link is lost, so outstanding Tx buffers will not be returned to OS unless we flush the Tx descriptor ring. This patch move the flush from the watchdog timer callback to process context to work around some issue with holding xmit_lock in timer callback. [e1000] exit polling loop if interface is brought down * Exit polling loop if interface is brought down. [e1000] Internal SERDES link detect; delay after SPI * Internal SERDES designs must use indirect method to sample link status based on sampling MAC sync bits. * Need 10 msec delay after SPI eeprom write, otherwise back-to- back writes can get corrupted. * Allow for setup of multiple MAC addresses (not used for Linux - shared code change). * Updated comment block. [e100] missed a kfree -> free_netdev * missed a kfree -> free_netdev [netdrvr tc35815] many fixes, major and minor * s/int/unsigned long/ for 'flags' arg passed to spin_lock_irqsave * s/unsigned int/unsigned long/ for I/O port addresses * no need to prevent tc35815_probe from being called multiple times... PCI layer will do things properly for us. * call pci_enable_device before accessing hardware, before obtaining irq number, and before obtaining I/O port addresses. * remove bogus 'if (pdev)' check in PCI API ->probe function * call SET_M0DULE_OWNER, remove MOD_{INC,DEC}_USE_COUNT * (cleanup) don't bother casting from a void* * (cleanup) mark debugging function with #if 0, just like the caller * Fix many printk statements to indicate that tc_readl() returns a long, not an int. * (cleanup) remove unused tc35815_proc_info function [netdrvr tc35815] switch to using alloc_etherdev Also handle ioremap failure. [netdrvr a2065] convert to alloc_etherdev [netdrvr ariadne] use alloc_etherdev [netdrvr declance] use alloc_etherdev [netdrvr gt96100eth] use alloc_etherdev, fix leaks [netdrvr hydra] use alloc_etherdev [netdrvr oaknet] use alloc_etherdev, fix leaks [netdrvr znet] alloc_etherdev, SET_MODULE_OWNER, remove #ifdef MODULE [netdrvr mace] alloc_etherdev, fix leaks on error [netdrvr zorro8390] alloc_etherdev, SET_MODULE_OWNER [netdrvr au1000_eth] alloc_etherdev, SET_MODULE_OWNER, fix leaks/small bugs [netdrvr sb1250-mac] alloc_etherdev, fix leaks on error [netdrvr sgiseeq] alloc_etherdev, SET_MODULE_OWNER, fix leaks on error [netdrvr stnic] use alloc_etherdev [netdrvr saa9730] use alloc_etherdev, annotate bugs found but not fixed [netdrvr depca] fix leaks on error [netdrvr atp] use alloc_etherdev, clean up probing [netdrvr de600] use alloc_etherdev; request_region fixes [wireless wavelan{_cs}] use alloc_etherdev; remove useless net_device* typedef [netdrvr] s/kfree/free_netdev/ where appropriate [netdrvr ether00] s/kfree/free_netdev/ ; remove redundant memset() calls [netdrvr pcmcia] s/kfree/free_netdev/ [netdrvr iph5526] use SET_MODULE_OWNER; small typedef cleanup [netdrvr stnic] fix typo from last stnic cset [netdrvr xircom_tulip_cb] remove bogus unregister_netdev call; use free_netdev [netdrvr tulip] clean up tulip NAPI poll disable Looks like the same patch was applied multiple times. No negative effects except ugliness and a redundant test. [netdrvr] alloc_etherdev-related cleanups Mostly removing unneeded calls to ether_setup(), which alloc_etherdev() already does for us. [netdrvr lasi_82596] remove ether_setup() call, fix leak in probe [netdrvr] remove Documentation/networking/8139too.txt All sections of the document are woefully outdated. [netdrvr] remove init_etherdev mentions in Doc/SubmittingPatches, atari_pamsnet.c [PATCH] m68k-related net driver fixes On Sun, 16 Nov 2003, Jeff Garzik wrote: > Yet more updates. Syncing with Andrew Morton, and more syncing with Al > Viro. > > No users of init_etherdev remain in the tree. (yay!) Here are some (untested, except for cross-gcc) fixes for the m68k-related drivers: - Space.c: fix incorrect prototypes for atarilance_probe() and mace_probe() - a2065.c: kill superfluous argument of alloc_etherdev() - apne.c: o fix incorrect prototype for apne_probe() o kill unused variable err - mac8390.c: o kill unused variable probed o fix typos ENDOEV -> ENODEV and ERR_PTE -> ERR_PTR o add missing variable slots - macmace.c: use ERR_PTR() where needed - macsonic.c: kill unused variable lp - mvme147.c: o kill conversion warning and kill a cast by making ram unsigned long o add missing variable err Note: The use of `slots' in mac8390.c is not in my tree. Do you know where that change comes from? [PATCH] sun3-related net driver fixes On Mon, 17 Nov 2003, Geert Uytterhoeven wrote: > On Sun, 16 Nov 2003, Jeff Garzik wrote: > > Yet more updates. Syncing with Andrew Morton, and more syncing with Al > > Viro. > > > > No users of init_etherdev remain in the tree. (yay!) > > Here are some (untested, except for cross-gcc) fixes for the m68k-related > drivers: I forget to test the Sun-3 drivers: - sun3_82586.c: o add missing casts to iounmap() calls o fix parameter of free_netdev() - sun3lance.c: add missing casts to iounmap() calls Note that sun3_82586.c no longer compiles since SUN3_82586_TOTAL_SIZE is not defined. Sammy, is it OK to use PAGE_SIZE for that, since that's what's passed to ioremap()? [PATCH] more RTL-8139 clone boards [PATCH] 8139too NAPI for net-drivers-2.5-exp Here is the 8139too version in net-drivers-2.5-exp modified for NAPI. Also: 64k receive ring - has to handle wrap for that case; the NoWrap flag does nothing if using this big ring. assert() -> BUG_ON() To deal with the races with tx_timeout, put back in the rx_lock from earlier versions. [netdrvr qeth] use alloc_etherdev instead of hand-allocating struct net_device [netdrvr meth] use alloc_etherdev; fix leaks on error/cleanup [wireless ray_cs] use alloc_etherdev [netdrvr ne3210] remove #if 0'd code [appletalk ipddp] dynamically allocate struct net_device Converts from static to dynamic allocation, in preparation for further refcount changes. [arcnet com90io] use alloc_netdev [arcnet arc-rimi] use alloc_netdev; module params; fix bugs on error/cleanup [arcnet com20020] netdev dynamic alloc; module params; fix bugs [arcnet com90xx] netdev dynamic alloc; module params; fix bugs [arcnet] create and use alloc_arcdev helper [netdrvr ppp] netdev dynamic alloc; convert ppp_net_init to alloc_netdev setup function [wan synclink] netdev dynamic alloc [wan cosa] netdev dyamic alloc [PATCH] (1/3) 8139too -- put back old assert For net-drivers-2.5-exp: Minimize code changes -- put back assert() macro with similar properties to the original. Added unlikely() and KERN_ERR tag. [PATCH] (2/3) 8139too -- configurable receive ring For net-drivers-2.5-exp: Make the receive window configurable and go back to the original 32K by default. [PATCH] (3/3) 8139too -- poll_controller For net-drivers-2.5-exp, add a poll_controller hook to allow use of netconsole with this driver. jeff, don't have netconsole setup to test this so please give it a try before including it. [PATCH] 8139too NAPI for net-drivers-2.5-exp Jeff Garzik writes: > Stephen Hemminger wrote: > > Here is the 8139too version in net-drivers-2.5-exp modified for NAPI. > > Also: > > 64k receive ring - has to handle wrap for that case; > > the NoWrap flag does nothing if using this big ring. > > assert() -> BUG_ON() > > > > To deal with the races with tx_timeout, put back in the rx_lock from earlier versions. > + local_irq_disable(); > + netif_rx_complete(dev); > + RTL_W16_F(IntrMask, rtl8139_intr_mask); > + local_irq_enable(); Probably, by my mistake in previous mail. Sorry. This still has the races condition. It can trigger the same problem by shared interrupt on SMP. Probably the following ISR style should use the below combination. in ISR if (netif_rx_schedule_prep(dev)) { RTL_W16 (IntrMask, rtl8139_norx_intr_mask); __netif_rx_schedule(dev); } in ->poll local_irq_disable(); RTL_W16_F(IntrMask, rtl8139_intr_mask); __netif_rx_complete(dev); local_irq_enable(); And another one should use the below combination. (this style can change the flags of __LINK_STATE_RX_SCHED or __LINK_STATE_START anytime) in ISR if (status & RxAckBits) { RTL_W16_F (IntrMask, rtl8139_norx_intr_mask); netif_rx_schedule (dev); } in ->poll local_irq_disable(); __netif_rx_complete(dev); RTL_W16_F(IntrMask, rtl8139_intr_mask); local_irq_enable(); If happen the shared interrupt, the this ISR style may lose a chance of netif_rx_schedule(). Anyway, the following patch should fix the problem. Please apply. Thanks. -- OGAWA Hirofumi drivers/net/8139too.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) [PATCH] 2.6.x experimental net driver queue fix On Wed, 19 Nov 2003, Sam Creasey wrote: > On Tue, 18 Nov 2003, Geert Uytterhoeven wrote: > > On Mon, 17 Nov 2003, Geert Uytterhoeven wrote: > > > On Sun, 16 Nov 2003, Jeff Garzik wrote: > > > > Yet more updates. Syncing with Andrew Morton, and more syncing with Al > > > > Viro. > > > > > > > > No users of init_etherdev remain in the tree. (yay!) > > > > > > Here are some (untested, except for cross-gcc) fixes for the m68k-related > > > drivers: > > > > I forget to test the Sun-3 drivers: > > - sun3_82586.c: > > o add missing casts to iounmap() calls > > o fix parameter of free_netdev() > > - sun3lance.c: add missing casts to iounmap() calls > > > > Note that sun3_82586.c no longer compiles since SUN3_82586_TOTAL_SIZE is not > > defined. Sammy, is it OK to use PAGE_SIZE for that, since that's what's passed > > to ioremap()? > > Should be... I looked back through a few versions of the code, and I'm > not even sure what SUN3_82586_TOTAL_SIZE even was (appears I commented > that line out long ago anyway). (I'm also amazed just how much of that > driver I've forgotten in the last year or two :) OK, so here's a additional patch that fixes that: [netdrvr pcmcia] fix hot unplugging This patch fixes a deadlock which occurs when a PCMCIA card is physically removed, and the netdev interface is then downed. The problem occurs because these drivers delay the call of unregister_netdev until the netdev is downed. Since 2.6 now downs the interface on unregister_netdev(), we can call this function as soon as the card has been removed without waiting for the netdev to be downed. [PATCH] 8139too warning fix (1/2) drivers/net/8139too.c | 2 ++ 1 files changed, 2 insertions(+) [PATCH] 8139too tx queue handling fix Hi, netif_stop_queue(dev); [....] netif_start_queue(dev); netif_wake_queue(dev); and netif_stop_queue(dev); [....] netif_wake_queue(dev); is not same. After tx_timeout, this was needed for restarting tx work immediately. Are you interested in this patch? drivers/net/8139too.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) net_device and netdev private struct allocation improvements. 1) Ensure alignment of both net_device and private area. 2) Introduce netdev_priv(), an inline which allows the dynamic private area (dev->priv) to be calculated as a constant offset from the base struct net_device at compile time. [hamradio dmascc] convert embedded net_device to dynamic allocation [char synclinkmp] convert net_device to dynamic allocation [pcmcia] synclink_cs] convert net_device to dynamic allocation [atm clip] convert to using alloc_netdev(), const-offset priv [netdrvr] s/kfree/free_netdev/ where appropriate Affected drivers: ixgb, sk98lin, ibmtr, airport, orinoco, wl3501_cs [wireless wl3501_cs] remove unused constructor [netdrvr] convert most 8390 drivers to using alloc_ei_netdev() [netdrvr smc-mca] alloc_ei_netdev(), other fixes Move all initialization between alloc_ei_netdev() and register_netdev(), and fix bugs on error paths. Also s/kfree/free_netdev/ [netdrvr pcnet_cs] alloc_ei_netdev-associated cleanups Create __alloc_ei_netdev() helper, which takes a size argument for allocation of driver-private structures. Use __alloc_ei_netdev in pcnet_cs, for embedded priv struct. [netdrvr 8390] convert 8390 lib to use const-offset priv struct [NET] s/kfree/free_netdev/ in bridge driver [netdrvr axnet_cs] use embedded private struct [netdrvr skfddi] use PCI hotplug API; other cleanups Third revision of the cleanup of skfddi driver. * use new pci device bus initialization * allocate network device with alloc_fddidev and use dev->priv * get rid of special module/non module distinctions. * fix error unwinds and return values on initialization * call driver_init directly not via register_netdev * reset internal queue count after purge * get rid of h[iy]sterical comment that is no longer true about warnings [PATCH] bonding cleanup 2.6 - Simplify ifenslave ifenslave lite - No more IP settings to slaves, unified printing format, code re-org and broken to more functions. [PATCH] bonding cleanup 2.6 - Consolidate prints Convert all debug prints to use the dprintk macro and consolidate format of all prints (e.g. "bonding: Error: ..."). [PATCH] bonding cleanup 2.6 - death of typedefs Eliminate bonding_t/slave_t types and consolidate casting. [PATCH] bonding cleanup 2.6 - remove dead code Removed dead code and redundant checks. [PATCH] bonding cleanup 2.6 - Consolidate timer handling Consolidate timers initialization, error checking and re-queuing. [PATCH] bonding cleanup 2.6 - Fix handling of bond->primary Fix all locations that handles bond->primary. Convert too long if-else to a switch-case. [PATCH] bonding cleanup 2.6 - Remove multicast_mode module param Eliminate the multicast_mode module param. Settings are now done only according to mode. [PATCH] bonding cleanup 2.6 - Fix slave list iteration bond is no longer part of the list. Added cyclic list iteration macros. [PATCH] bonding cleanup 2.6 - Consolidate function declarations All functions begin with bond_ Return value, function name and all params are on the same line. [PATCH] bonding cleanup 2.6 - consolidate param names of function params and variables Consolidate names of function params and variables e.g. bond_dev instead of dev/master/master_dev. [PATCH] bonding cleanup 2.6 - Re-org struct bonding members (re-send) Change names/types for some of the members in struct bonding. Change position of members. [PATCH] bonding cleanup 2.6 - consolidate return values of functions. [PATCH] bonding cleanup 2.6 - Consolidate conditions & statements Put curly braces around all if, else, for, while, switch statements. Change conditions to short format. g. (ptr == NULL) ==> (!ptr). [PATCH] bonding cleanup 2.6 - Consolidate error handling in all xmit functions [PATCH] bonding cleanup 2.6 - Whitespace cleanup Chomp all trailing white space. [PATCH] bonding cleanup 2.6 - empty lines cleanup Remove duplicate empty lines. add empty lines where needed to improve readability. [PATCH] bonding cleanup 2.6 - fix indentations. [PATCH] bonding cleanup 2.6 - Code re-org Code re-organization in bond_main.c according to context (e.g. module initialization, bond initialization, device entry points, monitoring, etc). [PATCH] bonding cleanup 2.6 - Fix rejects from previous patches According to Jeff's recommendations: o Put constant expressions in a constant. o Put parentheses in calculations to improve readability. o Remove redundant cast from void pointer. [netdrvr ns83820] Switched to sane net_device allocation [netdrvr ns83820] Plugs the races around too early register_netdev() [netdrvr ibmlana] ibmlana switched to sane allocation, leaks fixed [netdrvr] A bunch of gratitious ->init() killed; several leaks plugged. Drivers updated: eth1394, baycom_epp, lp486e, plip, 3c359, olympic, tms380tr. [netdrvr 8390] Forgotten return 0; removed [netdrvr pcnet32] Added missing check and cleanup for register_netdev() failure in pcnet32 [netdrvr ibmtr, ibmtr_cs] cleanup and leak fixes. [netdrvr bonding] fix broken build [irda sa1100_ir] convert to using standard alloc_irdadev() [irda sa1100_ir] "resurrect from bitrot hell" - Don't dereference net device in suspend/resume methods until we know the device data has actually been set. - Remove deprecated MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT - System devices in their original form are long since dead. Convert to using a platform device. - Convert to parameters to moduleparam format. - Use register_netdev not register_netdevice - the latter causes us to register "irda%d" as the device name rather than a properly formatted device name. [netdrvr] new-probe warning fix [netdrvr e1000] h/w workarounds + remove device ID. * Remove device ID 8086:1014 support: never a production ID. * Add #define for stripping CRC on Rx. * Added polarity reversal workaround for forced 10Mbps on 82543/4 controllers. The polirity detection algorithm check the link pulse to see if the polarity is reversed. The end of packet waveform of 10Base-T packets look like an inverted link pulse and can make 82443/4 polarity detection algorithms think that the polarity is reversed by mistake. * Change the condition for applying the TBI workaround on 82543: previously enabled workaround if link partner advertised capabilities; now enable based on negotiated speed - only enable for gig speed. [netdrvr e1000] netpoll support * Add netpoll support. [Prasanna S. Panshamukhi (prasanna@in.ibm.com)] [netdrvr e1000] back out CSA interrupt fix * 8086:1019 82547 CSA-based LOMs lock up the system with this code, so let's revert back to what's in 2.6.0 until we can figure out why this is causing problems. [CPUFREQ] Silence powernow-k7 when built as a module. (Pavel Machek) [CPUFREQ] fix up CPU detection in p4-clockmod Too many users use the p4-clockmod cpufreq driver instead of the more advanced speedstep-centrino, speedstep-ich or even acpi drivers. All of the latter (usually) provide voltage scaling, while the p4-clockmod driver only offers a variant of frequency scaling. So, warn users if they try out this driver instead. Also, instead of using a local copy, use the speedstep_lib infrastructure for detecting the processor speed. Adding the Pentium-M get_frequency function to that module only costs about 200 bytes in object size. [SCTP] provide valid tos and oif values for ip_route_output_key. (ja@ssi.bg) ALSA CVS update - Jaroslav Kysela CMIPCI driver Fixed joystick->joystick_port for __setup() ALSA CVS update - Takashi Iwai AC97 Codec Core Sasha Khapyorsky : - added a patch for sis 3036/8 modem codec. ALSA CVS update - Takashi Iwai SB16/AWE driver - fixed the default value of mpu_port, use SNDRV_DEFAULT_PORT instead of hardcoded values. - fixed the reservation of fm port on pnp boards. ALSA CVS update - Takashi Iwai PPC Tumbler driver - ignore the manual mute of speaker in the auto-mute mode. ALSA CVS update - Takashi Iwai ENS1370/1+ driver - clean up of initialization of spdif control elements. - check the return value of snd_ctl_new1() and snd_ctl_add(). - added the support of line-in/rear share switch by Michael Huijsmans . ALSA CVS update - Takashi Iwai VIA82xx driver fix by Timo Hirvonen (modified by tiwai): - added the entry of whitelist for ASRock K7VT2. - max. value of DXS volume is 31. ALSA CVS update - Takashi Iwai Generic drivers,MPU401 UART,OPL3,OPL4,ES18xx driver,OPL3SA2 driver Sound Galaxy driver,Sound Scape driver,AD1816A driver,AD1848 driver CS4231 driver,ES1688 driver,GUS Library,AMD InterWave driver Opti9xx drivers,EMU8000 driver,SB drivers - added the error messages for resource allocation failures. ALSA CVS update - Takashi Iwai ALSA Core - added the gcc printf attribute to snd_printk and snd_printd. ALSA CVS update - Takashi Iwai SB16/AWE driver - fixed the case of non-pnp board with the same OPL3 port as the main port. ALSA CVS update - Takashi Iwai EMU10K1/EMU10K2 driver,EMU8000 driver,Common EMU synth,SoundFont - added __user prefix to the user-space pointers. ALSA CVS update - Takashi Iwai Memalloc module,PCM Midlevel - fixed buffer pre-allocation. - improved proc output. - check the use flag when unmarking the reserved buffer. - clean up and add more comments. ALSA CVS update - Takashi Iwai VIA82xx driver - added the whitelist entry for a shuttle machine. ALSA CVS update - Takashi Iwai CMIPCI driver - initialize the iec958 status at opening the normal PCM device, too. ALSA CVS update - Takashi Iwai Documentation,EMU10K1/EMU10K2 driver - rename the control 'Surround Digital' -> 'Surround'. the surround of ac97 is removed (unused on sb live). - clean up the removal of unused mixer entries. ALSA CVS update - Takashi Iwai Documentation,Memalloc module,ALS4000 driver,AZT3328 driver ES1938 driver,ES1968 driver,Maestro3 driver,SonicVibes driver ALI5451 driver,EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver Trident driver - fixed the DMA allocation. pci_set_dma_mask() is called together with pci_set_consistent_dma_mask(). also clean up the double check of mask. ALSA CVS update - Takashi Iwai PCM Midlevel - don't override the pre-allocated buffer id if already defined. ALSA CVS update - Jaroslav Kysela USB generic driver Show proper ID for Creative Sound Blaster MP3+ ALSA CVS update - Jaroslav Kysela PCM Midlevel,ALSA Core Added SNDRV_PCM_STATE_DISCONNECTED state. ALSA CVS update - Jaroslav Kysela Trident driver Fixed typo ALSA CVS update - Jaroslav Kysela PCM Midlevel fixed oops when device was not opened (usual situation ;-)) ALSA CVS update - Jaroslav Kysela ALSA<-OSS emulation Fixed filling of the end silence - playback (in sync function) ALSA CVS update - Jaroslav Kysela USB generic driver Clemens Ladisch add support for Edirol UM-1SX [SCTP] Add sysctl parameters to update socket send/receive buffers. ALSA CVS update - Jaroslav Kysela USB generic driver Clemens Ladisch - fix buffer overflow (with 0x prefix, component would need 17 chars) - rewrite shortname logic - include product name in longname even if card doesn't have a quirk ALSA CVS update - Takashi Iwai ALSA Core,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver CS4236+ driver,AMD InterWave driver,Opti9xx drivers,ES968 driver SB16/AWE driver,Wavefront drivers,ALS4000 driver,AZT3328 driver CMIPCI driver,CS4281 driver,ENS1370/1+ driver,ES1938 driver ES1968 driver,FM801 driver,Intel8x0 driver,Maestro3 driver,RME32 driver RME96 driver,SonicVibes driver,VIA82xx driver,CS46xx driver EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver NM256 driver,RME HDSP driver,RME9652 driver,Trident driver Digigram VX222 driver,YMFPCI driver,USB generic driver - added snd_card_set_dev() macro. - sysfsfied more pci, isapnp and usb drivers. ALSA - updated date identification [APPLETALK]: Do not use lvalue in assignment. [ATM]: Do not use lvalue in assignment. [X25]: Do not use lvalue in assignment. [DECNET]: Do not use lvalue in assignment. [ECONET]: Do not use lvalue in assignment. [IPV6]: Do not use lvalue in assignment. [IPX]: Do not use lvalue in assignment. [IRDA]: Do not use lvalue in assignment. [LLC]: Do not use lvalue in assignment. [AF_KEY]: Do not use lvalue in assignment. [NETROM]: Do not use lvalue in assignment. [ROSE]: Do not use lvalue in assignment. [SCTP]: Fix packed attribute usage. [TCP]: Un-inline tcp_put_port(). [TG3]: Do not use lvalue in assignment. [NETFILTER]: Make use of ipt_register_target() return values. [NET]: In dev_seq_printf_stats(), kill extra comparison, make more readable. [PATCH] libata warning fixes drivers/scsi/libata-core.c:973: warning: long long unsigned int format, u64 arg (arg 5) [netdrvr] remove unnecessary type casting [PATCH] gcc-35: drivers/net/wan/lmc drivers/net/wan/lmc/lmc_media.c:1061: sorry, unimplemented: called from here drivers/net/wan/lmc/lmc_debug.h:50: sorry, unimplemented: inlining failed in call to 'lmc_trace': function body not available [PATCH] gcc-3.5: ne2k-pci.c drivers/net/ne2k-pci.c: In function `ne2k_pci_block_input': drivers/net/ne2k-pci.c:539: error: invalid lvalue in increment drivers/net/ne2k-pci.c: In function `ne2k_pci_block_output': drivers/net/ne2k-pci.c:600: error: invalid lvalue in increment [DECNET]: Fix filling in of header length field. [CREDITS]: Update Bjorn Ekwall's address. [SUNGEM]: Add support for G5 PowerMAC plus PM fixes. [SUNGEM]: Add K2_GMAC pci id to pci_ids.h [PATCH] SCSI tape cdev fixes for 2.6.2-rc1 The patch at the end of this message fixes the following problems: - cdev allocation moved outside st_dev_arr_lock, prevents the debugging error messages reported by Mike and Mike - cdev_unmap() added before cdev_del(), prevents oops (and kernel data corruption) in case someone tries to use a device after removing the module - better error handling for failures in cdev allocation As far as I am concerned, the patch is tested but testing by others might be useful :-) [PATCH] aha152x attached my patch for the aha152x driver. Tested for pcmcia and not pcmcia and various devices. changes in the aha152x driver: - gather code that is not used by PCMCIA at the end - move request_region for !PCMCIA case to detection - migration to new scsi host api (remove legacy code) - free host scribble before scsi_done - fix error handling - one isapnp device added to id_table and in the pcmcia stub module: - default to synchronous transfers - release_region hack removed - let core module do the scsi host api calls. aha152x request region fix Noticed by: Guennadi Liakhovetski Fixed By: Juergen E. Fischer On Sat, Jan 24, 2004 at 15:02:12 +0100, Guennadi Liakhovetski wrote: > Correct and forgive me if I am wrong, it looks like you are now poking at > ports without requesting them - in *_porttest. Is it a good idea? Ouch. No, of course not, you are right. Thanks for pointing. I thought I had moved the port testing to aha152x_probe_one... Following patch cleans that up. The port test during autoconfiguration was also done without requesting the region first and there was a bug in auto configuration of a TC1550 controller (both even before the patch). [PATCH] sg driver update > This patch is against the sg driver found in lk 2.6.1-bk6 . > It is an update on the sg patch sent in the "devices with more > than one node" thread: > http://marc.theaimsgroup.com/?l=linux-scsi&m=107415435300783&w=2 Attached is an updated patch adding the cdev_unmap() call which Kai Makisara reported as required. Fusion update to 3.00.02 From: Moore, Eric Dean Here is list of fix's. * added new PCI API support * added ACPI support * added CONFIG_LBA, READ16, WRITE16 support * underun fix * chain buffer free list not being init properly * reduce task management (abort=2sec,reset bus=5sec, timeout=10sec) * Hot plug fix's requested from Christoph Hellwig, and several others from the linux-scsi@ list. [PATCH] aha1542: queuecommand: change panic() to return From: Timmy Yee The aha1542 driver calls panic() if kmalloc() fails, which it shouldn't do. This patch changes that by having the code return a nonzero value, so it tells the SCSI mid-layer to retry the command, as suggested by Randy. diffstat:= drivers/scsi/aha1542.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) [PATCH] aha1542: add kmalloc type From: Timmy Yee In drivers/scsi/aha1542.c, kmalloc() is called with no memtype (i.e. without some flag like GFP_KERNEL). The following patch will fix that. diff -puN drivers/scsi/aha1542.c~aha1542_kmalloc_type drivers/scsi/aha1542.c linux-262-rc1-bk1-rddunlap/drivers/scsi/aha1542.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) [PATCH] fix sym53c8xx_2 doc. location A very simple patch against 2.6.0 follows, which fixes an improper file reference in the scsi sym53c8xx_2 driver help text. The referenced documentation file was moved in 2.5.48 but the help text was not updated accordingly. linux-262-rc1-bk1-rddunlap/drivers/scsi/Kconfig | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) ALSA CVS update - Jaroslav Kysela Intel8x0 driver Added more generic entries for Intel hardware (follows 0.9.1adi driver) ALSA CVS update - Jaroslav Kysela AC97 Codec Core Follow 0.9.1 ADI driver (mic in 3.75V, no High-Z mode, remove patch_ad1881() cal for 1985 - we have already 6 DACs ALSA CVS update - Takashi Iwai Documentation - fixed the description of vx222 install command and a typo. - removed the description of the obsolete aliases for OSS emulation. ALSA CVS update - Takashi Iwai ALSA Core,Common EMU synth,SoundFont,EMU8000 driver EMU10K1/EMU10K2 driver - added the support of hwdep for EmuX WaveTable on emu10k1 and sbawe. SoundFont can be loaded via the ALSA native hwdep device now. ALSA CVS update - Takashi Iwai ALSA Core,IGNORE - fixed the dependency of emu10k1/sbawe emux synth modules. ALSA CVS update - Takashi Iwai SB16/AWE driver - added the missing ifdef CONFIG_PNP around the pnp table definition. ALSA CVS update - Takashi Iwai Intel8x0 driver - fixed the 6 channel output on nforce. the sample format is once reset to 2 channel mode for aligning the samples. ALSA CVS update - Takashi Iwai Intel8x0 driver - added the workaround for a hardware bug in intel 440MX B-stepping. ALSA CVS update - Takashi Iwai Control Midlevel,IOCTL32 emulation,ALSA<-OSS emulation EMU10K1/EMU10K2 driver - fixed the oops in OSS mixer when the control elements are dynamically changed (e.g. emufx). mixer_oss.c handles the numid instead of kcontrol_t pointers. - snd_ctl_find_id and snd_ctl_find_numid don't issue contros_rwsem. the caller has to handle it properly. ALSA CVS update - Takashi Iwai PCM Midlevel - added the support of stack dump at xrun. enabled by writing to /proc/asound/card*/pcm*/xrun_debug proc file. built only when CONFIG_SND_DEBUG is set. ALSA CVS update - Takashi Iwai USB generic driver Clemens Ladisch : - remove superfluous error check ENODEV actually never happens in a completion handler ALSA CVS update - Takashi Iwai Documentation,ALS100 driver,AZT2320 driver,DT019x driver,ES18xx driver AD1816A driver,CS4231 driver,CS4236+ driver,ES1688 driver Opti9xx drivers,SB16/AWE driver,ALS4000 driver,ES1938 driver FM801 driver,SonicVibes driver,Trident driver,YMFPCI driver Clemens Ladisch : - fix names for MPU-401 ports This moves the initialization of card->shortname before the component creation so that the name for the rawmidi port is ' MPU-401' instead of 'MPU-401 UART x-0'. ALSA CVS update - Takashi Iwai RME HDSP driver Martin Bjoernsen: - set the PCI latency timer to 255 for fixing some misbehavior. ALSA CVS update - Jaroslav Kysela PCM Midlevel Change -EINVAL to -EALREADY in snd_pcm_unlink() ALSA 1.0.2 + added missing file (emux_hwdep.c) ommited due merge ALSA CVS update - Jaroslav Kysela Intel8x0 driver Fixed typo [ACPI] add Bruno Ducrot to CREDITS [ACPI] Check for overflow when parsing MADT entries from Jes Sorensen [ACPI] update passive cooling algorithm from Dominik Brodowski The current algorithm used by Linux ACPI for passive thermal management has two shortcomings: - if increasing the CPU processing power as a thermal situation goes away, throttling states are decreased later than performance states. This is not wise -- it should be the opposite ordering of going "up". - only if the ACPI CPUfreq driver is used, performance states are used. A generalized approach would offer passive cooling even if the ACPI P-States cpufreq driver cannot be used (faulty BIOS, FixedHW access, etc.) [ACPI] remove unnecessary check in acpi-cpufreq driver from Dominik Brodowski The acpi cpufreq driver includes a test at startup which detects whether ACPI P-States are supported on any CPU, and whether transitions work. However, this test is faulty: it is only run _after_ the acpi driver is registered, causing race situations. Also, it doesn't save anything _as_ the driver is already registered. So, it can safely be removed. [ACPI] update _PPC handling -- from Dominik Brodowski updates the _PPC handling. It is handled as a CPUfreq policy notifier which adjusts the maximum CPU speed according to the current platform limit. [ACPI] acpi-cpufreq fixups from Dominik Brodowski - remove unnecessary usage of flags.performance - remove double check of _PPC in acpi-cpufreq driver as it's handled in drivers/acpi/processor.c already - remove unneeded EXPORT_SYMBOL - allocation of memory only for probed CPUs - add unregistration function to the core - fix OOPS when PST has core_frequency values of zero - fix cpufreq_get() output - fix /proc/acpi/processor/*/performance write support [deprecated] [CRYPTO]: Help gcc optimize sha256/sha512 better. [NETFILTER]: Fix up copyright notices. [NETFILTER]: Fix locking in ip_conntrack. http://bugme.osdl.org/show_bug.cgi?id=1764 We're walking the expect list without the ip_conntrack_expect_tuple_lock. [NETFILTER]: Update Changes file to reflect 2.6.x reality. [IPV6]: Use the cheaper ipv6_addr_any() for ipv6_addr_type() where possible. [IPV6]: Use the cheaper ipv6_addr_is_multicast() for ipv6_addr_type() where possible. [ACPI] more acpi-cpufreq fixups from Dominik Brodowski Fix a horribly wrong memcpy instruction in cpufreq_update_policy which caused it to oops. fix build error from undefined NR_IRQ_VECTORS [ACPI] quiet numa boot -- from Jes Sorensen [NET_SCHED]: Add HFSC packet scheduler. [IPV4]: Add per-device sysctl to force IGMP version. [PATCH] USB: gcc-3.5: drivers/usb/gadget/net2280.c drivers/usb/gadget/net2280.c: In function `write_fifo': drivers/usb/gadget/net2280.c:527: error: `typeof' applied to a bit-field drivers/usb/gadget/net2280.c: In function `handle_ep_small': drivers/usb/gadget/net2280.c:2042: error: `typeof' applied to a bit-field [PATCH] USB: gcc-3.5: drivers/usb/input/hid-core.c drivers/usb/input/hid-core.c: In function `fetch_item': drivers/usb/input/hid-core.c:605: error: invalid lvalue in increment drivers/usb/input/hid-core.c:612: error: invalid lvalue in increment [PATCH] USB: gcc-3.5: drivers/usb/misc/uss720.c drivers/usb/misc/uss720.c: In function `parport_uss720_epp_read_data': drivers/usb/misc/uss720.c:336: error: invalid lvalue in increment drivers/usb/misc/uss720.c: In function `parport_uss720_epp_read_addr': drivers/usb/misc/uss720.c:395: error: invalid lvalue in increment drivers/usb/misc/uss720.c: In function `parport_uss720_epp_write_addr': drivers/usb/misc/uss720.c:415: error: invalid lvalue in increment drivers/usb/misc/uss720.c: In function `parport_uss720_ecp_write_addr': drivers/usb/misc/uss720.c:472: error: invalid lvalue in increment [PATCH] USB: gcc-3.5: drivers/usb/storage/usb.c drivers/usb/storage/usb.c: In function `usb_stor_release_resources': drivers/usb/storage/usb.c:837: error: invalid lvalue in assignment [PATCH] USB: remove unused usb-debug.c file (moving the one used function into the usb.c file.) [PATCH] USB gadget: file_storage.c -- remove device_unregister_wait() It replaces a call to device_unregister_wait() in the File-backed Storage Gadget. [PATCH] USB: ehci - clear TT buffer command patch I have a patch for a typo in the 2.6.0 kernel, drivers/usb/core/hub.c, in hub_clear_tt_buffer, the value USB_DIR_IN | USB_RECIP_OTHER is used for bmRequestType, when section 11.24.2 of the spec says it should really be USB_RT_PORT, or 00100011b. After limited testing, this change exhibited better recovery from TT errors, here's the patch : [PATCH] USB: fix Bug 1821: sleeping function called > Data point: "visor.c" always passes GFP_ATOMIC there. Here's a patch that makes cdc-acm use GFP_ATOMIC too, and report consequent allocation failures. Compiles but otherwise untested. [CRYPTO]: Make padding[] array static in sha{256,512}_final(). Also happens to work around a GCC bug. [PATCH] PCI: add back some pci.ids entries that got deleted in the last big update. [PATCH] PCI: Remove uneeded resource structures from pci_dev The following patch remove irq_resource and dma_resource from pci_dev. It appears that the serial pci driver depends on irq_resource, however, it may be broken portions of an old quirk. I attempted to maintain the existing behavior while removing irq_resource. I changed FL_IRQRESOURCE to FL_NOIRQ. Russell, could you provide any comments? irq_resource and dma_resource are most likely remnants from when pci_dev was shared with pnp. [PATCH] PCI Hotplug: coding style for cpqphp_pci.c here are some coding style fixes. [PATCH] I2C: add Hydra i2c bus driver Here's a new version, incorporating these comments, and making a few more changes: - Use struct definition in instead of #defined offset - Remove flushes are register writes, they are no longer needed - Use pci_resource_start() instead of dev->resource[].start - ioremap() the whole resource instead of the first 256 bytes - Check for errors returned by ioremap() and i2c_bit_add_bus() - Add resource management - Call iounmap() in hydra_remove() instead of in i2c_hydra_exit() - Let I2C_HYDRA depend on I2C and select I2C_ALGOBIT instead of depending on I2C_ALGOBIT [PATCH] I2C: fix typos Following patch fixes two typos and a missing full stop. [PATCH] USB: remove pci_unmap_single() calls from usbcore There's an unnecessary pci-ism in usbcore -- just an oversight in some API conversion, and harmless on most systems. This'll be a good thing to remove for non-PCI HCD support though. [ACPI] proposed fix for AML parameter passing from Bob Moore http://bugzilla.kernel.org/show_bug.cgi?id=1766 [ACPI] Move the _PSS and _PCT access to drivers/acpi/processor.c so that it can be used by various low-level drivers (centrino, acpi-io, powernow-k{7,8}, ...) from Dominik Brodowski [ACPI] Move the /proc/acpi/processor/./performance output to drivers/acpi/processor.c -- it's the same for all lowlevel drivers. By doing so, the lowlevel drivers no longer need to have access to struct acpi_processor. from Dominik Brodowski [ACPI] Abstract the registration method between low-level drivers and the ACPI Processor P-States driver. from Dominik Brodowski [ACPI] add _PDC support Add support for _PDC to the ACPI processor "Performance States library" (perflib). If this field is empty, a bogus entry is passed to the _PDC method so that the default (io) access is returned again. This patch is partly based on David Moore's patch to arch/i386/kernel/cpu/cpufreq/acpi.c, sent to the cpufreq mailing list on June 24th, 2003. [ACPI] make # of performance states dynamic from Dominik Brodowski [netdrvr sk98lin 1/2] Remove CVS substitution keywords/spam. With vendor's OK, remove Log, Revision, and Date from each file. This data is generated from non-public CVS, and mirrors the BitKeeper changelog. Further, every driver submission usually contains updates to each and every file, just because of the updated CVS revisions. [netdrvr sk98lin 2/2] Remove CVS substitution keywords/spam. With vendor's OK, remove Log, Revision, and Date from each file. This data is generated from non-public CVS, and mirrors the BitKeeper changelog. Further, every driver submission usually contains updates to each and every file, just because of the updated CVS revisions. [DECNET]: Made SDF_WILD sockets actually work. [DECNET]: Fix double rcu_read_unlock() in dn_rt_cache_seq_stop(). [TCP]: Port 2.4.x version of TCP Westwood support to 2.6.x Original 2.4.x version by Angelo Dell'Aera (buffer@antifork.org) Here is the 2.4 version with some cleanups converted to 2.6. - use tcp_ prefix (dave) - get rid of rwlock not needed (dave) - do some hand optimization of the inline's - don't make init inline - get rid of extra whitespace - eliminate accessor for mss_cache [TCP]: Kill bogus reference to CONFIG_TCP_WESTWOOD. Update qla2xxx to 8.00.00b9 From: Andrew Vasquez http://sourceforge.net/projects/linux-qla2xxx/ qla2xxx - perform proper SNS scans with ISP2200 HBAs. [1/3] From: Andrew Vasquez The 2200 firmware doesn't support the MS IOCB interface the driver uses to issue CT commands to the SNS. Basically, I had to forward-port some code from the 6.x driver to get the SNS calls to go through. I've had several machines (mixture of 2200s/ 2300s/others with loop and fabric connections) running with this patch for the past week. qla2xxx - Remove unused GFT_ID code. [2/3] From: Andrew Vasquez The driver does not issue GFT_IDs for each of the ports discovered during its SNS scan. Remove unused code. qla2xxx - Use RIO mode 4 for ISP2100/ISP2200 operation. [3/3] From: Andrew Vasquez RIO mode 3 (originally used in the qla2xxx driver) will not work on big-endian platforms due to the firmware returning only the first-word of the dword command handle returned after SCSI completion. Use RIO mode 4 since full 32bit handle is returned during status. I've recently added an IBM p630 machine (ppc64) to my test ring with a mix of 2200 and 2300 cards -- I feel fairly confident that most endian type issues are addressed. Fix mptfusion to compile without CONFIG_PM [PATCH] Updated qla2xxx driver. - Bump version number -> 8.00.00b10. - Use down() not down_interruptible() while waiting for mailbox completions. o down_interruptible() is the wrong thing to do here (in case a signal hits you sooo do the wrong thing and corrupt the semaphore) (Arjan van de Ven arjanv_redhat.com) - Misc. ISP6312/ISP6322 changes: o Asynchronous IOCB handling is not available on ISP6312 and ISP6322 type boards. o Firmware type (FLX) desgnation fix. - Clean up some extraneous code: o Remove duplicate call to qla2x00_config_os(). o Remove unused structure member rsvd in struct dev_id. - Create single module firmware loaders for each firmware image shipped with the driver (2/2). - Create single module firmware loaders for each firmware image shipped with the driver. - Resync with latest released firmware 3.02.21. qla2xxx: Resync with latest released firmware 3.02.21 From: Andrew Vasquez [PATCH] fix badness in scsi_single_lun_run This patch against recent mainline bk removes the bogus WARN_ON for single_lun devices, and a meaningless comment. We clear the starget_sdev_user, and immediately blk_run_queue for the LUN that just issued IO. Another LUN could race in scsi_request_fn, but it is most likely that the last user will get there first, and reset starget_sdev_user. If it does not, it will have to wait for the other LUN to finish all of its IO. [PATCH] media change check fails for busy unplugged device If a request is sent through scsi_wait_req the function may be woken up from the completion by a function other than scsi_wait_done. This can happen as a result of cases that return BLKPREP_KILL in the scsi_prep_fn function. author: Mike Anderson patch_version: Thu Jan 29 09:03:44 UTC 2004 patched-2.6-andmike/drivers/scsi/scsi_lib.c | 2 ++ 1 files changed, 2 insertions(+) scsi: scatter gather alignment constraints Make sg and st respect any block alignment constraints for the data. Usb storage already sets these to what it needs. Also reset the default to 7 for other SCSI devices. [PATCH] change scsi_cmd_ioctl to take a gendisk instead of a queue This patch against a recent bk 2.6 changes scsi_cmd_ioctl to take a gendisk as an argument instead of a request_queue_t. This allows scsi char devices to use the scsi_cmd_ioctl interface. In turn, change bio_map_user to also pass a request_queue_t, and add a __bio_add_page helper that takes a request_queue_t. Tested ide cd burning with no problems. If the scsi upper level scsi_cmd_ioctl usage were consolidated in scsi_prep_fn, we could pass a request_queue_t instead of a gendisk to scsi_cmd_ioctl. [PATCH] add scsi_cmd_ioctl (SG_IO) support for st Add SG_IO support for st, so we can send scsi commands directly to an st device. Though st (still?) needs to move to move away from cdev for udev to function with it. SCSI: BusLogic update From: Bob Doyle Deleted dead code: - BusLogic_ReportTargetDeviceInfo() - BusLogic_SelectQueueDepths() - BusLogic_SendBusDeviceReset() - BusLogic_ResetCommand() Fixed: - removed dependency on "scsi_obsolete.h" o Changes to BusLogic_ResetHostAdapter() o Changes to BusLogic_AbortCommand() - removed the gratuitous typedefs per Christoph's comments - several functions with incorrect __init and __exit sections. - Removed vestiges of the 'Error Recovery' command line function (which is fundamentally incompatible with the new EH design). Left to do: - Test eh_abort_handler - Test eh_host_reset_handler - Test as module - Straighten out FlashPoint conditional compile so it doesn't require #include "FlashPoint.c". - Please ignore the long line length and the very lengthy identifiers (for now). [TCP]: Add tcp_westwood doc to ip-sysctl.txt SCSI: remove qlogicfc driver The qla2xxx drivers take its place [IPV6]: Fix reserved subnet anycast checking in __ipv6_regen_rndid(). [PATCH] PCI: Replace pci_pool with generic dma_pool - Move drivers/pci/pool.c to drivers/base/pool.c - Initialize struct device.dma_pools in device_initialize() - Remove initialization of struct pci_dev.pools from pci_setup_device() [PATCH] PCI: Replace pci_pool with generic dma_pool, part 2 include/linux changes: - Add dma_pools member to struct device - Add include/linux/dmapool.h - Remove pools memober from struct pci_dev - Replace pci_pool_* functions with macros that map to dma_pool_* functions [PATCH] dmapool: use dev_err() whenever we can to get the better information in it. [PATCH] PCI Hotplug: Whitespace fixes for acpiphp This are some whitespace fixes for acpiphp, in most cases killing spaces before the opening brace of function declarations. [PATCH] PCI Hotplug: Kill spaces before \n in ibmphp* Don't use a space directly before '\n' in error/debug messages. This adds extra code size, causes unneeded line breaks in xterms, noone else does it and it's just superfluos and ugly. This also adds a missing ")" in a comment. [PATCH] PCI Hotplug: Kill useless instructions from ibmphp_core.c This kills the explicit setting of rc to -ENODEV in 2 places where it is not necessary because it will have this value on this path anyway. [PATCH] PCI: Patch to get cpqphp working with IOAPIC Here is a patch for to get cpqphp working with IOAPIC. My earlier statement that a kernel patch is not needed for 2.6 is true only when ACPI is enabled. A similar patch is needed in pcibios_enable_irq() for 2.4 kernel and I will send it out later. The fix is in pirq_enable_irq(). This function is called indirectly by pci_enable_device(). For device present during boot up, it should get the proper dev->irq for pcibios_fixup_irqs() has been called to get the dev->irq from MP table. If the value is still zero, then this is properly caused by "buggy MP table". For hot-plug device, its dev->irq is 0 when the pci_enable_device() is called for it hasn't gone through the fixup. Therefore, the code (similiar to the code in pcibios_fixup_irqs) is needed here. SCSI: Remove AM53c974 driver It hasn't compiled for ages and no-one seems to care ... SCSI: remove mac_NCR5380 driver It's vestigial (it doesn't have a build entry in the Makefile) [PATCH] USB: mark the scanner driver BROKEN Greg, I think this now makes 2 distinct bugs in the scanner kernel driver. Maybe it should be protected with a BROKEN: [PATCH] USB: fix usb hc and shared irq handling Here is a revised version of the irqreturn_t propagation patch. The only difference is now ohci-hcd returns IRQ_HANDLED in the remove case. [PATCH] USB: remove reference to usb_hcd.refcnt in ohci-sa111.c Following patch against 2.6.2-rc2 removes a reference to what appears to be a deprecated member of struct usb_hcd from the function ohci-sa111.c:usb_hcd_sa1111_remove(). [PATCH] USB gadget: fix usb/gadget/file_storage.c doesn't compile with gcc 2.95 [PATCH] USB storage: fix sign bug in usb-storage datafab 2.6 has no -fsigned-char anymore. there are 3 checks for info->lun < 0 [PATCH] USB: fix DMA to stack in tt-usb this driver does DMA to the stack via usb_bulk_msg(). [PATCH] USB: fix URB leak in belkin driver if submission of the interrupt URb fails in belkin_sa_open() the previously submitted URB may remain live. The rest of the system thinks that opening failed, therefore the URB should be unlinked in the error case. [PATCH] USB: add support for the Aceeca Meazura device to the visor driver. Thanks to Terry Markovich for the information. [PATCH] I2C: Bring w83l785ts in compliance with sysfs naming conventions Here is a patch that brings the w83l785ts driver in compliance with sysfs naming conventions. This is pretty much the same problem and solution that occured very recently with the lm75 and lm78 drivers. The patch was tested to work fine by James Bolt. [PATCH] I2C: Handle read errors in w83l785ts Here is a patch that adds proper read error handling in the w83l785ts driver. This is needed for this driver because on many Asus boards the BIOS or something accesses the chip in our back and causes collisions or something similar that causes many read errors. For now, these errors make the driver return temperature values of -1 from times to times. I have been working with James Bolt on this. See the thread on the lm_sensors mailing list for details. The patch is fairly well tested. It is against 2.6.2-rc3 + your current stack of patches as I know it. The "retry until it works" method is the best I could think of, since we have no information from Asus and I don't expect to get any. If it still doesn't work after an arbitrary number (5) of tries it returns the previously known value and generates an error in the logs. James' tests showed that it will probably never happen though (highest retry count was 3 and happened once out of 3000 reads) unless we lower the arbitrary number (but we don't want to, do we?) I inserted incremental delays as reads fail, I felt like it should help avoid collisions with whatever-is-bugging-us. Seems to work OK, but it's not perfect (since we sometimes need 3 retries) and I didn't test with a different policy (no delay, constant delay or different increment). minor mptfusion fix I found a minor bug in that patch. Its in mptbase_remove(). I saw it this morning when compiling a driver for x86_64 platform. Funny how it didn't complain in x86 system. [PATCH] I2C: add new driver, gl518sm Here comes a new i2c chip driver for Linux 2.6: gl518sm, ported from our CVS repository by Hong-Gunn Chew. I have reviewed Gunn's code and we made a few cleanups and improvements over the original driver. See our complete exchange on the sensors mailing-list for details. [PATCH] Driver core: add hotplug support for class_simple This is needed by the DRI code. [PATCH] Kobject: export some missing symbols [IPV4]: Fix IGMP device reference counting. 1) Check indev->dead instead of IFF_UP 2) Add missing ip_mc_down() call to ip_mc_destroy_dev(). Based upon a report from Willy Tarreau. [PATCH] scsi_mid_low_api.txt update to clarify queuecommand return values The only documentation about the MLQUEUE returns is in the code, it should also be in here. [IPV6]: Fix dst leak in error path of ndisc_send_redirect(). [PATCH] PCI: dma_pool fixups [PATCH] PCI: avoid two returns directly after each other in pcidriver.c This avoids a return direct before the final return of a function. Better only modify the return code and fall through to the final return. [PATCH] PCI Hotplug: Coding style fixes for drivers/pci/hotplug.c [PATCH] PCI Hotplug: very small optimisations for ibmphp_pci.c [PATCH] PCI Hotplug: kill hpcrc from several functions in ibmphp_core.c This patch kills the variable hpcrc from many places. It is used as a temporary storage for the return code before this is copied to rc which contains the "real" return code. There are some checks if to copy or not but at the end they will always have the same value, so we can directly put the return code in rc and kill hpcrc. [PATCH] PCI Hotplug: make ibm_unconfigure_device void ibm_unconfigure_device always returns 0, so we do not need to check for a return value != 0 and can kill the warning. And if the return value is always the same we don't need a return value. Also some whitespace fixing. And this time not line wrapped. Really. Absolutely sure. Checked twice. [PATCH] I2C: fix oops when CONFIG_I2C_DEBUG_CORE is enabled and the bttv driver is loaded. [PATCH] yellowfin: correct printk of dma_addr_t fix dma_addr_t type error with CONFIG_HIGHMEM64G=y; [PATCH] sundance: correct printk of dma_addr_t fix dma_addr_t type error with CONFIG_HIGHMEM64G=y; [netdrvr e1000] Serial-over-LAN (SoL) fix * Set VLAN filtering to IEEE 802.1Q after reset so we don't break Serial-over-LAN (SoL) connections that use VLANs. [netdrvr e1000] tx_lock * Fix race in Tx performance path with tx_lock. Between checking if we're out of resources and stopping the queue, we can get a hard interrupt which will clean up all Tx work, and wake the queue. Coming out of hard interrupt context, we stop the queue even though no work was queued, and all work completed has been cleaned up. Scenario requires ring to be completely filled, which is more likely to happen with TSO, since each TSO send consumes multiple ring entries. [netdrvr e1000] Allow 1000/Full setting for Autoneg param * Allow 1000/Full setting for AutoNeg param for Fiber connections. Jon D Mason [jonmason@us.ibm.com]. [netdrvr e1000] Misc - copyright, changelog spelling * Misc - copyright update, changelog, spelling fixes. [netdrvr e1000] on-demand stats support * Provide updated stats when requested via ->get_stats or ethtool. Previously, driver would only update stats every 2 seconds, which would cause some monitoring apps to show zero change from one second to the next. [netdrvr e1000] 82547 interrupt assert/de-assert re-ordering * 82547 needs interrupt disable/enable to keep interrupt assertion state synced between 82547 and APIC. 82547 will re-order assert and de-assert messages if hub link bus is busy (heavy traffic). Disabling interrupt on device works around re- order issue. Note: this is a re-patch. We backed out the patch because of a report on a system with a 8086:1019 device would lock up with this patch. Turns out that system was a pre-production sample. [PATCH] PCI: fix "pcibus_class" Device Class, release function John Rose wrote: > The function release_pcibus_dev() in probe.c defines the release procedure for > device class pcibus_class. I want to suggest that this function be scrapped :) > > This release function is called in the code path of class_device_unregister(). > The pcibus_class devices aren't currently unregistered anywhere, from what I > can tell, so this release function is currently unused. The runtime removal of > PCI buses from logical partitions on PPC64 requires the unregistration of these > class devices. The natural place to do this IMHO is in pci_remove_bus_device() > in remove.c. You're right that the class device isn't currently unregistered, and that was an oversight in the patch I originally sent. Attatched is a patch that remedies that situation. pci_remove_bus_device() *is* the natural place to unregister the class_dev, and that's just what the patch does. > The problem is that this calls pci_destroy_dev(), which calls put() on the same > "bridge" device that the release function does. This should only be done once > in the course of removing a pci_bus, and I doubt that we want to change > pci_destroy_dev(). The kfree() of the pci_bus struct is also done in both > pci_remove_bus_device() and release_pcibus_dev(). Yep. The patch pulls the kfree() out of pci_remove_bus_device() and calls class_device_unregister() in it's place. This will put() the bridge device and free the pci_bus as needed. put() does need to be called twice because the bridge device is get()'d twice: once when the device is registered and once when it's bus device grabs a reference to it. [PATCH] Fix race in sched_exit() From: Martin Schwidefsky Fix a race on sleep_avg in sched_exit(). The symptom I saw on 64-bit s390 has been a fixpoint divide exception because sleep_avg had a value > NS_MAX_SLEEP_AVG. I tracked it down and the problem is sched_exit which recalculates the parents sleep average without taking the runqueue lock. schedule() subtracts run_time from sleep_avg of the previous process. This can turn out negative and is corrected shortly after the subtraction but that is already too late. sched_exit() already read the negative value an miscalculated the parents sleep_avg -> bang. I fixed this by adding task_rq_lock/task_rq_unlock to sched_exit(). [PATCH] Eicon isdn driver flush_scheduled_work() fix From: Armin flush_scheduled_work() may not be called from irq-context and it is not necessary for the diva_os_cancel_soft_isr() function anyway. [PATCH] sn2: set iommu bounce limit From: Jes Sorensen The following patch sets the IOMMU bounce limit on the SN2 which is require to avoid some ISA checks in ll_rw_blk.c causing a BUG_ON(). [PATCH] Fixes / Enhancements for PPC_GEN550 From: Tom Rini Various fixes for the PPC_GEN550 backend. - Move PPC_GEN550 bool into a more appropriate spot. - Add PPC_GEN550 support to the MCPN765 platform. - Allow for SERIAL_TEXT_DEBUG on PPC_GEN550. - Add missing headers to arch/ppc/syslib/gen550_dbg.c - Clean-up the KGDB interface such that we allow for a kgdb_map_scc call, but do not require one. - Add gen550 prototypes to - PPC_GEN550 backend code doesn't depend on 8250_SERIAL. [PATCH] Make PPC601_SYNC_FIX depend on pmac||prep From: Tom Rini The following has been approved by Paul, FWIW. The following patch makes PPC601_SYNC_FIX depend on PPC_PMAC || PPC_PREP. It used to depend on ALL_PPC I believe, but this was (at least semi-intentionally I gather) backed out. The last time this was discussed, the only platforms old enough to have a 601 to support were pmacs and preps, so it makes some sense to only ask for these machines. [PATCH] Remove useless argument from __ste_allocate() From: David Gibson In the current ppc64 code the function __ste_allocate() in arch/ppc64/mm/stab.c takes a context parameter which is never used. This patch removes it. [PATCH] Allow PCI BARs that start at 0 From: Anton Blanchard We have IO BARs on ppc64 machines that begin at address 0. The current pci probe code will ignore anything that starts at 0. Remove these checks. [PATCH] quiet down SMP boot messages From: Jes Sorensen I'd like to propose the following for 2.6.1-mm/2.6.2. On systems with a large number of CPUs the number of printk's flowing by for each CPU booting starts becoming a real console hog. The following patch eliminates a couple of them (already sent a patch to David for the ia64 specific ones) as well as changes the "Building zonelist : X" in "Built Y zonelists". IMHO it doesn't make any sense to print for each zonelist since it's run in a for loop running from 0 to Y-1 anyway. The patch nukes a few new printk's that were introduced with the scheduler changes to the NUMA code in -mm3, if these are still needed then I won't fight for that part of the patch. [PATCH] VT locking fixes From: Benjamin Herrenschmidt - Make sure that all console operations are approriately protected under console_sem. - Adds checks to make sure that people are taking console_sem when it is expected to be held. [PATCH] lock_cpu_hotplug only if CONFIG_CPU_HOTPLUG From: Rusty Russell The cpucontrol mutex is not required when no cpus can go up and down. Andrew wrote a wrapper for it to avoid #ifdefs, this expands that to only be defined for CONFIG_HOTPLUG_CPU, and uses it everywhere. The only downside is that the cpucontrol lock was overloaded by my recent patch to net/core/flow.c to protect it from reentrance, so this reintroduces the local flow_flush_sem. This code isn't speed critical, so taking two locks when CONFIG_HOTPLUG_CPU=y is not really an issue. [PATCH] ia32 MSI vector handling fix From: "Nakajima, Jun" To get the vector-based interrupt handling work, we need to give the vector number to device drivers instead of the IRQ if IRQ < 16. It was not happening for SCI, and the patch fixes it. In many cases, the IRQ for SCI is 9, and the problem was not detected, but one particular machine exposed the bug. [PATCH] kbuild: Unmangle include options for gcc From: Sam Ravnborg When utilising the make O=... option the include options for gcc were mangled even when absolute paths was used. Also remove duplication of CPPFLAGS. They were assigned twice. [It is still possible for architectures to modify CPPFLAGS]. This patch allows xconfig to be build with make O=... xconfig.It will also help development of external modules with absolute paths for their -I options. Note: As a side effect a full recompile of the kernel takes place due to changes in number of gcc options. [PATCH] sisfb update From: Thomas Winischhofer sisfb is simply broken in current 2.6.x. This patch updates sisfb to the current development version which no less than 11 months ahead of the version in the kernel. Updated includes - many fixes (duh) - support for new chipsets (661, 741, 760) - support for new video bridges (301C, 302ELV) - removal of all offending fp code (as discussed earlier this month) - a lot of code clean-up (which is the main reason for its size) [PATCH] Fix more gcc 3.4 warnings From: Andi Kleen Just many more warning fixes for a gcc 3.4 snapshot. It warns for a lot of things now, e.g. for ?: and ({ ... }) and casts as lvalues. And for functions marked inline in headers, but no body. Actually there are more warnings, i stopped fixing at some point. Some of the warnings seem to be dubious (e.g. the binfmt_elf.c one, which looks more like a compiler bug to me) I also fixed the _exit() prototype to be void because gcc was complaining about this. [PATCH] string fixes for gcc 3.4 From: Andi Kleen gcc 3.4 optimizes sprintf(foo,"%s",string) into strcpy. Unfortunately that isn't seen by the inliner and linux/i386 has no out-of-line strcpy so you end up with a linker error. This patch adds out of line copies for most string functions to avoid this. Actually it doesn't export them to modules yet, that would be the next step. BTW In my opinion we shouldn't use inline string functions at all. The __builtin_str* in modern gcc are better (I used them very successfully on x86-64) and for the bigger functions like strrchr,strtok et.al. it just doesn't make any sense to inline them or even code them in assembler. Also fix the bcopy prototype gcc was complaining about. [PATCH] gcc-3.5: fix extern inline decls include/linux/bio.h:234: sorry, unimplemented: inlining failed in call to 'bio_phys_segments': function body not available [PATCH] gcc-3.5: #ident fixes arch/i386/kernel/msr.c:1:10: warning: extra tokens at end of #ident directive arch/i386/kernel/cpuid.c:1:10: warning: extra tokens at end of #ident directive [PATCH] gcc-3.5: binfmt_elf warning fix fs/binfmt_elf.c:171: warning: use of cast expressions as lvalues is deprecated [PATCH] gcc-3.5: pcm_misc.c warnings sound/core/pcm_misc.c:557: warning: use of cast expressions as lvalues is deprecated sound/core/pcm_misc.c:568: warning: use of cast expressions as lvalues is deprecated sound/core/pcm_misc.c:569: warning: use of cast expressions as lvalues is deprecated sound/core/pcm_misc.c:570: warning: use of cast expressions as lvalues is deprecated sound/core/pcm_misc.c:586: warning: use of cast expressions as lvalues is deprecated sound/core/pcm_misc.c:596: warning: use of cast expressions as lvalues is deprecated [PATCH] gcc-3.5: fix pcm_plugin warnings [PATCH] gcc-3.5: reiserfs fixes include/linux/reiserfs_fs.h:1837: sorry, unimplemented: inlining failed in call to 'decrement_bcount': function body not available [PATCH] gcc-3.5: ide.h fixes include/linux/ide.h:1424: sorry, unimplemented: inlining failed in call to 'SELECT_MASK': function body not available [PATCH] gcc-3.5: elevator.h fixes include/linux/elevator.h:106: sorry, unimplemented: inlining failed in call to 'elv_try_last_merge': function body not available [PATCH] gcc-3.5: keyboard.c fixes drivers/char/keyboard.c:205: warning: use of conditional expressions as lvalues is deprecated [PATCH] gcc-3.5: _exit fix include/asm/unistd.h:397: warning: conflicting types for built-in function '_exit' Just remove the dang thing - nobody uses _exit(). Except for the vmware stub, which breaks. So I kindly exported do_exit() to kernel modules, just for vmware... [PATCH] Fix inlining failure (all GCCs) in parport From: Jan Hubicka GCC never inline extern inline function redefined by new body (because it is not clear what body one should choose) parport contains such duplicated functions for apparently no good reasons. Both copies differ slightly, not sure whether it is intentional or just garbage. [PATCH] More 3.4 compilation fixes From: Jan Hubicka GCC now converts sprintf (a,"%s",b) to strcpy. This lose on kernel as strcpy is not inlined and not present in library, so one gets linker failure. It seems to make sense to apply this optimization by hand. [PATCH] gcc-3.5: sound/core/seq/seq_clientmgr.c sound/core/seq/seq_clientmgr.c: In function `snd_seq_open': sound/core/seq/seq_clientmgr.c:331: warning: use of cast expressions as lvalues is deprecated [PATCH] gcc-3.5: parport warnings drivers/pnp/pnpbios/core.c: In function `pnpbios_probe_system': drivers/pnp/pnpbios/core.c:438: warning: use of cast expressions as lvalues is deprecated [PATCH] gcc-3.5: i810_accel fix drivers/video/i810/i810_accel.c: In function `i810fb_init_ringbuffer': drivers/video/i810/i810_accel.c:30: sorry, unimplemented: inlining failed in call to 'flush_cache': function body not available [PATCH] gcc-3.5: misc.c warning fix arch/i386/boot/compressed/misc.c:107: warning: conflicting types for built-in function 'puts' [PATCH] gcc-3.5: fsfilter.h, ntfs.h From: Tim Cambrant Fix inline decls in fsfilter.h, ntfs.h [PATCH] gcc-3.5: zatm.c fix drivers/atm/zatm.c: In function `zatm_close': drivers/atm/zatm.c:1371: error: invalid lvalue in assignment drivers/atm/zatm.c: In function `zatm_open': drivers/atm/zatm.c:1386: error: invalid lvalue in assignment drivers/atm/zatm.c:1398: error: invalid lvalue in assignment drivers/atm/zatm.c: In function `zatm_module_init': drivers/atm/zatm.c:1600: error: invalid lvalue in assignment [PATCH] gcc-3.5: vxfs fixes fs/freevxfs/vxfs.h:33:10: warning: extra tokens at end of #ident directive fs/freevxfs/vxfs_extern.h:75: sorry, unimplemented: inlining failed in call to 'vxfs_put_page': function body not available [PATCH] gcc-3.5: hfs fixes fs/hfs/file_hdr.c: In function `dup_layout': fs/hfs/file_hdr.c:246: error: invalid lvalue in assignment [PATCH] gcc-3.5: drivers/atm/uPD98402.c drivers/atm/uPD98402.c: In function `uPD98402_start': drivers/atm/uPD98402.c:214: error: invalid lvalue in assignment [PATCH] gcc-3.5: intermezzo fs/intermezzo/dir.c: In function `presto_prep': fs/intermezzo/intermezzo_fs.h:414: sorry, unimplemented: inlining failed in call to 'presto_is_read_only': function body not available fs/intermezzo/presto.c: In function `izo_mark_cache': fs/intermezzo/presto.c:341: error: invalid lvalue in assignment fs/intermezzo/presto.c:342: error: invalid lvalue in assignment [PATCH] gcc-3.5: iphase.c drivers/atm/iphase.c: In function `open_tx': drivers/atm/iphase.c:1757: error: invalid lvalue in assignment drivers/atm/iphase.c: In function `ia_close': drivers/atm/iphase.c:2674: error: invalid lvalue in assignment drivers/atm/iphase.c: In function `ia_open': drivers/atm/iphase.c:2687: error: invalid lvalue in assignment drivers/atm/iphase.c:2703: error: invalid lvalue in assignment drivers/atm/iphase.c: In function `ia_init_one': drivers/atm/iphase.c:3199: error: invalid lvalue in assignment [PATCH] gcc-3.5: suni.c drivers/atm/suni.c: In function `suni_start': drivers/atm/suni.c:233: error: invalid lvalue in assignment [PATCH] gcc-3.5: drivers/atm/fore200e.c drivers/atm/fore200e.c: In function `fore200e_open': drivers/atm/fore200e.c:1420: error: invalid lvalue in assignment drivers/atm/fore200e.c: In function `fore200e_register': drivers/atm/fore200e.c:2485: error: invalid lvalue in assignment [PATCH] gcc-3.5: ncpfs fs/ncpfs/ncplib_kernel.h:164: sorry, unimplemented: inlining failed in call to 'ncp_strnicmp': function body not available [PATCH] gcc-3.5: drivers/atm/eni.c drivers/atm/eni.c: In function `eni_close': drivers/atm/eni.c:1878: error: invalid lvalue in assignment drivers/atm/eni.c: In function `eni_open': drivers/atm/eni.c:1894: error: invalid lvalue in assignment drivers/atm/eni.c:1905: error: invalid lvalue in assignment drivers/atm/eni.c: In function `eni_init_one': drivers/atm/eni.c:2233: error: invalid lvalue in assignment [PATCH] gcc-3.5: drivers/atm/idt77105.c drivers/atm/idt77105.c: In function `idt77105_start': drivers/atm/idt77105.c:268: error: invalid lvalue in assignment drivers/atm/idt77105.c: In function `idt77105_stop': drivers/atm/idt77105.c:346: error: invalid lvalue in assignment [PATCH] gcc-3.5: drivers/atm/he.c drivers/atm/he.c: In function `he_init_one': drivers/atm/he.c:383: error: invalid lvalue in assignment drivers/atm/he.c: In function `he_open': drivers/atm/he.c:2364: error: invalid lvalue in assignment [PATCH] gcc-3.5: net/atm/common.c net/atm/common.c: In function `vcc_create': net/atm/common.c:151: error: invalid lvalue in assignment [PATCH] gcc-3.5: drivers/i2c/chips/it87.c drivers/i2c/chips/it87.c:130: warning: conflicting types for built-in function 'log2' [PATCH] gcc-3.5: radeon drivers/char/drm/radeon_state.c: In function `radeon_cp_dispatch_texture': drivers/char/drm/radeon_state.c:1411: error: invalid lvalue in assignment [PATCH] gcc-3.5: drivers/ide/pci/sc1200.c drivers/ide/pci/sc1200.c: In function `sc1200_suspend': drivers/ide/pci/sc1200.c:423: error: invalid lvalue in assignment [PATCH] gcc-3.5: raid6 drivers/md/raid6x86.h:1:10: warning: extra tokens at end of #ident directive [PATCH] gcc-3.5: mtd drivers/mtd/chips/cfi_cmdset_0020.c:545: error: invalid lvalue in increment drivers/mtd/chips/cfi_cmdset_0020.c:547: error: invalid lvalue in increment drivers/mtd/chips/cfi_cmdset_0020.c:549: error: invalid lvalue in increment [PATCH] gcc-3.5: DVB drivers/media/dvb/frontends/ves1820.c: In function `ves1820_setup_reg0': drivers/media/dvb/frontends/ves1820.c:244: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:244: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c: In function `ves1820_attach': drivers/media/dvb/frontends/ves1820.c:541: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:541: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:544: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:544: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:545: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:545: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:546: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:546: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:547: error: invalid lvalue in assignment drivers/media/dvb/frontends/ves1820.c:547: error: invalid lvalue in assignment [PATCH] gcc-3.5: PCMCIA include/pcmcia/mem_op.h: In function `copy_from_pc': include/pcmcia/mem_op.h:85: error: invalid lvalue in assignment include/pcmcia/mem_op.h:85: error: invalid lvalue in assignment include/pcmcia/mem_op.h: In function `copy_to_pc': include/pcmcia/mem_op.h:97: error: invalid lvalue in assignment include/pcmcia/mem_op.h:97: error: invalid lvalue in assignment include/pcmcia/mem_op.h: In function `copy_pc_to_user': include/pcmcia/mem_op.h:109: error: invalid lvalue in assignment include/pcmcia/mem_op.h:109: error: invalid lvalue in assignment include/pcmcia/mem_op.h: In function `copy_user_to_pc': include/pcmcia/mem_op.h:124: error: invalid lvalue in assignment include/pcmcia/mem_op.h:124: error: invalid lvalue in assignment [PATCH] gcc-3.5: video drivers/media/video/mxb.c: In function `mxb_probe': drivers/media/video/mxb.c:264: error: invalid lvalue in assignment [PATCH] gcc-3.5: pnpbios drivers/pnp/pnpbios/core.c:438: warning: use of cast expressions as lvalues is deprecated [PATCH] gcc-3.5: drivers/scsi/53c700 In file included from drivers/scsi/53c700.c:140: drivers/scsi/53c700.h: In function `NCR_700_set_SXFER': drivers/scsi/53c700.h:106: error: invalid lvalue in assignment drivers/scsi/53c700.h:107: error: invalid lvalue in assignment drivers/scsi/53c700.h: In function `NCR_700_set_depth': drivers/scsi/53c700.h:116: error: invalid lvalue in assignment drivers/scsi/53c700.h:117: error: invalid lvalue in assignment drivers/scsi/53c700.h: In function `NCR_700_set_flag': drivers/scsi/53c700.h:137: error: invalid lvalue in assignment drivers/scsi/53c700.h: In function `NCR_700_clear_flag': drivers/scsi/53c700.h:142: error: invalid lvalue in assignment [PATCH] gcc-3.5: advansys.c drivers/scsi/advansys.c: In function `advansys_reset': drivers/scsi/advansys.c:6022: error: invalid lvalue in assignment drivers/scsi/advansys.c:6045: error: invalid lvalue in assignment drivers/scsi/advansys.c: In function `advansys_interrupt': drivers/scsi/advansys.c:6314: error: invalid lvalue in assignment drivers/scsi/advansys.c: In function `asc_scsi_done_list': drivers/scsi/advansys.c:6386: error: invalid lvalue in assignment drivers/scsi/advansys.c: In function `asc_enqueue': drivers/scsi/advansys.c:7437: error: invalid lvalue in assignment drivers/scsi/advansys.c:7445: error: invalid lvalue in assignment drivers/scsi/advansys.c:7448: error: invalid lvalue in assignment drivers/scsi/advansys.c: In function `asc_dequeue_list': drivers/scsi/advansys.c:7569: error: invalid lvalue in assignment drivers/scsi/advansys.c: In function `asc_rmqueue': drivers/scsi/advansys.c:7647: error: invalid lvalue in assignment drivers/scsi/advansys.c:7648: error: invalid lvalue in assignment [PATCH] gcc-3.5: atp870u.c drivers/scsi/atp870u.c: In function `se