mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* re: ping: re:[PATCH 1/1] kernel code that do not handle NULL return of kmem_cache_zalloc
@ 2013-12-02  7:19 zhouzhouyi
  0 siblings, 0 replies; 3+ messages in thread
From: zhouzhouyi @ 2013-12-02  7:19 UTC (permalink / raw)
  To: linux-kernel, linuxppc-dev, kvm-ppc, kvm, dwmw2, joro, benh; +Cc: Zhouyi Zhou

From: Zhouyi Zhou <zhouzhouyi@gmail.com>

the text of previous ping message maybe garbled sorry for the trouble

> I do a grep for kmem_cache_zalloc and kmem_cache_alloc
> in kernel tree, and find some code do not handle NULL
> return of kmem_cache_zalloc correctly


> Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn>
---
 arch/powerpc/kvm/book3s_32_mmu_host.c |    5 +++++
 drivers/iommu/omap-iommu.c            |    3 ++-
 fs/jffs2/malloc.c                     |    4 ++++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kvm/book3s_32_mmu_host.c b/arch/powerpc/kvm/book3s_32_mmu_host.c
index 3a0abd2..5fac89d 100644
--- a/arch/powerpc/kvm/book3s_32_mmu_host.c
+++ b/arch/powerpc/kvm/book3s_32_mmu_host.c
@@ -243,6 +243,11 @@ next_pteg:
 	/* Now tell our Shadow PTE code about the new page */
 
 	pte = kvmppc_mmu_hpte_cache_next(vcpu);
+	if (!pte) {
+		kvm_release_pfn_clean(hpaddr >> PAGE_SHIFT);
+		r = -EAGAIN;
+		goto out;
+	}
 
 	dprintk_mmu("KVM: %c%c Map 0x%llx: [%lx] 0x%llx (0x%llx) -> %lx\n",
 		    orig_pte->may_write ? 'w' : '-',
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index bcd78a7..5155714 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -551,7 +551,8 @@ static u32 *iopte_alloc(struct omap_iommu *obj, u32 *iopgd, u32 da)
 		dev_vdbg(obj->dev, "%s: a new pte:%p\n", __func__, iopte);
 	} else {
 		/* We raced, free the reduniovant table */
-		iopte_free(iopte);
+		if (iopte)
+			iopte_free(iopte);
 	}
 
 pte_ready:
