Avoid zero size allocation in cache_k8_northbridges()
PATCH 1/1 Avoid zero size allocation in cache_k8_northbridges()
kmalloc for flush_words resulted in zero size allocation when no k8_northbridges existed. Short circuit the code path for this case.
Also remove uneeded zeroing of num_k8_northbridges just after checking if it is zero.
Signed-off-by Ben Collins <[email protected]>
arch/x86_64/kernel/k8.c +6 -1
@@ -39,10 +39,10 @@ int cache_k8_northbridges(void) {int i;struct pci_dev *dev; +if (num_k8_northbridges)return 0 ; - num_k8_northbridges =0 ; dev =NULL ;while ((dev =next_k8_northbridge (dev)) !=NULL ) num_k8_northbridges++;
@@ -52,6 +52,11 @@ int cache_k8_northbridges(void)if (!k8_northbridges)return -ENOMEM ; +if (!num_k8_northbridges) { + k8_northbridges[0 ] =NULL ; +return 0 ; + } + flush_words =kmalloc (num_k8_northbridges *sizeof (u32),GFP_KERNEL );if (!flush_words) {kfree (k8_northbridges);
Signature · 2 lines
Ubuntu : http://www.ubuntu.com/ Linux1394: http://wiki.linux1394.org/