Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757378Ab3DZVBn (ORCPT ); Fri, 26 Apr 2013 17:01:43 -0400 Received: from mail-ie0-f173.google.com ([209.85.223.173]:47102 "EHLO mail-ie0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752262Ab3DZVBm (ORCPT ); Fri, 26 Apr 2013 17:01:42 -0400 MIME-Version: 1.0 In-Reply-To: References: <1366940841-15370-1-git-send-email-yinghai@kernel.org> Date: Fri, 26 Apr 2013 14:01:41 -0700 X-Google-Sender-Auth: i7NuhUuROg1QWDQCmSJDqwEo5Ds Message-ID: Subject: Re: [PATCH] PCI: Fix racing for pci device removing via sysfs From: Yinghai Lu To: Bjorn Helgaas Cc: Gu Zheng , "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: multipart/mixed; boundary=047d7b10cd2984ae0904db49d742 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6081 Lines: 92 --047d7b10cd2984ae0904db49d742 Content-Type: text/plain; charset=ISO-8859-1 On Fri, Apr 26, 2013 at 1:53 PM, Bjorn Helgaas wrote: > > You can't be serious. This is a disgusting mess. Checking a list > pointer for LIST_POISON1? As far as I'm concerned, this is a waste of > my time. Well, then need to hold the bus ref, and check bus->devices list instead. --047d7b10cd2984ae0904db49d742 Content-Type: application/octet-stream; name="fix_racing_removing_3.patch" Content-Disposition: attachment; filename="fix_racing_removing_3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hfzuig8l0 U3ViamVjdDogW1BBVENIIC12M10gUENJOiBGaXggcmFjaW5nIGZvciBwY2kgZGV2aWNlIHJlbW92 aW5nIHZpYSBzeXNmcwpGcm9tOiBZaW5naGFpIEx1IDx5aW5naGFpQGtlcm5lbC5vcmc+CgpHdSBm b3VuZCBuZXN0ZWQgcmVtb3ZpbmcgdGhyb3VnaAoJZWNobyAtbiAxID4gL3N5cy9idXMvcGNpL2Rl dmljZXMvMDAwMFw6MTBcOjAwLjAvcmVtb3ZlIDsgZWNobyAtbiAxID4KL3N5cy9idXMvcGNpL2Rl dmljZXMvMDAwMFw6MWFcOjAxLjAvcmVtb3ZlCgp3aWxsIGNhdXNlIGtlcm5lbCBjcmFzaCBhcyBi dXMgZ2V0IGZyZWVkLgoKWyAgNDE4Ljk0NjQ2Ml0gQ1BVIDQKWyAgNDE4Ljk2ODM3N10gUGlkOiA1 MTIsIGNvbW06IGt3b3JrZXIvdToyIFRhaW50ZWQ6IEcgICAgICAgIFcgICAgMy44LjAgIzIKRlVK SVRTVS1TViBQUklNRVFVRVNUIDE4MDBFL1NCClsgIDQxOS4wODE3NjNdIFJJUDogMDAxMDpbPGZm ZmZmZmZmODEzNzk3MmU+XSAgWzxmZmZmZmZmZjgxMzc5NzJlPl0KcGNpX2J1c19yZWFkX2NvbmZp Z193b3JkKzB4NWUvMHg5MApbICA0MjAuNDk0MTM3XSBDYWxsIFRyYWNlOgpbICA0MjAuNTIzMzI2 XSAgWzxmZmZmZmZmZjgxMzg1MWVmPl0gPyByZW1vdmVfY2FsbGJhY2srMHgxZi8weDQwClsgIDQy MC41OTE5ODRdICBbPGZmZmZmZmZmODEzODA0NGI+XSBwY2lfcG1lX2FjdGl2ZSsweDRiLzB4MWMw ClsgIDQyMC42NTg1NDVdICBbPGZmZmZmZmZmODEzN2Q4ZTc+XSBwY2lfc3RvcF9idXNfZGV2aWNl KzB4NTcvMHhiMApbICA0MjAuNzI5MjU5XSAgWzxmZmZmZmZmZjgxMzdkYWI2Pl0gcGNpX3N0b3Bf YW5kX3JlbW92ZV9idXNfZGV2aWNlKzB4MTYvMHgzMApbICA0MjAuODExMzkyXSAgWzxmZmZmZmZm ZjgxMzg1MWZiPl0gcmVtb3ZlX2NhbGxiYWNrKzB4MmIvMHg0MApbICA0MjAuODc3OTU1XSAgWzxm ZmZmZmZmZjgxMjU3YTU2Pl0gc3lzZnNfc2NoZWR1bGVfY2FsbGJhY2tfd29yaysweDI2LzB4NzAK Cmh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ0MTEKCldlIGhh dmUgb25lIHBhdGNoIHRoYXQgd2lsbCBsZXQgZGV2aWNlIGhvbGQgYnVzIHJlZiB0byBwcmV2ZW50 IGl0IGZyb20KYmVpbmcgZnJlZWQsIGJ1dCB0aGF0IHdpbGwgc3RpbGwgZ2VuZXJhdGUgd2Fybmlu Zy4KCi0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQpXQVJOSU5HOiBhdCBsaWIv bGlzdF9kZWJ1Zy5jOjUzIF9fbGlzdF9kZWxfZW50cnkrMHg2My8weGQwKCkKSGFyZHdhcmUgbmFt ZTogUFJJTUVRVUVTVCAxODAwRQpsaXN0X2RlbCBjb3JydXB0aW9uLCBmZmZmODgwN2QxYjZjMDAw LT5uZXh0IGlzIExJU1RfUE9JU09OMSAoZGVhZDAwMDAwMDEwMDEwMCkKQ2FsbCBUcmFjZToKIFs8 ZmZmZmZmZmY4MTA1NmQ0Zj5dIHdhcm5fc2xvd3BhdGhfY29tbW9uKzB4N2YvMHhjMAogWzxmZmZm ZmZmZjgxMDU2ZTQ2Pl0gd2Fybl9zbG93cGF0aF9mbXQrMHg0Ni8weDUwCiBbPGZmZmZmZmZmODEy ODBiMTM+XSBfX2xpc3RfZGVsX2VudHJ5KzB4NjMvMHhkMAogWzxmZmZmZmZmZjgxMjgwYjkxPl0g bGlzdF9kZWwrMHgxMS8weDQwCiBbPGZmZmZmZmZmODEyOTgzMzE+XSBwY2lfZGVzdHJveV9kZXYr MHgzMS8weGMwCiBbPGZmZmZmZmZmODEyOTg1YmI+XSBwY2lfcmVtb3ZlX2J1c19kZXZpY2UrMHg1 Yi8weDcwCiBbPGZmZmZmZmZmODEyOTg1ZWU+XSBwY2lfc3RvcF9hbmRfcmVtb3ZlX2J1c19kZXZp Y2UrMHgxZS8weDMwCiBbPGZmZmZmZmZmODEyOWZjODk+XSByZW1vdmVfY2FsbGJhY2srMHgyOS8w eDQwCiBbPGZmZmZmZmZmODExZjNiODQ+XSBzeXNmc19zY2hlZHVsZV9jYWxsYmFja193b3JrKzB4 MjQvMHg3MAoKV2UgY2FuIGp1c3QgY2hlY2sgaWYgdGhlIGRldmljZSBnZXQgcmVtb3ZlZCBmcm9t IHBjaSB0cmVlCmFscmVhZHkgaW4gdGhlIHByb3RlY3Rpb24gdW5kZXIgcGNpX3JlbW92ZV9yZXNj YW5fbXV0ZXguCgotdjI6IGNoZWNrIGlmIHRoZSBkZXYtPmJ1c19saXN0IGlzIHBvaXNvbmVkIGlu c3RlYWQgdG8KICAgICBmaW5kIG91dCBpZiBpdCBpcyByZW1vdmVkIGFscmVhZHkuCiAgICAgQWxz byBhZGQgb25lIGV4dHJhIHJlZiB0byBkZXYgdG8gbWFrZSBzdXJlIGRldiBpcyBub3QKICAgICBn ZXQgZnJlZWQgdG9vIGVhcmx5LgoKLXYzOiBob2xkIGJ1cyByZWYgYW5kIGRldiByZWYgaW5zdGVh ZC4KClJlcG9ydGVkLWJ5OiBHdSBaaGVuZyA8Z3V6LmZuc3RAY24uZnVqaXRzdS5jb20+ClRlc3Rl ZC1ieTogR3UgWmhlbmcgPGd1ei5mbnN0QGNuLmZ1aml0c3UuY29tPgpTaWduZWQtb2ZmLWJ5OiBZ aW5naGFpIEx1IDx5aW5naGFpQGtlcm5lbC5vcmc+CgotLS0KIGRyaXZlcnMvcGNpL3BjaS1zeXNm cy5jIHwgICAyMyArKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpJbmRleDogbGludXgtMi42L2RyaXZlcnMvcGNp L3BjaS1zeXNmcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxpbnV4LTIuNi5vcmlnL2RyaXZlcnMvcGNpL3Bj aS1zeXNmcy5jCisrKyBsaW51eC0yLjYvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMKQEAgLTMyOCwx MCArMzI4LDIxIEBAIGRldl9yZXNjYW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHIKIAog c3RhdGljIHZvaWQgcmVtb3ZlX2NhbGxiYWNrKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1 Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRl diA9IHRvX3BjaV9kZXYoZGV2KSwgKnRtcDsKKwlzdHJ1Y3QgcGNpX2J1cyAqYnVzID0gcGRldi0+ YnVzOworCWJvb2wgZm91bmQgPSBmYWxzZTsKIAogCW11dGV4X2xvY2soJnBjaV9yZW1vdmVfcmVz Y2FuX211dGV4KTsKLQlwY2lfc3RvcF9hbmRfcmVtb3ZlX2J1c19kZXZpY2UocGRldik7CisJbGlz dF9mb3JfZWFjaF9lbnRyeSh0bXAsICZidXMtPmRldmljZXMsIGJ1c19saXN0KQorCQlpZiAodG1w ID09IHBkZXYpIHsKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisKKwlwdXRfZGV2 aWNlKCZwZGV2LT5idXMtPmRldik7CisJcGNpX2Rldl9wdXQocGRldik7CisJaWYgKGZvdW5kKQor CQlwY2lfc3RvcF9hbmRfcmVtb3ZlX2J1c19kZXZpY2UocGRldik7CiAJbXV0ZXhfdW5sb2NrKCZw Y2lfcmVtb3ZlX3Jlc2Nhbl9tdXRleCk7CiB9CiAKQEAgLTM0MSw2ICszNTIsNyBAQCByZW1vdmVf c3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QKIHsKIAlpbnQgZXJyOwogCXVuc2lnbmVk IGxvbmcgdmFsOworCXN0cnVjdCBwY2lfZGV2ICpwZGV2OwogCiAJaWYgKHN0cmljdF9zdHJ0b3Vs KGJ1ZiwgMCwgJnZhbCkgPCAwKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM1MSw5ICszNjMsMTQg QEAgcmVtb3ZlX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0CiAJLyogQW4gYXR0cmli dXRlIGNhbm5vdCBiZSB1bnJlZ2lzdGVyZWQgYnkgb25lIG9mIGl0cyBvd24gbWV0aG9kcywKIAkg KiBzbyB3ZSBoYXZlIHRvIHVzZSB0aGlzIHJvdW5kYWJvdXQgYXBwcm9hY2guCiAJICovCisJcGRl diA9IHBjaV9kZXZfZ2V0KHRvX3BjaV9kZXYoZGV2KSk7CisJZ2V0X2RldmljZSgmcGRldi0+YnVz LT5kZXYpOwogCWVyciA9IGRldmljZV9zY2hlZHVsZV9jYWxsYmFjayhkZXYsIHJlbW92ZV9jYWxs YmFjayk7Ci0JaWYgKGVycikKKwlpZiAoZXJyKSB7CisJCXB1dF9kZXZpY2UoJnBkZXYtPmJ1cy0+ ZGV2KTsKKwkJcGNpX2Rldl9wdXQocGRldik7CiAJCXJldHVybiBlcnI7CisJfQogCiAJcmV0dXJu IGNvdW50OwogfQo= --047d7b10cd2984ae0904db49d742-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/