01 Jul, 2010
3 commits
-
Some controllers (KW, Dove) limits the TX IP/layer4 checksum offloading to a max size.
Signed-off-by: Saeed Bishara
Acked-by: Lennert Buytenhek
Signed-off-by: David S. Miller -
Determine the size of the xfrm_mark struct, not of its pointer.
Signed-off-by: Andreas Steffen
Acked-by: Jamal Hadi Salim
Signed-off-by: David S. Miller
30 Jun, 2010
3 commits
-
In driver ixgbe, ixgbe_atr may cause crashes for non-ipv4 packets. Just
add a test to check skb->protocol. It may crash on short packets due
to ip_hdr() access.Signed-off-by: Guillaume Gaudonville
Acked-by: Peter P Waskiewicz Jr
Signed-off-by: Don Skidmore
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller -
Disabling the tx laser while receiving DMA requests
can hang the device. After this occurs the device
is in a bad state. The GPIO bit never clears when
PCI master access is disabled and a reboot is required
to get the device in a good state again.Signed-off-by: John Fastabend
Acked-by: Peter P Waskiewicz Jr
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller -
This patch added to 2.6.34:
commit 5f6c01819979afbfec7e0b15fe52371b8eed87e8
Author: Jesse Brandeburg
Date: Wed Apr 14 16:04:23 2010 -0700ixgbe: fix bug with vlan strip in promsic mode
among other things added a function called ixgbe_vlan_filter_enable.
This new function wants to access and set some rx_ring parameters, but
adapter->rx_ring has already been freed. This simply moves the free
until after the access and makes __ixgbe_shutdown look more like
ixgbe_remove.Signed-off-by: Andy Gospodarek
Acked-by: Jesse Brandeburg
Tested-by: Emil Tantilov
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller
29 Jun, 2010
3 commits
-
struct ethtool_rxnfc was originally defined in 2.6.27 for the
ETHTOOL_{G,S}RXFH command with only the cmd, flow_type and data
fields. It was then extended in 2.6.30 to support various additional
commands. These commands should have been defined to use a new
structure, but it is too late to change that now.Since user-space may still be using the old structure definition
for the ETHTOOL_{G,S}RXFH commands, and since they do not need the
additional fields, only copy the originally defined fields to and
from user-space.Signed-off-by: Ben Hutchings
Cc: stable@kernel.org
Signed-off-by: David S. Miller -
On a 32-bit machine, info.rule_cnt >= 0x40000000 leads to integer
overflow and the buffer may be smaller than needed. Since
ETHTOOL_GRXCLSRLALL is unprivileged, this can presumably be used for at
least denial of service.Signed-off-by: Ben Hutchings
Cc: stable@kernel.org
Signed-off-by: David S. Miller -
Support for netpoll over bonded interfaces was added here:
commit f6dc31a85cd46a959bdd987adad14c3b645e03c1
Author: WANG Cong
Date: Thu May 6 00:48:51 2010 -0700bonding: make bonding support netpoll
but it is bad enough that we should probably just disable netpoll over
bonding until some of the locking logic in the bonding driver is changed
or converted completely to RCU. Simple actions like changing the active
slave in active-backup mode will hang the box if a high enough printk
debugging level is enabled.Keeping the old code around will be good for anyone that wants to work
on it (and for after the RCU conversion), so I propose this small patch
rather than ripping it all out.Signed-off-by: Andy Gospodarek
Signed-off-by: Jay Vosburgh
Signed-off-by: David S. Miller
27 Jun, 2010
3 commits
-
Commit e13647c1 (phylib: Add support for the LXT973 phy.) added a new ID
but neglected to also add it to the MODULE_DEVICE_TABLE.Signed-off-by: David Woodhouse
Signed-off-by: David S. Miller -
Stanse found that lp is dereferenced earlier than checked for being
NULL in hysdn_rx_netpkt. Move the initialization below the test.Signed-off-by: Jiri Slaby
Cc: Karsten Keil
Cc: "David S. Miller"
Cc: Stephen Hemminger
Cc: Patrick McHardy
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller -
When pci_enable_msix() returned ret
Acked-by: Ram Vepa
Signed-off-by: David S. Miller
26 Jun, 2010
10 commits
-
CAPI applications can handle several connections in parallel,
so one connection state per application isn't sufficient.
Store the connection state in the channel structure instead.Impact: bugfix
Signed-off-by: Tilman Schmidt
Signed-off-by: David S. Miller -
Adapt to buggy device firmware which accepts setting HLC only in the
same command line as BC, by encoding HLC and BC in a single command
if both are specified, and rejecting HLC without BC.Impact: bugfix
Signed-off-by: Tilman Schmidt
Signed-off-by: David S. Miller -
The Gigaset CAPI driver handled all DATA_B3_REQ messages as if the
Delivery Confirmation flag bit was set, delaying the emission of the
DATA_B3_CONF reply until the data was actually transmitted. Some
CAPI applications (notably Asterisk) aren't happy with that
behaviour. Change it to actually evaluate the Delivery Confirmation
flag as described the CAPI specification.Impact: bugfix
Signed-off-by: Tilman Schmidt
Signed-off-by: David S. Miller -
Make the Gigaset CAPI driver select L2_VOICE (AT^SBPR=2) as the
layer 2 encoding for transparent connections, like the ISDN4Linux
variant. L2_BITSYNC (AT^SBPR=0) mutes internal connections and
distorts external ones.Impact: bugfix
Signed-off-by: Tilman Schmidt
Signed-off-by: David S. Miller -
Fix the Gigaset CAPI driver to limit the length of a connection's
payload data receive buffers to the corresponding CAPI application's
data buffer size, as some real-life CAPI applications tend to be
rather unhappy if they receive bigger data blocks than requested.Impact: bugfix
Signed-off-by: Tilman Schmidt
Signed-off-by: David S. Miller -
If the call to phy_connect fails, we will return directly instead of freeing
the previously allocated struct net_device.Signed-off-by: Florian Fainelli
CC: stable@kernel.org
Signed-off-by: David S. Miller -
smc91c92_cs:
Fix the problem that lan & modem does not work simultaneously
in the Megahertz multi-function card.
We need to write MEGAHERTZ_ISR to retrigger interrupt.Signed-off-by: Ken Kawasaki
Signed-off-by: David S. Miller -
The addition of TLLAO option created a kernel OOPS regression
for the case where neighbor advertisement is being sent via
proxy path. When using proxy, ipv6_get_ifaddr() returns NULL
causing the NULL dereference.Change causing the bug was:
commit f7734fdf61ec6bb848e0bafc1fb8bad2c124bb50
Author: Octavian Purdila
Date: Fri Oct 2 11:39:15 2009 +0000make TLLAO option for NA packets configurable
Signed-off-by: Stephen Hemminger
Acked-by: YOSHIFUJI Hideaki
Signed-off-by: David S. Miller -
When building tx command, always set TX_CMD_FLAG_PROT_REQUIRE_MSK
for 5000 series and up.Without setting this bit the firmware will not examine the RTS/CTS setting
and thus not send traffic with the appropriate protection. RTS/CTS is is
required for HT traffic in a noisy environment where, without this setting,
connections will stall on some hardware as documented in the patch that
initially attempted to address this:commit 1152dcc28c66a74b5b3f1a3ede0aa6729bfd48e4
Author: Wey-Yi Guy
Date: Fri Jan 15 13:42:58 2010 -0800iwlwifi: Fix throughput stall issue in HT mode for 5000
Similar to 6000 and 1000 series, RTS/CTS is the recommended
protection mechanism for 5000 series in HT mode based on the HW design.
Using RTS/CTS will better protect the inner exchange from interference,
especially in highly-congested environment, it also prevent uCode encounter
TX FIFO underrun and other HT mode related performance issues.For 3945 and 4965, different flags are used for RTS/CTS or CTS-to-Self
protection.Signed-off-by: Wey-Yi Guy
Signed-off-by: Reinette Chatre -
commit 3474ad635db371b0d8d0ee40086f15d223d5b6a4
Author: Johannes Berg
Date: Thu Apr 29 04:43:05 2010 -0700iwlwifi: apply filter flags directly
broke multicast. The reason, it turns out, is that
the code previously checked if ALLMULTI _changed_,
which the new code no longer did, and normally it
_never_ changes. Had somebody changed it manually,
the code prior to my patch there would have been
broken already.The reason is that we always, unconditionally, ask
the device to pass up all multicast frames, but the
new code made it depend on ALLMULTI which broke it
since now we'd pass up multicast frames depending
on the default filter in the device, which isn't
necessarily what we want (since we don't program it
right now).Fix this by simply not checking allmulti as we have
allmulti behaviour enabled already anyway.Reported-by: Maxim Levitsky
Tested-by: Maxim Levitsky
Signed-off-by: Johannes Berg
25 Jun, 2010
2 commits
-
commit ff6e2163f28a1094fb5ca5950fe2b43c3cf6bc7a accidentally added a
regression on the bnep code. Fixing it.Signed-off-by: Gustavo F. Padovan
Signed-off-by: David S. Miller -
Fix the bundle validation code to not assume having a valid policy.
When we have multiple transformations for a xfrm policy, the bundle
instance will be a chain of bundles with only the first one having
the policy reference. When policy_genid is bumped it will expire the
first bundle in the chain which is equivalent of expiring the whole
chain.Reported-bisected-and-tested-by: Justin P. Mattock
Signed-off-by: Timo Teräs
Signed-off-by: David S. Miller
24 Jun, 2010
5 commits
-
sky2_phy_reinit is called by the ethtool helpers sky2_set_settings,
sky2_nway_reset and sky2_set_pauseparam when netif_running.However, at the end of sky2_phy_init GM_GP_CTRL has GM_GPCR_RX_ENA and
GM_GPCR_TX_ENA cleared. So, doing these commands causes the device to
stop working:$ ethtool -r eth0
$ ethtool -A eth0 autoneg offFix this issue by enabling Rx/Tx after running sky2_phy_init in
sky2_phy_reinit.Signed-off-by: Brandon Philips
Tested-by: Brandon Philips
Cc: stable@kernel.org
Tested-by: Mike McCormack
Signed-off-by: David S. Miller -
There are few places where ANI is started without checking
if it is right to start. This might lead to a case where ani
timer would be left undeleted and cause improper memory acccess
during module unload. This bug is clearly exposed with
paprd support where the driver detects tx hang and does a
chip reset. During this reset ani is (re)started without checking
if it needs to be started. This would leave a timer scheduled
even after all the resources are freed and cause a panic.This patch introduces a bit in sc_flags to indicate if ani
needs to be started in sw_scan_start() and ath_reset().
This would fix the following panic. This issue is easily seen
with ar9003 + paprd.BUG: unable to handle kernel paging request at 0000000000003f38
[] ? __queue_work+0x41/0x50
[] run_timer_softirq+0x17a/0x370
[] ? tick_dev_program_event+0x48/0x110
[] __do_softirq+0xb9/0x1f0
[] ? handle_IRQ_event+0x50/0x160
[] call_softirq+0x1c/0x30
[] do_softirq+0x65/0xa0
[] irq_exit+0x85/0x90
[] do_IRQ+0x75/0xf0
[] ret_from_intr+0x0/0x11[] ? acpi_idle_enter_simple+0xe4/0x119
[] ? acpi_idle_enter_simple+0xdd/0x119
[] cpuidle_idle_call+0xa7/0x140
[] cpu_idle+0xb3/0x110
[] start_secondary+0x1ee/0x1f5Signed-off-by: Vasanthakumar Thiagarajan
Signed-off-by: John W. Linville -
Disable statistics initialization for eth clients that do not support
statistics. This prevents memory corruption on bnx2x hw.Signed-off-by: Dmitry Kravkov
Signed-off-by: Michael Chan
Signed-off-by: Eilon Greenstein -
netxen_nic and qlcnic driver depends on firmware_class module.
Signed-off-by: Anirban Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
commit aa2ea0586d9d (tcp: fix outsegs stat for TSO segments) incorrectly
assumed SNMP_ADD_STATS() was used from BH context.Fix this using mib[!in_softirq()] instead of mib[0]
Signed-off-by: Eric Dumazet
CC: Tom Herbert
Signed-off-by: David S. Miller
23 Jun, 2010
2 commits
-
This patch removes the setting of the low_latency flag.
tty_flip_buffer_push() is occasionally being called in irq context, which
causes a hang if the low_latency flag is set.
Removing the low_latency flag only seems to impact the flush to ldisc,
which will now be put on a workqueue.Signed-off-by: Filip Aben
Signed-off-by: David S. Miller
22 Jun, 2010
3 commits
-
It has been reported that the new UFO software fallback path
fails under certain conditions with NFS. I tracked the problem
down to the generation of UFO packets that are smaller than the
MTU. The software fallback path simply discards these packets.This patch fixes the problem by not generating such packets on
the UFO path.Signed-off-by: Herbert Xu
Reviewed-by: Michael S. Tsirkin
Signed-off-by: David S. Miller -
Fix commit 4cd24eaf0 (net: use netdev_mc_count and netdev_mc_empty when
appropriate)Signed-off-by: Helge Deller
Signed-off-by: David S. Miller -
$ make CONFIG_DEBUG_SECTION_MISMATCH=y
[...]
WARNING: drivers/net/built-in.o(.data+0x0): Section mismatch in reference from the variable mipsnet_driver to the function .init.text:mipsnet_probe()
The variable mipsnet_driver references
the function __init mipsnet_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
[...]Fixed by making mipsnet_probe __devinit.
Signed-off-by: Ralf Baechle
drivers/net/mipsnet.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
Signed-off-by: David S. Miller
19 Jun, 2010
1 commit
-
ath5k assumes ah_current_channel is always a valid pointer in
several places, but a newly created interface may not have a
channel. To avoid null pointer dereferences, set it up to point
to the first available channel until later reconfigured.This fixes the following oops:
$ rmmod ath5k
$ insmod ath5k
$ iw phy0 set distance 11000BUG: unable to handle kernel NULL pointer dereference at 00000006
IP: [] ath5k_hw_set_coverage_class+0x74/0x1b0 [ath5k]
*pde = 00000000
Oops: 0000 [#1]
last sysfs file: /sys/devices/pci0000:00/0000:00:0e.0/ieee80211/phy0/index
Modules linked in: usbhid option usb_storage usbserial usblp evdev lm90
scx200_acb i2c_algo_bit i2c_dev i2c_core via_rhine ohci_hcd ne2k_pci
8390 leds_alix2 xt_IMQ imq nf_nat_tftp nf_conntrack_tftp nf_nat_irc nf_ccPid: 1597, comm: iw Not tainted (2.6.32.14 #8)
EIP: 0060:[] EFLAGS: 00010296 CPU: 0
EIP is at ath5k_hw_set_coverage_class+0x74/0x1b0 [ath5k]
EAX: 000000c2 EBX: 00000000 ECX: ffffffff EDX: c12d2080
ESI: 00000019 EDI: cf8c0000 EBP: d0a30edc ESP: cfa09bf4
DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
Process iw (pid: 1597, ti=cfa09000 task=cf88a000 task.ti=cfa09000)
Stack:
d0a34f35 d0a353f8 d0a30edc 000000fe cf8c0000 00000000 1900063d cfa8c9e0
cfa8c9e8 cfa8c0c0 cfa8c000 d0a27f0c 199d84b4 cfa8c200 00000010 d09bfdc7
00000000 00000000 ffffffff d08e0d28 cf9263c0 00000001 cfa09cc4 00000000
Call Trace:
[] ? ath5k_hw_attach+0xc8c/0x3c10 [ath5k]
[] ? __ieee80211_request_smps+0x1347/0x1580 [mac80211]
[] ? nl80211_send_scan_start+0x7b8/0x4520 [cfg80211]
[] ? nla_parse+0x59/0xc0
[] ? genl_rcv_msg+0x169/0x1a0
[] ? genl_rcv_msg+0x0/0x1a0
[] ? netlink_rcv_skb+0x38/0x90
[] ? genl_rcv+0x19/0x30
[] ? netlink_unicast+0x1b3/0x220
[] ? netlink_sendmsg+0x26e/0x290
[] ? sock_sendmsg+0xbe/0xf0
[] ? autoremove_wake_function+0x0/0x50
[] ? __alloc_pages_nodemask+0x106/0x530
[] ? do_lookup+0x53/0x1b0
[] ? __link_path_walk+0x9b9/0x9e0
[] ? verify_iovec+0x50/0x90
[] ? sys_sendmsg+0x1e1/0x270
[] ? find_get_page+0x10/0x50
[] ? filemap_fault+0x5f/0x370
[] ? __do_fault+0x319/0x370
[] ? sys_socketcall+0x244/0x290
[] ? do_page_fault+0x1ec/0x270
[] ? do_page_fault+0x0/0x270
[] ? syscall_call+0x7/0xb
Code: 00 b8 fe 00 00 00 b9 f8 53 a3 d0 89 5c 24 14 89 7c 24 10 89 44 24
0c 89 6c 24 08 89 4c 24 04 c7 04 24 35 4f a3 d0 e8 7c 30 60 f0 b7
43 06 ba 06 00 00 00 a8 10 75 0e 83 e0 20 83 f8 01 19 d2
EIP: [] ath5k_hw_set_coverage_class+0x74/0x1b0 [ath5k] SS:ESP
0068:cfa09bf4
CR2: 0000000000000006
---[ end trace 54f73d6b10ceb87b ]---Cc: stable@kernel.org
Reported-by: Steve Brown
Signed-off-by: Bob Copeland
Signed-off-by: John W. Linville
18 Jun, 2010
1 commit
-
It is common in end-node, non STP bridges to set forwarding
delay to zero; which causes the forwarding database cleanup
to run every clock tick. Change to run only as soon as needed
or at next ageing timer interval which ever is sooner.Use round_jiffies_up macro rather than attempting round up
by changing value.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller
17 Jun, 2010
4 commits
-
This removes dma_get_ops() prefetch optimization in bnx2.
bnx2 uses dma_get_ops() to see if dma_sync_single_for_cpu() is
noop. bnx2 does prefetch if it's noop.But dma_get_ops() isn't available on all the architectures (only the
architectures that uses dma_map_ops struct have it). Using
dma_get_ops() in drivers leads to compilation breakage on many
architectures.This patch removes dma_get_ops() and changes bnx2 to do prefetch on
all the architectures. This adds useless prefetch on non-coherent
architectures but this is harmless. It is also unlikely to cause the
performance drop.[ Remove now unused local variable 'pdev' -DaveM ]
Signed-off-by: FUJITA Tomonori
Acked-by: Michael Chan
Signed-off-by: David S. Miller -
This patch implements a proper modification of RX skb buffers before
recycling. Adjusting only skb->data is not enough because after that
skb->tail and skb->len become incorrect.Signed-off-by: Sergey Matyukevich
Signed-off-by: David S. Miller -
pcnet_cs:
serial_cs:
add new id (TOSHIBA Modem/LAN Card)Signed-off-by: Ken Kawasaki
Signed-off-by: David S. Miller -
Issuing the following command on host:
$ ifconfig eth2 mtu 1600 ; ping 10.0.0.27 -s 1485 -c 1
Makes some boards (tested with MPC8315 rev 1.1 and MPC8313 rev 1.0)
oops like this:skb_over_panic: text:c0195914 len:1537 put:1537 head:c79e4800 data:c79e4880 tail:0xc79e4e81 end:0xc79e4e80 dev:eth1
------------[ cut here ]------------
kernel BUG at net/core/skbuff.c:127!
Oops: Exception in kernel mode, sig: 5 [#1]
MPC831x RDB
last sysfs file: /sys/kernel/uevent_seqnum
Modules linked in:
NIP: c01c1840 LR: c01c1840 CTR: c016d918
[...]
NIP [c01c1840] skb_over_panic+0x48/0x5c
LR [c01c1840] skb_over_panic+0x48/0x5c
Call Trace:
[c0339d50] [c01c1840] skb_over_panic+0x48/0x5c (unreliable)
[c0339d60] [c01c3020] skb_put+0x5c/0x60
[c0339d70] [c0195914] gfar_clean_rx_ring+0x25c/0x3d0
[c0339dc0] [c01976e8] gfar_poll+0x170/0x1bcDumped buffer descriptors showed that eTSEC's length/truncation
logic sometimes passes oversized packets, i.e. for the above ICMP
packet the following two buffer descriptors may become ready:status=1400 length=1536
status=1800 length=1541So, it seems that gianfar actually receives the whole big frame,
and it tries to place the packet into two BDs. This situation
confuses the driver, and so the skb_put() sanity check fails.This patch fixes the issue by adding an appropriate check, i.e.
the driver should not try to process frames with buffer
descriptor's length over rx_buffer_size (i.e. maxfrm and mrblr).Note that sometimes eTSEC works correctly, i.e. in the second
(last) buffer descriptor bits 'truncated' and 'crcerr' are set,
and so there's no oops. Though I couldn't find any logic when
it works correctly and when not.Signed-off-by: Anton Vorontsov
Signed-off-by: David S. Miller