Commit Graph

32578 Commits

Author SHA1 Message Date
Jack Pham
3946a9e8ae net: rmnet_usb: Enable remote wakeup for root hub
A recent change in the kernel disabled USB root hubs' wakeup
capability by default. This forces the setting for this particular
device/hub combination to always enable remote wakeup.

Change-Id: If7ef1e731e71feb9730a67b2d912f03890e7210d
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2013-02-27 18:19:28 -08:00
Sameer Thalappil
0bc9e70650 wcnss: wake lock APIs for host drivers
wcnss related host drivers can use these APIs to prevent Apps suspend.
WLAN driver uses this API to prevent suspend, when it's module
initialization routines are being executed.

Change-Id: Id072804e6ccc953c78caf6cf11c73e0ea1d71d18
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
2013-02-27 18:18:37 -08:00
Yatin Manerkar
80098d52d5 virtio: Decouple virtqueues and vrings
Add struct virtqueue_ops back into the virtio core code to facilitate
the use of virtqueue implementations other than vrings. This allows
virtqueue implementations that use SMD drivers, USB drivers, or other
mechanisms for transport.

Add a new virtqueue operation, virtqueue_get_impl_size, to provide the
functionality of virtqueue_get_vring_size from the previous collapsed
implementation.

This commit partially reverts commit
7c5e9ed0c8.

Change-Id: I1219c4f203879658dce5800f405291bf311564b4
Signed-off-by: Yatin Manerkar <yatinm@codeaurora.org>
2013-02-27 18:18:30 -08:00
Sameer Thalappil
b408c27f66 wcnss: cancel any pending APPS votes from coldboot before SSR
APPS vote from coldboot may be still pending when SSR is invoked;
so make sure that the APPS votes from coldboot are cancelled before
SSR votes for these Riva regulators.

Change-Id: I975be7470ce08e941c5846642a9379f23574915b
CRs-fixed: 380434
Signed-off-by: Sameer Thalappil <sameert@codeaurora.org>
2013-02-27 18:17:40 -08:00
Hemant Kumar
1212bea9dd net: usb: Using workqueue as bottom half handler
usbnet driver uses tasklet as bottom half handler. Since tasklet
runs in interrupt context in case of high throughput driver is
spending more time in interrupt context to process rx buffers
this is causing watch dog reset. Hence replace the tasklet with
workqueue to avoid watchdog reset.

CRs-Fixed: 378526
Change-Id: I8eac339e37d734dbaaf7a2e874d3974f562e8680
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-02-27 18:17:33 -08:00
Jack Pham
0c615a5a92 net: rmnet_usb: Enable autosuspend
The call to enable autosuspend was recently removed from the
qcserial driver. Re-add it here in the RmNet driver as we know
this device will support it.

Change-Id: Iee1d1dbece01eaab99b03c64ebea0fd5ed87eafa
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2013-02-27 18:15:48 -08:00
Hemant Kumar
659f3594c4 net: usb: Add support for poll system call
This change implements poll system call for consumer of
rx QMI control channel in userspace.

CRs-Fixed: 375641
Change-Id: I2886897d7196bfce29020b17c21862c5a6f02be0
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-02-27 18:15:28 -08:00
Jack Pham
e50b2f0e79 usb: misc: Send zero-length packets on bulk OUT
Set the flag that enables the host controller to send zero-length
packets if the payload size is a multiple of the max packet size
(typically 512 bytes) in order to avoid cases in which the device
may stall while waiting for more data.

CRs-fixed: 373737
Change-Id: I779d00837a12bcd1d7df12b77ac1f1f5aab0fe68
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2013-02-27 18:13:41 -08:00
Hemant Kumar
c8904f076f net: usb: Continue submitting rx URBs upon QMI channel close
If user space consumer of QMI channels restarts, channels get closed
and opened again. Closing QMI channel stops submitting rx URBs which
is not getting re-submitted during channel open. Since userspace
consumer automatically restarts in case if it gets killed, do not kill
the rx URBs upon channel close.

