From patchwork Wed Mar 14 14:00:24 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexey Orishko X-Patchwork-Id: 146618 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 15B91B6EEE for ; Thu, 15 Mar 2012 01:00:52 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965208Ab2CNOAr (ORCPT ); Wed, 14 Mar 2012 10:00:47 -0400 Received: from mail-lpp01m010-f46.google.com ([209.85.215.46]:34726 "EHLO mail-lpp01m010-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752638Ab2CNOAp (ORCPT ); Wed, 14 Mar 2012 10:00:45 -0400 Received: by lahj13 with SMTP id j13so1454180lah.19 for ; Wed, 14 Mar 2012 07:00:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:mime-version :content-type:content-transfer-encoding; bh=7QNqdIUDHbJebQq6d+jS7r0rehiR6e60hMHcPvyEZXs=; b=UCHO6f05WxqHN/Z8KSR19RPYgnT6pgfl9oksX116fvSkBeagjSI+leqBwELSL58fEL UdS0Ae7GC93tCa0BZTvPlRN0USm2zFtzsb6PAJHEvbqzESLnsfKkZzQiG6Oe6z+jTVIp uZUZJmT9oeoQMQK8+q8iJrcnkDPcKdUUwu9pnSoRlkgM01QwV8c8xKeXVDRN6ySJzJqD wdCSVSdknaYsi7OlseXAq8PW+m8as+AzMxncUdgTGvrELO6YBgaIns05jsJKI567mtHv Ynivb+Yuv7I6bH5C4OYc9QaWY7fe92E+xG9rshL9vccn6Gxa9a1iV+Bx3YkxGcHCT6I/ bA2w== Received: by 10.112.44.105 with SMTP id d9mr16657lbm.69.1331733643636; Wed, 14 Mar 2012 07:00:43 -0700 (PDT) Received: from localhost.localdomain ([212.4.57.94]) by mx.google.com with ESMTPS id oy17sm3700499lab.7.2012.03.14.07.00.41 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 14 Mar 2012 07:00:42 -0700 (PDT) From: Alexey Orishko To: netdev@vger.kernel.org, davem@davemloft.net, oliver@neukum.org Cc: linux-usb@vger.kernel.org, gregkh@suse.de, Alexey Orishko Subject: [PATCH net-next] usbnet: use netif_tx_wake_queue instead of netif_start_queue Date: Wed, 14 Mar 2012 15:00:24 +0100 Message-Id: <1331733624-23266-1-git-send-email-alexey.orishko@stericsson.com> X-Mailer: git-send-email 1.7.4.1 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If host is going to autosuspend function with two interfaces and if IP packet has arrived in-between of two usbnet_suspend() callbacks, i.e usbnet_resume() is called in-between, tx data flow is stopped. When autosuspend timer expires and device is put to autosuspend again, tx queue is waked up and data can be sent again. This behavior might be repeated several times in a row. Tested on Intel/ARM. Reviewed-by: Sjur Brændeland Tested-by: Dmitry Tarnyagin Signed-off-by: Alexey Orishko Acked-by: Oliver Neukum --- drivers/net/usb/usbnet.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 83dcc53..5394b4e 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -1535,7 +1535,7 @@ int usbnet_resume (struct usb_interface *intf) if (test_bit(EVENT_DEV_OPEN, &dev->flags)) { if (!(dev->txq.qlen >= TX_QLEN(dev))) - netif_start_queue(dev->net); + netif_tx_wake_all_queues(dev->net); tasklet_schedule (&dev->bh); } }