drivers/hv/hyperv_vmbus.h | 6 ++ drivers/hv/vmbus_drv.c | 119 ++++++++++++++++++++++++++++++++++- drivers/uio/uio_hv_generic.c | 39 +++++------- include/linux/hyperv.h | 6 ++ 4 files changed, 147 insertions(+), 23 deletions(-)
Hi,
This patch series aims to address the sysfs creation issue for the ring
buffer by reorganizing the code. Additionally, it updates the ring sysfs
size to accurately reflect the actual ring buffer size, rather than a
fixed static value.
PFB change logs:
Changes since v5:
https://lore.kernel.org/all/20250415164452.170239-1-namjain@linux.microsoft.com/
* Added Reviewed-By tags from Dexuan. Also, addressed minor comments in
commit msg of both patches.
* Missed to remove check for "primary_channel->device_obj->channels_kset" in
hv_create_ring_sysfs in earlier patch, as suggested by Michael. Did it
now.
* Changed type for declaring bin_attrs due to changes introduced by
commit 9bec944506fa ("sysfs: constify attribute_group::bin_attrs") which
merged recently. Did not use bin_attrs_new since another change is in
the queue to change usage of bin_attrs_new to bin_attrs
(sysfs: finalize the constification of 'struct bin_attribute').
Changes since v4:
https://lore.kernel.org/all/20250410060847.82407-1-namjain@linux.microsoft.com/
* Added Reviewed-By and Tested-By tags from Michael.
* Fixed syntax by removing extra space (addressed Greg's comment)
* Rebased to latest linux-next tip
Changes since v3:
https://lore.kernel.org/all/20250328052745.1417-1-namjain@linux.microsoft.com/
* Addressed Michael's comments regarding handling of return value of
sysfs_update_group in uio_hv_generic.
Changes since v2:
https://lore.kernel.org/all/20250318061558.3294-1-namjain@linux.microsoft.com/
Addressed Greg's comments:
* Split the original patch into two.
* Updated the commit message to explain the problem scenario.
* Added comments for new APIs in the kerneldoc format.
* Highlighted potential race conditions and explained why sysfs should not be created in the
driver probe.
* Made minor changes to how the sysfs_update_group return value is handled.
Changes since v1:
https://lore.kernel.org/all/20250225052001.2225-1-namjain@linux.microsoft.com/
* Fixed race condition in setting channel->mmap_ring_buffer by
introducing a new variable for visibility of sysfs (addressed Greg's
comments)
* Used binary attribute fields instead of regular ones for initializing attribute_group.
* Make size of ring sysfs dynamic based on actual ring buffer's size.
* Preferred to keep mmap function in uio_hv_generic to give more control over ring's
mmap functionality, since this is specific to uio_hv_generic driver.
* Remove spurious warning during sysfs creation in uio_hv_generic probe.
* Added comments in a couple of places.
Changes since RFC patch:
https://lore.kernel.org/all/20250214064351.8994-1-namjain@linux.microsoft.com/
* Different approach to solve the problem is proposed (credits to
Michael Kelley).
* Core logic for sysfs creation moved out of uio_hv_generic, to VMBus
drivers where rest of the sysfs attributes for a VMBus channel
are defined. (addressed Greg's comments)
* Used attribute groups instead of sysfs_create* functions, and bundled
ring attribute with other attributes for the channel sysfs.
Error logs:
[ 35.574120] ------------[ cut here ]------------
[ 35.574122] WARNING: CPU: 0 PID: 10 at fs/sysfs/file.c:591 sysfs_create_bin_file+0x81/0x90
[ 35.574168] Workqueue: hv_pri_chan vmbus_add_channel_work
[ 35.574172] RIP: 0010:sysfs_create_bin_file+0x81/0x90
[ 35.574197] Call Trace:
[ 35.574199] <TASK>
[ 35.574200] ? show_regs+0x69/0x80
[ 35.574217] ? __warn+0x8d/0x130
[ 35.574220] ? sysfs_create_bin_file+0x81/0x90
[ 35.574222] ? report_bug+0x182/0x190
[ 35.574225] ? handle_bug+0x5b/0x90
[ 35.574244] ? exc_invalid_op+0x19/0x70
[ 35.574247] ? asm_exc_invalid_op+0x1b/0x20
[ 35.574252] ? sysfs_create_bin_file+0x81/0x90
[ 35.574255] hv_uio_probe+0x1e7/0x410 [uio_hv_generic]
[ 35.574271] vmbus_probe+0x3b/0x90
[ 35.574275] really_probe+0xf4/0x3b0
[ 35.574279] __driver_probe_device+0x8a/0x170
[ 35.574282] driver_probe_device+0x23/0xc0
[ 35.574285] __device_attach_driver+0xb5/0x140
[ 35.574288] ? __pfx___device_attach_driver+0x10/0x10
[ 35.574291] bus_for_each_drv+0x86/0xe0
[ 35.574294] __device_attach+0xc1/0x200
[ 35.574297] device_initial_probe+0x13/0x20
[ 35.574315] bus_probe_device+0x99/0xa0
[ 35.574318] device_add+0x647/0x870
[ 35.574320] ? hrtimer_init+0x28/0x70
[ 35.574323] device_register+0x1b/0x30
[ 35.574326] vmbus_device_register+0x83/0x130
[ 35.574328] vmbus_add_channel_work+0x135/0x1a0
[ 35.574331] process_one_work+0x177/0x340
[ 35.574348] worker_thread+0x2b2/0x3c0
[ 35.574350] kthread+0xe3/0x1f0
[ 35.574353] ? __pfx_worker_thread+0x10/0x10
[ 35.574356] ? __pfx_kthread+0x10/0x10
Naman Jain (2):
uio_hv_generic: Fix sysfs creation path for ring buffer
Drivers: hv: Make the sysfs node size for the ring buffer dynamic
drivers/hv/hyperv_vmbus.h | 6 ++
drivers/hv/vmbus_drv.c | 119 ++++++++++++++++++++++++++++++++++-
drivers/uio/uio_hv_generic.c | 39 +++++-------
include/linux/hyperv.h | 6 ++
4 files changed, 147 insertions(+), 23 deletions(-)
base-commit: 2c9c612abeb38aab0e87d48496de6fd6daafb00b
--
2.34.1
On Thu, Apr 24, 2025 at 11:05:22AM +0530, Naman Jain wrote:
> Hi,
> This patch series aims to address the sysfs creation issue for the ring
> buffer by reorganizing the code. Additionally, it updates the ring sysfs
> size to accurately reflect the actual ring buffer size, rather than a
> fixed static value.
>
> PFB change logs:
>
> Changes since v5:
> https://lore.kernel.org/all/20250415164452.170239-1-namjain@linux.microsoft.com/
> * Added Reviewed-By tags from Dexuan. Also, addressed minor comments in
> commit msg of both patches.
> * Missed to remove check for "primary_channel->device_obj->channels_kset" in
> hv_create_ring_sysfs in earlier patch, as suggested by Michael. Did it
> now.
> * Changed type for declaring bin_attrs due to changes introduced by
> commit 9bec944506fa ("sysfs: constify attribute_group::bin_attrs") which
> merged recently. Did not use bin_attrs_new since another change is in
> the queue to change usage of bin_attrs_new to bin_attrs
> (sysfs: finalize the constification of 'struct bin_attribute').
Please fix up to apply cleanly without build warnings:
drivers/hv/vmbus_drv.c:1893:15: error: initializing 'struct bin_attribute **' with an expression of type 'const struct bin_attribute *const[2]' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
1893 | .bin_attrs = vmbus_chan_bin_attrs,
| ^~~~~~~~~~~~~~~~~~~~
1 error generated.
On 4/25/2025 7:30 PM, Greg Kroah-Hartman wrote:
> On Thu, Apr 24, 2025 at 11:05:22AM +0530, Naman Jain wrote:
>> Hi,
>> This patch series aims to address the sysfs creation issue for the ring
>> buffer by reorganizing the code. Additionally, it updates the ring sysfs
>> size to accurately reflect the actual ring buffer size, rather than a
>> fixed static value.
>>
>> PFB change logs:
>>
>> Changes since v5:
>> https://lore.kernel.org/all/20250415164452.170239-1-namjain@linux.microsoft.com/
>> * Added Reviewed-By tags from Dexuan. Also, addressed minor comments in
>> commit msg of both patches.
>> * Missed to remove check for "primary_channel->device_obj->channels_kset" in
>> hv_create_ring_sysfs in earlier patch, as suggested by Michael. Did it
>> now.
>> * Changed type for declaring bin_attrs due to changes introduced by
>> commit 9bec944506fa ("sysfs: constify attribute_group::bin_attrs") which
>> merged recently. Did not use bin_attrs_new since another change is in
>> the queue to change usage of bin_attrs_new to bin_attrs
>> (sysfs: finalize the constification of 'struct bin_attribute').
>
> Please fix up to apply cleanly without build warnings:
>
> drivers/hv/vmbus_drv.c:1893:15: error: initializing 'struct bin_attribute **' with an expression of type 'const struct bin_attribute *const[2]' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
> 1893 | .bin_attrs = vmbus_chan_bin_attrs,
> | ^~~~~~~~~~~~~~~~~~~~
> 1 error generated.
Hi Greg,
I tried reproducing this error but could not see it. Should I rebase the
change to some other tree or use some specific config option, gcc
version, compilation flag etc.?
I tried the following:
* Rebased to latest linux-next tip with below base commit:
393d0c54cae31317deaa9043320c5fd9454deabc
* Regular compilation with gcc: make -j8
* extra flags:
make -j8 EXTRA_CFLAGS="-Wall -O2"
make -j8
EXTRA_CFLAGS="-Wincompatible-pointer-types-discards-qualifiers -Werror"
* Tried gcc 11.4, 13.3
* Tried clang/LLVM with version 18.1.3 : make LLVM=1
BTW I had to edit the type for bin_attrs as this change got merged recently:
9bec944506fa ("sysfs: constify attribute_group::bin_attrs")
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index 576b8b3c60af..f418aae4f113 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -107,7 +107,7 @@ struct attribute_group {
int);
struct attribute **attrs;
union {
- struct bin_attribute **bin_attrs;
+ const struct bin_attribute *const *bin_attrs;
const struct bin_attribute *const *bin_attrs_new;
};
};
Regards,
Naman
On Mon, Apr 28, 2025 at 02:37:22PM +0530, Naman Jain wrote:
>
>
> On 4/25/2025 7:30 PM, Greg Kroah-Hartman wrote:
> > On Thu, Apr 24, 2025 at 11:05:22AM +0530, Naman Jain wrote:
> > > Hi,
> > > This patch series aims to address the sysfs creation issue for the ring
> > > buffer by reorganizing the code. Additionally, it updates the ring sysfs
> > > size to accurately reflect the actual ring buffer size, rather than a
> > > fixed static value.
> > >
> > > PFB change logs:
> > >
> > > Changes since v5:
> > > https://lore.kernel.org/all/20250415164452.170239-1-namjain@linux.microsoft.com/
> > > * Added Reviewed-By tags from Dexuan. Also, addressed minor comments in
> > > commit msg of both patches.
> > > * Missed to remove check for "primary_channel->device_obj->channels_kset" in
> > > hv_create_ring_sysfs in earlier patch, as suggested by Michael. Did it
> > > now.
> > > * Changed type for declaring bin_attrs due to changes introduced by
> > > commit 9bec944506fa ("sysfs: constify attribute_group::bin_attrs") which
> > > merged recently. Did not use bin_attrs_new since another change is in
> > > the queue to change usage of bin_attrs_new to bin_attrs
> > > (sysfs: finalize the constification of 'struct bin_attribute').
> >
> > Please fix up to apply cleanly without build warnings:
> >
> > drivers/hv/vmbus_drv.c:1893:15: error: initializing 'struct bin_attribute **' with an expression of type 'const struct bin_attribute *const[2]' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
> > 1893 | .bin_attrs = vmbus_chan_bin_attrs,
> > | ^~~~~~~~~~~~~~~~~~~~
> > 1 error generated.
>
> Hi Greg,
> I tried reproducing this error but could not see it. Should I rebase the
> change to some other tree or use some specific config option, gcc version,
> compilation flag etc.?
>
> I tried the following:
> * Rebased to latest linux-next tip with below base commit:
> 393d0c54cae31317deaa9043320c5fd9454deabc
> * Regular compilation with gcc: make -j8
> * extra flags:
> make -j8 EXTRA_CFLAGS="-Wall -O2"
> make -j8 EXTRA_CFLAGS="-Wincompatible-pointer-types-discards-qualifiers
> -Werror"
> * Tried gcc 11.4, 13.3
> * Tried clang/LLVM with version 18.1.3 : make LLVM=1
I tried this against my char-misc-linus branch (which is pretty much
just 6.15.0-rc4 plus some iio patches), and it fails with that error
above.
> BTW I had to edit the type for bin_attrs as this change got merged recently:
> 9bec944506fa ("sysfs: constify attribute_group::bin_attrs")
>
> diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
> index 576b8b3c60af..f418aae4f113 100644
> --- a/include/linux/sysfs.h
> +++ b/include/linux/sysfs.h
> @@ -107,7 +107,7 @@ struct attribute_group {
> int);
> struct attribute **attrs;
> union {
> - struct bin_attribute **bin_attrs;
> + const struct bin_attribute *const *bin_attrs;
> const struct bin_attribute *const *bin_attrs_new;
> };
> };
That commit is not in my char-misc branches, that's coming from
somewhere else.
thanks,
greg k-h
On 5/1/2025 9:35 PM, Greg Kroah-Hartman wrote:
> On Mon, Apr 28, 2025 at 02:37:22PM +0530, Naman Jain wrote:
>>
>>
>> On 4/25/2025 7:30 PM, Greg Kroah-Hartman wrote:
>>> On Thu, Apr 24, 2025 at 11:05:22AM +0530, Naman Jain wrote:
>>>> Hi,
>>>> This patch series aims to address the sysfs creation issue for the ring
>>>> buffer by reorganizing the code. Additionally, it updates the ring sysfs
>>>> size to accurately reflect the actual ring buffer size, rather than a
>>>> fixed static value.
>>>>
>>>> PFB change logs:
>>>>
>>>> Changes since v5:
>>>> https://lore.kernel.org/all/20250415164452.170239-1-namjain@linux.microsoft.com/
>>>> * Added Reviewed-By tags from Dexuan. Also, addressed minor comments in
>>>> commit msg of both patches.
>>>> * Missed to remove check for "primary_channel->device_obj->channels_kset" in
>>>> hv_create_ring_sysfs in earlier patch, as suggested by Michael. Did it
>>>> now.
>>>> * Changed type for declaring bin_attrs due to changes introduced by
>>>> commit 9bec944506fa ("sysfs: constify attribute_group::bin_attrs") which
>>>> merged recently. Did not use bin_attrs_new since another change is in
>>>> the queue to change usage of bin_attrs_new to bin_attrs
>>>> (sysfs: finalize the constification of 'struct bin_attribute').
>>>
>>> Please fix up to apply cleanly without build warnings:
>>>
>>> drivers/hv/vmbus_drv.c:1893:15: error: initializing 'struct bin_attribute **' with an expression of type 'const struct bin_attribute *const[2]' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
>>> 1893 | .bin_attrs = vmbus_chan_bin_attrs,
>>> | ^~~~~~~~~~~~~~~~~~~~
>>> 1 error generated.
>>
>> Hi Greg,
>> I tried reproducing this error but could not see it. Should I rebase the
>> change to some other tree or use some specific config option, gcc version,
>> compilation flag etc.?
>>
>> I tried the following:
>> * Rebased to latest linux-next tip with below base commit:
>> 393d0c54cae31317deaa9043320c5fd9454deabc
>> * Regular compilation with gcc: make -j8
>> * extra flags:
>> make -j8 EXTRA_CFLAGS="-Wall -O2"
>> make -j8 EXTRA_CFLAGS="-Wincompatible-pointer-types-discards-qualifiers
>> -Werror"
>> * Tried gcc 11.4, 13.3
>> * Tried clang/LLVM with version 18.1.3 : make LLVM=1
>
> I tried this against my char-misc-linus branch (which is pretty much
> just 6.15.0-rc4 plus some iio patches), and it fails with that error
> above.
>
>> BTW I had to edit the type for bin_attrs as this change got merged recently:
>> 9bec944506fa ("sysfs: constify attribute_group::bin_attrs")
>>
>> diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
>> index 576b8b3c60af..f418aae4f113 100644
>> --- a/include/linux/sysfs.h
>> +++ b/include/linux/sysfs.h
>> @@ -107,7 +107,7 @@ struct attribute_group {
>> int);
>> struct attribute **attrs;
>> union {
>> - struct bin_attribute **bin_attrs;
>> + const struct bin_attribute *const *bin_attrs;
>> const struct bin_attribute *const *bin_attrs_new;
>> };
>> };
>
> That commit is not in my char-misc branches, that's coming from
> somewhere else.
>
> thanks,
>
> greg k-h
Hi Greg,
I can send a patch based on char-misc/6.15.0-rc4 which does not have
this patch, but I am worried that it will cause compilation issues when
your branch is merged with linux-next since this change is already there
in linux-next. Do you want me to proceed with sending a patch on 6.15.0-rc4?
Here are more details of that patch:
"""
sysfs: constify attribute_group::bin_attrs
All users of this field have been migrated to bin_attrs_new.
It can now be constified.
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Link:
https://lore.kernel.org/r/20250313-sysfs-const-bin_attr-final-v2-2-96284e1e88ce@weissschuh.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
"""
Regards,
Naman
On Fri, May 02, 2025 at 11:31:03AM +0530, Naman Jain wrote:
>
>
> On 5/1/2025 9:35 PM, Greg Kroah-Hartman wrote:
> > On Mon, Apr 28, 2025 at 02:37:22PM +0530, Naman Jain wrote:
> > >
> > >
> > > On 4/25/2025 7:30 PM, Greg Kroah-Hartman wrote:
> > > > On Thu, Apr 24, 2025 at 11:05:22AM +0530, Naman Jain wrote:
> > > > > Hi,
> > > > > This patch series aims to address the sysfs creation issue for the ring
> > > > > buffer by reorganizing the code. Additionally, it updates the ring sysfs
> > > > > size to accurately reflect the actual ring buffer size, rather than a
> > > > > fixed static value.
> > > > >
> > > > > PFB change logs:
> > > > >
> > > > > Changes since v5:
> > > > > https://lore.kernel.org/all/20250415164452.170239-1-namjain@linux.microsoft.com/
> > > > > * Added Reviewed-By tags from Dexuan. Also, addressed minor comments in
> > > > > commit msg of both patches.
> > > > > * Missed to remove check for "primary_channel->device_obj->channels_kset" in
> > > > > hv_create_ring_sysfs in earlier patch, as suggested by Michael. Did it
> > > > > now.
> > > > > * Changed type for declaring bin_attrs due to changes introduced by
> > > > > commit 9bec944506fa ("sysfs: constify attribute_group::bin_attrs") which
> > > > > merged recently. Did not use bin_attrs_new since another change is in
> > > > > the queue to change usage of bin_attrs_new to bin_attrs
> > > > > (sysfs: finalize the constification of 'struct bin_attribute').
> > > >
> > > > Please fix up to apply cleanly without build warnings:
> > > >
> > > > drivers/hv/vmbus_drv.c:1893:15: error: initializing 'struct bin_attribute **' with an expression of type 'const struct bin_attribute *const[2]' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
> > > > 1893 | .bin_attrs = vmbus_chan_bin_attrs,
> > > > | ^~~~~~~~~~~~~~~~~~~~
> > > > 1 error generated.
> > >
> > > Hi Greg,
> > > I tried reproducing this error but could not see it. Should I rebase the
> > > change to some other tree or use some specific config option, gcc version,
> > > compilation flag etc.?
> > >
> > > I tried the following:
> > > * Rebased to latest linux-next tip with below base commit:
> > > 393d0c54cae31317deaa9043320c5fd9454deabc
> > > * Regular compilation with gcc: make -j8
> > > * extra flags:
> > > make -j8 EXTRA_CFLAGS="-Wall -O2"
> > > make -j8 EXTRA_CFLAGS="-Wincompatible-pointer-types-discards-qualifiers
> > > -Werror"
> > > * Tried gcc 11.4, 13.3
> > > * Tried clang/LLVM with version 18.1.3 : make LLVM=1
> >
> > I tried this against my char-misc-linus branch (which is pretty much
> > just 6.15.0-rc4 plus some iio patches), and it fails with that error
> > above.
> >
> > > BTW I had to edit the type for bin_attrs as this change got merged recently:
> > > 9bec944506fa ("sysfs: constify attribute_group::bin_attrs")
> > >
> > > diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
> > > index 576b8b3c60af..f418aae4f113 100644
> > > --- a/include/linux/sysfs.h
> > > +++ b/include/linux/sysfs.h
> > > @@ -107,7 +107,7 @@ struct attribute_group {
> > > int);
> > > struct attribute **attrs;
> > > union {
> > > - struct bin_attribute **bin_attrs;
> > > + const struct bin_attribute *const *bin_attrs;
> > > const struct bin_attribute *const *bin_attrs_new;
> > > };
> > > };
> >
> > That commit is not in my char-misc branches, that's coming from
> > somewhere else.
> >
> > thanks,
> >
> > greg k-h
>
> Hi Greg,
>
> I can send a patch based on char-misc/6.15.0-rc4 which does not have this
> patch, but I am worried that it will cause compilation issues when your
> branch is merged with linux-next since this change is already there in
> linux-next. Do you want me to proceed with sending a patch on 6.15.0-rc4?
Yes, because you want this fix in 6.15-final, right?
> Here are more details of that patch:
>
> """
> sysfs: constify attribute_group::bin_attrs
> All users of this field have been migrated to bin_attrs_new.
> It can now be constified.
>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> Link: https://lore.kernel.org/r/20250313-sysfs-const-bin_attr-final-v2-2-96284e1e88ce@weissschuh.net
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> """
I know that patch, I will deal with that in linux-next when needed, you
shouldn't be worrying about it. I'm more concerned as to why your patch
was not being tested against Linus's tree if you expected it to be in
the latest release and backported everywhere as it you asked it to be.
thanks,
greg k-h
On 5/2/2025 11:43 AM, Greg Kroah-Hartman wrote:
> On Fri, May 02, 2025 at 11:31:03AM +0530, Naman Jain wrote:
>>
>>
>> On 5/1/2025 9:35 PM, Greg Kroah-Hartman wrote:
>>> On Mon, Apr 28, 2025 at 02:37:22PM +0530, Naman Jain wrote:
>>>>
>>>>
>>>> On 4/25/2025 7:30 PM, Greg Kroah-Hartman wrote:
>>>>> On Thu, Apr 24, 2025 at 11:05:22AM +0530, Naman Jain wrote:
>>>>>> Hi,
>>>>>> This patch series aims to address the sysfs creation issue for the ring
>>>>>> buffer by reorganizing the code. Additionally, it updates the ring sysfs
>>>>>> size to accurately reflect the actual ring buffer size, rather than a
>>>>>> fixed static value.
>>>>>>
>>>>>> PFB change logs:
>>>>>>
>>>>>> Changes since v5:
>>>>>> https://lore.kernel.org/all/20250415164452.170239-1-namjain@linux.microsoft.com/
>>>>>> * Added Reviewed-By tags from Dexuan. Also, addressed minor comments in
>>>>>> commit msg of both patches.
>>>>>> * Missed to remove check for "primary_channel->device_obj->channels_kset" in
>>>>>> hv_create_ring_sysfs in earlier patch, as suggested by Michael. Did it
>>>>>> now.
>>>>>> * Changed type for declaring bin_attrs due to changes introduced by
>>>>>> commit 9bec944506fa ("sysfs: constify attribute_group::bin_attrs") which
>>>>>> merged recently. Did not use bin_attrs_new since another change is in
>>>>>> the queue to change usage of bin_attrs_new to bin_attrs
>>>>>> (sysfs: finalize the constification of 'struct bin_attribute').
>>>>>
>>>>> Please fix up to apply cleanly without build warnings:
>>>>>
>>>>> drivers/hv/vmbus_drv.c:1893:15: error: initializing 'struct bin_attribute **' with an expression of type 'const struct bin_attribute *const[2]' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
>>>>> 1893 | .bin_attrs = vmbus_chan_bin_attrs,
>>>>> | ^~~~~~~~~~~~~~~~~~~~
>>>>> 1 error generated.
>>>>
>>>> Hi Greg,
>>>> I tried reproducing this error but could not see it. Should I rebase the
>>>> change to some other tree or use some specific config option, gcc version,
>>>> compilation flag etc.?
>>>>
>>>> I tried the following:
>>>> * Rebased to latest linux-next tip with below base commit:
>>>> 393d0c54cae31317deaa9043320c5fd9454deabc
>>>> * Regular compilation with gcc: make -j8
>>>> * extra flags:
>>>> make -j8 EXTRA_CFLAGS="-Wall -O2"
>>>> make -j8 EXTRA_CFLAGS="-Wincompatible-pointer-types-discards-qualifiers
>>>> -Werror"
>>>> * Tried gcc 11.4, 13.3
>>>> * Tried clang/LLVM with version 18.1.3 : make LLVM=1
>>>
>>> I tried this against my char-misc-linus branch (which is pretty much
>>> just 6.15.0-rc4 plus some iio patches), and it fails with that error
>>> above.
>>>
>>>> BTW I had to edit the type for bin_attrs as this change got merged recently:
>>>> 9bec944506fa ("sysfs: constify attribute_group::bin_attrs")
>>>>
>>>> diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
>>>> index 576b8b3c60af..f418aae4f113 100644
>>>> --- a/include/linux/sysfs.h
>>>> +++ b/include/linux/sysfs.h
>>>> @@ -107,7 +107,7 @@ struct attribute_group {
>>>> int);
>>>> struct attribute **attrs;
>>>> union {
>>>> - struct bin_attribute **bin_attrs;
>>>> + const struct bin_attribute *const *bin_attrs;
>>>> const struct bin_attribute *const *bin_attrs_new;
>>>> };
>>>> };
>>>
>>> That commit is not in my char-misc branches, that's coming from
>>> somewhere else.
>>>
>>> thanks,
>>>
>>> greg k-h
>>
>> Hi Greg,
>>
>> I can send a patch based on char-misc/6.15.0-rc4 which does not have this
>> patch, but I am worried that it will cause compilation issues when your
>> branch is merged with linux-next since this change is already there in
>> linux-next. Do you want me to proceed with sending a patch on 6.15.0-rc4?
>
> Yes, because you want this fix in 6.15-final, right?
>
>> Here are more details of that patch:
>>
>> """
>> sysfs: constify attribute_group::bin_attrs
>> All users of this field have been migrated to bin_attrs_new.
>> It can now be constified.
>>
>> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
>> Link: https://lore.kernel.org/r/20250313-sysfs-const-bin_attr-final-v2-2-96284e1e88ce@weissschuh.net
>> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>
>> """
>
> I know that patch, I will deal with that in linux-next when needed, you
> shouldn't be worrying about it. I'm more concerned as to why your patch
> was not being tested against Linus's tree if you expected it to be in
> the latest release and backported everywhere as it you asked it to be.
>
> thanks,
>
> greg k-h
Sure, thanks. I'll rebase it to 6.15.0-rc4 and send the next version.
Regards,
Naman
© 2016 - 2026 Red Hat, Inc.