memstick: Constify struct memstick_device_id
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sat, 28 Sep 2024 16:20:56 +0000 (18:20 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 14 Oct 2024 10:40:10 +0000 (12:40 +0200)
'struct memstick_device_id' are not modified in these drivers.

Constifying this structure moves some data to a read-only section, so
increases overall security.

Update memstick_dev_match(), memstick_bus_match() and struct
memstick_driver accordingly.

On a x86_64, with allmodconfig, as an example:
Before:
======
   text    data     bss     dec     hex filename
  74055    3455      88   77598   12f1e drivers/memstick/core/ms_block.o

After:
=====
   text    data     bss     dec     hex filename
  74087    3423      88   77598   12f1e drivers/memstick/core/ms_block.o

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/6509d6f6ed64193f04e747a98ccea7492c976ca8.1727540434.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/memstick/core/memstick.c
drivers/memstick/core/ms_block.c
drivers/memstick/core/mspro_block.c
include/linux/memstick.h

index 9a3a784..ae4e8b8 100644 (file)
@@ -26,7 +26,7 @@ static DEFINE_IDR(memstick_host_idr);
 static DEFINE_SPINLOCK(memstick_host_lock);
 
 static int memstick_dev_match(struct memstick_dev *card,
-                             struct memstick_device_id *id)
+                             const struct memstick_device_id *id)
 {
        if (id->match_flags & MEMSTICK_MATCH_ALL) {
                if ((id->type == card->id.type)
@@ -44,7 +44,7 @@ static int memstick_bus_match(struct device *dev, const struct device_driver *dr
                                                 dev);
        const struct memstick_driver *ms_drv = container_of_const(drv, struct memstick_driver,
                                                                  driver);
-       struct memstick_device_id *ids = ms_drv->id_table;
+       const struct memstick_device_id *ids = ms_drv->id_table;
 
        if (ids) {
                while (ids->match_flags) {
index c038395..20a2466 100644 (file)
@@ -2279,7 +2279,7 @@ out:
 
 #endif /* CONFIG_PM */
 
-static struct memstick_device_id msb_id_tbl[] = {
+static const struct memstick_device_id msb_id_tbl[] = {
        {MEMSTICK_MATCH_ALL, MEMSTICK_TYPE_LEGACY, MEMSTICK_CATEGORY_STORAGE,
         MEMSTICK_CLASS_FLASH},
 
index 49accfd..13b317c 100644 (file)
@@ -1349,7 +1349,7 @@ out_unlock:
 
 #endif /* CONFIG_PM */
 
-static struct memstick_device_id mspro_block_id_tbl[] = {
+static const struct memstick_device_id mspro_block_id_tbl[] = {
        {MEMSTICK_MATCH_ALL, MEMSTICK_TYPE_PRO, MEMSTICK_CATEGORY_STORAGE_DUO,
         MEMSTICK_CLASS_DUO},
        {}
index ebf73d4..107bdcb 100644 (file)
@@ -293,7 +293,7 @@ struct memstick_host {
 };
 
 struct memstick_driver {
-       struct memstick_device_id *id_table;
+       const struct memstick_device_id *id_table;
        int                       (*probe)(struct memstick_dev *card);
        void                      (*remove)(struct memstick_dev *card);
        int                       (*suspend)(struct memstick_dev *card,