NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-arm/53171: Broadcom (and other ARM SoC i2c drivers) mis-handle indirect configuration of devices



The following reply was made to PR port-arm/53171; it has been noted by GNATS.

From: Jason Thorpe <thorpej%me.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: port-arm-maintainer%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
 netbsd-bugs%netbsd.org@localhost
Subject: Re: port-arm/53171: Broadcom (and other ARM SoC i2c drivers)
 mis-handle indirect configuration of devices
Date: Thu, 12 Apr 2018 20:42:41 -0700

 Here is a more complete patch.  That NULL assignment is redundant, of =
 course, and this catches the rest of the ARM SoC drivers that get it =
 wrong.
 
 Index: broadcom/bcm2835_bsc.c
 =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=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 RCS file: /cvsroot/src/sys/arch/arm/broadcom/bcm2835_bsc.c,v
 retrieving revision 1.10
 diff -u -p -r1.10 bcm2835_bsc.c
 --- broadcom/bcm2835_bsc.c      3 Mar 2018 16:03:38 -0000       1.10
 +++ broadcom/bcm2835_bsc.c      13 Apr 2018 03:35:18 -0000
 @@ -183,8 +183,6 @@ bsciic_attach(device_t parent, device_t=20
         iba.iba_child_devices =3D prop_dictionary_get(devs, =
 "i2c-child-devices");
         if (iba.iba_child_devices)
                 prop_object_retain(iba.iba_child_devices);
 -       else
 -               iba.iba_child_devices =3D prop_array_create();
         prop_object_release(devs);
 =20
         config_found_ia(self, "i2cbus", &iba, iicbus_print);
 Index: nvidia/tegra_i2c.c
 =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=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 RCS file: /cvsroot/src/sys/arch/arm/nvidia/tegra_i2c.c,v
 retrieving revision 1.16
 diff -u -p -r1.16 tegra_i2c.c
 --- nvidia/tegra_i2c.c  25 May 2017 23:43:49 -0000      1.16
 +++ nvidia/tegra_i2c.c  13 Apr 2018 03:35:18 -0000
 @@ -199,11 +199,8 @@ tegra_i2c_attach(device_t parent, device
         memset(&iba, 0, sizeof(iba));
         iba.iba_tag =3D &sc->sc_ic;
         iba.iba_child_devices =3D prop_dictionary_get(devs, =
 "i2c-child-devices");
 -       if (iba.iba_child_devices !=3D NULL) {
 +       if (iba.iba_child_devices !=3D NULL)
                 prop_object_retain(iba.iba_child_devices);
 -       } else {
 -               iba.iba_child_devices =3D prop_array_create();
 -       }
         prop_object_release(devs);
 =20
         sc->sc_i2cdev =3D config_found_ia(self, "i2cbus", &iba, =
 iicbus_print);
 Index: samsung/exynos_i2c.c
 =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=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 RCS file: /cvsroot/src/sys/arch/arm/samsung/exynos_i2c.c,v
 retrieving revision 1.13
 diff -u -p -r1.13 exynos_i2c.c
 --- samsung/exynos_i2c.c        2 Jul 2017 18:27:45 -0000       1.13
 +++ samsung/exynos_i2c.c        13 Apr 2018 03:35:18 -0000
 @@ -198,8 +198,6 @@ exynos_i2c_attach(device_t parent, devic
         iba.iba_child_devices =3D prop_dictionary_get(devs, =
 "i2c-child-devices");
         if (iba.iba_child_devices !=3D NULL)
                 prop_object_retain(iba.iba_child_devices);
 -       else
 -               iba.iba_child_devices =3D prop_array_create();
         prop_object_release(devs);
 =20
         sc->sc_i2cdev =3D config_found_ia(self, "i2cbus", &iba, =
 iicbus_print);
 Index: sunxi/sunxi_rsb.c
 =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=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 RCS file: /cvsroot/src/sys/arch/arm/sunxi/sunxi_rsb.c,v
 retrieving revision 1.1
 diff -u -p -r1.1 sunxi_rsb.c
 --- sunxi/sunxi_rsb.c   2 Jul 2017 18:06:45 -0000       1.1
 +++ sunxi/sunxi_rsb.c   13 Apr 2018 03:35:18 -0000
 @@ -220,8 +220,6 @@ sunxi_rsb_attach(device_t parent, device
         iba.iba_child_devices =3D prop_dictionary_get(devs, =
 "i2c-child-devices");
         if (iba.iba_child_devices)
                 prop_object_retain(iba.iba_child_devices);
 -       else
 -               iba.iba_child_devices =3D prop_array_create();
         prop_object_release(devs);
 =20
         sc->sc_i2cdev =3D config_found_ia(self, "i2cbus", &iba, =
 iicbus_print);
 Index: sunxi/sunxi_twi.c
 =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=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 RCS file: /cvsroot/src/sys/arch/arm/sunxi/sunxi_twi.c,v
 retrieving revision 1.8
 diff -u -p -r1.8 sunxi_twi.c
 --- sunxi/sunxi_twi.c   2 Dec 2017 18:56:18 -0000       1.8
 +++ sunxi/sunxi_twi.c   13 Apr 2018 03:35:18 -0000
 @@ -236,8 +236,6 @@ sunxi_twi_attach(device_t parent, device
         iba.iba_child_devices =3D prop_dictionary_get(devs, =
 "i2c-child-devices");
         if (iba.iba_child_devices)
                 prop_object_retain(iba.iba_child_devices);
 -       else
 -               iba.iba_child_devices =3D prop_array_create();
         prop_object_release(devs);
 =20
         config_found_ia(self, "i2cbus", &iba, iicbus_print);
 


Home | Main Index | Thread Index | Old Index