From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758711AbcAKJSp (ORCPT ); Mon, 11 Jan 2016 04:18:45 -0500 Received: from www.linutronix.de ([62.245.132.108]:45547 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758602AbcAKJSm (ORCPT ); Mon, 11 Jan 2016 04:18:42 -0500 Date: Mon, 11 Jan 2016 10:17:44 +0100 (CET) From: Thomas Gleixner To: =?GB2312?Q?Zhou_Qiao=28=D6=DC=C7=C8=29?= cc: jason@lakedaemon.net, linux-kernel@vger.kernel.org Subject: RE: [Questions]: how to extend nr_irqs for arch arm64 In-Reply-To: Message-ID: References: User-Agent: Alpine 2.11 (DEB 23 2013-08-11) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-1811152853-1452503865=:3575" X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1811152853-1452503865=:3575 Content-Type: TEXT/PLAIN; charset=gb2312 Content-Transfer-Encoding: 8BIT On Mon, 11 Jan 2016, Zhou Qiao(ÖÜÇÈ) wrote: > > From: Thomas Gleixner [mailto:tglx@linutronix.de] > > On Mon, 11 Jan 2016, Zhou Qiao(ÖÜÇÈ) wrote: > > > I met an issue here. The nr_irqs is extended when the start_irq + cnt > > > > nr_irqs. So when nr_irqs is not extended(still 64), a device with a > > > large > > > hr_irq(70) will get a wrong virq. since it will be mod by nr_irqs > > > before > > > > No, it won't get a wrong virq. It will get a virq and it does not > > matter at all whether the hardware irq number is 10, 70, 500 or 5000. > > What's your problem? > > Let's assume the hw_irq is 70, and after the mod operation, it will call > irq_alloc_descs_from with parameter from = 6, instead of 70. So the newly > allocated descriptor is mapped to hw_irq = 6, not 70. Later when driver > registers irq with irq = 70, it will fail since there is no irq descriptor > for irq = 70. Rightfully so. The driver cannot assume irq=70. That's what the device tree mapping is for. It will tell the driver that it has to request virq 6. There is no 1:1 mapping between hardware irqs and virqs. Thanks, tglx --8323329-1811152853-1452503865=:3575--