aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-08-31[PATCH] iseries_veth: Fix bogus counting of TX errorsMichael Ellerman
There's a number of problems with the way iseries_veth counts TX errors. Firstly it counts conditions which aren't really errors as TX errors. This includes if we don't have a connection struct for the other LPAR, or if the other LPAR is currently down (or just doesn't want to talk to us). Neither of these should count as TX errors. Secondly, it counts one TX error for each LPAR that fails to accept the packet. This can lead to TX error counts higher than the total number of packets sent through the interface. This is confusing for users. This patch fixes that behaviour. The non-error conditions are no longer counted, and we introduce a new and I think saner meaning to the TX counts. If a packet is successfully transmitted to any LPAR then it is transmitted and tx_packets is incremented by 1. If there is an error transmitting a packet to any LPAR then that is counted as one error, ie. tx_errors is incremented by 1. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Simplify full-queue handlingMichael Ellerman
The iseries_veth driver often has multiple netdevices sending packets over a single connection to another LPAR. If the bandwidth to the other LPAR is exceeded, all the netdevices must have their queues stopped. The current code achieves this by queueing one incoming skb on the per-netdevice port structure. When the connection is able to send more packets we iterate through the port structs and flush any packet that is queued, as well as restarting the associated netdevice's queue. This arrangement makes less sense now that we have per-connection TX timers, rather than the per-netdevice generic TX timer. The new code simply detects when one of the connections is full, and stops the queue of all associated netdevices. Then when a packet is acked on that connection (ie. there is space again) all the queues are woken up. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Add a per-connection ack timerMichael Ellerman
Currently the iseries_veth driver contravenes the specification in Documentation/networking/driver.txt, in that if packets are not acked by the other LPAR they will sit around forever. This patch adds a per-connection timer which fires if we've had no acks for five seconds. This is superior to the generic TX timer because it catches the case of a small number of packets being sent and never acked. This fixes a bug we were seeing on real systems, where some IPv6 neighbour discovery packets would not be acked and then prevent the module from being removed, due to skbs lying around. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Remove TX timeout codeMichael Ellerman
The iseries_veth driver uses the generic TX timeout watchdog, however a better solution is in the works, so remove this code. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Use kobjects to track lifecycle of connection structsMichael Ellerman
The iseries_veth driver can attach to multiple vlans, which correspond to multiple net devices. However there is only 1 connection between each LPAR, so the connection structure may be shared by multiple net devices. This makes module removal messy, because we can't deallocate the connections until we know there are no net devices still using them. The solution is to use ref counts on the connections, so we can delete them (actually stop) as soon as the ref count hits zero. This patch fixes (part of) a bug we were seeing with IPv6 sending probes to a dead LPAR, which would then hang us forever due to leftover skbs. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Make init_connection() & destroy_connection() symmetricalMichael Ellerman
This patch makes veth_init_connection() and veth_destroy_connection() symmetrical in that they allocate/deallocate the same data. Currently if there's an error while initialising connections (ie. ENOMEM) we call veth_module_cleanup(), however this will oops because we call driver_unregister() before we've called driver_register(). I've never seen this actually happen though. So instead we explicitly call veth_destroy_connection() for each connection, any that have been set up will be deallocated. We also fix a potential leak if vio_register_driver() fails. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Only call dma_unmap_single() if dma_map_single() succeededMichael Ellerman
The iseries_veth driver unconditionally calls dma_unmap_single() even when the corresponding dma_map_single() may have failed. Rework the code a bit to keep the return value from dma_unmap_single() around, and then check if it's a dma_mapping_error() before we do the dma_unmap_single(). Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Replace lock-protected atomic with an ordinary variableMichael Ellerman
The iseries_veth driver uses atomic ops to manipulate the in_use field of one of its per-connection structures. However all references to the flag occur while the connection's lock is held, so the atomic ops aren't necessary. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Remove redundant message stack lockMichael Ellerman
The iseries_veth driver keeps a stack of messages for each connection and a lock to protect the stack. However there is also a per-connection lock which makes the message stack lock redundant. Remove the message stack lock and document the fact that callers of the stack-manipulation functions must hold the connection's lock. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Fix broken promiscuous handlingMichael Ellerman
Due to a logic bug, once promiscuous mode is enabled in the iseries_veth driver it is never disabled. The driver keeps two flags, promiscuous and all_mcast which have exactly the same effect. This is because we only ever receive packets destined for us, or multicast packets. So consolidate them into one promiscuous flag for simplicity. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Try to avoid pathological reset behaviourMichael Ellerman
The iseries_veth driver contains a state machine which is used to manage how connections are setup and neogotiated between LPARs. If one side of a connection resets for some reason, the two LPARs can get stuck in a race to re-setup the connection. This can lead to the connection being declared dead by one or both ends. In practice the connection is declared dead by one or both ends approximately 8/10 times a connection is reset, although it is rare for connections to be reset. (an example here: http://michael.ellerman.id.au/files/misc/veth-trace.html) The core of the problem is that the end that resets the connection doesn't wait for the other end to become aware of the reset. So the resetting end starts setting the connection back up, and then receives a reset from the other end (which is the response to the initial reset). And so on. We're severely limited in what we can do to fix this. The protocol between LPARs is essentially fixed, as we have to interoperate with both OS/400 and old Linux drivers. Which also means we need a fix that only changes the code on one end. The only fix I've found given that, is to just blindly sleep for a bit when resetting the connection, in the hope that the other end will get itself sorted. Needless to say I'd love it if someone has a better idea. This does work, I've so far been unable to get it to break, whereas without the fix a reset of one end will lead to a dead connection ~8/10 times. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Remove a FIXME WRT deletion of the ack_timerMichael Ellerman
The iseries_veth driver has a timer which we use to send acks. When the connection is reset or stopped we need to delete the timer. Currently we only call del_timer() when resetting a connection, which means the timer might run again while the connection is being re-setup. As it turns out that's ok, because the flags the timer consults have been reset. It's cleaner though to call del_timer_sync() once we've dropped the lock, although the timer may still run between us dropping the lock and calling del_timer_sync(), but as above that's ok. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[PATCH] iseries_veth: Cleanup error and debug messagesMichael Ellerman
Currently the iseries_veth driver prints the file name and line number in its error messages. This isn't very useful for most users, so just print "iseries_veth: message" instead. - convert uses of veth_printk() to veth_debug()/veth_error()/veth_info() - make terminology consistent, ie. always refer to LPAR not lpar - be consistent about printing return codes as %d not %x - make format strings fit in 80 columns Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-08-31[netdrvr de2104x] store PCI bus addresses in unsigned longJeff Garzik
BZ# 4475.
2005-08-31[netdrvr tulip] new PCI IDJeff Garzik
Noted in BZ# 2960.
2005-08-30Merge refs/heads/upstream from ↵Linus Torvalds
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git
2005-08-30[PATCH] ppc32 8xx: fix warnings in m8xx_setup.cMarcelo Tosatti
The following patch fixes two warnings in arch/ppc/syslib/m8xx_setup.c Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-30[PATCH] x86: pci_assign_unassigned_resources() updateIvan Kokshaysky
I had some time to think about PCI assign issues in 2.6.13-rc series. The major problem here is that we call pci_assign_unassigned_resources() way too early - at subsys_initcall level. Therefore we give no chances to ACPI and PnP routines (called at fs_initcall level) to reserve their respective resources properly, as the comments in drivers/pnp/system.c and drivers/acpi/motherboard.c suggest: /** * Reserve motherboard resources after PCI claim BARs, * but before PCI assign resources for uninitialized PCI devices */ So I moved the pci_assign_unassigned_resources() call to pcibios_assign_resources() (fs_initcall), which should hopefully fix a lot of problems and make PCIBIOS_MIN_IO tweaks unnecessary. Other changes: - remove resource assignment code from pcibios_assign_resources(), since it duplicates pci_assign_unassigned_resources() functionality and actually does nothing in 2.6.13; - modify ROM assignment code as per Ben's suggestion: try to use firmware settings by default (if PCI_ASSIGN_ROMS is not set); - set CARDBUS_IO_SIZE back to 4K as it's a wonderful stress test for various setups. Confirmed by Tero Roponen <teanropo@cc.jyu.fi> (who had problems with the 4kB CardBus IO size previously). Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-30Merge HEAD from /spare/repo/linux-2.6/.git Jeff Garzik
2005-08-30Merge refs/heads/for-linus from ↵Linus Torvalds
master.kernel.org:/pub/scm/linux/kernel/git/shaggy/jfs-2.6.git
2005-08-30Merge HEAD from master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa Linus Torvalds
2005-08-30Merge refs/heads/drm-latest from ↵Linus Torvalds
master.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6
2005-08-30[ALSA] usb-audio: throttle MIDI URB resubmits on USB errorsClemens Ladisch
USB generic driver When a USB error occurs that might indicate that the device has been unplugged, don't resubmit the URB immediately to prevent flooding the log with error messages before khubd has us disconnect()ed. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[PATCH] Assign device pointer to OSS devicesTakashi Iwai
Add register_sound_special_device() function to allow assignment of device pointer to a specific OSS device for HAL. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] version 1.0.10rc1Jaroslav Kysela
2005-08-30[ALSA] Add identification for Live 5.1 [SB0220]Lee Revell
EMU10K1/EMU10K2 driver Add identification for Live 5.1 [SB0220] Signed-off-by: Lee Revell <rlrevell@joe-job.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] emu10k1 - Add missing ac97 support on SBLive! Player 5.1Takashi Iwai
EMU10K1/EMU10K2 driver Added the missing ac97 support on SBLive! Player 5.1. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] intel8x0 - Add quirk for FSC 4010Takashi Iwai
Intel8x0 driver Added ac97_quirk for FSC 4010. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] pcm - Fix zero-division in 32bit compat layerTakashi Iwai
PCM Midlevel Fixed zero-division bug in PCM 32bit compat layer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] intel8x0 - add AC97_TUNE_MUTE_LED quirk for HP nx8220 laptop 103c:0934Daniel Horchner
Intel8x0 driver Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-08-30[ALSA] usb-audio: fix Emagic MIDI protocol handlingClemens Ladisch
USB generic driver Emagic devices pad their packets not with 0xff bytes but with a 0xff byte followed by garbage, so we have to stop at the first such byte. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] Fix missing spin_unlockTakashi Iwai
au88x0 driver,Common EMU synth Fixed missing spin_unlock. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] include/sound/gus.h: 'extern inline' -> 'static inline'Adrian Bunk
GUS Library 'extern inline' doesn't make much sense. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] hda-intel - Fix ULI M5461 supportTakashi Iwai
HDA Intel driver Fix and clean up for the support of ULI M5461 - set CORB/RIRB sizes explicitly - add workarounds for ULI on ia32 - max number of streams depends on the chip type now - increase the size of BDL Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] hda-codec - Add beep support for UniwillTakashi Iwai
HDA Codec driver Added the missing beep support for Uniwill laptop (ALSA bug#1358). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] vxpocket - Register device pointerTakashi Iwai
Digigram VX Pocket driver Add snd_card_set_dev() to register the device pointer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] vxpocket - Fix wrong index assignmentTakashi Iwai
Digigram VX Pocket driver Fixed the wrong index number assignment. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] vxpocket - Add missing event callbackTakashi Iwai
Digigram VX Pocket driver Added the missing event callback. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] Fix compilation without CONFIG_PROC_FSTakashi Iwai
Memalloc module Fix an error when built without CONFIG_PROC_FS. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] hda-codec - Code clean upTakashi Iwai
HDA Codec driver Use struct instead of array to improve the readability of hda_codec.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] hda-intel - correct a bug in detection of rate supportedNicolas Graziano
HDA Codec driver The insertion of the rate 9600 make a shift in detection of supported rate, put this rate at the end of the list. Signed-off-by: Nicolas Graziano <nicolas.graziano@wanadoo.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] HP nx6110 quirksSergey Vlasov
Intel8x0 driver,AC97 Codec The HP nx6110 laptop needs to have Headphone Jack Sense enabled so that the internal speakers will be turned off when headphones are plugged in. Also ac97_quirk=hp_only is needed to make a single Master volume in the mixer instead of separate volumes for internal speakers and headphones, which just confuses the user. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] ac97_bus - revert last change and do it only in the ALSA treeJaroslav Kysela
AC97 Codec Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-08-30[ALSA] ac97_bus - replace <linux/module.h> with <sound/driver.h> for consistencyJaroslav Kysela
AC97 Codec Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-08-30[ALSA] via82xx - Add DXS entry for MSI 7142Takashi Iwai
VIA82xx driver Added the DXS entry for MSI 7142 (K8MM-V). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] PCM resume cleanupsJaroslav Kysela
Digigram VX core,CS4231 driver,ATIIXP driver,VIA82xx driver VIA82xx-modem driver,au88x0 driver,CS46xx driver,Trident driver This patch disables SNDRV_PCM_INFO_RESUME flag for drivers which does not support the full resume. Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-08-30[ALSA] ac97 - make ac97 codec device name uniqueBjorge Dijkstra
AC97 Codec The patch fixes the bus_id conflict error when registering two codecs of the same type (ALSA bug#1334). Signed-off-by: Bjorge Dijkstra <bjorge@gmx.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] hdspm - Fix module parameter descriptionTakashi Iwai
RME9652 driver Fix the module parameter description after proofreading. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] nm256 - Fix PM and irq handlingTakashi Iwai
NM256 driver - Fixed the PCM resume - restoring the rate setting - Fixed the handling of buggy irqs - Dynamically acquire/release irq handler to make the driver more robust to unknown irq storms (as OSS driver does). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-08-30[ALSA] intel8x0 - Fix PMTakashi Iwai
Intel8x0 driver Fixed the PCM resume of intel8x0. Restores the requested register setting. Signed-off-by: Takashi Iwai <tiwai@suse.de>