Re: [PATCH] ntb: Constify struct bus_type

From: Dave Jiang
Date: Mon Jul 22 2024 - 10:54:13 EST




On 7/20/24 3:59 AM, Christophe JAILLET wrote:
> 'struct bus_type' is not modified in this driver.
>
> Constifying this structure moves some data to a read-only section, so
> increase overall security, especially when the structure holds some
> function pointers.
>
> On a x86_64, with allmodconfig:
> Before:
> ======
> text data bss dec hex filename
> 69682 4593 152 74427 122bb drivers/ntb/ntb_transport.o
> 5847 448 32 6327 18b7 drivers/ntb/core.o
>
> After:
> =====
> text data bss dec hex filename
> 69858 4433 152 74443 122cb drivers/ntb/ntb_transport.o
> 6007 288 32 6327 18b7 drivers/ntb/core.o
>
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>

> ---
> Compile tested-only.
> ---
> drivers/ntb/core.c | 4 ++--
> drivers/ntb/ntb_transport.c | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/ntb/core.c b/drivers/ntb/core.c
> index d702bee78082..ed6f4adc6130 100644
> --- a/drivers/ntb/core.c
> +++ b/drivers/ntb/core.c
> @@ -72,7 +72,7 @@ MODULE_VERSION(DRIVER_VERSION);
> MODULE_AUTHOR(DRIVER_AUTHOR);
> MODULE_DESCRIPTION(DRIVER_DESCRIPTION);
>
> -static struct bus_type ntb_bus;
> +static const struct bus_type ntb_bus;
> static void ntb_dev_release(struct device *dev);
>
> int __ntb_register_client(struct ntb_client *client, struct module *mod,
> @@ -298,7 +298,7 @@ static void ntb_dev_release(struct device *dev)
> complete(&ntb->released);
> }
>
> -static struct bus_type ntb_bus = {
> +static const struct bus_type ntb_bus = {
> .name = "ntb",
> .probe = ntb_probe,
> .remove = ntb_remove,
> diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c
> index 77e55debeed6..a79f68e18d3f 100644
> --- a/drivers/ntb/ntb_transport.c
> +++ b/drivers/ntb/ntb_transport.c
> @@ -314,7 +314,7 @@ static void ntb_transport_bus_remove(struct device *dev)
> put_device(dev);
> }
>
> -static struct bus_type ntb_transport_bus = {
> +static const struct bus_type ntb_transport_bus = {
> .name = "ntb_transport",
> .match = ntb_transport_bus_match,
> .probe = ntb_transport_bus_probe,