CRs-Fixed: 370712
Change-Id: Ia58aaefd5245b07640fe2ec5eb2ec5fe1ae43cd4
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-02-27 18:13:40 -08:00
Hemant Kumar
349c6f8457 net: rmnet_usb_ctrl: Fix bug in handling interface disconnect
RMNET control driver sets the device interface pointer to NULL
during disconnect and then unlinks the tx URBs. This causes the
tx completion handler to get called and access the device interface
pointer which is already NULL. Fix the issue by adding a flag
which keeps track of device disconnection and do not set device
interface pointer to NULL.

CRs-Fixed: 373617
Change-Id: I4991c1f437f1ce031c634109aca10e170ca6290b
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-02-27 18:13:01 -08:00
Jack Pham
a940b9173e net: rmnet_usb: Decrease autosuspend delay to 1.2s
Override the default autosuspend delay of 4 seconds--that is, 2
seconds for device and 2 seconds for the root hub, to 1s for the
HSIC-connected MDM device and 200ms for the root hub. This should
minimize the time spent active for better power savings.

CRs-fixed: 353213
Change-Id: Idfa49928dbb7fd2508deec0b9fab25e1cbcdf078
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2013-02-27 18:12:02 -08:00
Hemant Kumar
8d1efcd1c2 net: usb: Fix premature auto suspend on Rx control path
RMNET QMI driver does not prevent auto suspend while submitting
the URB on rx control path. This causes the usb device to go to
low power mode after receiving QMI notification as the auto suspend
timer does not get reset by the driver while submitting the URB
and it expires.

CRs-Fixed: 372251
Change-Id: Idb5c377c09d39ff53d4fac32599d6515ceb3da51
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-02-27 18:11:45 -08:00
Jack Pham
54b7e43aa4 usb: misc: improve dev_printk output
Use the usb_interface's dev member for dev_printk instead of the
usb_device's, as this will help improve kernel logging clarity by
displaying the interface name and number as well as just the USB
bus/device numbers.

Change-Id: I677558fd6c33ee658ef03fdcbb25bb5c0782f77b
Signed-off-by: Jack Pham <jackp@codeaurora.org>
2013-02-27 18:11:12 -08:00
Yunsen Wang
8324333c5b net: wireless: wcnss: Initial version of the WCNSS WLAN Driver
This is the initial version of the Wireless ConNectivity SubSystem (WCNSS)
WLAN driver. The WCNSS is a new Hardware integrating WLAN, BT and FM
technologies that is built into new MSM chip. This version of the driver
does basic WLAN device detection, WLAN SMD channel allocation probing and
trigger the PIL to download the WCNSS SW image.

Change-Id: I054566453152e8d8d02f79693e6a51f26d047835
Acked-by: Jeff Johnson <jjohnson@qualcomm.com>
Signed-off-by: Yunsen Wang <yunsenw@codeaurora.org>
2013-02-25 11:32:15 -08:00
Rohit Vaswani
ca7a13cdbe net: wireless: Add CONFIG_ATH6K_LEGACY for QCA AR6003
CONFIG_ATH6K_LEGACY is added to support QCA AR6003 (Non cfg80211).
AR6003 driver needs WIRELESS_EXT support. WIRELESS_EXT is going to
be deprecated so adding it to defconfig will not work. Driver needs
to mark it as dependency.

Change-Id: I09c1f07ea15b8de75c1ed35d4fec6c82265018a9
Acked-by: Prasanth Bhatta <c_bhatta@qca.qualcomm.com>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
2013-02-25 11:32:14 -08:00
Anuradha Chandramouli
b31184c5be wireless: libra: SDIO interface module
Libra SDIO Interface driver module. Adds interface functions
to interact with the SD/MMC bus driver.

Acked-by: Anuradha Chandramouli <chandram@qualcomm.com>
Signed-off-by: Yunsen Wang <yunsenw@quicinc.com>
2013-02-25 11:32:14 -08:00
Hemant Kumar
6d82bdb808 net: usb: Fix premature auto suspend on Rx data path
usbnet driver does not prevent auto suspend while submitting
the URB on rx data path. This causes the usb device to go to low power
mode in the middle of the downlink data transfer as the auto suspend
timer does not get reset by the driver while submitting the URB and
it expires.

