Message ID | 20241213223056.2551262-1-peter@korsgaard.com |
---|---|
State | Accepted |
Headers | show |
Series | package/dahdi-linux: add patch to support Linux 6.11+ | expand |
On 13/12/2024 23:30, Peter Korsgaard wrote: > Fixes: > http://autobuild.buildroot.net/results/23f0f7386f7d430c402b24f3b58b1c20c1c8344a/ > > Linux commit d69d8048459 "driver core: have match() callback in struct > bus_type take a const *", which was added in 6.11-rc1, changed the > interface > for sysfs match callback to accept a const struct device_driver, > breaking > the build of dahdi-linux: > > CC [M] build/dahdi-linux-3.3.0/drivers/dahdi/dahdi-sysfs.o > build/dahdi-linux-3.3.0/drivers/dahdi/dahdi-sysfs.c:275:27: error: > initialization > of "int (*)(struct device *, const struct device_driver *)" from > incompatible > pointer type "int (*)(struct device *, struct device_driver *)" > [-Werror=incompatible-pointer-types] > 275 | .match = span_match, > > Add a patch submitted upstream to fix that. > > Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Applied to master, thanks. > --- > ...const-struct-device_device-if-needed.patch | 82 +++++++++++++++++++ > 1 file changed, 82 insertions(+) > create mode 100644 > package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch > > diff --git > a/package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch > b/package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch > new file mode 100644 > index 0000000000..becb82a6d2 > --- /dev/null > +++ > b/package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch > @@ -0,0 +1,82 @@ > +From ce9de5d1bf9d21c088b01ce9da6f7ff02b0d863d Mon Sep 17 00:00:00 2001 > +From: InterLinked1 <24227567+InterLinked1@users.noreply.github.com> > +Date: Mon, 23 Sep 2024 08:04:54 -0400 > +Subject: [PATCH] xpp, sysfs: Use const struct device_device if needed. > + > +Kernel commit d69d804845985c29ab5be5a4b3b1f4787893daf8 > +changed struct device_driver to be const, so make the > +arguments const on kernels 6.11 and newer. > + > +Resolves: #63 > + > +Upstream: https://github.com/asterisk/dahdi-linux/pull/64 > +Signed-off-by: Peter Korsgaard <peter@korsgaard.com> > +--- > + drivers/dahdi/dahdi-sysfs-chan.c | 4 ++++ > + drivers/dahdi/dahdi-sysfs.c | 4 ++++ > + drivers/dahdi/xpp/xbus-sysfs.c | 8 ++++++++ > + 3 files changed, 16 insertions(+) > + > +diff --git a/drivers/dahdi/dahdi-sysfs-chan.c > b/drivers/dahdi/dahdi-sysfs-chan.c > +index 09d7317..35b7bd4 100644 > +--- a/drivers/dahdi/dahdi-sysfs-chan.c > ++++ b/drivers/dahdi/dahdi-sysfs-chan.c > +@@ -220,7 +220,11 @@ static void chan_release(struct device *dev) > + chan_dbg(DEVICES, chan, "SYSFS\n"); > + } > + > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) > ++static int chan_match(struct device *dev, const struct device_driver > *driver) > ++#else > + static int chan_match(struct device *dev, struct device_driver > *driver) > ++#endif /* LINUX_VERSION_CODE */ > + { > + struct dahdi_chan *chan; > + > +diff --git a/drivers/dahdi/dahdi-sysfs.c b/drivers/dahdi/dahdi-sysfs.c > +index 7477ebc..246514c 100644 > +--- a/drivers/dahdi/dahdi-sysfs.c > ++++ b/drivers/dahdi/dahdi-sysfs.c > +@@ -42,7 +42,11 @@ module_param(tools_rootdir, charp, 0444); > + MODULE_PARM_DESC(tools_rootdir, > + "root directory of all tools paths (default /)"); > + > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) > ++static int span_match(struct device *dev, const struct device_driver > *driver) > ++#else > + static int span_match(struct device *dev, struct device_driver > *driver) > ++#endif /* LINUX_VERSION_CODE */ > + { > + return 1; > + } > +diff --git a/drivers/dahdi/xpp/xbus-sysfs.c > b/drivers/dahdi/xpp/xbus-sysfs.c > +index 177048b..f78a15e 100644 > +--- a/drivers/dahdi/xpp/xbus-sysfs.c > ++++ b/drivers/dahdi/xpp/xbus-sysfs.c > +@@ -397,7 +397,11 @@ static struct attribute *xbus_dev_attrs[] = { > + ATTRIBUTE_GROUPS(xbus_dev); > + #endif > + > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) > ++static int astribank_match(struct device *dev, const struct > device_driver *driver) > ++#else > + static int astribank_match(struct device *dev, struct device_driver > *driver) > ++#endif /* LINUX_VERSION_CODE */ > + { > + DBG(DEVICES, "SYSFS MATCH: dev->bus_id = %s, driver->name = %s\n", > + dev_name(dev), driver->name); > +@@ -771,7 +775,11 @@ static DEVICE_ATTR_READER(refcount_xpd_show, dev, > buf) > + return len; > + } > + > ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) > ++static int xpd_match(struct device *dev, const struct device_driver > *driver) > ++#else > + static int xpd_match(struct device *dev, struct device_driver > *driver) > ++#endif /* LINUX_VERSION_CODE */ > + { > + struct xpd_driver *xpd_driver; > + xpd_t *xpd; > +-- > +2.39.5 > + > -- > 2.39.5 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
On 12/13/24 23:30, Peter Korsgaard wrote: > Fixes: > http://autobuild.buildroot.net/results/23f0f7386f7d430c402b24f3b58b1c20c1c8344a/ > > Linux commit d69d8048459 "driver core: have match() callback in struct > bus_type take a const *", which was added in 6.11-rc1, changed the interface > for sysfs match callback to accept a const struct device_driver, breaking > the build of dahdi-linux: > > CC [M] build/dahdi-linux-3.3.0/drivers/dahdi/dahdi-sysfs.o > build/dahdi-linux-3.3.0/drivers/dahdi/dahdi-sysfs.c:275:27: error: initialization > of "int (*)(struct device *, const struct device_driver *)" from incompatible > pointer type "int (*)(struct device *, struct device_driver *)" > [-Werror=incompatible-pointer-types] > 275 | .match = span_match, > > Add a patch submitted upstream to fix that. > > Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Committed to 2024.11.x, thanks.
diff --git a/package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch b/package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch new file mode 100644 index 0000000000..becb82a6d2 --- /dev/null +++ b/package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch @@ -0,0 +1,82 @@ +From ce9de5d1bf9d21c088b01ce9da6f7ff02b0d863d Mon Sep 17 00:00:00 2001 +From: InterLinked1 <24227567+InterLinked1@users.noreply.github.com> +Date: Mon, 23 Sep 2024 08:04:54 -0400 +Subject: [PATCH] xpp, sysfs: Use const struct device_device if needed. + +Kernel commit d69d804845985c29ab5be5a4b3b1f4787893daf8 +changed struct device_driver to be const, so make the +arguments const on kernels 6.11 and newer. + +Resolves: #63 + +Upstream: https://github.com/asterisk/dahdi-linux/pull/64 +Signed-off-by: Peter Korsgaard <peter@korsgaard.com> +--- + drivers/dahdi/dahdi-sysfs-chan.c | 4 ++++ + drivers/dahdi/dahdi-sysfs.c | 4 ++++ + drivers/dahdi/xpp/xbus-sysfs.c | 8 ++++++++ + 3 files changed, 16 insertions(+) + +diff --git a/drivers/dahdi/dahdi-sysfs-chan.c b/drivers/dahdi/dahdi-sysfs-chan.c +index 09d7317..35b7bd4 100644 +--- a/drivers/dahdi/dahdi-sysfs-chan.c ++++ b/drivers/dahdi/dahdi-sysfs-chan.c +@@ -220,7 +220,11 @@ static void chan_release(struct device *dev) + chan_dbg(DEVICES, chan, "SYSFS\n"); + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) ++static int chan_match(struct device *dev, const struct device_driver *driver) ++#else + static int chan_match(struct device *dev, struct device_driver *driver) ++#endif /* LINUX_VERSION_CODE */ + { + struct dahdi_chan *chan; + +diff --git a/drivers/dahdi/dahdi-sysfs.c b/drivers/dahdi/dahdi-sysfs.c +index 7477ebc..246514c 100644 +--- a/drivers/dahdi/dahdi-sysfs.c ++++ b/drivers/dahdi/dahdi-sysfs.c +@@ -42,7 +42,11 @@ module_param(tools_rootdir, charp, 0444); + MODULE_PARM_DESC(tools_rootdir, + "root directory of all tools paths (default /)"); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) ++static int span_match(struct device *dev, const struct device_driver *driver) ++#else + static int span_match(struct device *dev, struct device_driver *driver) ++#endif /* LINUX_VERSION_CODE */ + { + return 1; + } +diff --git a/drivers/dahdi/xpp/xbus-sysfs.c b/drivers/dahdi/xpp/xbus-sysfs.c +index 177048b..f78a15e 100644 +--- a/drivers/dahdi/xpp/xbus-sysfs.c ++++ b/drivers/dahdi/xpp/xbus-sysfs.c +@@ -397,7 +397,11 @@ static struct attribute *xbus_dev_attrs[] = { + ATTRIBUTE_GROUPS(xbus_dev); + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) ++static int astribank_match(struct device *dev, const struct device_driver *driver) ++#else + static int astribank_match(struct device *dev, struct device_driver *driver) ++#endif /* LINUX_VERSION_CODE */ + { + DBG(DEVICES, "SYSFS MATCH: dev->bus_id = %s, driver->name = %s\n", + dev_name(dev), driver->name); +@@ -771,7 +775,11 @@ static DEVICE_ATTR_READER(refcount_xpd_show, dev, buf) + return len; + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 11, 0) ++static int xpd_match(struct device *dev, const struct device_driver *driver) ++#else + static int xpd_match(struct device *dev, struct device_driver *driver) ++#endif /* LINUX_VERSION_CODE */ + { + struct xpd_driver *xpd_driver; + xpd_t *xpd; +-- +2.39.5 +
Fixes: http://autobuild.buildroot.net/results/23f0f7386f7d430c402b24f3b58b1c20c1c8344a/ Linux commit d69d8048459 "driver core: have match() callback in struct bus_type take a const *", which was added in 6.11-rc1, changed the interface for sysfs match callback to accept a const struct device_driver, breaking the build of dahdi-linux: CC [M] build/dahdi-linux-3.3.0/drivers/dahdi/dahdi-sysfs.o build/dahdi-linux-3.3.0/drivers/dahdi/dahdi-sysfs.c:275:27: error: initialization of "int (*)(struct device *, const struct device_driver *)" from incompatible pointer type "int (*)(struct device *, struct device_driver *)" [-Werror=incompatible-pointer-types] 275 | .match = span_match, Add a patch submitted upstream to fix that. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> --- ...const-struct-device_device-if-needed.patch | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 package/dahdi-linux/0003-xpp-sysfs-Use-const-struct-device_device-if-needed.patch