From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00076.outbound.protection.outlook.com [40.107.0.76]) by dpdk.org (Postfix) with ESMTP id B0D2D58FE for ; Wed, 5 Dec 2018 20:06:25 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ypSarVMgjITRe5LopjFLxRJbd9Ktjl7AsAyaClyl6xM=; b=gEEIDjCR3Xn/7VAhZKa3Ohzp3YCvOS5A/Kg6QL2hYkmOK9Hf+tinWFKncn3vRi6YRJU4vya7ivl50Uc/tOMXT867eoVzWeTMg90g4sBT0pG9fBVrRvyPjilJJ+GjSgoR4oSmaCP228o1ECiqNkPpDwVHZ4f2LPml+Sk75FpsOyc= Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by DB3PR0502MB4044.eurprd05.prod.outlook.com (52.134.72.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.17; Wed, 5 Dec 2018 19:06:24 +0000 Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::dcbc:4578:3018:50f3]) by DB3PR0502MB3980.eurprd05.prod.outlook.com ([fe80::dcbc:4578:3018:50f3%5]) with mapi id 15.20.1382.023; Wed, 5 Dec 2018 19:06:24 +0000 From: Yongseok Koh To: Luca Boccassi CC: "stable@dpdk.org" Thread-Topic: [PATCH 17.11] net/virtio: register/unregister intr handler on start/stop Thread-Index: AQHUivLiZOQoTvlD0EWmwnoYAiOb+qVwhVSA Date: Wed, 5 Dec 2018 19:06:24 +0000 Message-ID: <6D306155-D1B1-4795-907E-C2E4D02B3E75@mellanox.com> References: <20181203102754.17543-1-bluca@debian.org> In-Reply-To: <20181203102754.17543-1-bluca@debian.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; x-originating-ip: [172.58.95.102] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB3PR0502MB4044; 6:y2sZqJlS/sMl0e8yQOrSwYoJJYrXi50sFAJX2lXHyI+KHH4YMdxraW3Sz2MM7SwuJ3Q/jN+m2YXr2YXvKdpGqY6C/ajt+uR984lg8HnxVBkaJBmVH/SYgF7X8WEFivlsPDmIGuoSLPXsWLBWPj122XIEtG0/zwGVEG2iUMONcOf18vrS2Mi9fkQmsRl2yksBoUCpN9Lp+97O98kKhWG6+6Yvs4FlnpGpuDCatZhoPf7P33meyOu45VeDpeQpZ/zYJuDngIWzbGR2pze+Bl0xHwcb23FvKWq+aXv0U4Uw8t6rxZoawXqFmoGDnCxM4xmgLhFvW/I/xHBMfbPtm7Qh3Lu5ctiYg+a+jeJ2c90vLx9n8VGLksOcfk21t+JCNahw+KDa3XJh5EYrnGKtGrJuKjlMMeC49N2NTOVT3tlhb/OLg2GRNOIDIq1dH49gJPo5MGFULo9l6NEZ+SNqO6bt4A==; 5:dvgvgFmG3lriXXOjOLobRV17labzWqGsKsjynJi0qOng8Kj9mjZnK9qjff+sgACRhwV2i0cePhujpBcU8YvABqInU7UXCn3/2taAkLJyOJcNjtJcxkGecVbETHvoxaXOFKVY3R6I5LUMyRrztmZBhTVAZo01Ptky/6fGm74V26c=; 7:wcgFBLM8/luxARPMLEUdzEIM3UISMBW5Sx7GY16Zv4wcq4XXXsUSxaTwyQfZTXTj6XCPrBgX3czWN1Kdb4NH7OQBLNdVrrm/Co56k0nCn7TC3eSyQmFTcHN5HgJu5Ifpx9hG+OfSX0KeBhjXr5081A== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 39527507-630d-4791-9971-08d65ae4c04f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0502MB4044; x-ms-traffictypediagnostic: DB3PR0502MB4044: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3231455)(999002)(944501520)(52105112)(93006095)(93001095)(3002001)(6055026)(148016)(149066)(150057)(6041310)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123564045)(201708071742011)(7699051)(76991095); SRVR:DB3PR0502MB4044; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB4044; x-forefront-prvs: 08770259B4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(366004)(376002)(136003)(396003)(39860400002)(199004)(189003)(229853002)(106356001)(53546011)(26005)(186003)(33656002)(256004)(105586002)(71200400001)(14454004)(83716004)(66066001)(71190400001)(102836004)(99286004)(5660300001)(316002)(76176011)(82746002)(6486002)(6436002)(575784001)(6512007)(8936002)(86362001)(25786009)(68736007)(7736002)(305945005)(2906002)(3846002)(6116002)(81156014)(81166006)(8676002)(486006)(446003)(476003)(2616005)(11346002)(6916009)(4326008)(36756003)(6246003)(478600001)(97736004)(53936002)(6506007); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB4044; H:DB3PR0502MB3980.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: nVgEuai8HVWmnFpSontaI2lziRsZ+y+zOJ2EXIzPWLdo/1EoHydIX8tjZdAqkEuBaMwQ2x+4Rex6jBJCSDKH6Xf8fznbOvUAi9RtQyKwCtGsb39sI0YgVYIlPLBroWka8HEFImu8ffb1e2Lop6KqTmWtn96oQkNc5oPKB3wQVHlsEGtuQEnwyAC/mKBTfFw6jyzjgNze2yNDEoOOkSvijBSl8Ml1VcoiI8HiauqITO6vwa4mSnYQmwIuJGv3ykblYqqKO+BpXiwkbDA/zGl2gRnUq9mXOCFTG+AjpN63DmgIl2xGjjYhvC0JbEwwSAcGevYt3LkhJOXJS4257ppEzm9Pvz52vXCVEqEZoh6EMs4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-ID: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39527507-630d-4791-9971-08d65ae4c04f X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Dec 2018 19:06:24.3638 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB4044 Subject: Re: [dpdk-stable] [PATCH 17.11] net/virtio: register/unregister intr handler on start/stop X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Dec 2018 19:06:25 -0000 > On Dec 3, 2018, at 2:27 AM, Luca Boccassi wrote: >=20 > [ backported from upstream commit f9b0d1902caf893493b5e07763ecf817c34fc75= c ] >=20 > Register and unregister the virtio interrupt handler when the device is > started and stopped. This allows a virtio device to be hotplugged or > unplugged. >=20 > Fixes: c1f86306a026 ("virtio: add new driver") >=20 > Signed-off-by: Brian Russell > Signed-off-by: Luca Boccassi > Reviewed-by: Maxime Coquelin > --- Applied to stable/17.11 Thanks, Yongseok > Adjusted context for 17.11, no functional changes. >=20 > drivers/net/virtio/virtio_ethdev.c | 26 +++++++++++++++----------- > 1 file changed, 15 insertions(+), 11 deletions(-) >=20 > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virt= io_ethdev.c > index 4da1ba32e..6eece5bcf 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -1622,11 +1622,6 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) > if (ret < 0) > goto out; >=20 > - /* Setup interrupt callback */ > - if (eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) > - rte_intr_callback_register(eth_dev->intr_handle, > - virtio_interrupt_handler, eth_dev); > - > return 0; >=20 > out: > @@ -1652,11 +1647,6 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev) > rte_free(eth_dev->data->mac_addrs); > eth_dev->data->mac_addrs =3D NULL; >=20 > - /* reset interrupt callback */ > - if (eth_dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) > - rte_intr_callback_unregister(eth_dev->intr_handle, > - virtio_interrupt_handler, > - eth_dev); > if (eth_dev->device) > rte_pci_unmap_device(RTE_ETH_DEV_TO_PCI(eth_dev)); >=20 > @@ -1833,6 +1823,12 @@ virtio_dev_start(struct rte_eth_dev *dev) > dev->data->dev_conf.intr_conf.rxq) { > virtio_intr_disable(dev); >=20 > + /* Setup interrupt callback */ > + if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) > + rte_intr_callback_register(dev->intr_handle, > + virtio_interrupt_handler, > + dev); > + > if (virtio_intr_enable(dev) < 0) { > PMD_DRV_LOG(ERR, "interrupt enable failed"); > return -EIO; > @@ -1947,9 +1943,17 @@ virtio_dev_stop(struct rte_eth_dev *dev) >=20 > PMD_INIT_LOG(DEBUG, "stop"); >=20 > - if (intr_conf->lsc || intr_conf->rxq) > + if (intr_conf->lsc || intr_conf->rxq) { > virtio_intr_disable(dev); >=20 > + /* Reset interrupt callback */ > + if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) { > + rte_intr_callback_unregister(dev->intr_handle, > + virtio_interrupt_handler, > + dev); > + } > + } > + > hw->started =3D 0; > memset(&link, 0, sizeof(link)); > virtio_dev_atomic_write_link_status(dev, &link); > --=20 > 2.19.2 >=20