Change-Id: Ibd3ac709e7103eb3df91ce3318dba6da4e551366
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-02-25 11:32:13 -08:00
Hemant Kumar
2c6475d385 net: usb: Add support for embedded rmnet usb host driver
Embedded rmnet usb host driver will be used to communicate with modem
devices having rmnet interface. This driver works as pass through layer
for control and data path communication. Driver currently supports device
with product id: 0x9034 and vendor id : 0x05c6.

Change-Id: Ie037af915f2650828420a351bd3fe503a505eaee
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
2013-02-25 11:32:12 -08:00
Gregory Bean
a4d4710dd2 smsc911x: support nested interrupts.
Change the request_irq call to request_any_context_irq, in order
to properly handle nested-interrupt setups.

Change-Id: If3e29836a7223244c5e18563e07c14570c865bf8
Signed-off-by: Gregory Bean <gbean@codeaurora.org>
2013-02-25 11:32:08 -08:00
Rohit Vaswani
66e014b30f net: smsc911x: Add GPIO functions to the driver
Add hooks to control the relevant Gpio pin from
the Ethernet driver. This allows the driver to drive the
GPIO line low or high during suspend and resume for
power management.

Change-Id: Idfcf547501198d155d314a30923fd4de440840a9
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
2013-02-25 11:32:08 -08:00
Brian Swetland
e61d2b7e6e smc91x: ARCH_MSM configuration 2013-02-25 11:32:07 -08:00
Rohit Vaswani
dff77def0f net: QFEC Ethernet driver
QFEC is 1 Giga-bit Ethernet MAC module residing in FSM9XXX.

Change-Id: I718fb578cfb56d598ec5fd8b9ffebad4414a7830
Acked-by: Kaushik Sikdar <ksikdar@qualcomm.com>
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
2013-02-25 11:32:06 -08:00
Karthikeyan Ramasubramanian
a4c2eafd17 msm: rmnet_smux: Add RMNET over SMUX
RMNET over SMUX will support IP Traffic over HSUART. This is used in
Fusion 4 target between Application processor and QSC modem.

Change-Id: I50a8acf96dc85d10e574768dc21db672b6615924
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
2013-02-25 11:32:05 -08:00
Jeff Hugo
ef376e60a6 msm: bam_dmux: initial version of BAM Data Mux driver
The BAM Data Mux driver serves as a muxing interface layer to the SPS BAM
driver for RMNET.

Change-Id: Ia8aabb1874955342b4829ddb4e70a01a84c16d5f
Signed-off-by: Jeffrey Hugo <jhugo@codeaurora.org>
2013-02-25 11:32:04 -08:00
Niranjana Vishwanathapura
d28a029524 msm: RMNET SDIO Data Mux module.
Module to allow RMNET over SDIO link. As multiple rmnet ports
need to use single SDIO line (function), muxing of the rmnet
packets is required.

Change-Id: I0b0cea7a2135ba4afdc00ce4faf6a28fda5dc929
Signed-off-by: Niranjana Vishwanathapura <nvishwan@codeaurora.org>
2013-02-25 11:32:03 -08:00
Brian Swetland
2e94b215a4 [ARM] msm: driver for rmnet virtual ethernet interface
The MSM7X00A baseband makes up to 3 "virtual ethernet" channels available,
which allow ethernet packets to be exchanged with the cellular network, once
an appropriate data connection is established.

Signed-off-by: Brian Swetland <swetland@google.com>
Signed-off-by: San Mehat <san@android.com>

[ARM] msm_rmnet: HACK: do not count ARP packets

The android network traffic watchdog is tricked into thinking that
data traffic is working at times when it isn't, due to ARP traffic
between the apps and modem processor.  Don't count ARP packets in
link statistics to avoid this problem.

[ARM] msm: rmnet: Add stat tracking for number of radio wakeups occur.

There are two paramaters that appear for all rmnet devices.

rmnet0 for example:
/sys/devices/virtual/net/rmnet0/timeout (RW)
/sys/devices/virtual/net/rmnet0/wakeups (RO)

timeout is configured by userspace for the proper network timeout values
wakeups is the number of radio wakeups that occured.

By default timeout is zero which means the stats are disabled.

MSM_RMNET_DEBUG must be set.

Signed-off-by: Mike Chan <mike@android.com>

[ARM] msm: rmnet: Track wakeups due to xmit/rcv instead of globally.

Signed-off-by: Mike Chan <mike@android.com>

[ARM] msm: rmnet: Different stat timeouts when screen is on/off.

Timeout for modem powerdown can differ when the screen is on/off.
Allow timeout to change via early suspend/resume hooks.

Signed-off-by: Mike Chan <mike@android.com>

[ARM] msm: rmnet: Lock a wakelock for half a second when receiving data.

Signed-off-by: Arve Hjønnevåg <arve@android.com>

[ARM] msm: rmnet: Tracks total awake time when the rmnet is active.

Exports data in /sys/devices/virtual/net/rmnet0/awake_time_ms
in time expressed as ms awake.

Signed-off-by: Mike Chan <mike@android.com>

[ARM] msm: rmnet: Fix compilation issue when MSM_RMNET_DEBUG is not set.

Signed-off-by: Dima Zavin <dima@android.com>

msm_rmnet: fix to build on 2.6.32

Change-Id: Ic6a4903dd12ea83723354d00f639ae2f9375167f

msm_rmnet: ensure packet writes are atomic

Use the smd_write_atomic() function to prevent concurrent
packet writes to the transport from stepping on each other.

Signed-off-by: Brian Swetland <swetland@google.com>
2013-02-25 11:32:02 -08:00
Stephen Boyd
f0a7c55031 net: ethernet: Add msm ethernet driver directory 2013-02-25 11:32:02 -08:00
tirupathireddy
3df704b738 ppp: replace PPP_MTU with PPP_MRU
This replaces the uses of PPP_MTU with PPP_MRU
since both are identical.

Change-Id: Id5c1c590f4c04ab5d6b79da520b5c8eae01881e6
Signed-off-by: tirupathireddy <tirupath@codeaurora.org>
2013-01-10 11:12:10 -08:00
Colin Cross
5500e4fab2 Merge commit 'v3.4' into android-3.4 2012-05-25 13:56:28 -07:00
Dmitry Shmidt
1dd2d69ca0 net: wireless: bcmdhd: Fix division by 0 if dhd_watchdog_ms is 0
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2012-05-17 16:13:20 -07:00
Tushar Dave
8ce6909f77 e1000: Prevent reset task killing itself.
Killing reset task while adapter is resetting causes deadlock.
Only kill reset task if adapter is not resetting.
Ref bug #43132 on bugzilla.kernel.org

CC: stable@vger.kernel.org
Signed-off-by: Tushar Dave <tushar.n.dave@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-17 18:32:41 -04:00
Michael S. Tsirkin
ec13ee8014 virtio_net: invoke softirqs after __napi_schedule
__napi_schedule might raise softirq but nothing
causes do_softirq to trigger, so it does not in fact
run. As a result,
the error message "NOHZ: local_softirq_pending 08"
sometimes occurs during boot of a KVM guest when the network service is
started and we are oom:

  ...
  Bringing up loopback interface:  [  OK  ]
  Bringing up interface eth0:
  Determining IP information for eth0...NOHZ: local_softirq_pending 08
   done.
  [  OK  ]
  ...

Further, receive queue processing might get delayed
indefinitely until some interrupt triggers:
virtio_net expected napi to be run immediately.

One way to cause do_softirq to be executed is by
invoking local_bh_enable(). As __napi_schedule is
normally called from bh or irq context, this
seems to make sense: disable bh before __napi_schedule
and enable afterwards.

In fact it's a very complicated way of calling do_softirq(),
and works since this function is only used when we are not
in interrupt context.  It's not hot at all, in any ideal scenario.

Reported-by: Ulrich Obergfell <uobergfe@redhat.com>
Tested-by: Ulrich Obergfell <uobergfe@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
2012-05-17 12:16:38 +03:00
David S. Miller
d0cad88d07 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
John Linville says:

Here are three more fixes that some of my developers are desperate to
see included in 3.4...

Johan Hedberg went to some length justifyng the inclusion of these two
Bluetooth fixes:

"The device_connected fix should be quite self-explanatory, but it's
actually a wider issue than just for keyboards. All profiles that do
incoming connection authorization (e.g. headsets) will break without it
with specific hardware. The reason it wasn't caught earlier is that it
only occurs with specific Bluetooth adapters.

