iio: adc: ina2xx: avoid NULL pointer dereference on OF device match
authorAlvin Šipraga <alsi@bang-olufsen.dk>
Mon, 19 Jun 2023 14:12:39 +0000 (16:12 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 15 Jul 2023 17:02:02 +0000 (18:02 +0100)
commita41e19cc0d6b6a445a4133170b90271e4a2553dc
tree24b4a562b73d232993dd7e1960df12636ac31181
parent95fb1e7b23bc82130016daefa02a87e83185ca95
iio: adc: ina2xx: avoid NULL pointer dereference on OF device match

The affected lines were resulting in a NULL pointer dereference on our
platform because the device tree contained the following list of
compatible strings:

    power-sensor@40 {
        compatible = "ti,ina232", "ti,ina231";
        ...
    };

Since the driver doesn't declare a compatible string "ti,ina232", the OF
matching succeeds on "ti,ina231". But the I2C device ID info is
populated via the first compatible string, cf. modalias population in
of_i2c_get_board_info(). Since there is no "ina232" entry in the legacy
I2C device ID table either, the struct i2c_device_id *id pointer in the
probe function is NULL.

Fix this by using the already populated type variable instead, which
points to the proper driver data. Since the name is also wanted, add a
generic one to the ina2xx_config table.

Signed-off-by: Alvin Šipraga <alsi@bang-olufsen.dk>
Fixes: c43a102e67db ("iio: ina2xx: add support for TI INA2xx Power Monitors")
Link: https://lore.kernel.org/r/20230619141239.2257392-1-alvin@pqrs.dk
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/ina2xx-adc.c