During probe every time driver gets resource it should usually check for error printk some message if it is not -EPROBE_DEFER and return the error. This pattern is simple but requires adding few lines after any resource acquisition code, as a result it is often omitted or implemented only partially. dev_err_probe helps to replace such code sequences with simple call, so code: if (err != -EPROBE_DEFER) dev_err(dev, ...); return err; becomes: return dev_err_probe(dev, err, ...);
Showing the changes to include/linux (1 of 2 files). Show all
Unified · Split
| @@ -962,6 +962,9 @@ void device_link_remove(void *consumer, struct device *supplier); · 961 unmodified lines | |||
| 962 | void device_links_supplier_sync_state_pause(void); | 962 | void device_links_supplier_sync_state_pause(void); |
| 963 | void device_links_supplier_sync_state_resume(void); | 963 | void device_links_supplier_sync_state_resume(void); |
| 964 | 964 | ||
| 965 | extern __printf(3, 4) | ||
| 966 | int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); | ||
| 967 | |||
| 965 | /* Create alias, so I can be autoloaded. */ | 968 | /* Create alias, so I can be autoloaded. */ |
| 966 | #define MODULE_ALIAS_CHARDEV(major,minor) \ | 969 | #define MODULE_ALIAS_CHARDEV(major,minor) \ |
| 967 | MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor)) | 970 | MODULE_ALIAS("char-major-" __stringify(major) "-" __stringify(minor)) |