As for the security level patch, this fixes L2CAP socket based security
level elevation during a connection. The HID profile needs this (for
keyboards) and it is the only way to achieve the security level
elevation when using the management interface to talk to the kernel
(hence the management enabling patch being the one that exposes this"

The rtlwifi fix addresses a regression related to firmware loading,
as described in kernel.org bug 43187.  It basically just moves a hunk
of code to a more appropriate place.

Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-16 01:04:07 -04:00
Dmitry Shmidt
66981be398 net: wireless: bcmdhd: Update to version 1.27
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2012-05-15 18:12:43 -07:00
John W. Linville
6037463148 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2012-05-15 16:38:00 -04:00
Eric Dumazet
3ab77bf271 pch_gbe: fix transmit races
Andy reported pch_gbe triggered "NETDEV WATCHDOG" errors.

May 11 11:06:09 kontron kernel: WARNING: at net/sched/sch_generic.c:261
dev_watchdog+0x1ec/0x200() (Not tainted)
May 11 11:06:09 kontron kernel: Hardware name: N/A
May 11 11:06:09 kontron kernel: NETDEV WATCHDOG: eth0 (pch_gbe):
transmit queue 0 timed out

It seems pch_gbe has a racy tx path (races with TX completion path)

Remove tx_queue_lock lock since it has no purpose, we must use tx_lock
instead.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Andy Cress <andy.cress@us.kontron.com>
Tested-by: Andy Cress <andy.cress@us.kontron.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-15 13:41:43 -04:00
Dan Williams
4e6304b842 cdc_ether: add Novatel USB551L device IDs for FLAG_WWAN
Needs to be tagged with FLAG_WWAN, which since it has generic
descriptors, won't happen if we don't override the generic
driver info.

Cc: Oliver Neukum <oliver@neukum.org>
Cc: stable@vger.kernel.org
Signed-off-by: Dan Williams <dcbw@redhat.com>
Acked-by: Oliver Neukum <oliver@neukum.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-15 13:41:43 -04:00
Ming Lei
5b6e9bcdeb usbnet: fix skb traversing races during unlink(v2)
Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
recursive locking in usbnet_stop()) fixes the recursive locking
problem by releasing the skb queue lock before unlink, but may
cause skb traversing races:
	- after URB is unlinked and the queue lock is released,
	the refered skb and skb->next may be moved to done queue,
	even be released
	- in skb_queue_walk_safe, the next skb is still obtained
	by next pointer of the last skb
	- so maybe trigger oops or other problems

This patch extends the usage of entry->state to describe 'start_unlink'
state, so always holding the queue(rx/tx) lock to change the state if
the referd skb is in rx or tx queue because we need to know if the
refered urb has been started unlinking in unlink_urbs.

The other part of this patch is based on Huajun's patch:
always traverse from head of the tx/rx queue to get skb which is
to be unlinked but not been started unlinking.

Signed-off-by: Huajun Li <huajun.li.lee@gmail.com>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Cc: Oliver Neukum <oneukum@suse.de>
Cc: stable@kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-15 13:41:42 -04:00
Colin Cross
ec0b571c19 Merge commit 'v3.4-rc7' into android-3.4 2012-05-14 16:41:02 -07:00
Larry Finger
574e02abaf rtlwifi: fix for race condition when firmware is cached
In commit b0302ab, the rtlwifi family of drivers was converted to use
asynchronous firmware loading. Unfortumately, the implementation was
racy, and the ieee80211 routines could be started before rtl_init_core()
was called to setup the data.

This patch fixes the bug noted in https://bugzilla.kernel.org/show_bug.cgi?id=43187.

