Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

EDAC/igen6: Constify struct res_config

The res_config structs are not modified in this driver.

Constifying these structures 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, as an example:

Before:
======
text data bss dec hex filename
36777 2479 4304 43560 aa28 drivers/edac/igen6_edac.o

After:
=====
text data bss dec hex filename
37297 1959 4304 43560 aa28 drivers/edac/igen6_edac.o

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Link: https://lore.kernel.org/r/a06153870951a64b438e76adf97d440e02c1a1fc.1738355198.git.christophe.jaillet@wanadoo.fr

authored by

Christophe JAILLET and committed by
Borislav Petkov (AMD)
ac2fbe09 12378e1c

+10 -10
+10 -10
drivers/edac/igen6_edac.c
··· 125 125 #define MEM_SLICE_HASH_MASK(v) (GET_BITFIELD(v, 6, 19) << 6) 126 126 #define MEM_SLICE_HASH_LSB_MASK_BIT(v) GET_BITFIELD(v, 24, 26) 127 127 128 - static struct res_config { 128 + static const struct res_config { 129 129 bool machine_check; 130 130 int num_imc; 131 131 u32 imc_base; ··· 472 472 return ECC_ERROR_LOG_ADDR45(ecclog); 473 473 } 474 474 475 - static struct res_config ehl_cfg = { 475 + static const struct res_config ehl_cfg = { 476 476 .num_imc = 1, 477 477 .imc_base = 0x5000, 478 478 .ibecc_base = 0xdc00, ··· 482 482 .err_addr_to_imc_addr = ehl_err_addr_to_imc_addr, 483 483 }; 484 484 485 - static struct res_config icl_cfg = { 485 + static const struct res_config icl_cfg = { 486 486 .num_imc = 1, 487 487 .imc_base = 0x5000, 488 488 .ibecc_base = 0xd800, ··· 492 492 .err_addr_to_imc_addr = ehl_err_addr_to_imc_addr, 493 493 }; 494 494 495 - static struct res_config tgl_cfg = { 495 + static const struct res_config tgl_cfg = { 496 496 .machine_check = true, 497 497 .num_imc = 2, 498 498 .imc_base = 0x5000, ··· 506 506 .err_addr_to_imc_addr = tgl_err_addr_to_imc_addr, 507 507 }; 508 508 509 - static struct res_config adl_cfg = { 509 + static const struct res_config adl_cfg = { 510 510 .machine_check = true, 511 511 .num_imc = 2, 512 512 .imc_base = 0xd800, ··· 517 517 .err_addr_to_imc_addr = adl_err_addr_to_imc_addr, 518 518 }; 519 519 520 - static struct res_config adl_n_cfg = { 520 + static const struct res_config adl_n_cfg = { 521 521 .machine_check = true, 522 522 .num_imc = 1, 523 523 .imc_base = 0xd800, ··· 528 528 .err_addr_to_imc_addr = adl_err_addr_to_imc_addr, 529 529 }; 530 530 531 - static struct res_config rpl_p_cfg = { 531 + static const struct res_config rpl_p_cfg = { 532 532 .machine_check = true, 533 533 .num_imc = 2, 534 534 .imc_base = 0xd800, ··· 540 540 .err_addr_to_imc_addr = adl_err_addr_to_imc_addr, 541 541 }; 542 542 543 - static struct res_config mtl_ps_cfg = { 543 + static const struct res_config mtl_ps_cfg = { 544 544 .machine_check = true, 545 545 .num_imc = 2, 546 546 .imc_base = 0xd800, ··· 551 551 .err_addr_to_imc_addr = adl_err_addr_to_imc_addr, 552 552 }; 553 553 554 - static struct res_config mtl_p_cfg = { 554 + static const struct res_config mtl_p_cfg = { 555 555 .machine_check = true, 556 556 .num_imc = 2, 557 557 .imc_base = 0xd800, ··· 1374 1374 unregister_nmi_handler(NMI_SERR, IGEN6_NMI_NAME); 1375 1375 } 1376 1376 1377 - static void opstate_set(struct res_config *cfg, const struct pci_device_id *ent) 1377 + static void opstate_set(const struct res_config *cfg, const struct pci_device_id *ent) 1378 1378 { 1379 1379 /* 1380 1380 * Quirk: Certain SoCs' error reporting interrupts don't work.