summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHemant Ramdasi <hemant.ramdasi@stericsson.com>2012-01-27 13:05:34 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-06-05 10:40:32 +0200
commitfa3b6f6a31bccb6d19bdffbae57723013c8083aa (patch)
treec2c565e7774ff2786aa7f151c6fe632810189a70
parentba35a7abea72097f3b3bec43f8c2c536a95760e2 (diff)
shrm-net : remove netif_carrier_off/on calls
This patch removes netif_carrier_off() call from machine suspend sequence. Also removes netif_carrier_on() call from resume sequence. This error is introduced because of the below behaviour. Important control message PNS_PEP_STATUS_IND message from phonet stack is getting dropped sometimes in the APE sleep-wakeup transition. It happens because, the Qdisc (between Phonet and SHRM) changes to "noop" when APE goes to sleep. The normal Qdisc in operation in pfifo_fast. When APE wakes up, the transition to pfast_fifo is not fast enough as it is done in a workqueue. So before the switch happens, APE receives 3 packets very quickly and must grant credits in any of the 3 packets. This does not happen. Hence modem cannot send any new packet as it has exhausted all its credits and APE cannot send credit-grant message as it will not receive any new packet. This leads to a deadlock situation for IP data transfer. ST-Ericsson ID: 405569 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I94e1d117c4c191e27a08f6a558b26c442a750816 Signed-off-by: Hemant Ramdasi <hemant.ramdasi@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/47661 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> Reviewed-by: Dinesh Kumar SHARMA (STE) <dinesh.sharma@stericsson.com> Reviewed-by: QABUILD Reviewed-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com>
-rw-r--r--drivers/net/u8500_shrm.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/net/u8500_shrm.c b/drivers/net/u8500_shrm.c
index 0e813bbb3cc..08597623443 100644
--- a/drivers/net/u8500_shrm.c
+++ b/drivers/net/u8500_shrm.c
@@ -292,23 +292,17 @@ int shrm_start_netdev(struct net_device *dev)
int shrm_suspend_netdev(struct net_device *dev)
{
- if (netif_running(dev)) {
+ if (netif_running(dev))
netif_stop_queue(dev);
- netif_carrier_off(dev);
- }
netif_device_detach(dev);
-
return 0;
}
int shrm_resume_netdev(struct net_device *dev)
{
netif_device_attach(dev);
- if (netif_running(dev)) {
- netif_carrier_on(dev);
+ if (netif_running(dev))
netif_wake_queue(dev);
- }
-
return 0;
}