So, I'll try again ;) This spatch:

@@
identifier match;
expression table, dev;
type T;
@@
-       T match = of_match_device(table, dev);
        ... when != match
-       match->data
+       of_device_get_match_data(dev)
        ... when != match

gives a match for:

$ spatch -sp_file /tmp/minimal.cocci drivers/usb/renesas_usbhs/common.c
...
--- drivers/usb/renesas_usbhs/common.c
+++ /tmp/cocci-output-18078-7b0a6b-common.c
@@ -498,7 +498,6 @@ static struct renesas_usbhs_platform_inf
 {
        struct renesas_usbhs_platform_info *info;
        struct renesas_usbhs_driver_param *dparam;
-       const struct of_device_id *of_id = of_match_device(usbhs_of_match, dev);
        u32 tmp;
        int gpio;
 
@@ -507,7 +506,7 @@ static struct renesas_usbhs_platform_inf
                return NULL;
 
        dparam = &info->driver_param;
-       dparam->type = of_id ? (uintptr_t)of_id->data : 0;
+       dparam->type = of_id ? (uintptr_t)of_device_get_match_data(dev) : 0;
        if (!of_property_read_u32(dev->of_node, "renesas,buswait", &tmp))
                dparam->buswait_bwait = tmp;
        gpio = of_get_named_gpio_flags(dev->of_node, "renesas,enable-gpio", 0,

However, 'of_id' is used as the first argument of the ternary operator. So,
shouldn't '... when != match' prevent this, since 'match' is used before the
replacement?

Thanks,

   Wolfram

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to