aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/wireless/orinoco.c
AgeCommit message (Collapse)Author
2006-06-19Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (109 commits) [ETHTOOL]: Fix UFO typo [SCTP]: Fix persistent slowdown in sctp when a gap ack consumes rx buffer. [SCTP]: Send only 1 window update SACK per message. [SCTP]: Don't do CRC32C checksum over loopback. [SCTP] Reset rtt_in_progress for the chunk when processing its sack. [SCTP]: Reject sctp packets with broadcast addresses. [SCTP]: Limit association max_retrans setting in setsockopt. [PFKEYV2]: Fix inconsistent typing in struct sadb_x_kmprivate. [IPV6]: Sum real space for RTAs. [IRDA]: Use put_unaligned() in irlmp_do_discovery(). [BRIDGE]: Add support for NETIF_F_HW_CSUM devices [NET]: Add NETIF_F_GEN_CSUM and NETIF_F_ALL_CSUM [TG3]: Convert to non-LLTX [TG3]: Remove unnecessary tx_lock [TCP]: Add tcp_slow_start_after_idle sysctl. [BNX2]: Update version and reldate [BNX2]: Use CPU native page size [BNX2]: Use compressed firmware [BNX2]: Add firmware decompression [BNX2]: Allow WoL settings on new 5708 chips ... Manual fixup for conflict in drivers/net/tulip/winbond-840.c
2006-06-17[NET]: Add netif_tx_lockHerbert Xu
Various drivers use xmit_lock internally to synchronise with their transmission routines. They do so without setting xmit_lock_owner. This is fine as long as netpoll is not in use. With netpoll it is possible for deadlocks to occur if xmit_lock_owner isn't set. This is because if a printk occurs while xmit_lock is held and xmit_lock_owner is not set can cause netpoll to attempt to take xmit_lock recursively. While it is possible to resolve this by getting netpoll to use trylock, it is suboptimal because netpoll's sole objective is to maximise the chance of getting the printk out on the wire. So delaying or dropping the message is to be avoided as much as possible. So the only alternative is to always set xmit_lock_owner. The following patch does this by introducing the netif_tx_lock family of functions that take care of setting/unsetting xmit_lock_owner. I renamed xmit_lock to _xmit_lock to indicate that it should not be used directly. I didn't provide irq versions of the netif_tx_lock functions since xmit_lock is meant to be a BH-disabling lock. This is pretty much a straight text substitution except for a small bug fix in winbond. It currently uses netif_stop_queue/spin_unlock_wait to stop transmission. This is unsafe as an IRQ can potentially wake up the queue. So it is safer to use netif_tx_disable. The hamradio bits used spin_lock_irq but it is unnecessary as xmit_lock must never be taken in an IRQ handler. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
2006-05-23Merge branch 'master' into upstreamJeff Garzik
2006-05-23[PATCH] orinoco: possible null pointer dereference in orinoco_rx_monitor()Florin Malita
If the skb allocation fails, the current error path calls dev_kfree_skb_irq() with a NULL argument. Also, 'err' is not being used. Coverity CID: 275. Signed-off-by: Florin Malita <fmalita@gmail.com> Cc: "John W. Linville" <linville@tuxdriver.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-04-24[PATCH] orinoco: delay FID allocation after firmware initializationPavel Roskin
This is needed to identify the card before possible allocation problems, so that the user at least can report the firmware version that fails. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24[PATCH] orinoco: fix BAP0 offset error after several days of operationJiri Benc
After several days of operation of Netgear MA311 card, the card becomes to seek improperly and needs reset. This patch tries to reset the card when this situation occurs. Mar 9 06:45:16 berkeley kernel: wlan0: Error -5 writing packet to BAP Mar 9 06:45:16 berkeley kernel: hermes @ f992a000: BAP0 offset error: reg=0x4044 id=0x128 offset=0x44 Mar 9 06:45:16 berkeley kernel: wlan0: Error -5 writing packet to BAP Mar 9 06:45:16 berkeley kernel: hermes @ f992a000: BAP0 offset error: reg=0x4044 id=0x128 offset=0x44 (etc.) A more detailed description of the problem can be found at https://bugzilla.novell.com/show_bug.cgi?id=154773 The same problem with different card is reported at http://sourceforge.net/mailarchive/message.php?msg_id=14597046 Signed-off-by: Jiri Benc <jbenc@suse.cz> Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24[PATCH] orinoco: simplify 802.3 encapsulation codePavel Roskin
Use skb_pull() to strip the addresses from the original packet. Don't strip protocol bytes. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24[PATCH] orinoco: refactor and clean up Tx error handlingPavel Roskin
The result of orinoco_xmit() can be OK, dropped packet and busy transmitter. Rename labels accordingly. Increment stats->tx_errors in one place. Increment stats->tx_dropped - nobody is doing it for us. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24[PATCH] orinoco: don't use any padding for Tx framesPavel Roskin
hermes_bap_pwrite() supports odd-sized packets now. There is no minimal packet size for 802.11. Also, hermes_bap_pwrite() supports odd-sized packets now. This removes all reasons to pad the Tx data. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24[PATCH] orinoco: orinoco_xmit() should only return valid symbolic constantsPavel Roskin
Don't ever return -errno from orinoco_xmit() - the network layer doesn't expect it. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24[PATCH] orinoco: optimize Tx exception handling in orinocoPavel Roskin
When processing Tx exception, only read data until addr1. Rename hermes_tx_descriptor_802_11 to hermes_txexc_data since it's only used to Tx exceptions. Reuse existing hermes_tx_descriptor structure. Remove fields after addr1 - they are not read from the card. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-24[PATCH] orinoco: remove tracing code, it's unusedPavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-04-19[PATCH] orinoco: fix truncating commsquality RID with the latest Symbol firmwarePavel Roskin
Symbol firmware F3.91-71 has an additional word in the commsquality RID. Extend the receiving buffer by one word to accomodate it. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
2006-03-28[PATCH] Typo fixesAlexey Dobriyan
Fix a lot of typos. Eyeballed by jmc@ in OpenBSD. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-01[PATCH] orinoco: fix setting power management parametersPavel Roskin
Power management parameters could not be set by iwconfig due to incorrect error handling. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-28[PATCH] Better fixup for the orinoco driverAlan Cox
The latest kernel added a pretty ugly fix for the orinoco etherleak bug which contains bogus skb->len checks already done by the caller and causes copies of all odd sized frames (which are quite common) While the skb->len check should be ripped out the other fix is harder to do properly so I'm proposing for this the -mm tree only until next 2.6.x so that it gets tested. Instead of copying buffers around blindly this code implements a padding aware version of the hermes buffer writing function which does padding as the buffer is loaded and thus more cleanly and without bogus 1.5K copies. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-28[PATCH] revert "orinoco: Information leakage due to incorrect padding"Andrew Morton
Cc: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-20Merge branch 'master'Jeff Garzik
2005-10-19[PATCH] orinoco: limit message rateAndrew Morton
Brice Goglin <Brice.Goglin@ens-lyon.org> reports a printk storm from this driver. Fix. Acked-by: David Gibson <hermes@gibson.dropbear.id.au> Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-18[PATCH] orinoco: remove redundance skb length check before paddingJohn W. Linville
Checking the skb->len value before calling skb_padto is redundant. Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-10-05Merge branch 'master'Jeff Garzik
2005-10-04[PATCH] orinoco: Information leakage due to incorrect paddingPavel Roskin
The orinoco driver can send uninitialized data exposing random pieces of the system memory. This happens because data is not padded with zeroes when its length needs to be increased. Reported by Meder Kydyraliev <meder@o0o.nu> Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-28[PATCH] orinoco: Fix flood of kernel log with stupid WE warningsBenjamin Herrenschmidt
Latest wireless extensions moved a field from netdev -> wireless_handlers. The WE core will now printk a warning on every call to get_wireless_stats() on a driver that still uses the old field. This patch fixes orinoco. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-23[PATCH] orinoco: Read only needed data in __orinoco_ev_txexc().Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> Read only needed data in __orinoco_ev_txexc(). Don't read the 802.11 header beyond addr1. The rest of the frame is not used currently. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-23[PATCH] orinoco: Annotate endianess of variables and structure members.Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> Annotate endianess of variables and structure members. Don't reuse variables for both host-endian and little-endian data. Minor comment changes in affected structures. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-23[PATCH] orinoco: orinoco_send_wevents() could return without unlocking.Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> orinoco_send_wevents() could return without unlocking. Failure to read BSSID from the hardware would cause orinoco_send_wevents() to return with lock held. Found by sparse. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-23[PATCH] orinoco: Fix memory leak and unneeded unlock in orinoco_join_ap()Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> Fix memory leak and unneeded unlock in orinoco_join_ap() If orinoco_lock() fails, the code would still run orinoco_unlock(), instead of freeing the allocated memory. Found by sparse. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-23[PATCH] orinoco: Remove inneeded system includes.Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> Remove inneeded system includes. Most system includes are not needed. In particular, the hardware backends don't need anything network related. Some includes have been moved from local headers to the C files where they are actually used. Includes that have to be in the local headers are no longer from the C sources. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-22ieee80211: update orinoco, wl3501 drivers for latest struct namingJames Ketrenos
2005-09-16[PATCH] orinoco: Don't include <net/ieee80211.h> twice.Pavel Roskin
Author: Pavel Roskin <proski@gnu.org> Date: Fri Sep 16 00:50:00 2005 -0400 Don't include <net/ieee80211.h> twice. Signed-off-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-14[PATCH] orinoco: WE-18 supportPavel Roskin
Author: Jean Tourrilhes <jt@hpl.hp.com> Signed-off-by: Pavel Roskin <proski@gnu.org> Use new Wireless Extension API for wireless stats. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-05[PATCH] orinoco: Optimize orinoco_join_ap()Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> diff-tree cb289b9f9b2a0f3ae7070a008f22e383b37526ee (from 56bfcdb38b3d04c1f8c1fd705e411f4be53b663c) Author: Pavel Roskin <proski@gnu.org> Date: Thu Sep 1 19:05:16 2005 -0400 Optimize orinoco_join_ap() - break from loop once the requested BSSID is found. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-05[PATCH] orinoco: Fix memory leak on error in processing hostscan frames.Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> diff-tree ca955293cdfd3139e150d3b4fed3922a7eb651fb (from cb289b9f9b2a0f3ae7070a008f22e383b37526ee) Author: Pavel Roskin <proski@gnu.org> Date: Thu Sep 1 19:08:00 2005 -0400 Fix memory leak on error in processing hostscan frames. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-05[PATCH] orinoco: Change orinoco_translate_scan() to return error code on error.Pavel Roskin
Signed-off-by: Pavel Roskin <proski@gnu.org> diff-tree 8fc038ec51acf5f777fade80c5e38112b766aeee (from ca955293cdfd3139e150d3b4fed3922a7eb651fb) Author: Pavel Roskin <proski@gnu.org> Date: Thu Sep 1 19:10:12 2005 -0400 Change orinoco_translate_scan() to return error code on error. Adjust the caller to check for errors and clean up if needed. Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-09-01/spare/repo/netdev-2.6 branch 'master'Jeff Garzik
2005-07-31[PATCH] orinoco: Sparse fixesPeter Hagervall
A few sparse cleanups for orinoco.c Signed-off-by: Peter Hagervall <hager@cs.umu.se> Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
2005-06-27Merge upstream ieee80211.h with us (us == branch 'ieee80211' of netdev-2.6)Jeff Garzik
2005-06-27wireless/orinoco: remove changelog, bump versionJeff Garzik
2005-06-27[PATCH] orinoco: monitor mode supportChristoph Hellwig
Patch from Pavel Roskin
2005-06-27[PATCH] orinoco: always use 802.11 header for rx processingChristoph Hellwig
If the frame has ToDS flag set, mark it by setting skb->pkt_type to PACKET_OTHERHOST, so that applications unaware of promiscous mode won't get uplink (STA->AP) packets for STA->STA transmissions relayed by the AP. Thanks to John Denker and David Gibson for finding the problem and the solution. Patch from Pavel Roskin
2005-06-27[PATCH] orinoco: scanning supportChristoph Hellwig
Patch from Pavel Roskin
2005-06-27[PATCH] orinoco: manual roaming for Symbol and IntersilfirmwareChristoph Hellwig
Patch from Pavel Roskin
2005-06-27[PATCH] orinoco: basic ethtool supportChristoph Hellwig
I completely reimplemented this based on ethtool_ops, CVS has an ioctl-based version.
2005-06-27[PATCH] orinoco: wireless API 15 supportChristoph Hellwig
(patch from Moustafa Youssef, updated by Jim Carter and Pavel Roskin).
2005-06-27[PATCH] orinoco: include <net/ieee80211.h>Christoph Hellwig
We need constants from this header in the next patches.
2005-06-26Merge /spare/repo/linux-2.6/Jeff Garzik
2005-05-15[PATCH] orinoco: misc fixesChristoph Hellwig
small fixes from CVS that didn't fit elsewhere Index: linux-2.6/drivers/net/wireless/orinoco.c ===================================================================
2005-05-15[PATCH] orinoco: make orinoco_stop() staticChristoph Hellwig
Patch from Pavel Roskin Index: linux-2.6/drivers/net/wireless/orinoco.c ===================================================================
2005-05-15[PATCH] orinoco: Symbol 3.0x firmware needs broken_disableportChristoph Hellwig
Patch from Pavel Roskin. Index: linux-2.6/drivers/net/wireless/orinoco.c ===================================================================
2005-05-15[PATCH] orinoco: disconnect the network device on reset errorsChristoph Hellwig
Patch from Pavel Roskin Index: linux-2.6/drivers/net/wireless/orinoco.c ===================================================================