]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
sparc64: Fix crash with /proc/iomem
authorMikulas Patocka <mpatocka@redhat.com>
Tue, 26 May 2009 23:00:12 +0000 (16:00 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 12 Jun 2009 03:01:14 +0000 (20:01 -0700)
[ Upstream commit 192d7a4667c6d11d1a174ec4cad9a3c5d5f9043c ]

When you compile kernel on Sparc64 with heap memory checking and type
"cat /proc/iomem", you get a crash, because pointers in struct
resource are uninitialized.

Most code fills struct resource with zeros, so I assume that it is
responsibility of the caller of request_resource to initialized it,
not the responsibility of request_resource functuion.

After 2.6.29 is out, there could be a check for uninitialized fields
added to request_resource to avoid crashes like this.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/sparc64/kernel/pci_common.c

index 09a5ec200c61d3fda984af889600159ff2d953b4..d498c606b58a70fced1797e683eff60efe25ce03 100644 (file)
@@ -368,7 +368,7 @@ static void pci_register_iommu_region(struct pci_pbm_info *pbm)
        const u32 *vdma = of_get_property(pbm->prom_node, "virtual-dma", NULL);
 
        if (vdma) {
-               struct resource *rp = kmalloc(sizeof(*rp), GFP_KERNEL);
+               struct resource *rp = kzalloc(sizeof(*rp), GFP_KERNEL);
 
                if (!rp) {
                        prom_printf("Cannot allocate IOMMU resource.\n");