From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.4 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E26AC43603 for ; Thu, 12 Dec 2019 13:55:03 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5D2DB21655 for ; Thu, 12 Dec 2019 13:55:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="AnH7zpaN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5D2DB21655 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ifOvU-0006ui-Ju; Thu, 12 Dec 2019 13:54:44 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ifOvT-0006ub-AO for xen-devel@lists.xenproject.org; Thu, 12 Dec 2019 13:54:43 +0000 X-Inumbo-ID: ecfb938a-1ce6-11ea-88e7-bc764e2007e4 Received: from smtp-fw-33001.amazon.com (unknown [207.171.190.10]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id ecfb938a-1ce6-11ea-88e7-bc764e2007e4; Thu, 12 Dec 2019 13:54:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1576158875; x=1607694875; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=ezPH1AiTE6r0zrlYMo9nYWVSoQFuwMWPwgfu8FiMjsY=; b=AnH7zpaNrB1rLwxmG6NA3aMetqFdCMVtU8IvpS/vf4TID4SDxRbBAL6H ABHW060bcKQLYVqIuzCDKPVQzWJS2qID0ZYHjHLISAklG8uFTAYFEtAec OJjP5aRBwUY4FDzM6kAm9udtDhjGiO3NnfSvqsTBYhGa6fNOiUBog2L0P A=; IronPort-SDR: ZpXwKJBgLKNCqpKSMOsUBcKFEjRDg2isaOM1ouRhYHHHL4Y2mIQ8C5LR4SZKZMz9ozikSYQWDM OB0j0FcYnf4g== X-IronPort-AV: E=Sophos;i="5.69,306,1571702400"; d="scan'208";a="14514350" Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-2b-a7fdc47a.us-west-2.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-33001.sea14.amazon.com with ESMTP; 12 Dec 2019 13:54:14 +0000 Received: from EX13MTAUEA001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2b-a7fdc47a.us-west-2.amazon.com (Postfix) with ESMTPS id 3DE31C5715; Thu, 12 Dec 2019 13:54:13 +0000 (UTC) Received: from EX13D32EUB003.ant.amazon.com (10.43.166.165) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 12 Dec 2019 13:54:12 +0000 Received: from EX13MTAUWB001.ant.amazon.com (10.43.161.207) by EX13D32EUB003.ant.amazon.com (10.43.166.165) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 12 Dec 2019 13:54:11 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.161.249) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Thu, 12 Dec 2019 13:54:09 +0000 From: Paul Durrant To: , , Date: Thu, 12 Dec 2019 13:54:06 +0000 Message-ID: <20191212135406.26229-1-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH net-next] xen-netback: get rid of old udev related code X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Paul Durrant , Wei Liu , "David S. Miller" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SW4gdGhlIHBhc3QgaXQgdXNlZCB0byBiZSB0aGUgY2FzZSB0aGF0IHRoZSBYZW4gdG9vbHN0YWNr IHJlbGllZCB1cG9uCnVkZXYgdG8gZXhlY3V0ZSBiYWNrZW5kIGhvdHBsdWcgc2NyaXB0cy4gSG93 ZXZlciB0aGlzIGhhcyBub3QgYmVlbiB0aGUKY2FzZSBmb3IgbWFueSByZWxlYXNlcyBub3cgYW5k IHJlbW92YWwgb2YgdGhlIGFzc29jaWF0ZWQgY29kZSBpbgp4ZW4tbmV0YmFjayBzaG9ydGVucyB0 aGUgc291cmNlIGJ5IG1vcmUgdGhhbiAxMDAgbGluZXMsIGFuZCByZW1vdmVzIG11Y2gKY29tcGxl eGl0eSBpbiB0aGUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgeGVuc3RvcmUgYmFja2VuZCBzdGF0ZS4K Ck5PVEU6IHhlbi1uZXRiYWNrIGlzIHRoZSBvbmx5IHhlbmJ1cyBkcml2ZXIgdG8gaGF2ZSBhIGZ1 bmN0aW9uYWwgdWV2ZW50KCkKICAgICAgbWV0aG9kLiBUaGUgb25seSBvdGhlciBkcml2ZXIgdG8g aGF2ZSBhIG1ldGhvZCBhdCBhbGwgaXMKICAgICAgcHZjYWxscy1iYWNrLCBhbmQgY3VycmVudGx5 IHB2Y2FsbHNfYmFja191ZXZlbnQoKSBzaW1wbHkgcmV0dXJucyAwLgogICAgICBIZW5jZSB0aGlz IHBhdGNoIGFsc28gZmFjaWxpdGF0ZXMgZnVydGhlciBjbGVhbnVwLgoKU2lnbmVkLW9mZi1ieTog UGF1bCBEdXJyYW50IDxwZHVycmFudEBhbWF6b24uY29tPgotLS0KQ2M6IFdlaSBMaXUgPHdlaS5s aXVAa2VybmVsLm9yZz4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGRyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2NvbW1vbi5oIHwgIDExIC0tLQogZHJpdmVy cy9uZXQveGVuLW5ldGJhY2sveGVuYnVzLmMgfCAxMjUgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmggYi9kcml2 ZXJzL25ldC94ZW4tbmV0YmFjay9jb21tb24uaAppbmRleCAwNTg0N2ViOTFhMWIuLmU0OGRhMDA0 YzFhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmgKKysrIGIv ZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmgKQEAgLTI1MSwxNyArMjUxLDYgQEAgc3Ry dWN0IHhlbnZpZl9oYXNoIHsKIHN0cnVjdCBiYWNrZW5kX2luZm8gewogCXN0cnVjdCB4ZW5idXNf ZGV2aWNlICpkZXY7CiAJc3RydWN0IHhlbnZpZiAqdmlmOwotCi0JLyogVGhpcyBpcyB0aGUgc3Rh dGUgdGhhdCB3aWxsIGJlIHJlZmxlY3RlZCBpbiB4ZW5zdG9yZSB3aGVuIGFueQotCSAqIGFjdGl2 ZSBob3RwbHVnIHNjcmlwdCBjb21wbGV0ZXMuCi0JICovCi0JZW51bSB4ZW5idXNfc3RhdGUgc3Rh dGU7Ci0KLQllbnVtIHhlbmJ1c19zdGF0ZSBmcm9udGVuZF9zdGF0ZTsKLQlzdHJ1Y3QgeGVuYnVz X3dhdGNoIGhvdHBsdWdfc3RhdHVzX3dhdGNoOwotCXU4IGhhdmVfaG90cGx1Z19zdGF0dXNfd2F0 Y2g6MTsKLQotCWNvbnN0IGNoYXIgKmhvdHBsdWdfc2NyaXB0OwogfTsKIAogc3RydWN0IHhlbnZp ZiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYyBiL2RyaXZl cnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jCmluZGV4IGY1MzNiNzM3MmQ1OS4uNGU4OTM5M2Q1 ZGQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYworKysgYi9k cml2ZXJzL25ldC94ZW4tbmV0YmFjay94ZW5idXMuYwpAQCAtMTUsNyArMTUsNiBAQCBzdGF0aWMg aW50IGNvbm5lY3RfZGF0YV9yaW5ncyhzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSwKIHN0YXRpYyB2 b2lkIGNvbm5lY3Qoc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUpOwogc3RhdGljIGludCByZWFkX3hl bmJ1c192aWZfZmxhZ3Moc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUpOwogc3RhdGljIGludCBiYWNr ZW5kX2NyZWF0ZV94ZW52aWYoc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUpOwotc3RhdGljIHZvaWQg dW5yZWdpc3Rlcl9ob3RwbHVnX3N0YXR1c193YXRjaChzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSk7 CiBzdGF0aWMgdm9pZCB4ZW5fdW5yZWdpc3Rlcl93YXRjaGVycyhzdHJ1Y3QgeGVudmlmICp2aWYp Owogc3RhdGljIHZvaWQgc2V0X2JhY2tlbmRfc3RhdGUoc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUs CiAJCQkgICAgICBlbnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSk7CkBAIC0xOTksMTcgKzE5OCwxMSBA QCBzdGF0aWMgaW50IG5ldGJhY2tfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYpCiB7 CiAJc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUgPSBkZXZfZ2V0X2RydmRhdGEoJmRldi0+ZGV2KTsK IAotCXNldF9iYWNrZW5kX3N0YXRlKGJlLCBYZW5idXNTdGF0ZUNsb3NlZCk7Ci0KLQl1bnJlZ2lz dGVyX2hvdHBsdWdfc3RhdHVzX3dhdGNoKGJlKTsKIAlpZiAoYmUtPnZpZikgewotCQlrb2JqZWN0 X3VldmVudCgmZGV2LT5kZXYua29iaiwgS09CSl9PRkZMSU5FKTsKIAkJeGVuX3VucmVnaXN0ZXJf d2F0Y2hlcnMoYmUtPnZpZik7Ci0JCXhlbmJ1c19ybShYQlRfTklMLCBkZXYtPm5vZGVuYW1lLCAi aG90cGx1Zy1zdGF0dXMiKTsKIAkJeGVudmlmX2ZyZWUoYmUtPnZpZik7CiAJCWJlLT52aWYgPSBO VUxMOwogCX0KLQlrZnJlZShiZS0+aG90cGx1Z19zY3JpcHQpOwogCWtmcmVlKGJlKTsKIAlkZXZf c2V0X2RydmRhdGEoJmRldi0+ZGV2LCBOVUxMKTsKIAlyZXR1cm4gMDsKQEAgLTIyNyw3ICsyMjAs NiBAQCBzdGF0aWMgaW50IG5ldGJhY2tfcHJvYmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwK IAlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKIAlpbnQgZXJyOwogCWludCBzZzsKLQlj b25zdCBjaGFyICpzY3JpcHQ7CiAJc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUgPSBremFsbG9jKHNp emVvZihzdHJ1Y3QgYmFja2VuZF9pbmZvKSwKIAkJCQkJICBHRlBfS0VSTkVMKTsKIAlpZiAoIWJl KSB7CkBAIC0yMzksNyArMjMxLDYgQEAgc3RhdGljIGludCBuZXRiYWNrX3Byb2JlKHN0cnVjdCB4 ZW5idXNfZGV2aWNlICpkZXYsCiAJYmUtPmRldiA9IGRldjsKIAlkZXZfc2V0X2RydmRhdGEoJmRl di0+ZGV2LCBiZSk7CiAKLQliZS0+c3RhdGUgPSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZzsKIAll cnIgPSB4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcpOwog CWlmIChlcnIpCiAJCWdvdG8gZmFpbDsKQEAgLTM0NywyMSArMzM4LDEyIEBAIHN0YXRpYyBpbnQg bmV0YmFja19wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAogCWlmIChlcnIpCiAJCXBy X2RlYnVnKCJFcnJvciB3cml0aW5nIGZlYXR1cmUtY3RybC1yaW5nXG4iKTsKIAotCXNjcmlwdCA9 IHhlbmJ1c19yZWFkKFhCVF9OSUwsIGRldi0+bm9kZW5hbWUsICJzY3JpcHQiLCBOVUxMKTsKLQlp ZiAoSVNfRVJSKHNjcmlwdCkpIHsKLQkJZXJyID0gUFRSX0VSUihzY3JpcHQpOwotCQl4ZW5idXNf ZGV2X2ZhdGFsKGRldiwgZXJyLCAicmVhZGluZyBzY3JpcHQiKTsKLQkJZ290byBmYWlsOwotCX0K LQotCWJlLT5ob3RwbHVnX3NjcmlwdCA9IHNjcmlwdDsKLQotCi0JLyogVGhpcyBraWNrcyBob3Rw bHVnIHNjcmlwdHMsIHNvIGRvIGl0IGltbWVkaWF0ZWx5LiAqLwogCWVyciA9IGJhY2tlbmRfY3Jl YXRlX3hlbnZpZihiZSk7CiAJaWYgKGVycikKIAkJZ290byBmYWlsOwogCisJc2V0X2JhY2tlbmRf c3RhdGUoYmUsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOworCiAJcmV0dXJuIDA7CiAKIGFib3J0X3Ry YW5zYWN0aW9uOgpAQCAtMzc0LDI5ICszNTYsNiBAQCBzdGF0aWMgaW50IG5ldGJhY2tfcHJvYmUo c3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwKIH0KIAogCi0vKgotICogSGFuZGxlIHRoZSBjcmVh dGlvbiBvZiB0aGUgaG90cGx1ZyBzY3JpcHQgZW52aXJvbm1lbnQuICBXZSBhZGQgdGhlIHNjcmlw dAotICogYW5kIHZpZiB2YXJpYWJsZXMgdG8gdGhlIGVudmlyb25tZW50LCBmb3IgdGhlIGJlbmVm aXQgb2YgdGhlIHZpZi0qIGhvdHBsdWcKLSAqIHNjcmlwdHMuCi0gKi8KLXN0YXRpYyBpbnQgbmV0 YmFja191ZXZlbnQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKnhkZXYsCi0JCQkgIHN0cnVjdCBrb2Jq X3VldmVudF9lbnYgKmVudikKLXsKLQlzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSA9IGRldl9nZXRf ZHJ2ZGF0YSgmeGRldi0+ZGV2KTsKLQotCWlmICghYmUpCi0JCXJldHVybiAwOwotCi0JaWYgKGFk ZF91ZXZlbnRfdmFyKGVudiwgInNjcmlwdD0lcyIsIGJlLT5ob3RwbHVnX3NjcmlwdCkpCi0JCXJl dHVybiAtRU5PTUVNOwotCi0JaWYgKCFiZS0+dmlmKQotCQlyZXR1cm4gMDsKLQotCXJldHVybiBh ZGRfdWV2ZW50X3ZhcihlbnYsICJ2aWY9JXMiLCBiZS0+dmlmLT5kZXYtPm5hbWUpOwotfQotCi0K IHN0YXRpYyBpbnQgYmFja2VuZF9jcmVhdGVfeGVudmlmKHN0cnVjdCBiYWNrZW5kX2luZm8gKmJl KQogewogCWludCBlcnI7CkBAIC00MjIsNyArMzgxLDYgQEAgc3RhdGljIGludCBiYWNrZW5kX2Ny ZWF0ZV94ZW52aWYoc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUpCiAJYmUtPnZpZiA9IHZpZjsKIAl2 aWYtPmJlID0gYmU7CiAKLQlrb2JqZWN0X3VldmVudCgmZGV2LT5kZXYua29iaiwgS09CSl9PTkxJ TkUpOwogCXJldHVybiAwOwogfQogCkBAIC00NjIsMjEgKzQyMCw2IEBAIHN0YXRpYyB2b2lkIGJh Y2tlbmRfY29ubmVjdChzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSkKIAkJY29ubmVjdChiZSk7CiB9 CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBiYWNrZW5kX3N3aXRjaF9zdGF0ZShzdHJ1Y3QgYmFja2Vu ZF9pbmZvICpiZSwKLQkJCQkJZW51bSB4ZW5idXNfc3RhdGUgc3RhdGUpCi17Ci0Jc3RydWN0IHhl bmJ1c19kZXZpY2UgKmRldiA9IGJlLT5kZXY7Ci0KLQlwcl9kZWJ1ZygiJXMgLT4gJXNcbiIsIGRl di0+bm9kZW5hbWUsIHhlbmJ1c19zdHJzdGF0ZShzdGF0ZSkpOwotCWJlLT5zdGF0ZSA9IHN0YXRl OwotCi0JLyogSWYgd2UgYXJlIHdhaXRpbmcgZm9yIGEgaG90cGx1ZyBzY3JpcHQgdGhlbiBkZWZl ciB0aGUKLQkgKiBhY3R1YWwgeGVuYnVzIHN0YXRlIGNoYW5nZS4KLQkgKi8KLQlpZiAoIWJlLT5o YXZlX2hvdHBsdWdfc3RhdHVzX3dhdGNoKQotCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgc3Rh dGUpOwotfQotCiAvKiBIYW5kbGUgYmFja2VuZCBzdGF0ZSB0cmFuc2l0aW9uczoKICAqCiAgKiBU aGUgYmFja2VuZCBzdGF0ZSBzdGFydHMgaW4gSW5pdGlhbGlzaW5nIGFuZCB0aGUgZm9sbG93aW5n IHRyYW5zaXRpb25zIGFyZQpAQCAtNTAwLDE3ICs0NDMsMTkgQEAgc3RhdGljIGlubGluZSB2b2lk IGJhY2tlbmRfc3dpdGNoX3N0YXRlKHN0cnVjdCBiYWNrZW5kX2luZm8gKmJlLAogc3RhdGljIHZv aWQgc2V0X2JhY2tlbmRfc3RhdGUoc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUsCiAJCQkgICAgICBl bnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSkKIHsKLQl3aGlsZSAoYmUtPnN0YXRlICE9IHN0YXRlKSB7 Ci0JCXN3aXRjaCAoYmUtPnN0YXRlKSB7CisJc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiA9IGJl LT5kZXY7CisKKwl3aGlsZSAoZGV2LT5zdGF0ZSAhPSBzdGF0ZSkgeworCQlzd2l0Y2ggKGRldi0+ c3RhdGUpIHsKIAkJY2FzZSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZzoKIAkJCXN3aXRjaCAoc3Rh dGUpIHsKIAkJCWNhc2UgWGVuYnVzU3RhdGVJbml0V2FpdDoKIAkJCWNhc2UgWGVuYnVzU3RhdGVD b25uZWN0ZWQ6CiAJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKLQkJCQliYWNrZW5kX3N3aXRj aF9zdGF0ZShiZSwgWGVuYnVzU3RhdGVJbml0V2FpdCk7CisJCQkJeGVuYnVzX3N3aXRjaF9zdGF0 ZShkZXYsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBYZW5idXNT dGF0ZUNsb3NlZDoKLQkJCQliYWNrZW5kX3N3aXRjaF9zdGF0ZShiZSwgWGVuYnVzU3RhdGVDbG9z ZWQpOworCQkJCXhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NlZCk7CiAJ CQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCUJVRygpOwpAQCAtNTIwLDEwICs0NjUsMTAgQEAg c3RhdGljIHZvaWQgc2V0X2JhY2tlbmRfc3RhdGUoc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUsCiAJ CQlzd2l0Y2ggKHN0YXRlKSB7CiAJCQljYXNlIFhlbmJ1c1N0YXRlSW5pdFdhaXQ6CiAJCQljYXNl IFhlbmJ1c1N0YXRlQ29ubmVjdGVkOgotCQkJCWJhY2tlbmRfc3dpdGNoX3N0YXRlKGJlLCBYZW5i dXNTdGF0ZUluaXRXYWl0KTsKKwkJCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3Rh dGVJbml0V2FpdCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKLQkJ CQliYWNrZW5kX3N3aXRjaF9zdGF0ZShiZSwgWGVuYnVzU3RhdGVDbG9zaW5nKTsKKwkJCQl4ZW5i dXNfc3dpdGNoX3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9zaW5nKTsKIAkJCQlicmVhazsKIAkJ CWRlZmF1bHQ6CiAJCQkJQlVHKCk7CkBAIC01MzMsMTEgKzQ3OCwxMSBAQCBzdGF0aWMgdm9pZCBz ZXRfYmFja2VuZF9zdGF0ZShzdHJ1Y3QgYmFja2VuZF9pbmZvICpiZSwKIAkJCXN3aXRjaCAoc3Rh dGUpIHsKIAkJCWNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6CiAJCQkJYmFja2VuZF9jb25uZWN0 KGJlKTsKLQkJCQliYWNrZW5kX3N3aXRjaF9zdGF0ZShiZSwgWGVuYnVzU3RhdGVDb25uZWN0ZWQp OworCQkJCXhlbmJ1c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNvbm5lY3RlZCk7CiAJ CQkJYnJlYWs7CiAJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2luZzoKIAkJCWNhc2UgWGVuYnVzU3Rh dGVDbG9zZWQ6Ci0JCQkJYmFja2VuZF9zd2l0Y2hfc3RhdGUoYmUsIFhlbmJ1c1N0YXRlQ2xvc2lu Zyk7CisJCQkJeGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0YXRlQ2xvc2luZyk7CiAJ CQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCUJVRygpOwpAQCAtNTQ5LDcgKzQ5NCw3IEBAIHN0 YXRpYyB2b2lkIHNldF9iYWNrZW5kX3N0YXRlKHN0cnVjdCBiYWNrZW5kX2luZm8gKmJlLAogCQkJ Y2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CiAJCQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOgogCQkJ CWJhY2tlbmRfZGlzY29ubmVjdChiZSk7Ci0JCQkJYmFja2VuZF9zd2l0Y2hfc3RhdGUoYmUsIFhl bmJ1c1N0YXRlQ2xvc2luZyk7CisJCQkJeGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0 YXRlQ2xvc2luZyk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCUJVRygpOwpAQCAtNTYw LDcgKzUwNSw3IEBAIHN0YXRpYyB2b2lkIHNldF9iYWNrZW5kX3N0YXRlKHN0cnVjdCBiYWNrZW5k X2luZm8gKmJlLAogCQkJY2FzZSBYZW5idXNTdGF0ZUluaXRXYWl0OgogCQkJY2FzZSBYZW5idXNT dGF0ZUNvbm5lY3RlZDoKIAkJCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6Ci0JCQkJYmFja2VuZF9z d2l0Y2hfc3RhdGUoYmUsIFhlbmJ1c1N0YXRlQ2xvc2VkKTsKKwkJCQl4ZW5idXNfc3dpdGNoX3N0 YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9zZWQpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJ CQlCVUcoKTsKQEAgLTU4Miw4ICs1MjcsNiBAQCBzdGF0aWMgdm9pZCBmcm9udGVuZF9jaGFuZ2Vk KHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCiAKIAlwcl9kZWJ1ZygiJXMgLT4gJXNcbiIsIGRl di0+b3RoZXJlbmQsIHhlbmJ1c19zdHJzdGF0ZShmcm9udGVuZF9zdGF0ZSkpOwogCi0JYmUtPmZy b250ZW5kX3N0YXRlID0gZnJvbnRlbmRfc3RhdGU7Ci0KIAlzd2l0Y2ggKGZyb250ZW5kX3N0YXRl KSB7CiAJY2FzZSBYZW5idXNTdGF0ZUluaXRpYWxpc2luZzoKIAkJc2V0X2JhY2tlbmRfc3RhdGUo YmUsIFhlbmJ1c1N0YXRlSW5pdFdhaXQpOwpAQCAtNzk5LDM4ICs3NDIsNiBAQCBzdGF0aWMgdm9p ZCB4ZW5fdW5yZWdpc3Rlcl93YXRjaGVycyhzdHJ1Y3QgeGVudmlmICp2aWYpCiAJeGVuX3VucmVn aXN0ZXJfY3JlZGl0X3dhdGNoKHZpZik7CiB9CiAKLXN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfaG90 cGx1Z19zdGF0dXNfd2F0Y2goc3RydWN0IGJhY2tlbmRfaW5mbyAqYmUpCi17Ci0JaWYgKGJlLT5o YXZlX2hvdHBsdWdfc3RhdHVzX3dhdGNoKSB7Ci0JCXVucmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZi ZS0+aG90cGx1Z19zdGF0dXNfd2F0Y2gpOwotCQlrZnJlZShiZS0+aG90cGx1Z19zdGF0dXNfd2F0 Y2gubm9kZSk7Ci0JfQotCWJlLT5oYXZlX2hvdHBsdWdfc3RhdHVzX3dhdGNoID0gMDsKLX0KLQot c3RhdGljIHZvaWQgaG90cGx1Z19zdGF0dXNfY2hhbmdlZChzdHJ1Y3QgeGVuYnVzX3dhdGNoICp3 YXRjaCwKLQkJCQkgICBjb25zdCBjaGFyICpwYXRoLAotCQkJCSAgIGNvbnN0IGNoYXIgKnRva2Vu KQotewotCXN0cnVjdCBiYWNrZW5kX2luZm8gKmJlID0gY29udGFpbmVyX29mKHdhdGNoLAotCQkJ CQkgICAgICAgc3RydWN0IGJhY2tlbmRfaW5mbywKLQkJCQkJICAgICAgIGhvdHBsdWdfc3RhdHVz X3dhdGNoKTsKLQljaGFyICpzdHI7Ci0JdW5zaWduZWQgaW50IGxlbjsKLQotCXN0ciA9IHhlbmJ1 c19yZWFkKFhCVF9OSUwsIGJlLT5kZXYtPm5vZGVuYW1lLCAiaG90cGx1Zy1zdGF0dXMiLCAmbGVu KTsKLQlpZiAoSVNfRVJSKHN0cikpCi0JCXJldHVybjsKLQlpZiAobGVuID09IHNpemVvZigiY29u bmVjdGVkIiktMSAmJiAhbWVtY21wKHN0ciwgImNvbm5lY3RlZCIsIGxlbikpIHsKLQkJLyogQ29t cGxldGUgYW55IHBlbmRpbmcgc3RhdGUgY2hhbmdlICovCi0JCXhlbmJ1c19zd2l0Y2hfc3RhdGUo YmUtPmRldiwgYmUtPnN0YXRlKTsKLQotCQkvKiBOb3QgaW50ZXJlc3RlZCBpbiB0aGlzIHdhdGNo IGFueW1vcmUuICovCi0JCXVucmVnaXN0ZXJfaG90cGx1Z19zdGF0dXNfd2F0Y2goYmUpOwotCX0K LQlrZnJlZShzdHIpOwotfQotCiBzdGF0aWMgaW50IGNvbm5lY3RfY3RybF9yaW5nKHN0cnVjdCBi YWNrZW5kX2luZm8gKmJlKQogewogCXN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYgPSBiZS0+ZGV2 OwpAQCAtOTc0LDEzICs4ODUsNiBAQCBzdGF0aWMgdm9pZCBjb25uZWN0KHN0cnVjdCBiYWNrZW5k X2luZm8gKmJlKQogCiAJeGVudmlmX2NhcnJpZXJfb24oYmUtPnZpZik7CiAKLQl1bnJlZ2lzdGVy X2hvdHBsdWdfc3RhdHVzX3dhdGNoKGJlKTsKLQllcnIgPSB4ZW5idXNfd2F0Y2hfcGF0aGZtdChk ZXYsICZiZS0+aG90cGx1Z19zdGF0dXNfd2F0Y2gsCi0JCQkJICAgaG90cGx1Z19zdGF0dXNfY2hh bmdlZCwKLQkJCQkgICAiJXMvJXMiLCBkZXYtPm5vZGVuYW1lLCAiaG90cGx1Zy1zdGF0dXMiKTsK LQlpZiAoIWVycikKLQkJYmUtPmhhdmVfaG90cGx1Z19zdGF0dXNfd2F0Y2ggPSAxOwotCiAJbmV0 aWZfdHhfd2FrZV9hbGxfcXVldWVzKGJlLT52aWYtPmRldik7CiAKIAlyZXR1cm47CkBAIC0xMTM3 LDcgKzEwNDEsNiBAQCBzdGF0aWMgc3RydWN0IHhlbmJ1c19kcml2ZXIgbmV0YmFja19kcml2ZXIg PSB7CiAJLmlkcyA9IG5ldGJhY2tfaWRzLAogCS5wcm9iZSA9IG5ldGJhY2tfcHJvYmUsCiAJLnJl bW92ZSA9IG5ldGJhY2tfcmVtb3ZlLAotCS51ZXZlbnQgPSBuZXRiYWNrX3VldmVudCwKIAkub3Ro ZXJlbmRfY2hhbmdlZCA9IGZyb250ZW5kX2NoYW5nZWQsCiB9OwogCi0tIAoyLjIwLjEKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02AC7C43603 for ; Thu, 12 Dec 2019 13:54:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B4C352173E for ; Thu, 12 Dec 2019 13:54:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="VLkmmL2c" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729563AbfLLNyg (ORCPT ); Thu, 12 Dec 2019 08:54:36 -0500 Received: from smtp-fw-33001.amazon.com ([207.171.190.10]:10993 "EHLO smtp-fw-33001.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729429AbfLLNyg (ORCPT ); Thu, 12 Dec 2019 08:54:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1576158874; x=1607694874; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=ezPH1AiTE6r0zrlYMo9nYWVSoQFuwMWPwgfu8FiMjsY=; b=VLkmmL2crhc45w2m9S9Z6nnJFjWJ8LRMUHjqr3fRkl5ZwOQCbk9NysQ3 Rw8Ilq0c30d68D5FeRa6gsmVn+VIn5Nad4F+shPn9FiL69d7YzeDRpCfO MLFFiBlG89Yo0727aUlzVG/acMpVePl8SFdf5t1qmHQ85fkZeqwjH3+7e I=; IronPort-SDR: ZpXwKJBgLKNCqpKSMOsUBcKFEjRDg2isaOM1ouRhYHHHL4Y2mIQ8C5LR4SZKZMz9ozikSYQWDM OB0j0FcYnf4g== X-IronPort-AV: E=Sophos;i="5.69,306,1571702400"; d="scan'208";a="14514350" Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-2b-a7fdc47a.us-west-2.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-33001.sea14.amazon.com with ESMTP; 12 Dec 2019 13:54:14 +0000 Received: from EX13MTAUEA001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2b-a7fdc47a.us-west-2.amazon.com (Postfix) with ESMTPS id 3DE31C5715; Thu, 12 Dec 2019 13:54:13 +0000 (UTC) Received: from EX13D32EUB003.ant.amazon.com (10.43.166.165) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 12 Dec 2019 13:54:12 +0000 Received: from EX13MTAUWB001.ant.amazon.com (10.43.161.207) by EX13D32EUB003.ant.amazon.com (10.43.166.165) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Thu, 12 Dec 2019 13:54:11 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.161.249) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Thu, 12 Dec 2019 13:54:09 +0000 From: Paul Durrant To: , , CC: Paul Durrant , Wei Liu , "David S. Miller" Subject: [PATCH net-next] xen-netback: get rid of old udev related code Date: Thu, 12 Dec 2019 13:54:06 +0000 Message-ID: <20191212135406.26229-1-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the past it used to be the case that the Xen toolstack relied upon udev to execute backend hotplug scripts. However this has not been the case for many releases now and removal of the associated code in xen-netback shortens the source by more than 100 lines, and removes much complexity in the interaction with the xenstore backend state. NOTE: xen-netback is the only xenbus driver to have a functional uevent() method. The only other driver to have a method at all is pvcalls-back, and currently pvcalls_back_uevent() simply returns 0. Hence this patch also facilitates further cleanup. Signed-off-by: Paul Durrant --- Cc: Wei Liu Cc: "David S. Miller" --- drivers/net/xen-netback/common.h | 11 --- drivers/net/xen-netback/xenbus.c | 125 ++++--------------------------- 2 files changed, 14 insertions(+), 122 deletions(-) diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h index 05847eb91a1b..e48da004c1a3 100644 --- a/drivers/net/xen-netback/common.h +++ b/drivers/net/xen-netback/common.h @@ -251,17 +251,6 @@ struct xenvif_hash { struct backend_info { struct xenbus_device *dev; struct xenvif *vif; - - /* This is the state that will be reflected in xenstore when any - * active hotplug script completes. - */ - enum xenbus_state state; - - enum xenbus_state frontend_state; - struct xenbus_watch hotplug_status_watch; - u8 have_hotplug_status_watch:1; - - const char *hotplug_script; }; struct xenvif { diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index f533b7372d59..4e89393d5dd8 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -15,7 +15,6 @@ static int connect_data_rings(struct backend_info *be, static void connect(struct backend_info *be); static int read_xenbus_vif_flags(struct backend_info *be); static int backend_create_xenvif(struct backend_info *be); -static void unregister_hotplug_status_watch(struct backend_info *be); static void xen_unregister_watchers(struct xenvif *vif); static void set_backend_state(struct backend_info *be, enum xenbus_state state); @@ -199,17 +198,11 @@ static int netback_remove(struct xenbus_device *dev) { struct backend_info *be = dev_get_drvdata(&dev->dev); - set_backend_state(be, XenbusStateClosed); - - unregister_hotplug_status_watch(be); if (be->vif) { - kobject_uevent(&dev->dev.kobj, KOBJ_OFFLINE); xen_unregister_watchers(be->vif); - xenbus_rm(XBT_NIL, dev->nodename, "hotplug-status"); xenvif_free(be->vif); be->vif = NULL; } - kfree(be->hotplug_script); kfree(be); dev_set_drvdata(&dev->dev, NULL); return 0; @@ -227,7 +220,6 @@ static int netback_probe(struct xenbus_device *dev, struct xenbus_transaction xbt; int err; int sg; - const char *script; struct backend_info *be = kzalloc(sizeof(struct backend_info), GFP_KERNEL); if (!be) { @@ -239,7 +231,6 @@ static int netback_probe(struct xenbus_device *dev, be->dev = dev; dev_set_drvdata(&dev->dev, be); - be->state = XenbusStateInitialising; err = xenbus_switch_state(dev, XenbusStateInitialising); if (err) goto fail; @@ -347,21 +338,12 @@ static int netback_probe(struct xenbus_device *dev, if (err) pr_debug("Error writing feature-ctrl-ring\n"); - script = xenbus_read(XBT_NIL, dev->nodename, "script", NULL); - if (IS_ERR(script)) { - err = PTR_ERR(script); - xenbus_dev_fatal(dev, err, "reading script"); - goto fail; - } - - be->hotplug_script = script; - - - /* This kicks hotplug scripts, so do it immediately. */ err = backend_create_xenvif(be); if (err) goto fail; + set_backend_state(be, XenbusStateInitWait); + return 0; abort_transaction: @@ -374,29 +356,6 @@ static int netback_probe(struct xenbus_device *dev, } -/* - * Handle the creation of the hotplug script environment. We add the script - * and vif variables to the environment, for the benefit of the vif-* hotplug - * scripts. - */ -static int netback_uevent(struct xenbus_device *xdev, - struct kobj_uevent_env *env) -{ - struct backend_info *be = dev_get_drvdata(&xdev->dev); - - if (!be) - return 0; - - if (add_uevent_var(env, "script=%s", be->hotplug_script)) - return -ENOMEM; - - if (!be->vif) - return 0; - - return add_uevent_var(env, "vif=%s", be->vif->dev->name); -} - - static int backend_create_xenvif(struct backend_info *be) { int err; @@ -422,7 +381,6 @@ static int backend_create_xenvif(struct backend_info *be) be->vif = vif; vif->be = be; - kobject_uevent(&dev->dev.kobj, KOBJ_ONLINE); return 0; } @@ -462,21 +420,6 @@ static void backend_connect(struct backend_info *be) connect(be); } -static inline void backend_switch_state(struct backend_info *be, - enum xenbus_state state) -{ - struct xenbus_device *dev = be->dev; - - pr_debug("%s -> %s\n", dev->nodename, xenbus_strstate(state)); - be->state = state; - - /* If we are waiting for a hotplug script then defer the - * actual xenbus state change. - */ - if (!be->have_hotplug_status_watch) - xenbus_switch_state(dev, state); -} - /* Handle backend state transitions: * * The backend state starts in Initialising and the following transitions are @@ -500,17 +443,19 @@ static inline void backend_switch_state(struct backend_info *be, static void set_backend_state(struct backend_info *be, enum xenbus_state state) { - while (be->state != state) { - switch (be->state) { + struct xenbus_device *dev = be->dev; + + while (dev->state != state) { + switch (dev->state) { case XenbusStateInitialising: switch (state) { case XenbusStateInitWait: case XenbusStateConnected: case XenbusStateClosing: - backend_switch_state(be, XenbusStateInitWait); + xenbus_switch_state(dev, XenbusStateInitWait); break; case XenbusStateClosed: - backend_switch_state(be, XenbusStateClosed); + xenbus_switch_state(dev, XenbusStateClosed); break; default: BUG(); @@ -520,10 +465,10 @@ static void set_backend_state(struct backend_info *be, switch (state) { case XenbusStateInitWait: case XenbusStateConnected: - backend_switch_state(be, XenbusStateInitWait); + xenbus_switch_state(dev, XenbusStateInitWait); break; case XenbusStateClosing: - backend_switch_state(be, XenbusStateClosing); + xenbus_switch_state(dev, XenbusStateClosing); break; default: BUG(); @@ -533,11 +478,11 @@ static void set_backend_state(struct backend_info *be, switch (state) { case XenbusStateConnected: backend_connect(be); - backend_switch_state(be, XenbusStateConnected); + xenbus_switch_state(dev, XenbusStateConnected); break; case XenbusStateClosing: case XenbusStateClosed: - backend_switch_state(be, XenbusStateClosing); + xenbus_switch_state(dev, XenbusStateClosing); break; default: BUG(); @@ -549,7 +494,7 @@ static void set_backend_state(struct backend_info *be, case XenbusStateClosing: case XenbusStateClosed: backend_disconnect(be); - backend_switch_state(be, XenbusStateClosing); + xenbus_switch_state(dev, XenbusStateClosing); break; default: BUG(); @@ -560,7 +505,7 @@ static void set_backend_state(struct backend_info *be, case XenbusStateInitWait: case XenbusStateConnected: case XenbusStateClosed: - backend_switch_state(be, XenbusStateClosed); + xenbus_switch_state(dev, XenbusStateClosed); break; default: BUG(); @@ -582,8 +527,6 @@ static void frontend_changed(struct xenbus_device *dev, pr_debug("%s -> %s\n", dev->otherend, xenbus_strstate(frontend_state)); - be->frontend_state = frontend_state; - switch (frontend_state) { case XenbusStateInitialising: set_backend_state(be, XenbusStateInitWait); @@ -799,38 +742,6 @@ static void xen_unregister_watchers(struct xenvif *vif) xen_unregister_credit_watch(vif); } -static void unregister_hotplug_status_watch(struct backend_info *be) -{ - if (be->have_hotplug_status_watch) { - unregister_xenbus_watch(&be->hotplug_status_watch); - kfree(be->hotplug_status_watch.node); - } - be->have_hotplug_status_watch = 0; -} - -static void hotplug_status_changed(struct xenbus_watch *watch, - const char *path, - const char *token) -{ - struct backend_info *be = container_of(watch, - struct backend_info, - hotplug_status_watch); - char *str; - unsigned int len; - - str = xenbus_read(XBT_NIL, be->dev->nodename, "hotplug-status", &len); - if (IS_ERR(str)) - return; - if (len == sizeof("connected")-1 && !memcmp(str, "connected", len)) { - /* Complete any pending state change */ - xenbus_switch_state(be->dev, be->state); - - /* Not interested in this watch anymore. */ - unregister_hotplug_status_watch(be); - } - kfree(str); -} - static int connect_ctrl_ring(struct backend_info *be) { struct xenbus_device *dev = be->dev; @@ -974,13 +885,6 @@ static void connect(struct backend_info *be) xenvif_carrier_on(be->vif); - unregister_hotplug_status_watch(be); - err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch, - hotplug_status_changed, - "%s/%s", dev->nodename, "hotplug-status"); - if (!err) - be->have_hotplug_status_watch = 1; - netif_tx_wake_all_queues(be->vif->dev); return; @@ -1137,7 +1041,6 @@ static struct xenbus_driver netback_driver = { .ids = netback_ids, .probe = netback_probe, .remove = netback_remove, - .uevent = netback_uevent, .otherend_changed = frontend_changed, }; -- 2.20.1