From patchwork Sun Jan 27 20:14:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Yavuz, Tuba" X-Patchwork-Id: 1031630 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ece.ufl.edu Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43nkWP4cTJz9s7T for ; Mon, 28 Jan 2019 07:14:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726884AbfA0UOj (ORCPT ); Sun, 27 Jan 2019 15:14:39 -0500 Received: from smtp-prod03.osg.ufl.edu ([128.227.74.219]:48808 "EHLO smtp.ufl.edu" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726386AbfA0UOi (ORCPT ); Sun, 27 Jan 2019 15:14:38 -0500 X-UFL-GatorLink-Authenticated: authenticated as () with from 10.36.197.41 Received: from exmbxprd20.ad.ufl.edu ([10.36.197.41]) by smtp.ufl.edu (8.14.4/8.14.4/3.0.0) with ESMTP id x0RKEXHa053539 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT); Sun, 27 Jan 2019 15:14:34 -0500 Received: from exmbxprd18.ad.ufl.edu (10.36.197.39) by exmbxprd20.ad.ufl.edu (10.36.197.41) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 27 Jan 2019 15:14:33 -0500 Received: from exmbxprd18.ad.ufl.edu ([fe80::890c:cba5:27b2:db27]) by exmbxprd18.ad.ufl.edu ([fe80::890c:cba5:27b2:db27%19]) with mapi id 15.00.1395.000; Sun, 27 Jan 2019 15:14:33 -0500 From: "Yavuz, Tuba" To: "netdev@vger.kernel.org" CC: Greg KH , "Yavuz, Tuba" Subject: [PATCH] : net : hso : unregister_netdev only if it has been registered Thread-Topic: [PATCH] : net : hso : unregister_netdev only if it has been registered Thread-Index: AQHUtnzH4jYxfoPiT0KmmtO+JvC4Mw== Date: Sun, 27 Jan 2019 20:14:33 +0000 Message-ID: <1548620073263.88642@ece.ufl.edu> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.36.198.12] MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-01-27_13:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=872 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901270163 X-Spam-Level: * X-UFL-Spam-Level: * Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On an error path inside the hso_create_net_device function of the hso  driver, hso_free_net_device gets called. This causes potentially a  negative reference count in the net device if register_netdev has not  been called yet as hso_free_net_device calls unregister_netdev  regardless. I think the driver should distinguish these cases and call  unregister_netdev only if register_netdev has been called. Reported-by: Tuba Yavuz Signed-off-by: Tuba Yavuz --- drivers/net/usb/hso.c.orig 2019-01-27 14:45:58.232683119 -0500 +++ drivers/net/usb/hso.c 2019-01-27 14:47:43.592683629 -0500 @@ -2377,7 +2377,7 @@ static void hso_free_net_device(struct h     remove_net_device(hso_net->parent);   - if (hso_net->net) + if (hso_net->net && hso_net->net->reg_state == NETREG_REGISTERED)   unregister_netdev(hso_net->net);     /* start freeing */​