diff options
Diffstat (limited to 'compat/backport-4.12.c')
-rw-r--r-- | compat/backport-4.12.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/compat/backport-4.12.c b/compat/backport-4.12.c index 2c0053f..8f3e5ab 100644 --- a/compat/backport-4.12.c +++ b/compat/backport-4.12.c @@ -3,6 +3,9 @@ */ #include <net/genetlink.h> #include <net/sock.h> +#ifdef CONFIG_OF +#include <linux/of_device.h> +#endif enum nlmsgerr_attrs { NLMSGERR_ATTR_UNUSED, @@ -275,3 +278,22 @@ int bp_extack_genl_unregister_family(struct genl_family *family) return 0; } EXPORT_SYMBOL_GPL(bp_extack_genl_unregister_family); + +#ifdef CONFIG_OF +/** + * of_device_modalias - Fill buffer with newline terminated modalias string + */ +ssize_t bp_of_device_modalias(struct device *dev, char *str, ssize_t len) +{ + ssize_t sl = of_device_get_modalias(dev, str, len - 2); + if (sl < 0) + return sl; + if (sl > len - 2) + return -ENOMEM; + + str[sl++] = '\n'; + str[sl] = 0; + return sl; +} +EXPORT_SYMBOL_GPL(bp_of_device_modalias); +#endif |