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 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
>
>
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