public inbox for kernel-janitors@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] configfs: Constify some fileds in struct config_item_type
@ 2025-10-25 11:15 ` Christophe JAILLET
  2025-10-25 11:15   ` [PATCH 1/2] configfs: Constify ct_group_ops " Christophe JAILLET
                     ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Christophe JAILLET @ 2025-10-25 11:15 UTC (permalink / raw)
  To: a.hindborg, leitao; +Cc: linux-kernel, kernel-janitors, Christophe JAILLET

These 2 patches constify ct_item_ops and ct_group_ops in struct
config_item_type.

When/if they are applied, I'll send some patchess in each subsystem to
constify the corresponding structures.

This 2 steps approach is IMHO easier way to make these changes.
This avoids long series and cover-letter/first patches sent to many
maintainers and lists.

However, if you prefer things to be done in the same serie, I can do
that as well.

Christophe JAILLET (2):
  configfs: Constify ct_group_ops in struct config_item_type
  configfs: Constify ct_item_ops in struct config_item_type

 fs/configfs/dir.c        | 2 +-
 fs/configfs/file.c       | 2 +-
 include/linux/configfs.h | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

-- 
2.51.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/2] configfs: Constify ct_group_ops in struct config_item_type
  2025-10-25 11:15 ` [PATCH 0/2] configfs: Constify some fileds in struct config_item_type Christophe JAILLET
@ 2025-10-25 11:15   ` Christophe JAILLET
  2025-11-04 10:12     ` Breno Leitao
  2025-10-25 11:15   ` [PATCH 2/2] configfs: Constify ct_item_ops " Christophe JAILLET
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Christophe JAILLET @ 2025-10-25 11:15 UTC (permalink / raw)
  To: a.hindborg, leitao; +Cc: linux-kernel, kernel-janitors, Christophe JAILLET

Make 'ct_group_ops' const in struct config_item_type.
This allows constification of many structures which hold some function
pointers.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Compile tested only files that explicitly use ct_group_ops.

The script used for that is:
  while IFS= read -r -d '' file; do
    obj="${file%.c}.o" ; echo -e "\nCompiling $file" ; make "$obj"
  done < <(git grep --name-only -z ct_group_ops '*.c')
---
 fs/configfs/dir.c        | 2 +-
 include/linux/configfs.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 81f4f06bc87e..4bcd14b3434c 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -598,7 +598,7 @@ static void detach_attrs(struct config_item * item)
 static int populate_attrs(struct config_item *item)
 {
 	const struct config_item_type *t = item->ci_type;
-	struct configfs_group_operations *ops;
+	const struct configfs_group_operations *ops;
 	struct configfs_attribute *attr;
 	struct configfs_bin_attribute *bin_attr;
 	int error = 0;
diff --git a/include/linux/configfs.h b/include/linux/configfs.h
index 698520b1bfdb..31a7d7124460 100644
--- a/include/linux/configfs.h
+++ b/include/linux/configfs.h
@@ -65,7 +65,7 @@ extern void config_item_put(struct config_item *);
 struct config_item_type {
 	struct module				*ct_owner;
 	struct configfs_item_operations		*ct_item_ops;
-	struct configfs_group_operations	*ct_group_ops;
+	const struct configfs_group_operations	*ct_group_ops;
 	struct configfs_attribute		**ct_attrs;
 	struct configfs_bin_attribute		**ct_bin_attrs;
 };
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/2] configfs: Constify ct_item_ops in struct config_item_type
  2025-10-25 11:15 ` [PATCH 0/2] configfs: Constify some fileds in struct config_item_type Christophe JAILLET
  2025-10-25 11:15   ` [PATCH 1/2] configfs: Constify ct_group_ops " Christophe JAILLET
@ 2025-10-25 11:15   ` Christophe JAILLET
  2025-11-04 10:10     ` Breno Leitao
  2025-10-29  7:18   ` [PATCH 0/2] configfs: Constify some fileds " Andreas Hindborg
  2025-11-27 11:12   ` Andreas Hindborg
  3 siblings, 1 reply; 9+ messages in thread
From: Christophe JAILLET @ 2025-10-25 11:15 UTC (permalink / raw)
  To: a.hindborg, leitao; +Cc: linux-kernel, kernel-janitors, Christophe JAILLET

Make 'ct_item_ops' const in struct config_item_type.
This allows constification of many structures which hold some function
pointers.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Compile tested only files that explicitly use ct_group_ops.

The script used for that is:
  while IFS= read -r -d '' file; do
    obj="${file%.c}.o" ; echo -e "\nCompiling $file" ; make "$obj"
  done < <(git grep --name-only -z ct_item_ops '*.c')
---
 fs/configfs/file.c       | 2 +-
 include/linux/configfs.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/configfs/file.c b/fs/configfs/file.c
