[ARM] 3775/1: S3C24XX: do not add same sysdev_driver to two classes
authorBen Dooks <ben-linux@fluff.org>
Sat, 9 Sep 2006 18:44:50 +0000 (19:44 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 9 Sep 2006 18:44:50 +0000 (19:44 +0100)
Patch from Ben Dooks

The s3c244x-irq.c code makes the mistake of adding
the same drive to two different sys-classes. This
causes the class lists to become corrupted and the
suspend code to OOPS.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-s3c2410/s3c244x-irq.c

index 74be83c4126e442b46c42ef39808348add8fca42..44c5affa9b89ac96e1b8729568afacb2daa80a29 100644 (file)
@@ -119,21 +119,24 @@ static int s3c244x_irq_add(struct sys_device *sysdev)
        return 0;
 }
 
-static struct sysdev_driver s3c244x_irq_driver = {
+static struct sysdev_driver s3c2440_irq_driver = {
        .add    = s3c244x_irq_add,
 };
 
 static int s3c2440_irq_init(void)
 {
-       return sysdev_driver_register(&s3c2440_sysclass, &s3c244x_irq_driver);
+       return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_irq_driver);
 }
 
 arch_initcall(s3c2440_irq_init);
 
+static struct sysdev_driver s3c2442_irq_driver = {
+       .add    = s3c244x_irq_add,
+};
 
 static int s3c2442_irq_init(void)
 {
-       return sysdev_driver_register(&s3c2442_sysclass, &s3c244x_irq_driver);
+       return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_irq_driver);
 }
 
 arch_initcall(s3c2442_irq_init);