diff --git a/fs/jffs2/malloc.c b/fs/jffs2/malloc.c
index 4f47aa2..58e2336 100644
--- a/fs/jffs2/malloc.c
+++ b/fs/jffs2/malloc.c
@@ -287,6 +287,8 @@ struct jffs2_xattr_datum *jffs2_alloc_xattr_datum(void)
 {
 	struct jffs2_xattr_datum *xd;
 	xd = kmem_cache_zalloc(xattr_datum_cache, GFP_KERNEL);
+	if (!xd)
+		return NULL;
 	dbg_memalloc("%p\n", xd);
 
 	xd->class = RAWNODE_CLASS_XATTR_DATUM;
@@ -305,6 +307,8 @@ struct jffs2_xattr_ref *jffs2_alloc_xattr_ref(void)
 {
 	struct jffs2_xattr_ref *ref;
 	ref = kmem_cache_zalloc(xattr_ref_cache, GFP_KERNEL);
+	if (!ref)
+		return NULL;
 	dbg_memalloc("%p\n", ref);
 
 	ref->class = RAWNODE_CLASS_XATTR_REF;
-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ping: re: [PATCH 1/1] kernel code that do not handle NULL return of kmem_cache_zalloc
  2013-12-02  3:07 ` ping: " Zhouyi Zhou
@ 2013-12-02  9:54   ` Alexander Graf
  0 siblings, 0 replies; 3+ messages in thread
From: Alexander Graf @ 2013-12-02  9:54 UTC (permalink / raw)
  To: Zhouyi Zhou
  Cc: Zhouyi Zhou, linux-kernel@vger.kernel.org list, linuxppc-dev,
	kvm-ppc, kvm@vger.kernel.org mailing list, David Woodhouse,
	Joerg Roedel, Ben Herrenschmidt, Paul Mackerras


On 02.12.2013, at 04:07, Zhouyi Zhou <yizhouzhou@ict.ac.cn> wrote:

> ping
>>  I do a grep for kmem_cache_zalloc and kmem_cache_alloc
>>  in kernel tree, and find some code do not handle NULL
>>  return of kmem_cache_zalloc correctly
>>  
>>  
>>  Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn>

Thanks a lot for the patch. I'd assume we want something slightly more clever even, similar to Paul's d78bca729.

Please beware that it's usually not a good idea to post patches that span multiple subtrees. I don't want to apply a patch to my kvm tree that touches jffs2 for example, as that's out of my scope. It usually makes a maintainer's life easier if you split up a patch like this according to tree responsibilities.


Alex


^ permalink raw reply	[flat|nested] 3+ messages in thread

* ping: re: [PATCH 1/1] kernel code that do not handle NULL return of kmem_cache_zalloc
  2013-11-27 10:51 [PATCH " Zhouyi Zhou
@ 2013-12-02  3:07 ` Zhouyi Zhou
  2013-12-02  9:54   ` Alexander Graf
  0 siblings, 1 reply; 3+ messages in thread
From: Zhouyi Zhou @ 2013-12-02  3:07 UTC (permalink / raw)
  To: Zhouyi Zhou
  Cc: linux-kernel, linuxppc-dev, kvm-ppc, kvm, David Woodhouse,
	Joerg Roedel, Benjamin Herrenschmidt

ping
> I do a grep for kmem_cache_zalloc and kmem_cache_alloc
> in kernel tree, and find some code do not handle NULL
> return of kmem_cache_zalloc correctly
> 
> 
> Signed-off-by: Zhouyi Zhou <yizhouzhou@ict.ac.cn>
> ---
>  arch/powerpc/kvm/book3s_32_mmu_host.c |    5 +++++
>  drivers/iommu/omap-iommu.c            |    3 ++-
>  fs/jffs2/malloc.c                     |    4 ++++
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/kvm/book3s_32_mmu_host.c b/arch/powerpc/kvm/book3s_32_mmu_host.c
> index 3a0abd2..5fac89d 100644
> --- a/arch/powerpc/kvm/book3s_32_mmu_host.c
> +++ b/arch/powerpc/kvm/book3s_32_mmu_host.c
> @@ -243,6 +243,11 @@ next_pteg:
>  	/* Now tell our Shadow PTE code about the new page */
>  
>  	pte = kvmppc_mmu_hpte_cache_next(vcpu);
> +	if (!pte) {
> +		kvm_release_pfn_clean(hpaddr >> PAGE_SHIFT);
> +		r = -EAGAIN;
> +		goto out;
> +	}
>  
>  	dprintk_mmu("KVM: %c%c Map 0x%llx: [%lx] 0x%llx (0x%llx) -> %lx\n",
>  		    orig_pte->may_write ? 'w' : '-',
> diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
> index bcd78a7..5155714 100644
> --- a/drivers/iommu/omap-iommu.c
> +++ b/drivers/iommu/omap-iommu.c
> @@ -551,7 +551,8 @@ static u32 *iopte_alloc(struct omap_iommu *obj, u32 *iopgd, u32 da)
>  		dev_vdbg(obj->dev, "%s: a new pte:%p\n", __func__, iopte);
>  	} else {
>  		/* We raced, free the reduniovant table */
> -		iopte_free(iopte);
> +		if (iopte)
> +			iopte_free(iopte);
>  	}
>  
>  pte_ready:
> diff --git a/fs/jffs2/malloc.c b/fs/jffs2/malloc.c
> index 4f47aa2..58e2336 100644
> --- a/fs/jffs2/malloc.c
> +++ b/fs/jffs2/malloc.c
> @@ -287,6 +287,8 @@ struct jffs2_xattr_datum *jffs2_alloc_xattr_datum(void)
>  {
>  	struct jffs2_xattr_datum *xd;
>  	xd = kmem_cache_zalloc(xattr_datum_cache, GFP_KERNEL);
> +	if (!xd)
> +		return NULL;
>  	dbg_memalloc("%p\n", xd);
>  
>  	xd->class = RAWNODE_CLASS_XATTR_DATUM;
> @@ -305,6 +307,8 @@ struct jffs2_xattr_ref *jffs2_alloc_xattr_ref(void)
>  {
>  	struct jffs2_xattr_ref *ref;
>  	ref = kmem_cache_zalloc(xattr_ref_cache, GFP_KERNEL);
> +	if (!ref)
> +		return NULL;
>  	dbg_memalloc("%p\n", ref);
>  
>  	ref->class = RAWNODE_CLASS_XATTR_REF;
> -- 
> 1.7.10.4
> 





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-12-02  9:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-02  7:19 ping: re:[PATCH 1/1] kernel code that do not handle NULL return of kmem_cache_zalloc zhouzhouyi
  -- strict thread matches above, loose matches on Subject: below --
2013-11-27 10:51 [PATCH " Zhouyi Zhou
2013-12-02  3:07 ` ping: " Zhouyi Zhou
2013-12-02  9:54   ` Alexander Graf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®