index 0ad32150611e..affe4742bbb5 100644
--- a/fs/configfs/file.c
+++ b/fs/configfs/file.c
@@ -30,7 +30,7 @@ struct configfs_buffer {
 	size_t			count;
 	loff_t			pos;
 	char			* page;
-	struct configfs_item_operations	* ops;
+	const struct configfs_item_operations	*ops;
 	struct mutex		mutex;
 	int			needs_read_fill;
 	bool			read_in_progress;
diff --git a/include/linux/configfs.h b/include/linux/configfs.h
index 31a7d7124460..ef65c75beeaa 100644
--- a/include/linux/configfs.h
+++ b/include/linux/configfs.h
@@ -64,7 +64,7 @@ extern void config_item_put(struct config_item *);
 
 struct config_item_type {
 	struct module				*ct_owner;
-	struct configfs_item_operations		*ct_item_ops;
+	const struct configfs_item_operations	*ct_item_ops;
 	const struct configfs_group_operations	*ct_group_ops;
 	struct configfs_attribute		**ct_attrs;
 	struct configfs_bin_attribute		**ct_bin_attrs;
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/2] configfs: Constify some fileds in struct config_item_type
  2025-10-25 11:15 ` [PATCH 0/2] configfs: Constify some fileds in struct config_item_type Christophe JAILLET
  2025-10-25 11:15   ` [PATCH 1/2] configfs: Constify ct_group_ops " Christophe JAILLET
  2025-10-25 11:15   ` [PATCH 2/2] configfs: Constify ct_item_ops " Christophe JAILLET
@ 2025-10-29  7:18   ` Andreas Hindborg
  2025-11-01 13:13     ` Christophe JAILLET
  2025-11-27 11:12   ` Andreas Hindborg
  3 siblings, 1 reply; 9+ messages in thread
From: Andreas Hindborg @ 2025-10-29  7:18 UTC (permalink / raw)
  To: Christophe JAILLET, leitao
  Cc: linux-kernel, kernel-janitors, Christophe JAILLET

"Christophe JAILLET" <christophe.jaillet@wanadoo.fr> writes:

> These 2 patches constify ct_item_ops and ct_group_ops in struct
> config_item_type.
>
> When/if they are applied, I'll send some patchess in each subsystem to
> constify the corresponding structures.
>
> This 2 steps approach is IMHO easier way to make these changes.
> This avoids long series and cover-letter/first patches sent to many
> maintainers and lists.
>
> However, if you prefer things to be done in the same serie, I can do
> that as well.

Looks good to me. Please also include a patch to fix up the rust
bindings in the 2nd step:

diff --git a/rust/kernel/configfs.rs b/rust/kernel/configfs.rs
index 318a2f073d1c7..468c8c4170d5e 100644
--- a/rust/kernel/configfs.rs
+++ b/rust/kernel/configfs.rs
@@ -755,8 +755,8 @@ pub const fn new_with_child_ctor<const N: usize, Child>(
                 Self {
                     item_type: Opaque::new(bindings::config_item_type {
                         ct_owner: owner.as_ptr(),
-                        ct_group_ops: GroupOperationsVTable::<Data, Child>::vtable_ptr().cast_mut(),
-                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr().cast_mut(),
+                        ct_group_ops: GroupOperationsVTable::<Data, Child>::vtable_ptr(),
+                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr(),
                         ct_attrs: core::ptr::from_ref(attributes).cast_mut().cast(),
                         ct_bin_attrs: core::ptr::null_mut(),
                     }),
@@ -773,7 +773,7 @@ pub const fn new<const N: usize>(
                     item_type: Opaque::new(bindings::config_item_type {
                         ct_owner: owner.as_ptr(),
                         ct_group_ops: core::ptr::null_mut(),
-                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr().cast_mut(),
+                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr(),
                         ct_attrs: core::ptr::from_ref(attributes).cast_mut().cast(),
                         ct_bin_attrs: core::ptr::null_mut(),
                     }),



Best regards,
Andreas Hindborg



^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/2] configfs: Constify some fileds in struct config_item_type
  2025-10-29  7:18   ` [PATCH 0/2] configfs: Constify some fileds " Andreas Hindborg
@ 2025-11-01 13:13     ` Christophe JAILLET
  2025-11-01 15:02       ` Andreas Hindborg
  0 siblings, 1 reply; 9+ messages in thread
From: Christophe JAILLET @ 2025-11-01 13:13 UTC (permalink / raw)
  To: Andreas Hindborg, leitao; +Cc: linux-kernel, kernel-janitors

Le 29/10/2025 à 08:18, Andreas Hindborg a écrit :
> "Christophe JAILLET" <christophe.jaillet@wanadoo.fr> writes:
> 
>> These 2 patches constify ct_item_ops and ct_group_ops in struct
>> config_item_type.
>>
>> When/if they are applied, I'll send some patchess in each subsystem to
>> constify the corresponding structures.
>>
>> This 2 steps approach is IMHO easier way to make these changes.
>> This avoids long series and cover-letter/first patches sent to many
>> maintainers and lists.
>>
>> However, if you prefer things to be done in the same serie, I can do
>> that as well.
> 
> Looks good to me. Please also include a patch to fix up the rust
> bindings in the 2nd step:
> 
> diff --git a/rust/kernel/configfs.rs b/rust/kernel/configfs.rs
> index 318a2f073d1c7..468c8c4170d5e 100644
> --- a/rust/kernel/configfs.rs
> +++ b/rust/kernel/configfs.rs
> @@ -755,8 +755,8 @@ pub const fn new_with_child_ctor<const N: usize, Child>(
>                   Self {
>                       item_type: Opaque::new(bindings::config_item_type {
>                           ct_owner: owner.as_ptr(),
> -                        ct_group_ops: GroupOperationsVTable::<Data, Child>::vtable_ptr().cast_mut(),
> -                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr().cast_mut(),
> +                        ct_group_ops: GroupOperationsVTable::<Data, Child>::vtable_ptr(),
> +                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr(),
>                           ct_attrs: core::ptr::from_ref(attributes).cast_mut().cast(),
>                           ct_bin_attrs: core::ptr::null_mut(),
>                       }),
> @@ -773,7 +773,7 @@ pub const fn new<const N: usize>(
>                       item_type: Opaque::new(bindings::config_item_type {
>                           ct_owner: owner.as_ptr(),
>                           ct_group_ops: core::ptr::null_mut(),
> -                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr().cast_mut(),
> +                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr(),
>                           ct_attrs: core::ptr::from_ref(attributes).cast_mut().cast(),
>                           ct_bin_attrs: core::ptr::null_mut(),
>                       }),
> 

I'm not a big fan of mixing c and rs files updates in the same commit.
And, as I don't know rust, I'm reluctant to changes things that I don't 
understand and I'm not able to at least compile test.

Can s.o. send this change as a follow-up patch?

CJ

> 
> 
> Best regards,
> Andreas Hindborg
> 
> 
> 
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/2] configfs: Constify some fileds in struct config_item_type
  2025-11-01 13:13     ` Christophe JAILLET
@ 2025-11-01 15:02       ` Andreas Hindborg
  0 siblings, 0 replies; 9+ messages in thread
From: Andreas Hindborg @ 2025-11-01 15:02 UTC (permalink / raw)
  To: Christophe JAILLET, leitao; +Cc: linux-kernel, kernel-janitors

"Christophe JAILLET" <christophe.jaillet@wanadoo.fr> writes:

> Le 29/10/2025 à 08:18, Andreas Hindborg a écrit :
>> "Christophe JAILLET" <christophe.jaillet@wanadoo.fr> writes:
>>
>>> These 2 patches constify ct_item_ops and ct_group_ops in struct
>>> config_item_type.
>>>
>>> When/if they are applied, I'll send some patchess in each subsystem to
>>> constify the corresponding structures.
>>>
>>> This 2 steps approach is IMHO easier way to make these changes.
>>> This avoids long series and cover-letter/first patches sent to many
>>> maintainers and lists.
>>>
>>> However, if you prefer things to be done in the same serie, I can do
>>> that as well.
>>
>> Looks good to me. Please also include a patch to fix up the rust
>> bindings in the 2nd step:
>>
>> diff --git a/rust/kernel/configfs.rs b/rust/kernel/configfs.rs
>> index 318a2f073d1c7..468c8c4170d5e 100644
>> --- a/rust/kernel/configfs.rs
>> +++ b/rust/kernel/configfs.rs
>> @@ -755,8 +755,8 @@ pub const fn new_with_child_ctor<const N: usize, Child>(
>>                   Self {
>>                       item_type: Opaque::new(bindings::config_item_type {
>>                           ct_owner: owner.as_ptr(),
>> -                        ct_group_ops: GroupOperationsVTable::<Data, Child>::vtable_ptr().cast_mut(),
>> -                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr().cast_mut(),
>> +                        ct_group_ops: GroupOperationsVTable::<Data, Child>::vtable_ptr(),
>> +                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr(),
>>                           ct_attrs: core::ptr::from_ref(attributes).cast_mut().cast(),
>>                           ct_bin_attrs: core::ptr::null_mut(),
>>                       }),
>> @@ -773,7 +773,7 @@ pub const fn new<const N: usize>(
>>                       item_type: Opaque::new(bindings::config_item_type {
>>                           ct_owner: owner.as_ptr(),
>>                           ct_group_ops: core::ptr::null_mut(),
>> -                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr().cast_mut(),
>> +                        ct_item_ops: ItemOperationsVTable::<$tpe, Data>::vtable_ptr(),
>>                           ct_attrs: core::ptr::from_ref(attributes).cast_mut().cast(),
>>                           ct_bin_attrs: core::ptr::null_mut(),
>>                       }),
>>
>
> I'm not a big fan of mixing c and rs files updates in the same commit.
> And, as I don't know rust, I'm reluctant to changes things that I don't
> understand and I'm not able to at least compile test.

This is why I gave you the diff.

>
> Can s.o. send this change as a follow-up patch?

Sure, I can do that.


Best regards,
Andreas Hindborg




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/2] configfs: Constify ct_item_ops in struct config_item_type
  2025-10-25 11:15   ` [PATCH 2/2] configfs: Constify ct_item_ops " Christophe JAILLET
@ 2025-11-04 10:10     ` Breno Leitao
  0 siblings, 0 replies; 9+ messages in thread
From: Breno Leitao @ 2025-11-04 10:10 UTC (permalink / raw)
  To: Christophe JAILLET; +Cc: a.hindborg, linux-kernel, kernel-janitors

On Sat, Oct 25, 2025 at 01:15:38PM +0200, Christophe JAILLET wrote:
> Make 'ct_item_ops' const in struct config_item_type.
> This allows constification of many structures which hold some function
> pointers.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Breno Leitao <leitao@debian.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/2] configfs: Constify ct_group_ops in struct config_item_type
  2025-10-25 11:15   ` [PATCH 1/2] configfs: Constify ct_group_ops " Christophe JAILLET
@ 2025-11-04 10:12     ` Breno Leitao
  0 siblings, 0 replies; 9+ messages in thread
From: Breno Leitao @ 2025-11-04 10:12 UTC (permalink / raw)
  To: Christophe JAILLET; +Cc: a.hindborg, linux-kernel, kernel-janitors

On Sat, Oct 25, 2025 at 01:15:37PM +0200, Christophe JAILLET wrote:
> Make 'ct_group_ops' const in struct config_item_type.
> This allows constification of many structures which hold some function
> pointers.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Breno Leitao <leitao@debian.org>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/2] configfs: Constify some fileds in struct config_item_type
  2025-10-25 11:15 ` [PATCH 0/2] configfs: Constify some fileds in struct config_item_type Christophe JAILLET
                     ` (2 preceding siblings ...)
  2025-10-29  7:18   ` [PATCH 0/2] configfs: Constify some fileds " Andreas Hindborg
@ 2025-11-27 11:12   ` Andreas Hindborg
  3 siblings, 0 replies; 9+ messages in thread
From: Andreas Hindborg @ 2025-11-27 11:12 UTC (permalink / raw)
  To: leitao, Christophe JAILLET; +Cc: linux-kernel, kernel-janitors


On Sat, 25 Oct 2025 13:15:36 +0200, Christophe JAILLET wrote:
> These 2 patches constify ct_item_ops and ct_group_ops in struct
> config_item_type.
> 
> When/if they are applied, I'll send some patchess in each subsystem to
> constify the corresponding structures.
> 
> This 2 steps approach is IMHO easier way to make these changes.
> This avoids long series and cover-letter/first patches sent to many
> maintainers and lists.
> 
> [...]

Applied, thanks!

[1/2] configfs: Constify ct_group_ops in struct config_item_type
      commit: f2f36500a63b73a8be90127322ad740253cf89c0
[2/2] configfs: Constify ct_item_ops in struct config_item_type
      commit: f7f78098690d60a03b47942ac7d73ea17b42239e

Best regards,
-- 
Andreas Hindborg <a.hindborg@kernel.org>



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2025-11-27 11:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <UMPsw5UqjtBaIrv5LPKiow0sOdVevbuvSx39jhXV_gtjHReEeeqGpgijGJj5OoJjMJA3mDIeSyzR9lffgIOr6g==@protonmail.internalid>
2025-10-25 11:15 ` [PATCH 0/2] configfs: Constify some fileds in struct config_item_type Christophe JAILLET
2025-10-25 11:15   ` [PATCH 1/2] configfs: Constify ct_group_ops " Christophe JAILLET
2025-11-04 10:12     ` Breno Leitao
2025-10-25 11:15   ` [PATCH 2/2] configfs: Constify ct_item_ops " Christophe JAILLET
2025-11-04 10:10     ` Breno Leitao
2025-10-29  7:18   ` [PATCH 0/2] configfs: Constify some fileds " Andreas Hindborg
2025-11-01 13:13     ` Christophe JAILLET
2025-11-01 15:02       ` Andreas Hindborg
2025-11-27 11:12   ` Andreas Hindborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox