summaryrefslogtreecommitdiff
path: root/compat/backport-4.12.c
diff options
context:
space:
mode:
Diffstat (limited to 'compat/backport-4.12.c')
-rw-r--r--compat/backport-4.12.c22
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