diff mbox series

soc: renesas: rz-sysc: Suppress binding attributes

Message ID 20250215131843.228905-1-claudiu.beznea.uj@bp.renesas.com (mailing list archive)
State Under Review
Delegated to: Geert Uytterhoeven
Headers show
Series soc: renesas: rz-sysc: Suppress binding attributes | expand

Commit Message

claudiu beznea (tuxon) Feb. 15, 2025, 1:18 p.m. UTC
From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>

The matching data for the rz-sysc driver is marked with __initconst, which
means it is discarded after initialization. Because of this, attempting to
unbind/bind the driver through sysfs after system boot can lead to "Unable
to handle kernel paging request at virtual address" errors due to accessing
freed memory.

Since the System Controller (SYSC) is an essential block for Renesas SoCs,
suppress binding attributes to prevent them being exposed in sysfs,
avoiding potential issues.

Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family")
Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
---
 drivers/soc/renesas/rz-sysc.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Lad, Prabhakar Feb. 18, 2025, 8:46 p.m. UTC | #1
On Sat, Feb 15, 2025 at 1:18 PM Claudiu <claudiu.beznea@tuxon.dev> wrote:
>
> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> The matching data for the rz-sysc driver is marked with __initconst, which
> means it is discarded after initialization. Because of this, attempting to
> unbind/bind the driver through sysfs after system boot can lead to "Unable
> to handle kernel paging request at virtual address" errors due to accessing
> freed memory.
>
> Since the System Controller (SYSC) is an essential block for Renesas SoCs,
> suppress binding attributes to prevent them being exposed in sysfs,
> avoiding potential issues.
>
> Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family")
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
> ---
>  drivers/soc/renesas/rz-sysc.c | 1 +
>  1 file changed, 1 insertion(+)
>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

Cheers,
Prabhakar

> diff --git a/drivers/soc/renesas/rz-sysc.c b/drivers/soc/renesas/rz-sysc.c
> index 1c98da37b7d1..14db508f669f 100644
> --- a/drivers/soc/renesas/rz-sysc.c
> +++ b/drivers/soc/renesas/rz-sysc.c
> @@ -120,6 +120,7 @@ static int rz_sysc_probe(struct platform_device *pdev)
>  static struct platform_driver rz_sysc_driver = {
>         .driver = {
>                 .name = "renesas-rz-sysc",
> +               .suppress_bind_attrs = true,
>                 .of_match_table = rz_sysc_match
>         },
>         .probe = rz_sysc_probe
> --
> 2.43.0
>
>
Geert Uytterhoeven Feb. 20, 2025, 4 p.m. UTC | #2
On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote:
> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> The matching data for the rz-sysc driver is marked with __initconst, which
> means it is discarded after initialization. Because of this, attempting to
> unbind/bind the driver through sysfs after system boot can lead to "Unable
> to handle kernel paging request at virtual address" errors due to accessing
> freed memory.
>
> Since the System Controller (SYSC) is an essential block for Renesas SoCs,
> suppress binding attributes to prevent them being exposed in sysfs,
> avoiding potential issues.
>
> Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family")
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
i.e. will queue in renesas-devel for v6.15.

>  drivers/soc/renesas/rz-sysc.c | 1 +

Looks like there are more opportunities for similar changes?

Gr{oetje,eeting}s,

                        Geert
Geert Uytterhoeven Feb. 20, 2025, 4:37 p.m. UTC | #3
Hi Claudiu,

On Thu, 20 Feb 2025 at 17:00, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote:
> > From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
> >
> > The matching data for the rz-sysc driver is marked with __initconst, which
> > means it is discarded after initialization. Because of this, attempting to
> > unbind/bind the driver through sysfs after system boot can lead to "Unable
> > to handle kernel paging request at virtual address" errors due to accessing
> > freed memory.
> >
> > Since the System Controller (SYSC) is an essential block for Renesas SoCs,
> > suppress binding attributes to prevent them being exposed in sysfs,
> > avoiding potential issues.
> >
> > Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family")
> > Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> i.e. will queue in renesas-devel for v6.15.

As the offending commit is only in renesas-devel, I'll fold the fix into
the original commit.

Gr{oetje,eeting}s,

                        Geert
claudiu beznea (tuxon) Feb. 20, 2025, 4:40 p.m. UTC | #4
Hi, Geert,

On 2/20/25 18:37, Geert Uytterhoeven wrote:
> Hi Claudiu,
>
> On Thu, 20 Feb 2025 at 17:00, Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>> On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote:
>>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>>
>>> The matching data for the rz-sysc driver is marked with __initconst, which
>>> means it is discarded after initialization. Because of this, attempting to
>>> unbind/bind the driver through sysfs after system boot can lead to "Unable
>>> to handle kernel paging request at virtual address" errors due to accessing
>>> freed memory.
>>>
>>> Since the System Controller (SYSC) is an essential block for Renesas SoCs,
>>> suppress binding attributes to prevent them being exposed in sysfs,
>>> avoiding potential issues.
>>>
>>> Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family")
>>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
>> i.e. will queue in renesas-devel for v6.15.
> As the offending commit is only in renesas-devel, I'll fold the fix into
> the original commit.

Sure, thank you!

>
> Gr{oetje,eeting}s,
>
>                          Geert
>
claudiu beznea (tuxon) Feb. 20, 2025, 4:41 p.m. UTC | #5
Hi, Geert,

On 2/20/25 18:00, Geert Uytterhoeven wrote:
> On Sat, 15 Feb 2025 at 14:18, Claudiu <claudiu.beznea@tuxon.dev> wrote:
>> From: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
>>
>> The matching data for the rz-sysc driver is marked with __initconst, which
>> means it is discarded after initialization. Because of this, attempting to
>> unbind/bind the driver through sysfs after system boot can lead to "Unable
>> to handle kernel paging request at virtual address" errors due to accessing
>> freed memory.
>>
>> Since the System Controller (SYSC) is an essential block for Renesas SoCs,
>> suppress binding attributes to prevent them being exposed in sysfs,
>> avoiding potential issues.
>>
>> Fixes: 1660e5ea6a3e ("soc: renesas: Add SYSC driver for Renesas RZ family")
>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> i.e. will queue in renesas-devel for v6.15.
>
>>   drivers/soc/renesas/rz-sysc.c | 1 +
> Looks like there are more opportunities for similar changes?

For the other Renesas drivers I wasn't sure if this is the desired way.

Thank you,
Claudiu

>
> Gr{oetje,eeting}s,
>
>                          Geert
>
diff mbox series

Patch

diff --git a/drivers/soc/renesas/rz-sysc.c b/drivers/soc/renesas/rz-sysc.c
index 1c98da37b7d1..14db508f669f 100644
--- a/drivers/soc/renesas/rz-sysc.c
+++ b/drivers/soc/renesas/rz-sysc.c
@@ -120,6 +120,7 @@  static int rz_sysc_probe(struct platform_device *pdev)
 static struct platform_driver rz_sysc_driver = {
 	.driver = {
 		.name = "renesas-rz-sysc",
+		.suppress_bind_attrs = true,
 		.of_match_table = rz_sysc_match
 	},
 	.probe = rz_sysc_probe