Hi, We know that the only way to probe an OF driver is when a match is found in the device table. And hence checking for of_match_device is redundant and instead it is better to use of_device_get_match_data() to get the matched data in the probe function. For instance: https://lkml.org/lkml/2018/4/30/66 static int mmio_74xx_gpio_probe(struct platform_device *pdev) { - const struct of_device_id *of_id; struct mmio_74xx_gpio_priv *priv; struct resource *res; void __iomem *dat; int err; - of_id = of_match_device(mmio_74xx_gpio_ids, &pdev->dev); - if (!of_id) - return -ENODEV; - priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; + priv->flags = (uintptr_t)of_device_get_match_data(&pdev->dev); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); dat = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(dat)) return PTR_ERR(dat); - priv->flags = (uintptr_t) of_id->data; - -------------------------------------------------------------------------- In the above example we know of_match_device() is useless since the probe occurs *only* when a match is found and therefore checking again is redundant. But now my question is if this is the case, then when does of_match_device() return NULL ? When is the error handling required ? There are places where it is done as "safe-play" coding as suggested to me by Jonathan previosuly https://lkml.org/lkml/2018/3/16/1245 -- Himanshu Jha Undergraduate Student Department of Electronics & Communication Guru Tegh Bahadur Institute of Technology _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies