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.8 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,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable 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 07D5DC00454 for ; Wed, 11 Dec 2019 15:30:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D05D12465B for ; Wed, 11 Dec 2019 15:30:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="qyPDW5BJ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387971AbfLKPaM (ORCPT ); Wed, 11 Dec 2019 10:30:12 -0500 Received: from smtp-fw-4101.amazon.com ([72.21.198.25]:61065 "EHLO smtp-fw-4101.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387966AbfLKPaK (ORCPT ); Wed, 11 Dec 2019 10:30:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1576078210; x=1607614210; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=m7nbgl2u0koiXf/XsA21xWuJDhFDTqL8hhIcGJQO/ns=; b=qyPDW5BJVD6pQ66zeAtBZ7VLqb+rQsjDhjQ/wzo3Ic7f/rjHgkAJCDu9 BeOmFVy08PDKw2okSjbFi8UTxeT1QDK+10AmqfDntCaYMaFOJ0n/Zo3TX X+vwfLyHDsGoIhWzrZ+dkTudSbeQ0RVLTLCEdXkjqhvx5ZsSuJxJRGUo3 0=; IronPort-SDR: 4GuYu5bux2FjlFDxqmxuq57ilbkO5edyeI/1nMkdV9vzHCHfele8wzk9nIAxN04sSYwiqygnzs kyHNvVe+sbcw== X-IronPort-AV: E=Sophos;i="5.69,301,1571702400"; d="scan'208";a="8046840" Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-2a-6e2fc477.us-west-2.amazon.com) ([10.124.125.6]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP; 11 Dec 2019 15:30:09 +0000 Received: from EX13MTAUEA001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2a-6e2fc477.us-west-2.amazon.com (Postfix) with ESMTPS id 32C03A2C58; Wed, 11 Dec 2019 15:30:08 +0000 (UTC) Received: from EX13D32EUB002.ant.amazon.com (10.43.166.114) by EX13MTAUEA001.ant.amazon.com (10.43.61.243) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 11 Dec 2019 15:30:07 +0000 Received: from EX13MTAUWC001.ant.amazon.com (10.43.162.135) by EX13D32EUB002.ant.amazon.com (10.43.166.114) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 11 Dec 2019 15:30:06 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.162.232) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Wed, 11 Dec 2019 15:30:04 +0000 From: Paul Durrant To: , , CC: Paul Durrant , Boris Ostrovsky , Juergen Gross , "Stefano Stabellini" Subject: [PATCH v3 2/4] xenbus: limit when state is forced to closed Date: Wed, 11 Dec 2019 15:29:54 +0000 Message-ID: <20191211152956.5168-3-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191211152956.5168-1-pdurrant@amazon.com> References: <20191211152956.5168-1-pdurrant@amazon.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org If a driver probe() fails then leave the xenstore state alone. There is no reason to modify it as the failure may be due to transient resource allocation issues and hence a subsequent probe() may succeed. If the driver supports re-binding then only force state to closed during remove() only in the case when the toolstack may need to clean up. This can be detected by checking whether the state in xenstore has been set to closing prior to device removal. NOTE: Re-bind support is indicated by new boolean in struct xenbus_driver, which defaults to false. Subsequent patches will add support to some backend drivers. Signed-off-by: Paul Durrant --- Cc: Boris Ostrovsky Cc: Juergen Gross Cc: Stefano Stabellini v2: - Introduce the 'allow_rebind' flag - Expand the commit comment --- drivers/xen/xenbus/xenbus_probe.c | 12 ++++++++++-- include/xen/xenbus.h | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c index 5aa29396c9e3..378486b79f96 100644 --- a/drivers/xen/xenbus/xenbus_probe.c +++ b/drivers/xen/xenbus/xenbus_probe.c @@ -255,7 +255,6 @@ int xenbus_dev_probe(struct device *_dev) module_put(drv->driver.owner); fail: xenbus_dev_error(dev, err, "xenbus_dev_probe on %s", dev->nodename); - xenbus_switch_state(dev, XenbusStateClosed); return err; } EXPORT_SYMBOL_GPL(xenbus_dev_probe); @@ -276,7 +275,16 @@ int xenbus_dev_remove(struct device *_dev) free_otherend_details(dev); - xenbus_switch_state(dev, XenbusStateClosed); + /* + * If the toolstack has forced the device state to closing then set + * the state to closed now to allow it to be cleaned up. + * Similarly, if the driver does not support re-bind, set the + * closed. + */ + if (!drv->allow_rebind || + xenbus_read_driver_state(dev->nodename) == XenbusStateClosing) + xenbus_switch_state(dev, XenbusStateClosed); + return 0; } EXPORT_SYMBOL_GPL(xenbus_dev_remove); diff --git a/include/xen/xenbus.h b/include/xen/xenbus.h index 869c816d5f8c..24228a102141 100644 --- a/include/xen/xenbus.h +++ b/include/xen/xenbus.h @@ -93,6 +93,7 @@ struct xenbus_device_id struct xenbus_driver { const char *name; /* defaults to ids[0].devicetype */ const struct xenbus_device_id *ids; + bool allow_rebind; /* avoid setting xenstore closed during remove */ int (*probe)(struct xenbus_device *dev, const struct xenbus_device_id *id); void (*otherend_changed)(struct xenbus_device *dev, -- 2.20.1 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,URIBL_BLOCKED,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 BFED0C2D0C7 for ; Wed, 11 Dec 2019 15:30:25 +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 95A58208C3 for ; Wed, 11 Dec 2019 15:30:25 +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="qyPDW5BJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 95A58208C3 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 1if3wN-00028V-Ql; Wed, 11 Dec 2019 15:30:15 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1if3wN-00027p-1i for xen-devel@lists.xenproject.org; Wed, 11 Dec 2019 15:30:15 +0000 X-Inumbo-ID: 1d607f67-1c2b-11ea-8b7d-12813bfff9fa Received: from smtp-fw-4101.amazon.com (unknown [72.21.198.25]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1d607f67-1c2b-11ea-8b7d-12813bfff9fa; Wed, 11 Dec 2019 15:30:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1576078210; x=1607614210; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=m7nbgl2u0koiXf/XsA21xWuJDhFDTqL8hhIcGJQO/ns=; b=qyPDW5BJVD6pQ66zeAtBZ7VLqb+rQsjDhjQ/wzo3Ic7f/rjHgkAJCDu9 BeOmFVy08PDKw2okSjbFi8UTxeT1QDK+10AmqfDntCaYMaFOJ0n/Zo3TX X+vwfLyHDsGoIhWzrZ+dkTudSbeQ0RVLTLCEdXkjqhvx5ZsSuJxJRGUo3 0=; IronPort-SDR: 4GuYu5bux2FjlFDxqmxuq57ilbkO5edyeI/1nMkdV9vzHCHfele8wzk9nIAxN04sSYwiqygnzs kyHNvVe+sbcw== X-IronPort-AV: E=Sophos;i="5.69,301,1571702400"; d="scan'208";a="8046840" Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-2a-6e2fc477.us-west-2.amazon.com) ([10.124.125.6]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP; 11 Dec 2019 15:30:09 +0000 Received: from EX13MTAUEA001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2a-6e2fc477.us-west-2.amazon.com (Postfix) with ESMTPS id 32C03A2C58; Wed, 11 Dec 2019 15:30:08 +0000 (UTC) Received: from EX13D32EUB002.ant.amazon.com (10.43.166.114) by EX13MTAUEA001.ant.amazon.com (10.43.61.243) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 11 Dec 2019 15:30:07 +0000 Received: from EX13MTAUWC001.ant.amazon.com (10.43.162.135) by EX13D32EUB002.ant.amazon.com (10.43.166.114) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 11 Dec 2019 15:30:06 +0000 Received: from u2f063a87eabd5f.cbg10.amazon.com (10.125.106.135) by mail-relay.amazon.com (10.43.162.232) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Wed, 11 Dec 2019 15:30:04 +0000 From: Paul Durrant To: , , Date: Wed, 11 Dec 2019 15:29:54 +0000 Message-ID: <20191211152956.5168-3-pdurrant@amazon.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191211152956.5168-1-pdurrant@amazon.com> References: <20191211152956.5168-1-pdurrant@amazon.com> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v3 2/4] xenbus: limit when state is forced to closed 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: Juergen Gross , Paul Durrant , Stefano Stabellini , Boris Ostrovsky Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SWYgYSBkcml2ZXIgcHJvYmUoKSBmYWlscyB0aGVuIGxlYXZlIHRoZSB4ZW5zdG9yZSBzdGF0ZSBh bG9uZS4gVGhlcmUgaXMgbm8KcmVhc29uIHRvIG1vZGlmeSBpdCBhcyB0aGUgZmFpbHVyZSBtYXkg YmUgZHVlIHRvIHRyYW5zaWVudCByZXNvdXJjZQphbGxvY2F0aW9uIGlzc3VlcyBhbmQgaGVuY2Ug YSBzdWJzZXF1ZW50IHByb2JlKCkgbWF5IHN1Y2NlZWQuCgpJZiB0aGUgZHJpdmVyIHN1cHBvcnRz IHJlLWJpbmRpbmcgdGhlbiBvbmx5IGZvcmNlIHN0YXRlIHRvIGNsb3NlZCBkdXJpbmcKcmVtb3Zl KCkgb25seSBpbiB0aGUgY2FzZSB3aGVuIHRoZSB0b29sc3RhY2sgbWF5IG5lZWQgdG8gY2xlYW4g dXAuIFRoaXMgY2FuCmJlIGRldGVjdGVkIGJ5IGNoZWNraW5nIHdoZXRoZXIgdGhlIHN0YXRlIGlu IHhlbnN0b3JlIGhhcyBiZWVuIHNldCB0bwpjbG9zaW5nIHByaW9yIHRvIGRldmljZSByZW1vdmFs LgoKTk9URTogUmUtYmluZCBzdXBwb3J0IGlzIGluZGljYXRlZCBieSBuZXcgYm9vbGVhbiBpbiBz dHJ1Y3QgeGVuYnVzX2RyaXZlciwKICAgICAgd2hpY2ggZGVmYXVsdHMgdG8gZmFsc2UuIFN1YnNl cXVlbnQgcGF0Y2hlcyB3aWxsIGFkZCBzdXBwb3J0IHRvCiAgICAgIHNvbWUgYmFja2VuZCBkcml2 ZXJzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwZHVycmFudEBhbWF6b24uY29tPgot LS0KQ2M6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkNjOiBK dWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNz dGFiZWxsaW5pQGtlcm5lbC5vcmc+Cgp2MjoKIC0gSW50cm9kdWNlIHRoZSAnYWxsb3dfcmViaW5k JyBmbGFnCiAtIEV4cGFuZCB0aGUgY29tbWl0IGNvbW1lbnQKLS0tCiBkcml2ZXJzL3hlbi94ZW5i dXMveGVuYnVzX3Byb2JlLmMgfCAxMiArKysrKysrKysrLS0KIGluY2x1ZGUveGVuL3hlbmJ1cy5o ICAgICAgICAgICAgICB8ICAxICsKIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3By b2JlLmMgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3Byb2JlLmMKaW5kZXggNWFhMjkzOTZj OWUzLi4zNzg0ODZiNzlmOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNf cHJvYmUuYworKysgYi9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3Byb2JlLmMKQEAgLTI1NSw3 ICsyNTUsNiBAQCBpbnQgeGVuYnVzX2Rldl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpfZGV2KQogCW1v ZHVsZV9wdXQoZHJ2LT5kcml2ZXIub3duZXIpOwogZmFpbDoKIAl4ZW5idXNfZGV2X2Vycm9yKGRl diwgZXJyLCAieGVuYnVzX2Rldl9wcm9iZSBvbiAlcyIsIGRldi0+bm9kZW5hbWUpOwotCXhlbmJ1 c19zd2l0Y2hfc3RhdGUoZGV2LCBYZW5idXNTdGF0ZUNsb3NlZCk7CiAJcmV0dXJuIGVycjsKIH0K IEVYUE9SVF9TWU1CT0xfR1BMKHhlbmJ1c19kZXZfcHJvYmUpOwpAQCAtMjc2LDcgKzI3NSwxNiBA QCBpbnQgeGVuYnVzX2Rldl9yZW1vdmUoc3RydWN0IGRldmljZSAqX2RldikKIAogCWZyZWVfb3Ro ZXJlbmRfZGV0YWlscyhkZXYpOwogCi0JeGVuYnVzX3N3aXRjaF9zdGF0ZShkZXYsIFhlbmJ1c1N0 YXRlQ2xvc2VkKTsKKwkvKgorCSAqIElmIHRoZSB0b29sc3RhY2sgaGFzIGZvcmNlZCB0aGUgZGV2 aWNlIHN0YXRlIHRvIGNsb3NpbmcgdGhlbiBzZXQKKwkgKiB0aGUgc3RhdGUgdG8gY2xvc2VkIG5v dyB0byBhbGxvdyBpdCB0byBiZSBjbGVhbmVkIHVwLgorCSAqIFNpbWlsYXJseSwgaWYgdGhlIGRy aXZlciBkb2VzIG5vdCBzdXBwb3J0IHJlLWJpbmQsIHNldCB0aGUKKwkgKiBjbG9zZWQuCisJICov CisJaWYgKCFkcnYtPmFsbG93X3JlYmluZCB8fAorCSAgICB4ZW5idXNfcmVhZF9kcml2ZXJfc3Rh dGUoZGV2LT5ub2RlbmFtZSkgPT0gWGVuYnVzU3RhdGVDbG9zaW5nKQorCQl4ZW5idXNfc3dpdGNo X3N0YXRlKGRldiwgWGVuYnVzU3RhdGVDbG9zZWQpOworCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRf U1lNQk9MX0dQTCh4ZW5idXNfZGV2X3JlbW92ZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi94 ZW5idXMuaCBiL2luY2x1ZGUveGVuL3hlbmJ1cy5oCmluZGV4IDg2OWM4MTZkNWY4Yy4uMjQyMjhh MTAyMTQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi94ZW5idXMuaAorKysgYi9pbmNsdWRlL3hl bi94ZW5idXMuaApAQCAtOTMsNiArOTMsNyBAQCBzdHJ1Y3QgeGVuYnVzX2RldmljZV9pZAogc3Ry dWN0IHhlbmJ1c19kcml2ZXIgewogCWNvbnN0IGNoYXIgKm5hbWU7ICAgICAgIC8qIGRlZmF1bHRz IHRvIGlkc1swXS5kZXZpY2V0eXBlICovCiAJY29uc3Qgc3RydWN0IHhlbmJ1c19kZXZpY2VfaWQg KmlkczsKKwlib29sIGFsbG93X3JlYmluZDsgLyogYXZvaWQgc2V0dGluZyB4ZW5zdG9yZSBjbG9z ZWQgZHVyaW5nIHJlbW92ZSAqLwogCWludCAoKnByb2JlKShzdHJ1Y3QgeGVuYnVzX2RldmljZSAq ZGV2LAogCQkgICAgIGNvbnN0IHN0cnVjdCB4ZW5idXNfZGV2aWNlX2lkICppZCk7CiAJdm9pZCAo Km90aGVyZW5kX2NoYW5nZWQpKHN0cnVjdCB4ZW5idXNfZGV2aWNlICpkZXYsCi0tIAoyLjIwLjEK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs