lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Thu, 13 May 2010 19:08:07 +0800
From:	Changli Gao <xiaosuo@...il.com>
To:	akpm@...ux-foundation.org
Cc:	"James E.J. Bottomley" <James.Bottomley@...e.de>,
	linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org,
	Changli Gao <xiaosuo@...il.com>
Subject: [PATCH 6/9] cxgb3i: use kvzalloc and kvfree

use kvzalloc and kvfree

use kvzalloc and kvfree

Signed-off-by: Changli Gao <xiaosuo@...il.com>
----
 drivers/scsi/cxgb3i/cxgb3i_ddp.c     |   12 +++++-------
 drivers/scsi/cxgb3i/cxgb3i_ddp.h     |   26 --------------------------
 drivers/scsi/cxgb3i/cxgb3i_offload.c |    6 +++---
 3 files changed, 8 insertions(+), 36 deletions(-)
diff --git a/drivers/scsi/cxgb3i/cxgb3i_ddp.c b/drivers/scsi/cxgb3i/cxgb3i_ddp.c
index b58d913..2795440 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_ddp.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_ddp.c
@@ -648,7 +648,7 @@ static void ddp_cleanup(struct kref *kref)
 		} else
 			i++;
 	}
-	cxgb3i_free_big_mem(ddp);
+	kvfree(ddp);
 }
 
 void cxgb3i_ddp_cleanup(struct t3cdev *tdev)
@@ -692,11 +692,9 @@ static void ddp_init(struct t3cdev *tdev)
 		bits = PPOD_IDX_MAX_SIZE;
 	ppmax = (1 << (bits - 1)) - 1;
 
-	ddp = cxgb3i_alloc_big_mem(sizeof(struct cxgb3i_ddp_info) +
-				   ppmax *
-					(sizeof(struct cxgb3i_gather_list *) +
-					sizeof(struct sk_buff *)),
-				   GFP_KERNEL);
+	ddp = kvzalloc(sizeof(struct cxgb3i_ddp_info) + ppmax *
+		       (sizeof(struct cxgb3i_gather_list *) +
+			sizeof(struct sk_buff *)));
 	if (!ddp) {
 		ddp_log_warn("%s unable to alloc ddp 0x%d, ddp disabled.\n",
 			     tdev->name, ppmax);
@@ -743,7 +741,7 @@ static void ddp_init(struct t3cdev *tdev)
 	return;
 
 free_ddp_map:
-	cxgb3i_free_big_mem(ddp);
+	kvfree(ddp);
 }
 
 /**
diff --git a/drivers/scsi/cxgb3i/cxgb3i_ddp.h b/drivers/scsi/cxgb3i/cxgb3i_ddp.h
index 6761b32..1be8c20 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_ddp.h
+++ b/drivers/scsi/cxgb3i/cxgb3i_ddp.h
@@ -13,9 +13,6 @@
 #ifndef __CXGB3I_ULP2_DDP_H__
 #define __CXGB3I_ULP2_DDP_H__
 
-#include <linux/slab.h>
-#include <linux/vmalloc.h>
-
 /**
  * struct cxgb3i_tag_format - cxgb3i ulp tag format for an iscsi entity
  *
@@ -143,29 +140,6 @@ struct pagepod {
 #define V_PPOD_PGSZ(x) ((x) << S_PPOD_PGSZ)
 
 /*
- * large memory chunk allocation/release
- * use vmalloc() if kmalloc() fails
- */
-static inline void *cxgb3i_alloc_big_mem(unsigned int size,
-					 gfp_t gfp)
-{
-	void *p = kmalloc(size, gfp);
-	if (!p)
-		p = vmalloc(size);
-	if (p)
-		memset(p, 0, size);
-	return p;
-}
-
-static inline void cxgb3i_free_big_mem(void *addr)
-{
-	if (is_vmalloc_addr(addr))
-		vfree(addr);
-	else
-		kfree(addr);
-}
-
-/*
  * cxgb3i ddp tag are 32 bits, it consists of reserved bits used by h/w and
  * non-reserved bits that can be used by the iscsi s/w.
  * The reserved bits are identified by the rsvd_bits and rsvd_shift fields
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.c b/drivers/scsi/cxgb3i/cxgb3i_offload.c
index a175be9..720d199 100644
--- a/drivers/scsi/cxgb3i/cxgb3i_offload.c
+++ b/drivers/scsi/cxgb3i/cxgb3i_offload.c
@@ -1841,7 +1841,7 @@ static void sdev_data_cleanup(struct cxgb3i_sdev_data *cdata)
 	for (i = 0; i < ports->nports; i++)
 		NDEV2CDATA(ports->lldevs[i]) = NULL;
 
-	cxgb3i_free_big_mem(cdata);
+	kvfree(cdata);
 }
 
 void cxgb3i_sdev_cleanup(void)
@@ -1885,7 +1885,7 @@ void cxgb3i_sdev_add(struct t3cdev *cdev, struct cxgb3_client *client)
 	int mapsize = cxgb3_max_connect * sizeof(struct s3_conn *);
 	int i;
 
-	cdata =  cxgb3i_alloc_big_mem(sizeof(*cdata) + mapsize, GFP_KERNEL);
+	cdata = kvzalloc(sizeof(*cdata) + mapsize);
 	if (!cdata) {
 		cxgb3i_log_warn("t3dev 0x%p, offload up, OOM %d.\n",
 				cdev, mapsize);
@@ -1918,7 +1918,7 @@ void cxgb3i_sdev_add(struct t3cdev *cdev, struct cxgb3_client *client)
 	return;
 
 free_cdata:
-	cxgb3i_free_big_mem(cdata);
+	kvfree(cdata);
 }
 
 /**
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