]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
media: dvb-usb: Constify struct usb_device_id
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 5 Jan 2025 21:19:57 +0000 (22:19 +0100)
committerHans Verkuil <hverkuil@xs4all.nl>
Fri, 21 Feb 2025 09:33:08 +0000 (10:33 +0100)
'struct usb_device_id' is not modified in these drivers.

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

In order to do that, struct dvb_usb_device_description (in dvb-usb.h) also
needs to be updated.

On a x86_64, with allmodconfig, as an example:
Before:
======
   text    data     bss     dec     hex filename
   1983    4240       4    6227    1853 drivers/media/usb/dvb-usb/a800.o

After:
=====
   text    data     bss     dec     hex filename
   2079    4144       4    6227    1853 drivers/media/usb/dvb-usb/a800.o

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
22 files changed:
drivers/media/usb/dvb-usb/a800.c
drivers/media/usb/dvb-usb/af9005.c
drivers/media/usb/dvb-usb/az6027.c
drivers/media/usb/dvb-usb/cinergyT2-core.c
drivers/media/usb/dvb-usb/cxusb.c
drivers/media/usb/dvb-usb/dibusb-mb.c
drivers/media/usb/dvb-usb/dibusb-mc.c
drivers/media/usb/dvb-usb/digitv.c
drivers/media/usb/dvb-usb/dtt200u.c
drivers/media/usb/dvb-usb/dtv5100.c
drivers/media/usb/dvb-usb/dvb-usb.h
drivers/media/usb/dvb-usb/dw2102.c
drivers/media/usb/dvb-usb/gp8psk.c
drivers/media/usb/dvb-usb/m920x.c
drivers/media/usb/dvb-usb/nova-t-usb2.c
drivers/media/usb/dvb-usb/opera1.c
drivers/media/usb/dvb-usb/pctv452e.c
drivers/media/usb/dvb-usb/technisat-usb2.c
drivers/media/usb/dvb-usb/ttusb2.c
drivers/media/usb/dvb-usb/umt-010.c
drivers/media/usb/dvb-usb/vp702x.c
drivers/media/usb/dvb-usb/vp7045.c

index 5f294784923c4620a3cad5ea25cf60467af2a764..c5f95e48f1d5cd5bb53d9d54e71a290caaa77e63 100644 (file)
@@ -77,7 +77,7 @@ enum {
        AVERMEDIA_DVBT_USB2_WARM,
 };
 
