[PATCH] iommu: Initialize domain->handler in iommu_domain_alloc()

KyongHo Cho pullip.cho at samsung.com
Fri Dec 16 07:38:25 EST 2011


On Thu, Dec 15, 2011 at 05:11:26PM +0100, Joerg Roedel wrote:
> On Tue, Dec 13, 2011 at 04:14:20PM +0900, KyongHo Cho wrote:
> > Since it is not guaranteed that an iommu driver initializes in its
> > domain_init() function, it must be initialized with NULL to prevent
> > calling a function in an arbitrary location when iommu fault occurred.
> >
> > Signed-off-by: KyongHo Cho <pullip.cho at samsung.com>
> > ---
> >  drivers/iommu/iommu.c |    1 +
> >  1 files changed, 1 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> > index 7cc3c65..1afb896 100644
> > --- a/drivers/iommu/iommu.c
> > +++ b/drivers/iommu/iommu.c
> > @@ -148,6 +148,7 @@ struct iommu_domain *iommu_domain_alloc(struct
> bus_type *bus)
> >  		return NULL;
> >
> >  	domain->ops = bus->iommu_ops;
> > +	domain->handler = NULL;
> 
> Good catch. But it is better to change the kmalloc in the function to
> kzalloc. This will implicitly initialize all future members correctly.
Hi.

Here is the patch that change kmalloc -> kzalloc
according to your advice.

>From 821141fcf00a64fe4fbacc78b2bbe90e15da9fca Mon Sep 17 00:00:00 2001
From: KyongHo Cho <pullip.cho at samsung.com>
Date: Tue, 13 Dec 2011 16:08:51 +0900
Subject: [PATCH] iommu: Initialize domain->handler in iommu_domain_alloc()

Since it is not guaranteed that an iommu driver initializes in its
domain_init() function, it must be initialized with NULL to prevent
calling a function in an arbitrary location when iommu fault occurred.

Signed-off-by: KyongHo Cho <pullip.cho at samsung.com>
---
 drivers/iommu/iommu.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 7cc3c65..2198b2d 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -143,7 +143,7 @@ struct iommu_domain *iommu_domain_alloc(struct bus_type *bus)
 	if (bus == NULL || bus->iommu_ops == NULL)
 		return NULL;
 
-	domain = kmalloc(sizeof(*domain), GFP_KERNEL);
+	domain = kzalloc(sizeof(*domain), GFP_KERNEL);
 	if (!domain)
 		return NULL;
 
-- 
1.7.1




More information about the linux-arm-kernel mailing list