diff options
author | Borislav Petkov <bp@suse.de> | 2022-03-08 08:37:11 +0100 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2022-04-11 11:38:10 +0200 |
commit | fb8cd45ca39bdb216e358e36063d8b9962242107 (patch) | |
tree | 698192a3f4e0275c6dc642bc8fcf3cbb87c79cce /drivers/edac | |
parent | 0bbb265f7089584aaa6d440805ca75ea4f3930d4 (diff) | |
download | linux-stable-fb8cd45ca39bdb216e358e36063d8b9962242107.tar.gz linux-stable-fb8cd45ca39bdb216e358e36063d8b9962242107.tar.bz2 linux-stable-fb8cd45ca39bdb216e358e36063d8b9962242107.zip |
EDAC/pci: Get rid of the silly one-shot memory allocation in edac_pci_alloc_ctl_info()
Use boring kzalloc() instead.
There should be no functional changes resulting from this.
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20220310095254.1510-3-bp@alien8.de
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/edac_pci.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c index 48c844a72a27..2205d7e731db 100644 --- a/drivers/edac/edac_pci.c +++ b/drivers/edac/edac_pci.c @@ -29,32 +29,31 @@ static LIST_HEAD(edac_pci_list); static atomic_t pci_indexes = ATOMIC_INIT(0); struct edac_pci_ctl_info *edac_pci_alloc_ctl_info(unsigned int sz_pvt, - const char *edac_pci_name) + const char *edac_pci_name) { struct edac_pci_ctl_info *pci; - void *p = NULL, *pvt; - unsigned int size; edac_dbg(1, "\n"); - pci = edac_align_ptr(&p, sizeof(*pci), 1); - pvt = edac_align_ptr(&p, 1, sz_pvt); - size = ((unsigned long)pvt) + sz_pvt; - - /* Alloc the needed control struct memory */ - pci = kzalloc(size, GFP_KERNEL); - if (pci == NULL) + pci = kzalloc(sizeof(struct edac_pci_ctl_info), GFP_KERNEL); + if (!pci) return NULL; - /* Now much private space */ - pvt = sz_pvt ? ((char *)pci) + ((unsigned long)pvt) : NULL; + if (sz_pvt) { + pci->pvt_info = kzalloc(sz_pvt, GFP_KERNEL); + if (!pci->pvt_info) + goto free; + } - pci->pvt_info = pvt; pci->op_state = OP_ALLOC; snprintf(pci->name, strlen(edac_pci_name) + 1, "%s", edac_pci_name); return pci; + +free: + kfree(pci); + return NULL; } EXPORT_SYMBOL_GPL(edac_pci_alloc_ctl_info); |