-static struct usb_device_id a800_table[] = {
+static const struct usb_device_id a800_table[] = {
        DVB_USB_DEV(AVERMEDIA, AVERMEDIA_DVBT_USB2_COLD),
        DVB_USB_DEV(AVERMEDIA, AVERMEDIA_DVBT_USB2_WARM),
        { }
index 13604e6acdb83bf0fe832c2e47987b0df57ea647..7ddda6fb0fbdb3313405a7064cbc34c8a4ca1d55 100644 (file)
@@ -1005,7 +1005,7 @@ enum {
        ANSONIC_DVBT_USB,
 };
 
-static struct usb_device_id af9005_usb_table[] = {
+static const struct usb_device_id af9005_usb_table[] = {
        DVB_USB_DEV(AFATECH, AFATECH_AF9005),
        DVB_USB_DEV(TERRATEC, TERRATEC_CINERGY_T_USB_XE),
        DVB_USB_DEV(ANSONIC, ANSONIC_DVBT_USB),
index 2bc27710427d5c21b5d4d8247559a759aa62dd57..156a299d4a2bd0bcb81bd62a23e5d2a8bb0d00eb 100644 (file)
@@ -1107,7 +1107,7 @@ enum {
        ELGATO_EYETV_SAT_V3,
 };
 
-static struct usb_device_id az6027_usb_table[] = {
+static const struct usb_device_id az6027_usb_table[] = {
        DVB_USB_DEV(AZUREWAVE, AZUREWAVE_AZ6027),
        DVB_USB_DEV(TERRATEC, TERRATEC_DVBS2CI_V1),
        DVB_USB_DEV(TERRATEC, TERRATEC_DVBS2CI_V2),
index 4926c954e29a296da4f29a8593d67c7eaba1d2ae..d86c279e2dcefb7b242428832f9dfe549cade607 100644 (file)
@@ -197,7 +197,7 @@ enum {
        TERRATEC_CINERGY_T2,
 };
 
-static struct usb_device_id cinergyt2_usb_table[] = {
+static const struct usb_device_id cinergyt2_usb_table[] = {
        DVB_USB_DEV(TERRATEC, TERRATEC_CINERGY_T2),
        { }
 };
index 1d98d3465e28d4020d126169c155b2de8c880269..9b4d4b86d5f4175835b854f48b43dcf19a6f44cf 100644 (file)
@@ -78,7 +78,7 @@ enum cxusb_table_index {
        NR__cxusb_table_index
 };
 
-static struct usb_device_id cxusb_table[];
+static const struct usb_device_id cxusb_table[];
 
 int cxusb_ctrl_msg(struct dvb_usb_device *d,
                   u8 cmd, const u8 *wbuf, int wlen, u8 *rbuf, int rlen)
@@ -1692,7 +1692,7 @@ static void cxusb_disconnect(struct usb_interface *intf)
        dvb_usb_device_exit(intf);
 }
 
-static struct usb_device_id cxusb_table[] = {
+static const struct usb_device_id cxusb_table[] = {
        DVB_USB_DEV(MEDION, MEDION_MD95700),
        DVB_USB_DEV(DVICO, DVICO_BLUEBIRD_LG064F_COLD),
        DVB_USB_DEV(DVICO, DVICO_BLUEBIRD_LG064F_WARM),
index 2cd88cab4c98a61c774d4174ecb516022e27d51d..431766f19931bf9abc4a5c88f948ba6d4732995c 100644 (file)
@@ -155,7 +155,7 @@ enum {
        ULTIMA_TVBOX_ANCHOR_COLD,
 };
 
-static struct usb_device_id dibusb_dib3000mb_table[] = {
+static const struct usb_device_id dibusb_dib3000mb_table[] = {
        DVB_USB_DEV(WIDEVIEW, WIDEVIEW_DVBT_USB_COLD),
        DVB_USB_DEV(WIDEVIEW, WIDEVIEW_DVBT_USB_WARM),
        DVB_USB_DEV(COMPRO, COMPRO_DVBU2000_COLD),
index 00cb016f62663483f0e7353f9e8716c9283932d1..01eece2687d69417e84f20fc1ea2e64b5a8093a8 100644 (file)
@@ -43,7 +43,7 @@ enum {
        HUMAX_DVB_T_STICK_HIGH_SPEED_WARM,
 };
 
-static struct usb_device_id dibusb_dib3000mc_table[] = {
+static const struct usb_device_id dibusb_dib3000mc_table[] = {
        DVB_USB_DEV(DIBCOM, DIBCOM_MOD3001_COLD),
        DVB_USB_DEV(DIBCOM, DIBCOM_MOD3001_WARM),
        DVB_USB_DEV(ULTIMA_ELECTRONIC, ULTIMA_TVBOX_USB2_COLD),
index 32134be1691489fa3bed90cc97f68f8eea8179a0..5a9bc630ba77d0c914c5768cbbb85d5d39b9f3d3 100644 (file)
@@ -299,7 +299,7 @@ enum {
        ANCHOR_NEBULA_DIGITV,
 };
 
-static struct usb_device_id digitv_table[] = {
+static const struct usb_device_id digitv_table[] = {
        DVB_USB_DEV(ANCHOR, ANCHOR_NEBULA_DIGITV),
        { }
 };
index e6ee56b3a9ddf3bfb55637489332aef2bc843cc3..83a69df384f2ee42556bb4a841779bdb71af448d 100644 (file)
@@ -171,7 +171,7 @@ enum {
        MIGLIA_WT220U_ZAP250_COLD,
 };
 
-static struct usb_device_id dtt200u_usb_table[] = {
+static const struct usb_device_id dtt200u_usb_table[] = {
        DVB_USB_DEV(WIDEVIEW, WIDEVIEW_DTT200U_COLD),
        DVB_USB_DEV(WIDEVIEW, WIDEVIEW_DTT200U_WARM),
        DVB_USB_DEV(WIDEVIEW, WIDEVIEW_WT220U_COLD),
index 56c9d521a34a596601b7047043be896542a132e2..5eb4c995c7589b3824ff416b85441861158067d1 100644 (file)
@@ -166,7 +166,7 @@ enum {
        AME_DTV5100,
 };
 
-static struct usb_device_id dtv5100_table[] = {
+static const struct usb_device_id dtv5100_table[] = {
        DVB_USB_DEV(AME, AME_DTV5100),
        { }
 };
index cbb0541d4dc1f6fabe921a658f1872a2855bc4a4..a06f08f9915bc8af6e5cdaf618b8c161ede81cc5 100644 (file)
@@ -73,8 +73,8 @@ struct dvb_usb_device_description {
        const char *name;
 
 #define DVB_USB_ID_MAX_NUM 15
-       struct usb_device_id *cold_ids[DVB_USB_ID_MAX_NUM];
-       struct usb_device_id *warm_ids[DVB_USB_ID_MAX_NUM];
+       const struct usb_device_id *cold_ids[DVB_USB_ID_MAX_NUM];
+       const struct usb_device_id *warm_ids[DVB_USB_ID_MAX_NUM];
 };
 
 static inline u8 rc5_custom(struct rc_map_table *key)
index 79e2ccf974c927d1efdf016412f4ebb2fc039c92..a21ba81163ba8a1e3588293d880a6c0b6f6c24e0 100644 (file)
@@ -1836,7 +1836,7 @@ enum dw2102_table_entry {
        TEVII_S662
 };
 
-static struct usb_device_id dw2102_table[] = {
+static const struct usb_device_id dw2102_table[] = {
        DVB_USB_DEV(CYPRESS, CYPRESS_DW2102),
        DVB_USB_DEV(CYPRESS, CYPRESS_DW2101),
        DVB_USB_DEV(CYPRESS, CYPRESS_DW2104),
index 4cd21bb8805ed78234237141ba5a9f74a41cf159..96a255500b383bf9aa27d16a3092ba90308acc5d 100644 (file)
@@ -319,7 +319,7 @@ enum {
        GENPIX_SKYWALKER_CW3K,
 };
 
-static struct usb_device_id gp8psk_usb_table[] = {
+static const struct usb_device_id gp8psk_usb_table[] = {
        DVB_USB_DEV(GENPIX, GENPIX_8PSK_REV_1_COLD),
        DVB_USB_DEV(GENPIX, GENPIX_8PSK_REV_1_WARM),
        DVB_USB_DEV(GENPIX, GENPIX_8PSK_REV_2),
index a2054b1b100fe4dedfc8e9a8a67a0bca4b93635e..9ef0cd944286e5ed98d3021d2bc13bdad92a9ec1 100644 (file)
@@ -909,7 +909,7 @@ enum {
        AZUREWAVE_TWINHAN_VP7049,
 };
 
-static struct usb_device_id m920x_table[] = {
+static const struct usb_device_id m920x_table[] = {
        DVB_USB_DEV(MSI, MSI_MEGASKY580),
        DVB_USB_DEV(ANUBIS_ELECTRONIC, ANUBIS_MSI_DIGI_VOX_MINI_II),
        DVB_USB_DEV(ANUBIS_ELECTRONIC, ANUBIS_LIFEVIEW_TV_WALKER_TWIN_COLD),
index 4782d0780913330c82b8fd4ed32f57bf6a03308a..2e5cbfacbeed74698ffe9599228c99adf361b176 100644 (file)
@@ -165,7 +165,7 @@ enum {
        HAUPPAUGE_WINTV_NOVA_T_USB2_WARM,
 };
 
-static struct usb_device_id nova_t_table[] = {
+static const struct usb_device_id nova_t_table[] = {
        DVB_USB_DEV(HAUPPAUGE, HAUPPAUGE_WINTV_NOVA_T_USB2_COLD),
        DVB_USB_DEV(HAUPPAUGE, HAUPPAUGE_WINTV_NOVA_T_USB2_WARM),
        { }
index 268f05fc8691bcaecc16e02596212191ff242c76..86bfcc641cf312385f6d6be9c106265caf1d47da 100644 (file)
@@ -425,7 +425,7 @@ enum {
        OPERA1_WARM,
 };
 
-static struct usb_device_id opera1_table[] = {
+static const struct usb_device_id opera1_table[] = {
        DVB_USB_DEV(CYPRESS, CYPRESS_OPERA1_COLD),
        DVB_USB_DEV(OPERA1, OPERA1_WARM),
        { }
index 2aab49003493ceccd9d2dcbcc01f329e9d2efb74..cbaa300264f84c9ac5f421ee572d8dea4fd37d59 100644 (file)
@@ -913,7 +913,7 @@ static struct i2c_algorithm pctv452e_i2c_algo = {
 
 static int pctv452e_frontend_attach(struct dvb_usb_adapter *a)
 {
-       struct usb_device_id *id;
+       const struct usb_device_id *id;
 
        a->fe_adap[0].fe = dvb_attach(stb0899_attach, &stb0899_config,
                                                &a->dev->i2c_adap);
@@ -959,7 +959,7 @@ enum {
        TECHNOTREND_CONNECT_S2_3650_CI,
 };
 
-static struct usb_device_id pctv452e_usb_table[] = {
+static const struct usb_device_id pctv452e_usb_table[] = {
        DVB_USB_DEV(PINNACLE, PINNACLE_PCTV_452E),
        DVB_USB_DEV(TECHNOTREND, TECHNOTREND_CONNECT_S2_3600),
        DVB_USB_DEV(TECHNOTREND, TECHNOTREND_CONNECT_S2_3650_CI),
index df90c6c5f3b96c8161bb22b856d39d234d5a5178..8d49baa3b7ad7de6ff780229c27dfe931f107c1e 100644 (file)
@@ -693,7 +693,7 @@ enum {
        TECHNISAT_USB2_DVB_S2,
 };
 
-static struct usb_device_id technisat_usb2_id_table[] = {
+static const struct usb_device_id technisat_usb2_id_table[] = {
        DVB_USB_DEV(TECHNISAT, TECHNISAT_USB2_DVB_S2),
        { }
 };
index 373ffa7f641e4ff8aa66617c9768cded16636fa7..0f2eccae46cefd74a8cb88b16d7776eeda1aacc6 100644 (file)
@@ -638,7 +638,7 @@ enum {
        TECHNOTREND_CONNECT_S2400_8KEEPROM,
 };
 
-static struct usb_device_id ttusb2_table[] = {
+static const struct usb_device_id ttusb2_table[] = {
        DVB_USB_DEV(PINNACLE, PINNACLE_PCTV_400E),
        DVB_USB_DEV(PINNACLE, PINNACLE_PCTV_450E),
        DVB_USB_DEV(TECHNOTREND, TECHNOTREND_CONNECT_S2400),
index 464699b0b75b7abff40e7e99261c404541057077..8f23f92946d45571e0b30522a531857d07fa7f01 100644 (file)
@@ -86,7 +86,7 @@ enum {
        HANFTEK_UMT_010_WARM,
 };
 
-static struct usb_device_id umt_table[] = {
+static const struct usb_device_id umt_table[] = {
        DVB_USB_DEV(HANFTEK, HANFTEK_UMT_010_COLD),
        DVB_USB_DEV(HANFTEK, HANFTEK_UMT_010_WARM),
        { }
index 5b6740cbd1d17c6e4be655beb23583481ea5e434..034b0652b9a1a1440e45187067d73a57c04dc6f0 100644 (file)
@@ -375,7 +375,7 @@ enum {
        VISIONPLUS_VP7020_WARM,
 };
 
-static struct usb_device_id vp702x_usb_table[] = {
+static const struct usb_device_id vp702x_usb_table[] = {
        DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7021_COLD),
 //     DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7020_COLD),
 //     DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7020_WARM),
index 1dc2b18d44d84d27687a579e4e249e91cb030c15..5224c3233f8cd9c232bf260957845c5ecdccc527 100644 (file)
@@ -179,7 +179,7 @@ enum {
        VISIONPLUS_TINYUSB2_WARM,
 };
 
-static struct usb_device_id vp7045_usb_table[] = {
+static const struct usb_device_id vp7045_usb_table[] = {
        DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7045_COLD),
        DVB_USB_DEV(VISIONPLUS, VISIONPLUS_VP7045_WARM),
        DVB_USB_DEV(VISIONPLUS, VISIONPLUS_TINYUSB2_COLD),