Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp1366183ybp; Thu, 17 Oct 2019 11:42:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqxs/edApIC/BUVbwtGfTjohgAijDHMr8u1XM1OBI0qTiR2KFImahpnWKvrwTLtCyRmh+dLH X-Received: by 2002:a17:906:1651:: with SMTP id n17mr4860742ejd.220.1571337725235; Thu, 17 Oct 2019 11:42:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1571337725; cv=none; d=google.com; s=arc-20160816; b=xuReoyZY0tmLqXOKDaCrEg5iNqEejIjSQ876EHv2cq8Fs4E489g46G5u7HD6vU8LiB bRsb4zaMae7qwZECkYm1ag41zbDHJ9bu4nZQxie0elILhEwZ/QhY2FypYadU9j5ePs5E x2YFeirUrb1Kq5LM/wDyzUTypeDwQfPFVaPV8eYjF6wbFq/g4cP8UdicJkf6VRVXZiNI /FaIbGfJUD3LVaUkTQbKetDWF3oFM6QVthrhx7BPZsIoePtGLeJJjrCO+Gk8ZFkUx6n6 tbKWIorxY2J/T4jIiQrY32dXynW57LBQzBqh3TzsfIwOCWlNlwr1jkN6SeEDD4ZMVGlu vfzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=KBdSuIjD/uDDryYyTq2XlUVusTPVhtbwsaVSWS3kB18=; b=lg/e8GhLhKhUOweLHOiNY3A43ro4BbD9dqZE8xHCk/6PWi34/7I3pXueH1BJ1WNqWC nyAlqngsO22/jq7E88J8uAgTur3oBMiyxGunQQeD80RYDp102S+7ohlpwBS/idGC6PxH XI5Ui1p8tq3fvrBMtBqXEXDIkZjl5aMPJ+xaO81qtXQpJs0BbTw/Fkzq9KgyhSvXQ+u/ crQWBralx65QleeHHfl0Iihxcqwp+kTf39D34hJ8v92GL7skSzGsXUVUCpgtTCkZj7c+ IQ/jCH6LiP29Sss6mWQ2fXPj2D2Xw9QGrZfFHz2h3rb6y0jdJoxEifytiV02CJDB6xH7 J2eg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SLxBMhPW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 10si1873046ejw.231.2019.10.17.11.41.41; Thu, 17 Oct 2019 11:42:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SLxBMhPW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2407172AbfJPWKQ (ORCPT + 99 others); Wed, 16 Oct 2019 18:10:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:49792 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2437976AbfJPV5R (ORCPT ); Wed, 16 Oct 2019 17:57:17 -0400 Received: from localhost (unknown [192.55.54.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 79989218DE; Wed, 16 Oct 2019 21:57:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1571263036; bh=izqO9ALxtxnEoEPIVKQWUWSUcpA2AFD+pQ0ufO4hGps=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SLxBMhPWkvNRMDKC4324E/TCP6aBbo/C8rnJV+dvCxb7gc1kOtBN8pZdkzK2/MNK4 JABYfwkNYFuajn8GzdyjOoz3Mqo917OVIu3NzDl79Ak7AwPvxrmuuYS/i2bH+IoIHx o33UuNhkJAdVY+w3p1nuiA4yNS6yGLs5IOQiy1Po= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Johan Hovold Subject: [PATCH 4.19 06/81] USB: usb-skeleton: fix runtime PM after driver unbind Date: Wed, 16 Oct 2019 14:50:17 -0700 Message-Id: <20191016214811.706227648@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191016214805.727399379@linuxfoundation.org> References: <20191016214805.727399379@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Johan Hovold commit 5c290a5e42c3387e82de86965784d30e6c5270fd upstream. Since commit c2b71462d294 ("USB: core: Fix bug caused by duplicate interface PM usage counter") USB drivers must always balance their runtime PM gets and puts, including when the driver has already been unbound from the interface. Leaving the interface with a positive PM usage counter would prevent a later bound driver from suspending the device. Fixes: c2b71462d294 ("USB: core: Fix bug caused by duplicate interface PM usage counter") Cc: stable Signed-off-by: Johan Hovold Link: https://lore.kernel.org/r/20191001084908.2003-2-johan@kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/usb/usb-skeleton.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) --- a/drivers/usb/usb-skeleton.c +++ b/drivers/usb/usb-skeleton.c @@ -71,6 +71,7 @@ static void skel_delete(struct kref *kre struct usb_skel *dev = to_skel_dev(kref); usb_free_urb(dev->bulk_in_urb); + usb_put_intf(dev->interface); usb_put_dev(dev->udev); kfree(dev->bulk_in_buffer); kfree(dev); @@ -122,10 +123,7 @@ static int skel_release(struct inode *in return -ENODEV; /* allow the device to be autosuspended */ - mutex_lock(&dev->io_mutex); - if (dev->interface) - usb_autopm_put_interface(dev->interface); - mutex_unlock(&dev->io_mutex); + usb_autopm_put_interface(dev->interface); /* decrement the count on our device */ kref_put(&dev->kref, skel_delete); @@ -505,7 +503,7 @@ static int skel_probe(struct usb_interfa init_waitqueue_head(&dev->bulk_in_wait); dev->udev = usb_get_dev(interface_to_usbdev(interface)); - dev->interface = interface; + dev->interface = usb_get_intf(interface); /* set up the endpoint information */ /* use only the first bulk-in and bulk-out endpoints */