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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 2 Aug 2016 14:54:47 -0400
From:	Paul Gortmaker <paul.gortmaker@...driver.com>
To:	<linux-kernel@...r.kernel.org>
CC:	Paul Gortmaker <paul.gortmaker@...driver.com>,
	Jon Hunter <jonathanh@...dia.com>,
	Kevin Hilman <khilman@...libre.com>,
	Marc Zyngier <marc.zyngier@....com>,
	John Crispin <john@...ozen.org>,
	Ralf Baechle <ralf@...ux-mips.org>,
	Thomas Gleixner <tglx@...utronix.de>,
	<linux-mips@...ux-mips.org>
Subject: [PATCH] mips: lantiq: fix irq_chip name to not land in new parent field

As of commit be45beb2df69 ("genirq: Add runtime power management
support for IRQ chips") the irq_chip struct got a struct *device
parent_device field added to it.  However, it was added at the
beginning of the struct, which previously was the "name" entry.

The driver here was using a mix of ordered struct init entries and
named init entries.  It was supplying the name assuming it was the 1st
in the order, and hence when that became a struct *device we get:

arch/mips/lantiq/irq.c:209:2: warning: initialization from incompatible pointer type [enabled by default]
arch/mips/lantiq/irq.c:209:2: warning: (near initialization for 'ltq_irq_type.parent_device') [enabled by default]
arch/mips/lantiq/irq.c:219:2: warning: initialization from incompatible pointer type [enabled by default]
arch/mips/lantiq/irq.c:219:2: warning: (near initialization for 'ltq_eiu_type.parent_device') [enabled by default]

While not runtime tested, I can't imagine trying to dereference a
a struct device field from a char string will end well.

Here we've used named element init entries for the name string as well
to fix it.

Fixes: be45beb2df69 ("genirq: Add runtime power management support for IRQ chips")
Cc: Jon Hunter <jonathanh@...dia.com>
Cc: Kevin Hilman <khilman@...libre.com>
Cc: Marc Zyngier <marc.zyngier@....com>
Cc: John Crispin <john@...ozen.org>
Cc: Ralf Baechle <ralf@...ux-mips.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: linux-mips@...ux-mips.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@...driver.com>
---

[
  in mainline via: commit a5c8a01968fc9dc94f182172cee7ab40bc496ea4
    Merge: ff5b706f5189 3faf24ea894a
    Author: Thomas Gleixner <tglx@...utronix.de>
    Date:   Mon Jun 13 16:33:48 2016 +0200

    Merge tag 'irqchip-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core
]

 arch/mips/lantiq/irq.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
index ff17669e30a3..02c0252b49a3 100644
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -206,7 +206,7 @@ static void ltq_shutdown_eiu_irq(struct irq_data *d)
 }
 
 static struct irq_chip ltq_irq_type = {
-	"icu",
+	.name = "icu",
 	.irq_enable = ltq_enable_irq,
 	.irq_disable = ltq_disable_irq,
 	.irq_unmask = ltq_enable_irq,
@@ -216,7 +216,7 @@ static struct irq_chip ltq_irq_type = {
 };
 
 static struct irq_chip ltq_eiu_type = {
-	"eiu",
+	.name = "eiu",
 	.irq_startup = ltq_startup_eiu_irq,
 	.irq_shutdown = ltq_shutdown_eiu_irq,
 	.irq_enable = ltq_enable_irq,
-- 
2.8.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