From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753167AbaH2SOv (ORCPT ); Fri, 29 Aug 2014 14:14:51 -0400 Received: from mail-la0-f43.google.com ([209.85.215.43]:57392 "EHLO mail-la0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752528AbaH2SOu (ORCPT ); Fri, 29 Aug 2014 14:14:50 -0400 MIME-Version: 1.0 In-Reply-To: References: Date: Fri, 29 Aug 2014 11:14:48 -0700 Message-ID: Subject: Re: RTNL: assertion failed at net/ipv6/addrconf.c (1699) From: Cong Wang To: Tommi Rantala Cc: "David S. Miller" , Alexey Kuznetsov , James Morris , Hideaki YOSHIFUJI , Patrick McHardy , Hannes Frederic Sowa , netdev , LKML , trinity@vger.kernel.org, Dave Jones Content-Type: multipart/mixed; boundary=001a1134604aedfa110501c8a0d1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --001a1134604aedfa110501c8a0d1 Content-Type: text/plain; charset=UTF-8 On Fri, Aug 29, 2014 at 8:26 AM, Tommi Rantala wrote: > [ 77.297196] RTNL: assertion failed at net/ipv6/addrconf.c (1699) > [ 77.298080] CPU: 0 PID: 4842 Comm: trinity-main Not tainted 3.17.0-rc2+ #30 > [ 77.299039] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 > [ 77.299789] ffff88003d76a618 ffff880026133c50 ffffffff8238ba79 > ffff880037c84520 > [ 77.300829] ffff880026133c90 ffffffff820bd52b 0000000000000000 > ffffffff82d86c40 > [ 77.301869] 0000000000000000 00000000f76fd1e1 ffff8800382d8000 > ffff8800382d8220 > [ 77.302906] Call Trace: > [ 77.303246] [] dump_stack+0x4d/0x66 > [ 77.303928] [] addrconf_join_solict+0x4b/0xb0 > [ 77.304731] [] ipv6_dev_ac_inc+0x2bb/0x330 > [ 77.305498] [] ? ac6_seq_start+0x260/0x260 > [ 77.306257] [] ipv6_sock_ac_join+0x26e/0x360 > [ 77.307046] [] ? ipv6_sock_ac_join+0x99/0x360 > [ 77.307798] [] do_ipv6_setsockopt.isra.5+0xa70/0xf20 I think we should just use rtnl_lock() instead of rcu_read_lock() there, it is not a hot path worth optimization. Please try the attached patch. --001a1134604aedfa110501c8a0d1 Content-Type: text/plain; charset=US-ASCII; name="ipv6-anycast.diff" Content-Disposition: attachment; filename="ipv6-anycast.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hzfuaqyz0 Y29tbWl0IDMxZDgzZGIwYjQxN2Y3MDVjYmIzMWIyMTU5NjAzYjhiNTNiODFhYjYKQXV0aG9yOiBD b25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogICBGcmkgQXVnIDI5IDEx OjAyOjE1IDIwMTQgLTA3MDAKCiAgICBpcHY2OiBmaXggcnRubCBsb2NrIGFzc2VydGlvbiBpbiBp cHY2X3NvY2tfYWNfam9pbigpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5 b3Uud2FuZ2NvbmdAZ21haWwuY29tPgoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0ZGV2 aWNlLmggYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCmluZGV4IDQyOTgwMTMuLjFhZTBlNzQg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9saW51 eC9uZXRkZXZpY2UuaApAQCAtMjA3Nyw4ICsyMDc3LDggQEAgdm9pZCBfX2Rldl9yZW1vdmVfcGFj ayhzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0KTsKIHZvaWQgZGV2X2FkZF9vZmZsb2FkKHN0cnVjdCBw YWNrZXRfb2ZmbG9hZCAqcG8pOwogdm9pZCBkZXZfcmVtb3ZlX29mZmxvYWQoc3RydWN0IHBhY2tl dF9vZmZsb2FkICpwbyk7CiAKLXN0cnVjdCBuZXRfZGV2aWNlICpkZXZfZ2V0X2J5X2ZsYWdzX3Jj dShzdHJ1Y3QgbmV0ICpuZXQsIHVuc2lnbmVkIHNob3J0IGZsYWdzLAotCQkJCQl1bnNpZ25lZCBz aG9ydCBtYXNrKTsKK3N0cnVjdCBuZXRfZGV2aWNlICpkZXZfZ2V0X2J5X2ZsYWdzKHN0cnVjdCBu ZXQgKm5ldCwgdW5zaWduZWQgc2hvcnQgZmxhZ3MsCisJCQkJICAgIHVuc2lnbmVkIHNob3J0IG1h c2spOwogc3RydWN0IG5ldF9kZXZpY2UgKmRldl9nZXRfYnlfbmFtZShzdHJ1Y3QgbmV0ICpuZXQs IGNvbnN0IGNoYXIgKm5hbWUpOwogc3RydWN0IG5ldF9kZXZpY2UgKmRldl9nZXRfYnlfbmFtZV9y Y3Uoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lKTsKIHN0cnVjdCBuZXRfZGV2aWNl ICpfX2Rldl9nZXRfYnlfbmFtZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKm5hbWUpOwpk aWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCAyNmQyOTZj Li43M2NkYjAzIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYu YwpAQCAtODk3LDIzICs4OTcsMjQgQEAgc3RydWN0IG5ldF9kZXZpY2UgKmRldl9nZXRmaXJzdGJ5 aHd0eXBlKHN0cnVjdCBuZXQgKm5ldCwgdW5zaWduZWQgc2hvcnQgdHlwZSkKIEVYUE9SVF9TWU1C T0woZGV2X2dldGZpcnN0Ynlod3R5cGUpOwogCiAvKioKLSAqCWRldl9nZXRfYnlfZmxhZ3NfcmN1 IC0gZmluZCBhbnkgZGV2aWNlIHdpdGggZ2l2ZW4gZmxhZ3MKKyAqCWRldl9nZXRfYnlfZmxhZ3Mg LSBmaW5kIGFueSBkZXZpY2Ugd2l0aCBnaXZlbiBmbGFncwogICoJQG5ldDogdGhlIGFwcGxpY2Fi bGUgbmV0IG5hbWVzcGFjZQogICoJQGlmX2ZsYWdzOiBJRkZfKiB2YWx1ZXMKICAqCUBtYXNrOiBi aXRtYXNrIG9mIGJpdHMgaW4gaWZfZmxhZ3MgdG8gY2hlY2sKICAqCiAgKglTZWFyY2ggZm9yIGFu eSBpbnRlcmZhY2Ugd2l0aCB0aGUgZ2l2ZW4gZmxhZ3MuIFJldHVybnMgTlVMTCBpZiBhIGRldmlj ZQogICoJaXMgbm90IGZvdW5kIG9yIGEgcG9pbnRlciB0byB0aGUgZGV2aWNlLiBNdXN0IGJlIGNh bGxlZCBpbnNpZGUKLSAqCXJjdV9yZWFkX2xvY2soKSwgYW5kIHJlc3VsdCByZWZjb3VudCBpcyB1 bmNoYW5nZWQuCisgKglydG5sX2xvY2soKSwgYW5kIHJlc3VsdCByZWZjb3VudCBpcyB1bmNoYW5n ZWQuCiAgKi8KIAotc3RydWN0IG5ldF9kZXZpY2UgKmRldl9nZXRfYnlfZmxhZ3NfcmN1KHN0cnVj dCBuZXQgKm5ldCwgdW5zaWduZWQgc2hvcnQgaWZfZmxhZ3MsCitzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2X2dldF9ieV9mbGFncyhzdHJ1Y3QgbmV0ICpuZXQsIHVuc2lnbmVkIHNob3J0IGlmX2ZsYWdz LAogCQkJCSAgICB1bnNpZ25lZCBzaG9ydCBtYXNrKQogewogCXN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsICpyZXQ7CiAKKwlBU1NFUlRfUlROTCgpOwogCXJldCA9IE5VTEw7Ci0JZm9yX2VhY2hfbmV0 ZGV2X3JjdShuZXQsIGRldikgeworCWZvcl9lYWNoX25ldGRldihuZXQsIGRldikgewogCQlpZiAo KChkZXYtPmZsYWdzIF4gaWZfZmxhZ3MpICYgbWFzaykgPT0gMCkgewogCQkJcmV0ID0gZGV2Owog CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hbnljYXN0LmMgYi9uZXQvaXB2Ni9hbnlj YXN0LmMKaW5kZXggMjEwMTgzMi4uYzUyM2MxYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYW55Y2Fz dC5jCisrKyBiL25ldC9pcHY2L2FueWNhc3QuYwpAQCAtNzcsNyArNzcsNyBAQCBpbnQgaXB2Nl9z b2NrX2FjX2pvaW4oc3RydWN0IHNvY2sgKnNrLCBpbnQgaWZpbmRleCwgY29uc3Qgc3RydWN0IGlu Nl9hZGRyICphZGRyKQogCXBhYy0+YWNsX25leHQgPSBOVUxMOwogCXBhYy0+YWNsX2FkZHIgPSAq YWRkcjsKIAotCXJjdV9yZWFkX2xvY2soKTsKKwlydG5sX2xvY2soKTsKIAlpZiAoaWZpbmRleCA9 PSAwKSB7CiAJCXN0cnVjdCBydDZfaW5mbyAqcnQ7CiAKQEAgLTkwLDExICs5MCwxMSBAQCBpbnQg aXB2Nl9zb2NrX2FjX2pvaW4oc3RydWN0IHNvY2sgKnNrLCBpbnQgaWZpbmRleCwgY29uc3Qgc3Ry dWN0IGluNl9hZGRyICphZGRyKQogCQkJZ290byBlcnJvcjsKIAkJfSBlbHNlIHsKIAkJCS8qIHJv dXRlciwgbm8gbWF0Y2hpbmcgaW50ZXJmYWNlOiBqdXN0IHBpY2sgb25lICovCi0JCQlkZXYgPSBk ZXZfZ2V0X2J5X2ZsYWdzX3JjdShuZXQsIElGRl9VUCwKKwkJCWRldiA9IGRldl9nZXRfYnlfZmxh Z3MobmV0LCBJRkZfVVAsCiAJCQkJCQkgICBJRkZfVVAgfCBJRkZfTE9PUEJBQ0spOwogCQl9CiAJ fSBlbHNlCi0JCWRldiA9IGRldl9nZXRfYnlfaW5kZXhfcmN1KG5ldCwgaWZpbmRleCk7CisJCWRl diA9IF9fZGV2X2dldF9ieV9pbmRleChuZXQsIGlmaW5kZXgpOwogCiAJaWYgKGRldiA9PSBOVUxM KSB7CiAJCWVyciA9IC1FTk9ERVY7CkBAIC0xMzYsNyArMTM2LDcgQEAgaW50IGlwdjZfc29ja19h Y19qb2luKHN0cnVjdCBzb2NrICpzaywgaW50IGlmaW5kZXgsIGNvbnN0IHN0cnVjdCBpbjZfYWRk ciAqYWRkcikKIAl9CiAKIGVycm9yOgotCXJjdV9yZWFkX3VubG9jaygpOworCXJ0bmxfdW5sb2Nr KCk7CiAJaWYgKHBhYykKIAkJc29ja19rZnJlZV9zKHNrLCBwYWMsIHNpemVvZigqcGFjKSk7CiAJ cmV0dXJuIGVycjsKQEAgLTE3MSwxMyArMTcxLDE1IEBAIGludCBpcHY2X3NvY2tfYWNfZHJvcChz dHJ1Y3Qgc29jayAqc2ssIGludCBpZmluZGV4LCBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmFkZHIp CiAKIAlzcGluX3VubG9ja19iaCgmaXB2Nl9za19hY19sb2NrKTsKIAotCXJjdV9yZWFkX2xvY2so KTsKLQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4X3JjdShuZXQsIHBhYy0+YWNsX2lmaW5kZXgpOwor CXJ0bmxfbG9jaygpOworCWRldiA9IF9fZGV2X2dldF9ieV9pbmRleChuZXQsIHBhYy0+YWNsX2lm aW5kZXgpOwogCWlmIChkZXYpCiAJCWlwdjZfZGV2X2FjX2RlYyhkZXYsICZwYWMtPmFjbF9hZGRy KTsKLQlyY3VfcmVhZF91bmxvY2soKTsKKwlydG5sX3VubG9jaygpOwogCiAJc29ja19rZnJlZV9z KHNrLCBwYWMsIHNpemVvZigqcGFjKSk7CisJaWYgKCFkZXYpCisJCXJldHVybiAtRU5PREVWOwog CXJldHVybiAwOwogfQogCg== --001a1134604aedfa110501c8a0d1--