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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 96684FA1FFD for ; Wed, 22 Apr 2026 21:22:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:References :In-Reply-To:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cDfz03lQ2n+UeDz0WI2u8/ZnAhYzsnHtXjvpQ6cJbVY=; b=VbO+mBoDFz57g7 xaMtrOCXKewEYd6tdbRfkwJoSF1XGnRwC9kJRkuNy+tF6LUSNgZS3sybnvxxBwYyoXln83xF0Sj4T a+NhrOsi0/EAR+lURckn9GW8o0yZtjrWWhgA5EIsD4a1y6mv5rMsiQ9Qgo014/E3/WrrzHFaGi+DC we0sCOBMwGUAe6P2sfPQiZOo7GgX4togPL4cD2sYIGVccGQ4pw4ygp7Qi5xLDKQPP3xXj3wrhGXye hKDBE1AwgmNgo+QA9Mg71wlAoIz1+eQbNRgDwNr6G38jT5ZilGMLHoBTy7JyEBKpDzPrD4EYCvsW/ nhSCBcMmkge/y5cRSnvQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1wFf1X-0000000AlIy-1WO0; Wed, 22 Apr 2026 21:22:19 +0000 Received: from galois.linutronix.de ([193.142.43.55]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1wFf1U-0000000AlI9-0mUR for linux-riscv@lists.infradead.org; Wed, 22 Apr 2026 21:22:17 +0000 From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1776892932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zyMPKfqTnkr/wpefzF9zf/jvUqC/u5Z37wY0HaS628U=; b=bPGEy2iLgIS/3+ASIsxWtQFQqbNxezXXCblZwkitvFakngQS7SJU9uItNcq2VHDq3EsK5y iZSByNFulqqihhiwQ6qyHad4Ohm42wJbTrV3xiJfUtGj3zDLiCv51iaB107Q4HxTL3oAUR ovqT+Bmi8FQyQjuBhXPGaOLcLmOGrTdIi2Pn8nWHmS72ywT5+JI97K30z3+tE/dXhuyLoM ibkRcw7u75LOCrOWUtphW3UiyqtYNaD1j3k+sSj5OzyNcSKt7EpvgWN1K9NQIiPgpQQPxG ajqPmlCNe6AKmL3Z6nr733RPUSUtp6ViIWXWr00HgkZGUIO2MWDOWGzqdApmRg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1776892932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zyMPKfqTnkr/wpefzF9zf/jvUqC/u5Z37wY0HaS628U=; b=+0stXMUHjrp3yLi9hY9WbQXlMutm0VstfQon0n3u4Y9EMzJTxYGrP4Kfcu8BFxR96HzGM2 qHUocyNWLv2eS3Bg== To: Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= Subject: Re: [Patch] PCI/MSI: Handle lack of irqdomain gracefully In-Reply-To: References: <20241213115704.353665-1-alexghiti@rivosinc.com> <87v7vn917f.ffs@tglx> <87ed2a8ow5.ffs@tglx> Date: Wed, 22 Apr 2026 23:22:11 +0200 Message-ID: <87qzo61yik.ffs@tglx> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260422_142216_368647_8C146AC7 X-CRM114-Status: GOOD ( 26.63 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Aaron D. Johnson" , Alexandre Ghiti , Anup Patel , linux-kernel@vger.kernel.org, Palmer Dabbelt , 1127635@bugs.debian.org, Paul Walmsley , Bjorn Helgaas , linux-riscv@lists.infradead.org, regressions@lists.linux.dev Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gV2VkLCBNYXIgMTEgMjAyNiBhdCAxMjoyMiwgVXdlIEtsZWluZS1Lw7ZuaWcgd3JvdGU6Cgo+ IHRoaXMgcGF0Y2ggYmVjYW1lIGE2MGI5OTA3OThlYjE3NDMzZDAyODM3ODgyODA0MjJiMWJkOTRi MTggaW4gdjYuMTMtcmM1Cj4gYW5kIHdhcyBiYWNrcG9ydGVkIHRvIDYuMTIueSBhbmQgNi42Lnkg KGFlZDE1NzMwMWM2NSBhbmQgYjFmNzQ3NmUwN2I5Cj4gcmVzcGVjdGl2ZWx5KS4KPgo+IEEgRGVi aWFuIHVzZXIgKEFhcm9uLCBvbiBDYzopIG9uIHBvd2VycGMgaGFzIGJvb3QgcHJvYmxlbXMgYW5k IGJpc2VjdGVkCj4gdGhlbSB0byB0aGlzIGNvbW1pdC4gVGhlIHJlbGV2YW50IGJvb3QgbG9nIG9m IHRoZSBmYWlsdXJlIGlzOgoKPiBbICAgIDIuNjQzODc5XSBCVUc6IEtlcm5lbCBOVUxMIHBvaW50 ZXIgZGVyZWZlcmVuY2Ugb24gcmVhZCBhdCAweDAwMDAwMDAwCj4gWyAgICAyLjY0Mzg5MV0gRmF1 bHRpbmcgaW5zdHJ1Y3Rpb24gYWRkcmVzczogMHhjMDAwMDAwMDAwYTM5NTE0Cj4gWyAgICAyLjY0 MzkwMl0gT29wczogS2VybmVsIGFjY2VzcyBvZiBiYWQgYXJlYSwgc2lnOiAxMSBbIzFdCj4gWyAg ICAyLjY0MzkwOV0gQkUgUEFHRV9TSVpFPTRLIE1NVT1IYXNoIFNNUCBOUl9DUFVTPTIwNDggTlVN QSBwU2VyaWVzCj4gWyAgICAyLjY0MzkyMF0gTW9kdWxlcyBsaW5rZWQgaW46IG9oY2lfcGNpKCsp IGVoY2lfaGNkIG52bWVfZmFicmljcyBvaGNpX2hjZCBudm1lX2tleXJpbmcgbnZtZV9jb3JlIHVz YmNvcmUgbnZtZV9hdXRoIHNjc2lfdHJhbnNwb3J0X2ZjIGlwciBjb25maWdmcyBlaGVhKCspIHVz Yl9jb21tb24KPiBbICAgIDIuNjQzOTY1XSBDUFU6IDUgVUlEOiAwIFBJRDogMjUwIENvbW06ICh1 ZGV2LXdvcmtlcikgTm90IHRhaW50ZWQgNi4xMi4xNy1wb3dlcnBjNjQgIzEgIERlYmlhbiA2LjEy LjE3LTEKPiBbICAgIDIuNjQzOTc2XSBIYXJkd2FyZSBuYW1lOiBJQk0sODIwNC1FOEEgUE9XRVI2 IChhcmNoaXRlY3RlZCkgMHgzZTAzMDIgMHhmMDAwMDAyIG9mOklCTSxFTDM1MF8xMTggaHY6cGh5 cCBwU2VyaWVzCj4gWyAgICAyLjY0Mzk4Nl0gTklQOiAgYzAwMDAwMDAwMGEzOTUxNCBMUjogYzAw MDAwMDAwMGEzNmVkOCBDVFI6IGMwMDAwMDAwMDBhMzU4MjAKPiBbICAgIDIuNjQzOTk1XSBSRUdT OiBjMDAwMDAwMDM1MWY2ZjYwIFRSQVA6IDAzMDAgICBOb3QgdGFpbnRlZCAgKDYuMTIuMTctcG93 ZXJwYzY0IERlYmlhbiA2LjEyLjE3LTEpCj4gWyAgICAyLjY0NDAwNF0gTVNSOiAgODAwMDAwMDAw MDAwOTAzMiA8U0YsRUUsTUUsSVIsRFIsUkk+ICBDUjogMjQyMjIyODggIFhFUjogMDAwMDAwMDAK PiBbICAgIDIuNjQ0MDMxXSBDRkFSOiBjMDAwMDAwMDAwMDBjZmM0IERBUjogMDAwMDAwMDAwMDAw MDAwMCBEU0lTUjogNDAwMDAwMDAgSVJRTUFTSzogMAo+IFsgICAgMi42NDQwMzFdIEdQUjAwOiBj MDAwMDAwMDAwYTM2ZWQ4IGMwMDAwMDAwMzUxZjcyMDAgYzAwMDAwMDAwMTgyZTIwMCBjMDAwMDAw M2RmMjk0MDAwCj4gWyAgICAyLjY0NDAzMV0gR1BSMDQ6IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAw MDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAKPiBbICAgIDIuNjQ0 MDMxXSBHUFIwODogMDAwMDAwMDAwMDAwMDAwMSAwMDAwMDAwMDAwMDAwMDAwIGMwMDAwMDAwMDIy OGZjYzAgMDAwMDAwMDA0NDIyMjI4OAo+IFsgICAgMi42NDQwMzFdIEdQUjEyOiBjMDAwMDAwMDAw YTM1ODIwIGMwMDAwMDAwMGVlYWNiMDAgMDAwMDAwMDAwMDAwMDAyMCAwMDAwMDEwMDM3ZmNhYjIw Cj4gWyAgICAyLjY0NDAzMV0gR1BSMTY6IDAwMDAwMDAwMjIyMjIyNDggMDAwMDAwMDAwMDAyMDAw MCAwMDAwMDAwMDAwMDAwMDAwIDAwMDAzZmZmZWJlOGJiODAKPiBbICAgIDIuNjQ0MDMxXSBHUFIy MDogMDAwMDAwMDAwMDAwMDAwMCBjMDAwMDAwMDAyMDRkYjYwIGMwMDAwMDAwMDIwNGRkNjAgYzAw MDAwMDAwYjFhZTc4MAo+IFsgICAgMi42NDQwMzFdIEdQUjI0OiAwMDAwMDAwMDAwMDAwMDAwIDAw MDAzZmZmOGM5YWM3NTggMDAwMDAwMDAwMDAwMDAwMCBjMDAwMDAwM2RmMjk0MDAwCj4gWyAgICAy LjY0NDAzMV0gR1BSMjg6IDAwMDAwMDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAwMDAwMCBjMDAwMDAw M2RmMjk0MDAwIDAwMDAwMDAwMDAwMDAwMDEKPiBbICAgIDIuNjQ0MTY0XSBOSVAgW2MwMDAwMDAw MDBhMzk1MTRdIHBjaV9tc2lfZG9tYWluX3N1cHBvcnRzIChkcml2ZXJzL3BjaS9tc2kvaXJxZG9t YWluLmM6MzY2KQo+IFsgICAgMi42NDQxODFdIExSIFtjMDAwMDAwMDAwYTM2ZWQ4XSBfX3BjaV9l bmFibGVfbXNpX3JhbmdlIChkcml2ZXJzL3BjaS9tc2kvbXNpLmM6NDM3KQo+IFsgICAgMi42NDQx OTJdIENhbGwgVHJhY2U6Cj4gWyAgICAyLjY0NDE5N10gW2MwMDAwMDAwMzUxZjcyMDBdIFtjMDAw MDAwMDM1MWY3MzA0XSAweGMwMDAwMDAwMzUxZjczMDQgKHVucmVsaWFibGUpCj4gWyAgICAyLjY0 NDIxMV0gW2MwMDAwMDAwMzUxZjczNDBdIFtjMDAwMDAwMDAwYTM1NzhjXSBwY2lfYWxsb2NfaXJx X3ZlY3RvcnNfYWZmaW5pdHkgKGRyaXZlcnMvcGNpL21zaS9hcGkuYzoyNzcpCgo+ID09PT09PT09 Cj4gICAgMDoqCTQxIDgyIDAwIDJjIAliZXEgICAgIDB4MmMJCTwtLSB0cmFwcGluZyBpbnN0cnVj dGlvbgo+ICAgIDQ6CWU5IDJhIDAwIDg4IAlsZCAgICAgIHI5LDEzNihyMTApCj4gICAgODoJODAg NjkgMDAgMDAgCWx3eiAgICAgcjMsMChyOSkKPiAgICBjOgk3YyA2MyAyMCAzOCAJYW5kICAgICBy MyxyMyxyNAo+ICAgMTA6CTdjIDYzIDIyIDc4IAl4b3IgICAgIHIzLHIzLHI0Cj4gICAxNDoJN2Mg NjMgMDAgMzQgCWNudGx6dyAgcjMscjMKPiAgIDE4Ogk1NCA2MyBkOSA3ZSAJc3J3aSAgICByMyxy Myw1Cj4gICAxYzoJNzggNjMgMDcgZTAgCWNscmxkaSAgcjMscjMsNjMKPiAgIDIwOgk0ZSA4MCAw MCAyMCAJYmxyCj4gICAyNDoJNjAgMDAgMDAgMDAgCW5vcAo+ICAgMjg6CTYwIDAwIDAwIDAwIAlu b3AKPiAgIDJjOgllOSAyYSAwMCAyMCAJbGQgICAgICByOSwzMihyMTApCj4gICAzMDoJODAgNjkg MDAgMDAgCWx3eiAgICAgcjMsMChyOSkKPiAgIDM0Ogk0YiBmZiBmZiBkOCAJYiAgICAgICAweGMK PiAgIDM4Ogk2MCAwMCAwMCAwMCAJbm9wCj4gICAzYzoJN2MgYTUgMDAgMzQgCWNudGx6dyAgcjUs cjUKPgo+IENvZGUgc3RhcnRpbmcgd2l0aCB0aGUgZmF1bHRpbmcgaW5zdHJ1Y3Rpb24KPiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gICAgMDoJODAgNjkgMDAg MDAgCWx3eiAgICAgcjMsMChyOSkKCj4gWyAgICAyLjY0NDAzMV0gR1BSMDg6IDAwMDAwMDAwMDAw MDAwMDEgMDAwMDAwMDAwMDAwMDAwMCBjMDAwMDAwMDAyMjhmY2MwIDAwMDAwMDAwNDQyMjIyODgK ClNvIFI5IGlzIE5VTEwsIFIxMCBpcyB0aGUgZG9tYWluIHBvaW50ZXIuCgoKPiAgICA0Ogk0YiBm ZiBmZiBkOCAJYiAgICAgICAweGZmZmZmZmZmZmZmZmZmZGMKPiAgICA4Ogk2MCAwMCAwMCAwMCAJ bm9wCj4gICAgYzoJN2MgYTUgMDAgMzQgCWNudGx6dyAgcjUscjUKPiBbICAgIDIuNjQ0NzY5XSAt LS1bIGVuZCB0cmFjZSAwMDAwMDAwMDAwMDAwMDAwIF0tLS0KPgo+Cj4gKFRoYXQncyB0aGUgYnVn IHNwbGF0IGZyb20gdGhlIGJ1ZyByZXBvcnQgcGlwZWQgdGhyb3VnaAo+IHNjcmlwdHMvZGVjb2Rl X3N0YWNrdHJhY2Uuc2gpCj4KPiBUaGUga2VybmVsIGhhcyBDT05GSUdfUENJX01TSV9BUkNIX0ZB TExCQUNLUz15LCBzbyB0aGUgZmlyc3QgaHVuawo+IHNob3VsZG4ndCBjaGFuZ2UgYW55dGhpbmcu CgpDb3JyZWN0LiBCdXQgdGhlIE9vb3BzIGlzIGluIHRoZSB1bmNoYW5nZWQgY29kZSBwYXJ0IG9m CnBjaV9tc2lfZG9tYWluX3N1cHBvcnRzKCkuCgo+IHNvIHRoZSB0cmFwcGluZyBoYXBwZW5zIGlu IGRyaXZlcnMvcGNpL21zaS9pcnFkb21haW4uYzozNjYgd2hpY2ggaXM6Cj4KPiAzNjUJICAgICAg ICAgICAgICAgIGluZm8gPSBkb21haW4tPmhvc3RfZGF0YTsKPiAzNjYJICAgICAgICAgICAgICAg IHN1cHBvcnRlZCA9IGluZm8tPmZsYWdzOwo+Cj4gQWNjb3JkaW5nIHRvIHRoZSByZWdpc3RlciBk dW1wIGRvbWFpbiA9PSByMTAgPT0gTlVMTCwgYnV0IHRoZW4gdGhpcyBjb2RlCgpOby4gWW91IGFy ZSBsb29raW5nIGF0IHRoZSB3cm9uZyByZWdpc3RlciBzZXQuIFRoZSBzZWNvbmQgb25lIGlzIHRo ZQp1c2VyIHNwYWNlIHJlZ2lzdGVyIHNldCBmcm9tIHRoZSBzeXNjYWxsIGVudHJ5LiAKClIxMCBj b250YWlucyB0aGUgZG9tYWluIHBvaW50ZXIgYW5kIFI5IGlzIE5VTEwsIHdoaWNoIGRvZXMgbm90 IG1ha2UgYW55CnNlbnNlLgoKT24gNi4xMiBwb3dlcjY0IHN0aWxsIHVzZXMgdGhlIGdsb2JhbCBQ Q0kvTVNJIGRvbWFpbiBtb2RlbC4gQWNjb3JkaW5nIHRvCnRoZSBzcGxhdCB0aGlzIGlzIHBzZXJp ZXMgc28gdGhlIGdsb2JhbCBQQ0kvTVNJIGRvbWFpbiBpcyBjcmVhdGVkIGluCl9fcHNlcmllc19t c2lfYWxsb2NhdGVfZG9tYWlucygpIHZpYSBwY2lfbXNpX2NyZWF0ZV9pcnFfZG9tYWluKCkuIFRo ZQpsYXR0ZXIgdGFrZXMgYSBwb2ludGVyIHRvCgogICAgICAgc3RhdGljIHN0cnVjdCBtc2lfZG9t YWluX2luZm9fcHNlcmllc19tc2lfZG9tYWluX2luZm87Cgp3aGljaCBpcyBhc3NpZ25lZCB0byB0 aGUgZ2xvYmFsIFBDSS9NU0kgZG9tYWluOjpob3N0X2RhdGEuCgpVcHN0cmVhbSBnb3QgcmlkIG9m IHRoYXQgYW5kIHVzZXMgcGVyIGRldmljZSBkb21haW5zLCBzbyBpdCBtaWdodCBoYXZlCmJlZW4g bWFnaWNhbGx5IGZpeGVkIGJ5IG5vdywgYnV0IEkgZG91YnQgaXQ6CgpUaGF0IG5ldyBjaGVjayBp biBfX3BjaV9lbmFibGVfbXNpX3JhbmdlKCkgaXMgYmVuaWduIGFzIHRoZSBhY3R1YWwKYWxsb2Nh dGlvbiBjb2RlIGZ1cnRoZXIgZG93biByZWxpZXMgb24gZG9tYWluOjpob3N0X2RhdGEgYmVpbmcg YSB2YWxpZApwb2ludGVyIGFzIHdlbGwuCgpJdCBtaWdodCBub3QgcmVhY2ggdGhhdCBwb2ludCBk dWUgdG8gdGhlIHN1YnNlcXVlbnQgY2hlY2tzLCBidXQgaWYgdGhlClBDSSBkZXZpY2UgaGFzIHBk ZXY6OmRldjo6bXNpOjpkb21haW4gcG9wdWxhdGVkLCB0aGVuIHRoaXMgaGFzIHRvIGJlCmVpdGhl ciBhIGdsb2JhbCBQQ0kvTVNJIGRvbWFpbiBvciBhIE1TSSBwYXJlbnQgZG9tYWluLiBCb3RoIGhh dmUKZG9tYWluOjpob3N0X2RhdGEgcG9wdWxhdGVkIHdpdGggYSBtc2lfZG9tYWluX2luZm8gcG9p bnRlci4KClNvbWV0aGluZyBpcyBtaWdodHkgZmlzaHkgaGVyZS4KCkFhcm9uLCBjYW4geW91IHBs ZWFzZSBhcHBseSB0aGUgcGF0Y2ggYmVsb3cgYW5kIHNlZSB3aGV0aGVyIGl0IGZpeGVzIHRoZQpp c3N1ZSBhbmQgcHJvdmlkZSB0aGUgZG1lc2cgd2l0aCB0aGUgb3V0cHV0IG9mIHRob3NlIHByX3dh cm4oKSdzPwoKVGhlIG90aGVyIGluZm9ybWF0aW9uIHdoaWNoIHdvdWxkIGJlIHVzZWZ1bDogV2hl biB5b3UgYm9vdCBhIGtlcm5lbCB3aXRoCnRoZSBjb21taXQgcmV2ZXJ0ZWQgYW5kIGxvb2sgYXQg dGhhdCBPSENJIGNvbnRyb2xsZXIgd2l0aCBsc3BjaSAtdnZ2CnRoZW4geW91IHNob3VsZCBzZWUg d2hldGhlciBpdCBoYXMgTVNJIGVuYWJsZWQgb3Igbm90LiBJZiBpdCBoYXMgTVNJCmVuYWJsZWQs IHRoZW4gcGxlYXNlIHByb3ZpZGUgdGhlIG91dHB1dCBvZgoKICAgL3N5cy9rZXJuZWwvZGVidWcv aXJxL2lycXMvJElSUU5SCgpZb3UgbmVlZCB0byBlbmFibGUgQ09ORklHX0dFTkVSSUNfSVJRX0RF QlVHRlMgZm9yIHRoYXQuCgpBbmQgdGhhdCdzIGFjdHVhbGx5IHVzZWZ1bCBmb3IgdGhlIGRlYnVn IHBhdGNoIGJlbG93IHRvbyBiZWNhdXNlIHlvdSBjYW4KdGhlbiBsb29rIGF0IHRoZSBkb21haW4g bmFtZSBvdXRwdXQgYW5kIGdhdGhlciBtb3JlIGluZm9ybWF0aW9uIGZyb20KCiAgICAgL3N5cy9r ZXJuZWwvZGVidWcvaXJxL2RvbWFpbnMvJE5BTUUKClRoYW5rcywKCiAgICAgICAgdGdseAotLS0K IGRyaXZlcnMvcGNpL21zaS9pcnFkb21haW4uYyB8ICAgMTUgKysrKysrKysrKysrKystCiAxIGZp bGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKLS0tIGEvZHJpdmVy cy9wY2kvbXNpL2lycWRvbWFpbi5jCisrKyBiL2RyaXZlcnMvcGNpL21zaS9pcnFkb21haW4uYwpA QCAtMTE1LDYgKzExNSw4IEBAIHN0cnVjdCBpcnFfZG9tYWluICpwY2lfbXNpX2NyZWF0ZV9pcnFf ZG8KIAkJCQkJICAgICBzdHJ1Y3QgbXNpX2RvbWFpbl9pbmZvICppbmZvLAogCQkJCQkgICAgIHN0 cnVjdCBpcnFfZG9tYWluICpwYXJlbnQpCiB7CisJc3RydWN0IGlycV9kb21haW4gKmRvbWFpbjsK KwogCWlmIChXQVJOX09OKGluZm8tPmZsYWdzICYgTVNJX0ZMQUdfTEVWRUxfQ0FQQUJMRSkpCiAJ CWluZm8tPmZsYWdzICY9IH5NU0lfRkxBR19MRVZFTF9DQVBBQkxFOwogCkBAIC0xMzUsNyArMTM3 LDEyIEBAIHN0cnVjdCBpcnFfZG9tYWluICpwY2lfbXNpX2NyZWF0ZV9pcnFfZG8KIAkvKiBMZXQg dGhlIGNvcmUgdXBkYXRlIHRoZSBidXMgdG9rZW4gKi8KIAlpbmZvLT5idXNfdG9rZW4gPSBET01B SU5fQlVTX1BDSV9NU0k7CiAKLQlyZXR1cm4gbXNpX2NyZWF0ZV9pcnFfZG9tYWluKGZ3bm9kZSwg aW5mbywgcGFyZW50KTsKKwlkb21haW4gPSBtc2lfY3JlYXRlX2lycV9kb21haW4oZndub2RlLCBp bmZvLCBwYXJlbnQpOworCWlmIChkb21haW4pIHsKKwkJcHJfd2FybigiQ3JlYXRlZCBnbG9iYWwg UENJL01TSSBkb21haW4gJWx4ICVzIGZsYWdzOiAleFxuIiwKKwkJCSh1bnNpZ25lZCBsb25nKWRv bWFpbiwgZG9tYWluLT5uYW1lLCBkb21haW4tPmZsYWdzKTsKKwl9CisJcmV0dXJuIGRvbWFpbjsK IH0KIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV9tc2lfY3JlYXRlX2lycV9kb21haW4pOwogCkBAIC0z NTYsNiArMzYzLDEyIEBAIGJvb2wgcGNpX21zaV9kb21haW5fc3VwcG9ydHMoc3RydWN0IHBjaV8K IAkJcmV0dXJuIGZhbHNlOwogCX0KIAorCWlmICghZG9tYWluLT5ob3N0X2RhdGEpIHsKKwkJcHJf d2FybigiRGV2aWNlIE1TSSBkb21haW4gJWx4ICVzICV4IGxhY2tzIGhvc3QgZGF0YVxuIiwKKwkJ CSh1bnNpZ25lZCBsb25nKWRvbWFpbiwgZG9tYWluLT5uYW1lLCBkb21haW4tPmZsYWdzKTsKKwkJ cmV0dXJuIGZhbHNlOworCX0KKwogCWlmICghaXJxX2RvbWFpbl9pc19tc2lfcGFyZW50KGRvbWFp bikpIHsKIAkJLyoKIAkJICogRm9yICJnbG9iYWwiIFBDSS9NU0kgaW50ZXJydXB0IGRvbWFpbnMg dGhlIGFzc29jaWF0ZWQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LXJpc2N2Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A1183101A6 for ; Wed, 22 Apr 2026 21:22:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776892936; cv=none; b=jqOZSX9oogaDNyQs3Eio7m7iTP/xvK6Ybq8u4GokERlnhiAi4nm4bG6qR6ykISfhU9nwbHrt61ulfd5ZVRMk1Io2Xi7+2i3jKpbsq6z97V4GQXuXNQZcQQ+rlL4n9YIWZCOHD62TMFN8rTqUH6Dmsu/41TWhZYnFGDn9ew9eDIs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776892936; c=relaxed/simple; bh=bE2aq9apwOgEFP7XvaW+vWVk73wY42f+rL2BryMu2Fs=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=AURSmUxCU3S2fHECnBgMacv9rBB/FZLp5yz5AL9cfzQlQVvYVus2Nso8dqMATUGKnv1BIvqTdHtOouopECr5wpOqEazrOQeueFDjjos8nSUsFogc/5lkKsC1RdMJrobASWrcEGrGvhiVOwPq4e/BEaohU98R+d2AeCnGTUngGkc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=bPGEy2iL; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=+0stXMUH; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="bPGEy2iL"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="+0stXMUH" From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1776892932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zyMPKfqTnkr/wpefzF9zf/jvUqC/u5Z37wY0HaS628U=; b=bPGEy2iLgIS/3+ASIsxWtQFQqbNxezXXCblZwkitvFakngQS7SJU9uItNcq2VHDq3EsK5y iZSByNFulqqihhiwQ6qyHad4Ohm42wJbTrV3xiJfUtGj3zDLiCv51iaB107Q4HxTL3oAUR ovqT+Bmi8FQyQjuBhXPGaOLcLmOGrTdIi2Pn8nWHmS72ywT5+JI97K30z3+tE/dXhuyLoM ibkRcw7u75LOCrOWUtphW3UiyqtYNaD1j3k+sSj5OzyNcSKt7EpvgWN1K9NQIiPgpQQPxG ajqPmlCNe6AKmL3Z6nr733RPUSUtp6ViIWXWr00HgkZGUIO2MWDOWGzqdApmRg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1776892932; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zyMPKfqTnkr/wpefzF9zf/jvUqC/u5Z37wY0HaS628U=; b=+0stXMUHjrp3yLi9hY9WbQXlMutm0VstfQon0n3u4Y9EMzJTxYGrP4Kfcu8BFxR96HzGM2 qHUocyNWLv2eS3Bg== To: Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= Cc: Alexandre Ghiti , Paul Walmsley , Palmer Dabbelt , Anup Patel , Sunil V L , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Bjorn Helgaas , 1127635@bugs.debian.org, "Aaron D. Johnson" , regressions@lists.linux.dev Subject: Re: [Patch] PCI/MSI: Handle lack of irqdomain gracefully In-Reply-To: References: <20241213115704.353665-1-alexghiti@rivosinc.com> <87v7vn917f.ffs@tglx> <87ed2a8ow5.ffs@tglx> Date: Wed, 22 Apr 2026 23:22:11 +0200 Message-ID: <87qzo61yik.ffs@tglx> Precedence: bulk X-Mailing-List: regressions@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wed, Mar 11 2026 at 12:22, Uwe Kleine-K=C3=B6nig wrote: > this patch became a60b990798eb17433d0283788280422b1bd94b18 in v6.13-rc5 > and was backported to 6.12.y and 6.6.y (aed157301c65 and b1f7476e07b9 > respectively). > > A Debian user (Aaron, on Cc:) on powerpc has boot problems and bisected > them to this commit. The relevant boot log of the failure is: > [ 2.643879] BUG: Kernel NULL pointer dereference on read at 0x00000000 > [ 2.643891] Faulting instruction address: 0xc000000000a39514 > [ 2.643902] Oops: Kernel access of bad area, sig: 11 [#1] > [ 2.643909] BE PAGE_SIZE=3D4K MMU=3DHash SMP NR_CPUS=3D2048 NUMA pSeri= es > [ 2.643920] Modules linked in: ohci_pci(+) ehci_hcd nvme_fabrics ohci_= hcd nvme_keyring nvme_core usbcore nvme_auth scsi_transport_fc ipr configfs= ehea(+) usb_common > [ 2.643965] CPU: 5 UID: 0 PID: 250 Comm: (udev-worker) Not tainted 6.1= 2.17-powerpc64 #1 Debian 6.12.17-1 > [ 2.643976] Hardware name: IBM,8204-E8A POWER6 (architected) 0x3e0302 = 0xf000002 of:IBM,EL350_118 hv:phyp pSeries > [ 2.643986] NIP: c000000000a39514 LR: c000000000a36ed8 CTR: c00000000= 0a35820 > [ 2.643995] REGS: c0000000351f6f60 TRAP: 0300 Not tainted (6.12.17-= powerpc64 Debian 6.12.17-1) > [ 2.644004] MSR: 8000000000009032 CR: 24222288 = XER: 00000000 > [ 2.644031] CFAR: c00000000000cfc4 DAR: 0000000000000000 DSISR: 400000= 00 IRQMASK: 0 > [ 2.644031] GPR00: c000000000a36ed8 c0000000351f7200 c00000000182e200 = c0000003df294000 > [ 2.644031] GPR04: 0000000000000000 0000000000000000 0000000000000000 = 0000000000000000 > [ 2.644031] GPR08: 0000000000000001 0000000000000000 c00000000228fcc0 = 0000000044222288 > [ 2.644031] GPR12: c000000000a35820 c00000000eeacb00 0000000000000020 = 0000010037fcab20 > [ 2.644031] GPR16: 0000000022222248 0000000000020000 0000000000000000 = 00003fffebe8bb80 > [ 2.644031] GPR20: 0000000000000000 c00000000204db60 c00000000204dd60 = c00000000b1ae780 > [ 2.644031] GPR24: 0000000000000000 00003fff8c9ac758 0000000000000000 = c0000003df294000 > [ 2.644031] GPR28: 0000000000000001 0000000000000000 c0000003df294000 = 0000000000000001 > [ 2.644164] NIP [c000000000a39514] pci_msi_domain_supports (drivers/pc= i/msi/irqdomain.c:366) > [ 2.644181] LR [c000000000a36ed8] __pci_enable_msi_range (drivers/pci/= msi/msi.c:437) > [ 2.644192] Call Trace: > [ 2.644197] [c0000000351f7200] [c0000000351f7304] 0xc0000000351f7304 (= unreliable) > [ 2.644211] [c0000000351f7340] [c000000000a3578c] pci_alloc_irq_vector= s_affinity (drivers/pci/msi/api.c:277) > =3D=3D=3D=3D=3D=3D=3D=3D > 0:* 41 82 00 2c beq 0x2c <-- trapping instruction > 4: e9 2a 00 88 ld r9,136(r10) > 8: 80 69 00 00 lwz r3,0(r9) > c: 7c 63 20 38 and r3,r3,r4 > 10: 7c 63 22 78 xor r3,r3,r4 > 14: 7c 63 00 34 cntlzw r3,r3 > 18: 54 63 d9 7e srwi r3,r3,5 > 1c: 78 63 07 e0 clrldi r3,r3,63 > 20: 4e 80 00 20 blr > 24: 60 00 00 00 nop > 28: 60 00 00 00 nop > 2c: e9 2a 00 20 ld r9,32(r10) > 30: 80 69 00 00 lwz r3,0(r9) > 34: 4b ff ff d8 b 0xc > 38: 60 00 00 00 nop > 3c: 7c a5 00 34 cntlzw r5,r5 > > Code starting with the faulting instruction > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > 0: 80 69 00 00 lwz r3,0(r9) > [ 2.644031] GPR08: 0000000000000001 0000000000000000 c00000000228fcc0 = 0000000044222288 So R9 is NULL, R10 is the domain pointer. > 4: 4b ff ff d8 b 0xffffffffffffffdc > 8: 60 00 00 00 nop > c: 7c a5 00 34 cntlzw r5,r5 > [ 2.644769] ---[ end trace 0000000000000000 ]--- > > > (That's the bug splat from the bug report piped through > scripts/decode_stacktrace.sh) > > The kernel has CONFIG_PCI_MSI_ARCH_FALLBACKS=3Dy, so the first hunk > shouldn't change anything. Correct. But the Ooops is in the unchanged code part of pci_msi_domain_supports(). > so the trapping happens in drivers/pci/msi/irqdomain.c:366 which is: > > 365 info =3D domain->host_data; > 366 supported =3D info->flags; > > According to the register dump domain =3D=3D r10 =3D=3D NULL, but then th= is code No. You are looking at the wrong register set. The second one is the user space register set from the syscall entry.=20 R10 contains the domain pointer and R9 is NULL, which does not make any sense. On 6.12 power64 still uses the global PCI/MSI domain model. According to the splat this is pseries so the global PCI/MSI domain is created in __pseries_msi_allocate_domains() via pci_msi_create_irq_domain(). The latter takes a pointer to static struct msi_domain_info_pseries_msi_domain_info; which is assigned to the global PCI/MSI domain::host_data. Upstream got rid of that and uses per device domains, so it might have been magically fixed by now, but I doubt it: That new check in __pci_enable_msi_range() is benign as the actual allocation code further down relies on domain::host_data being a valid pointer as well. It might not reach that point due to the subsequent checks, but if the PCI device has pdev::dev::msi::domain populated, then this has to be either a global PCI/MSI domain or a MSI parent domain. Both have domain::host_data populated with a msi_domain_info pointer. Something is mighty fishy here. Aaron, can you please apply the patch below and see whether it fixes the issue and provide the dmesg with the output of those pr_warn()'s? The other information which would be useful: When you boot a kernel with the commit reverted and look at that OHCI controller with lspci -vvv then you should see whether it has MSI enabled or not. If it has MSI enabled, then please provide the output of /sys/kernel/debug/irq/irqs/$IRQNR You need to enable CONFIG_GENERIC_IRQ_DEBUGFS for that. And that's actually useful for the debug patch below too because you can then look at the domain name output and gather more information from /sys/kernel/debug/irq/domains/$NAME Thanks, tglx --- drivers/pci/msi/irqdomain.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) --- a/drivers/pci/msi/irqdomain.c +++ b/drivers/pci/msi/irqdomain.c @@ -115,6 +115,8 @@ struct irq_domain *pci_msi_create_irq_do struct msi_domain_info *info, struct irq_domain *parent) { + struct irq_domain *domain; + if (WARN_ON(info->flags & MSI_FLAG_LEVEL_CAPABLE)) info->flags &=3D ~MSI_FLAG_LEVEL_CAPABLE; =20 @@ -135,7 +137,12 @@ struct irq_domain *pci_msi_create_irq_do /* Let the core update the bus token */ info->bus_token =3D DOMAIN_BUS_PCI_MSI; =20 - return msi_create_irq_domain(fwnode, info, parent); + domain =3D msi_create_irq_domain(fwnode, info, parent); + if (domain) { + pr_warn("Created global PCI/MSI domain %lx %s flags: %x\n", + (unsigned long)domain, domain->name, domain->flags); + } + return domain; } EXPORT_SYMBOL_GPL(pci_msi_create_irq_domain); =20 @@ -356,6 +363,12 @@ bool pci_msi_domain_supports(struct pci_ return false; } =20 + if (!domain->host_data) { + pr_warn("Device MSI domain %lx %s %x lacks host data\n", + (unsigned long)domain, domain->name, domain->flags); + return false; + } + if (!irq_domain_is_msi_parent(domain)) { /* * For "global" PCI/MSI interrupt domains the associated