Reported-by: Joshua Roys <Joshua.Roys@gtri.gatech.edu>
Tested-by: Neptune Ning <frostyplanet@gmail.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>    [3.3]
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-05-14 13:51:24 -04:00
David S. Miller
b99215cdc6 bonding: Fix LACPDU rx_dropped commit.
I applied the wrong version of Jiri's bonding fix in commit
13a8e0c8cd ("bonding: don't increase
rx_dropped after processing LACPDUs")

I applied v3, which introduces warnings I asked him to fix,
instead of v4 which properly takes care of those issues.

This inter-diffs such that the warnings are now gone.

Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-13 15:45:13 -04:00
Stephen Boyd
062e55e396 ks8851: Update link status during link change interrupt
If a link change interrupt comes in we just clear the interrupt
and continue along without notifying the upper networking layers
that the link has changed. Use the mii_check_link() function to
update the link status whenever a link change interrupt occurs.

Cc: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-11 18:23:34 -04:00
Basil Gor
f09e2249c4 macvtap: restore vlan header on user read
Ethernet vlan header is not on the packet and kept in the skb->vlan_tci
when it comes from lower dev. This patch inserts vlan header in user
buffer during skb copy on user read.

Signed-off-by: Basil Gor <basil.gor@gmail.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-11 18:16:57 -04:00
Jiri Bohac
13a8e0c8cd bonding: don't increase rx_dropped after processing LACPDUs
Since commit 3aba891d, bonding processes LACP frames (802.3ad
mode) with bond_handle_frame(). Currently a copy of the skb is
made and the original is left to be processed by other
rx_handlers and the rest of the network stack by returning
RX_HANDLER_ANOTHER.  As there is no protocol handler for
PKT_TYPE_LACPDU, the frame is dropped and dev->rx_dropped
increased.

Fix this by making bond_handle_frame() return RX_HANDLER_CONSUMED
if bonding has processed the LACP frame.

Signed-off-by: Jiri Bohac <jbohac@suse.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-10 23:30:01 -04:00
David S. Miller
59b9997bab Revert "net: maintain namespace isolation between vlan and real device"
This reverts commit 8a83a00b07.

It causes regressions for S390 devices, because it does an
unconditional DST drop on SKBs for vlans and the QETH device
needs the neighbour entry hung off the DST for certain things
on transmit.

Arnd can't remember exactly why he even needed this change.

Conflicts:

	drivers/net/macvlan.c
	net/8021q/vlan_dev.c
	net/core/dev.c

Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-10 23:03:34 -04:00
Thadeu Lima de Souza Cascardo
380ec964bc ehea: fix losing of NEQ events when one event occurred early
The NEQ interrupt is only triggered when there was no previous pending
interrupt. If we request irq handling after an interrupt has occurred,
we will never get an interrupt until we call H_RESET_EVENTS.

Events seem to be cleared when we first register the NEQ. So, when we
requested irq handling right after registering it, a possible race with
an interrupt was much less likely. Now, there is a chance we may lose
this race and never get any events.

The fix here is to poll and acknowledge any events that might have
happened right after registering the irq handler.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-10 22:45:54 -04:00
Benjamin Poirier
cfb8c3aa59 igb: fix rtnl race in PM resume path
Since the caller (PM resume code) is not the one holding rtnl, when taking the
'else' branch rtnl may be released at any moment, thereby defeating the whole
purpose of this code block.

Signed-off-by: Benjamin Poirier <bpoirier@suse.de>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-10 22:44:46 -04:00
David S. Miller
0e0c55165b Merge branch 'sfc-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc 2012-05-09 22:49:57 -04:00
Julien Ducourthial
477206a018 r8169: fix unsigned int wraparound with TSO
The r8169 may get stuck or show bad behaviour after activating TSO :
the net_device is not stopped when it has no more TX descriptors.
This problem comes from TX_BUFS_AVAIL which may reach -1 when all
transmit descriptors are in use. The patch simply tries to keep positive
values.

Tested with 8111d(onboard) on a D510MO, and with 8111e(onboard) on a
Zotac 890GXITX.

Signed-off-by: Julien Ducourthial <jducourt@free.fr>
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-08 19:34:10 -04:00
Ben Hutchings
3132d2827d sfc: Fix division by zero when using one RX channel and no SR-IOV
If RSS is disabled on the PF (efx->n_rx_channels == 1) we try to set
up the indirection table so that VFs can use it, setting
efx->rss_spread = efx_vf_size(efx).  But if SR-IOV was disabled at
compile time, this evaluates to 0 and we end up dividing by zero when
initialising the table.

I considered changing the fallback definition of efx_vf_size() to
return 1, but its value is really meaningless if we are not going to
enable VFs.  Therefore add a condition of efx_sriov_wanted(efx) in
efx_probe_interrupts().

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
2012-05-08 18:26:40 +01:00