lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 27 Dec 2020 11:20:49 -0800 From: Guenter Roeck <linux@...ck-us.net> To: Thomas Gleixner <tglx@...utronix.de> Cc: LKML <linux-kernel@...r.kernel.org>, Mark Rutland <mark.rutland@....com>, Karthikeyan Mitran <m.karthikeyan@...iveil.co.in>, Peter Zijlstra <peterz@...radead.org>, Catalin Marinas <catalin.marinas@....com>, dri-devel@...ts.freedesktop.org, Chris Wilson <chris@...is-wilson.co.uk>, "James E.J. Bottomley" <James.Bottomley@...senPartnership.com>, Saeed Mahameed <saeedm@...dia.com>, netdev@...r.kernel.org, Will Deacon <will@...nel.org>, Michal Simek <michal.simek@...inx.com>, linux-s390@...r.kernel.org, afzal mohammed <afzal.mohd.ma@...il.com>, Lorenzo Pieralisi <lorenzo.pieralisi@....com>, Dave Jiang <dave.jiang@...el.com>, xen-devel@...ts.xenproject.org, Leon Romanovsky <leon@...nel.org>, linux-rdma@...r.kernel.org, Marc Zyngier <maz@...nel.org>, Helge Deller <deller@....de>, Russell King <linux@...linux.org.uk>, Christian Borntraeger <borntraeger@...ibm.com>, linux-pci@...r.kernel.org, Jakub Kicinski <kuba@...nel.org>, Heiko Carstens <hca@...ux.ibm.com>, Wambui Karuga <wambui.karugax@...il.com>, Allen Hubbe <allenbh@...il.com>, Juergen Gross <jgross@...e.com>, David Airlie <airlied@...ux.ie>, linux-gpio@...r.kernel.org, Stefano Stabellini <sstabellini@...nel.org>, Rodrigo Vivi <rodrigo.vivi@...el.com>, Bjorn Helgaas <bhelgaas@...gle.com>, Lee Jones <lee.jones@...aro.org>, linux-arm-kernel@...ts.infradead.org, Boris Ostrovsky <boris.ostrovsky@...cle.com>, Tvrtko Ursulin <tvrtko.ursulin@...ux.intel.com>, linux-parisc@...r.kernel.org, Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@...el.com>, Hou Zhiqiang <Zhiqiang.Hou@....com>, Tariq Toukan <tariqt@...dia.com>, Jon Mason <jdmason@...zu.us>, linux-ntb@...glegroups.com, intel-gfx@...ts.freedesktop.org, "David S. Miller" <davem@...emloft.net> Subject: Re: [patch 02/30] genirq: Move status flag checks to core On Thu, Dec 10, 2020 at 08:25:38PM +0100, Thomas Gleixner wrote: > These checks are used by modules and prevent the removal of the export of > irq_to_desc(). Move the accessor into the core. > > Signed-off-by: Thomas Gleixner <tglx@...utronix.de> Yes, but that means that irq_check_status_bit() may be called from modules, but it is not exported, resulting in build errors such as the following. arm64:allmodconfig: ERROR: modpost: "irq_check_status_bit" [drivers/perf/arm_spe_pmu.ko] undefined! Guenter > --- > include/linux/irqdesc.h | 17 +++++------------ > kernel/irq/manage.c | 17 +++++++++++++++++ > 2 files changed, 22 insertions(+), 12 deletions(-) > > --- a/include/linux/irqdesc.h > +++ b/include/linux/irqdesc.h > @@ -223,28 +223,21 @@ irq_set_chip_handler_name_locked(struct > data->chip = chip; > } > > +bool irq_check_status_bit(unsigned int irq, unsigned int bitmask); > + > static inline bool irq_balancing_disabled(unsigned int irq) > { > - struct irq_desc *desc; > - > - desc = irq_to_desc(irq); > - return desc->status_use_accessors & IRQ_NO_BALANCING_MASK; > + return irq_check_status_bit(irq, IRQ_NO_BALANCING_MASK); > } > > static inline bool irq_is_percpu(unsigned int irq) > { > - struct irq_desc *desc; > - > - desc = irq_to_desc(irq); > - return desc->status_use_accessors & IRQ_PER_CPU; > + return irq_check_status_bit(irq, IRQ_PER_CPU); > } > > static inline bool irq_is_percpu_devid(unsigned int irq) > { > - struct irq_desc *desc; > - > - desc = irq_to_desc(irq); > - return desc->status_use_accessors & IRQ_PER_CPU_DEVID; > + return irq_check_status_bit(irq, IRQ_PER_CPU_DEVID); > } > > static inline void > --- a/kernel/irq/manage.c > +++ b/kernel/irq/manage.c > @@ -2769,3 +2769,23 @@ bool irq_has_action(unsigned int irq) > return res; > } > EXPORT_SYMBOL_GPL(irq_has_action); > + > +/** > + * irq_check_status_bit - Check whether bits in the irq descriptor status are set > + * @irq: The linux irq number > + * @bitmask: The bitmask to evaluate > + * > + * Returns: True if one of the bits in @bitmask is set > + */ > +bool irq_check_status_bit(unsigned int irq, unsigned int bitmask) > +{ > + struct irq_desc *desc; > + bool res = false; > + > + rcu_read_lock(); > + desc = irq_to_desc(irq); > + if (desc) > + res = !!(desc->status_use_accessors & bitmask); > + rcu_read_unlock(); > + return res; > +}
Powered by blists - more mailing lists