17 Dec, 2010
8 commits
-
Special care is taken inside sk_port_alloc to avoid overwriting
skc_node/skc_nulls_node. We should also avoid overwriting
skc_bind_node/skc_portaddr_node.The patch fixes the following crash:
BUG: unable to handle kernel paging request at fffffffffffffff0
IP: [] udp4_lib_lookup2+0xad/0x370
[] __udp4_lib_lookup+0x282/0x360
[] __udp4_lib_rcv+0x31e/0x700
[] ? ip_local_deliver_finish+0x65/0x190
[] ? ip_local_deliver+0x88/0xa0
[] udp_rcv+0x15/0x20
[] ip_local_deliver_finish+0x65/0x190
[] ip_local_deliver+0x88/0xa0
[] ip_rcv_finish+0x32d/0x6f0
[] ? netif_receive_skb+0x99c/0x11c0
[] ip_rcv+0x2bb/0x350
[] netif_receive_skb+0x99c/0x11c0Signed-off-by: Leonard Crestez
Signed-off-by: Octavian Purdila
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller -
Since the mbox polling uses the schedule_timeout, the mbox_lock should be
a mutex and not a spin lock.
The commit f25b03a replaced udelay() with schedule_timeout() but didn't
change mbox_lock to semaphore or mutex.Signed-off-by: Ivan Vecera
Signed-off-by: David S. Miller -
bond_na_send() attempts to insert a VLAN tag in between building and
sending packets of the respective formats. If the slave does not
implement hardware VLAN tag insertion then vlan_put_tag() will mangle
the network-layer header because the Ethernet header is not present at
this point (unlike in bond_arp_send()).Fix this by adding the tag out-of-line and relying on
dev_hard_start_xmit() to insert it inline if necessary.Signed-off-by: Ben Hutchings
Signed-off-by: Jay Vosburgh
Reviewed-by: Jesse Gross
Signed-off-by: David S. Miller -
bond_change_active_slave() may be called when a slave is added, even
if the bond has not been brought up yet. It may then attempt to send
packets, and further it may use mcast_work which is uninitialised
before the bond is brought up. Add the necessary checks for
netif_running(bond->dev).Signed-off-by: Ben Hutchings
Signed-off-by: Jay Vosburgh
Signed-off-by: David S. Miller -
A bond may have a mixture of slave devices with and without hardware
VLAN tag insertion capability. Therefore it always claims this
capability and performs software VLAN tag insertion if the slave does
not.Since commit 7b9c60903714bf0a19d746b228864bad3497284e, this has
also been done by dev_hard_start_xmit(). The result is that VLAN-
tagged skbs are now double-tagged when transmitted through slave
devices without hardware VLAN tag insertion!Remove the now-redundant logic from bond_dev_queue_xmit().
Signed-off-by: Ben Hutchings
Signed-off-by: Jay Vosburgh
Reviewed-by: Jesse Gross
Signed-off-by: David S. Miller -
axnet_cs:
Accton EN2328 or compatible (id: 0x01bf, 0x2328) uses Asix chip.
So it works better with axnet_cs instead of pcnet_cs.Signed-off-by: Ken Kawasaki
Signed-off-by: David S. Miller -
The first big packets sent to a "low-MTU" client correctly
triggers the creation of a temporary route containing the reduced MTU.But after the temporary route has expired, new ICMP6 "packet too big"
will be sent, rt6_pmtu_discovery will find the previous EXPIRED route
check that its mtu isn't bigger then in icmp packet and do nothing
before the temporary route will not deleted by gc.I make the simple experiment:
while :; do
time ( dd if=/dev/zero bs=10K count=1 | ssh hostname dd of=/dev/null ) || break;
doneThe "time" reports real 0m0.197s if a temporary route isn't expired, but
it reports real 0m52.837s (!!!!) immediately after a temporare route has
expired.Signed-off-by: Andrey Vagin
Signed-off-by: David S. Miller -
The returned slave is incorrect, if the net device under check is not
charged yet by the master.Signed-off-by: Hillf Danton
Signed-off-by: David S. Miller
16 Dec, 2010
1 commit
15 Dec, 2010
1 commit
-
This USB ID is for the WUBI-100GW 802.11g Wireless LAN USB Device that
uses p54usb.Signed-off-by: Larry Finger
Signed-off-by: Eduardo Costa
Cc: Stable
Signed-off-by: John W. Linville
14 Dec, 2010
5 commits
-
On suspend, there might be usb wireless drivers which wrongly trigger
the warning in ieee80211_work_work. If an usb driver doesn't have a
suspend hook, the usb stack will disconnect the device. On disconnect,
a mac80211 driver calls ieee80211_unregister_hw, which calls dev_close,
which calls ieee80211_stop, and in the end calls ieee80211_work_purge->
ieee80211_work_work.The problem is that this call to ieee80211_work_purge comes after
mac80211 is suspended, triggering the warning even when we don't have
work queued in work_list (the expected case when already suspended),
because it always calls ieee80211_work_work.So, just call ieee80211_work_work in ieee80211_work_purge if we really
have to abort work. This addresses the warning reported at
https://bugzilla.kernel.org/show_bug.cgi?id=24402Signed-off-by: Herton Ronaldo Krzesinski
Signed-off-by: John W. Linville -
This patch adds five more USBIDs to the table.
Source:
http://www.linuxant.com/pipermail/driverloader/2005q3/002307.html
http://wireless.kernel.org/en/users/Drivers/p54/devices (by M. Davis)Cc:
Signed-off-by: Christian Lamparter
Signed-off-by: John W. Linville -
dev_open will eventually call ieee80211_ibss_join which sets up the
skb used for beacons/probe-responses however it is possible to
receive beacons that attempt to merge before this occurs causing
a null pointer dereference. Check ssid_len as that is the last
thing set in ieee80211_ibss_join.This occurs quite easily in the presence of adhoc nodes with hidden SSID's
revised previous patch to check further up based on irc feedback
Signed-off-by: Tim Harvey
Reviewed-by: Johannes Berg
Signed-off-by: John W. Linville -
The code wants to check if there's a channel and it is not disabled,
but it used to check if channel is not NULL and accessed the channel
struct if this check failed.Signed-off-by: Sven Neumann
Acked-by: Dan Williams
Signed-off-by: John W. Linville
13 Dec, 2010
7 commits
-
__pppoe_xmit function return value was invalid resulting in
additional call to kfree_skb on already freed skb. This resulted in
memory corruption and consequent kernel panic after PPPoE peer
terminated the link.This fixes commit 55c95e738da85373965cb03b4f975d0fd559865b.
Reported-by: Gorik Van Steenberge
Reported-by: Daniel Kenzelmann
Reported-by: Denys Fedoryshchenko
Reported-by: Pawel Staszewski
Diagnosed-by: Andrej Ota
Diagnosed-by: Eric Dumazet
Tested-by: Denys Fedoryshchenko
Tested-by: Pawel Staszewski
Signed-off-by: Jarek Poplawski
Signed-off-by: Andrej Ota
Signed-off-by: David S. Miller -
We must not wake the TX queue without free TX descriptors.
sca_xmit() expects at least one free descriptor and BUGs otherwise.Problem reported and fix tested by Bernie Innocenti and Ward Vandewege.
Signed-off-by: Krzysztof Hałasa
Signed-off-by: David S. Miller -
Signed-off-by: Vladislav Zolotarov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
bnx2x_src_init_t2() is used only when BCM_CNIC is defined.
So, to avoid a compilation warning, we won't define it unless
BCM_CNIC is defined.Signed-off-by: Vladislav Zolotarov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Make the LSO code work on BE platforms: parsing_data field of
a parsing BD (PBD) for 57712 was improperly composed which made FW read wrong
values for TCP header's length and offset and, as a result, the corresponding
PCI device was performing bad DMA reads triggering EEH.Signed-off-by: Vladislav Zolotarov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Removing usage of rtnl_lock() to protect firmware interface registers.
These registers are accessed in some worker threads and can create a
deadlock if rtnl_lock is taken by upper layers while the worker is still
pending.
We remove rtnl_lock and use a driver mutex just while mailboxes are
accessed.Signed-off-by: Ron Mercer
Signed-off-by: David S. Miller
11 Dec, 2010
12 commits
-
After commit c1f19b51d1d8 (net: support time stamping in phy devices.),
kernel might crash if CONFIG_NETWORK_PHY_TIMESTAMPING=y and
skb_defer_rx_timestamp() handles a packet without an ethernet header.Fixes kernel bugzilla #24102
Reference: https://bugzilla.kernel.org/show_bug.cgi?id=24102
Reported-and-tested-by: Andrew Watts
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Was using L1_CACHE_BYTES for the Ingress Queue Entry Size but it really
needs to be 64 bytes in order to support the largest message sizes.Signed-off-by: Casey Leedom
Signed-off-by: David S. Miller -
This patch adds the IC+ IP1001 (Gigabit Ethernet Transceiver) driver.
I've had to add an additional delay (2ns) to adjust RX clock phase at
GMII/ RGMII interface (according to the PHY data-sheet). This helps to
have the RGMII working on some ST platforms.Signed-off-by: Giuseppe Cavallaro
Signed-off-by: David S. Miller -
The ATM subsystem was incorrectly creating the 'device' link for ATM
nodes in sysfs. This led to incorrect device/parent relationships
exposed by sysfs and udev. Instead of rolling the 'device' link by hand
in the generic ATM code, pass each ATM driver's bus device down to the
sysfs code and let sysfs do this stuff correctly.Signed-off-by: Dan Williams
Signed-off-by: David S. Miller -
It was a nice idea, but -ENOTIME and -ENOHW. I never got around to doing
a lot of the clean up that I intended to.Signed-off-by: Kyle McMartin
Acked-by: Grant Grundler
Signed-off-by: David S. Miller -
SCTP_SET_PEER_PRIMARY_ADDR does not accpet v4mapped address, using
v4mapped address in SCTP_SET_PEER_PRIMARY_ADDR socket option will
get -EADDRNOTAVAIL error if v4map is enabled. This patch try to
fix it by mapping v4mapped address to v4 address if allowed.Signed-off-by: Wei Yongjun
Acked-by: Vlad Yasevich
Signed-off-by: David S. Miller -
Pass reference to napi instead of enic device to the isr that services receive queue.
Signed-off-by: Vasanthy Kolluri
Signed-off-by: Roopa Prabhu
Signed-off-by: David Wang
Signed-off-by: David S. Miller -
New idev are advertised with NL group RTNLGRP_IPV6_IFADDR, but
should use RTNLGRP_IPV6_IFINFO.
Bug was introduced by commit 8d7a76c9.Signed-off-by: Wang Xuefu
Signed-off-by: Nicolas Dichtel
Acked-by: Thomas Graf
Signed-off-by: David S. Miller -
Since connector can be built as a module and uses netlink socket
to communicate. The module should have an alias to autoload when socket
of NETLINK_CONNECTOR type is requested.Signed-off-by: Stephen Hemminger
Acked-by: Evgeniy Polyakov
Signed-off-by: David S. Miller -
Signed-off-by: Martin Lucina
Signed-off-by: David S. Miller -
I noticed that one of the post-2.6.36 patches broke runtime PM of the
r8169 on my MSI Wind test machine in such a way that the link was not
brought up after reconnecting the network cable.In the process of debugging the issue I realized that we only should
invoke the runtime PM functions in rtl8169_check_link_status() when
link change is reported and if we do so, the problem goes away.
Moreover, this allows rtl8169_runtime_idle() to be simplified quite
a bit.Signed-off-by: Rafael J. Wysocki
Acked-by: Francois Romieu
Signed-off-by: David S. Miller
10 Dec, 2010
5 commits
-
There is definitly a problem, that some option cards send up broken
IP pakets leading to corrupted IP packets. These corruptions aren't
detected, because the driver claims that the packets are already
checksummed. This change removes the CHECKSUM_UNNECESSARY option
and let IP detect broken data.Signed-off-by: Thomas Bogendoerfer
Signed-off-by: David S. Miller -
xfrm_state_migrate calls kfree instead of xfrm_state_put to free
a failed state. According to git commit 553f9118 this can cause
memory leaks.Signed-off-by: Thomas Egerer
Signed-off-by: Steffen Klassert
Acked-by: Herbert Xu
Signed-off-by: David S. Miller -
A while back I made some changes to enable netpoll in the bonding driver. Among
them was a per-cpu flag that indicated we were in a path that held locks which
could cause the netpoll path to block in during tx, and as such the tx path
should queue the frame for later use. This appears to have given rise to a
regression. If one of those paths on which we hold the per-cpu flag yields the
cpu, its possible for us to come back on a different cpu, leading to us clearing
a different flag than we set. This results in odd netpoll drops, and BUG
backtraces appearing in the log, as we check to make sure that we only clear set
bits, and only set clear bits. I had though briefly about changing the
offending paths so that they wouldn't sleep, but looking at my origional work
more closely, it doesn't appear that a per-cpu flag is warranted. We alrady
gate the checking of this flag on IFF_IN_NETPOLL, so we don't hit this in the
normal tx case anyway. And practically speaking, the normal use case for
netpoll is to only have one client anyway, so we're not going to erroneously
queue netpoll frames when its actually safe to do so. As such, lets just
convert that per-cpu flag to an atomic counter. It fixes the rescheduling bugs,
is equivalent from a performance perspective and actually eliminates some code
in the process.Tested by the reporter and myself, successfully
Reported-by: Liang Zheng
CC: Jay Vosburgh
CC: Andy Gospodarek
CC: David S. Miller
Signed-off-by: Neil Horman
Signed-off-by: David S. Miller -
From: Johannes Berg
The current EEPROM reading code has some layout
assumptions that now turned out to be false with
some newer versions of the EEPROM. Luckily, we
can avoid all such assumptions by using data in
the EEPROM itself, so implement using that.However, for risk mitigation purposes, keep the
old reading code for current hardware for now.Signed-off-by: Johannes Berg
Signed-off-by: Wey-Yi Guy -
Some fields we didn't previously use from the
enhanced TX power structure will be needed in
the next patch, so rename them to their correct
names to be able to use them and change code
reading them accordingly.Signed-off-by: Johannes Berg
Signed-off-by: Wey-Yi Guy
09 Dec, 2010
1 commit
-
Unconditional use of skb->dev won't work here,
try to fetch the econet device via skb_dst()->dev
instead.Suggested by Eric Dumazet.
Reported-by: Nelson Elhage
Tested-by: Nelson Elhage
Signed-off-by: David S. Miller