Skip to contentSkip to conversation

treewide: Remove unnecessary kmalloc casts

PATCH Applied Joe Perches 6 participants 20 messages Jun 8, 2010 – Jun 16, 2010

Subsystems (12)
DRM drivers Media (V4L/DVB) x86 USB +8 more subsystems
lore
Share & tools
lore
#0 lore raw

cover treewide: Remove unnecessary kmalloc casts

Trivial cleanups

Joe Perches (12):
arch/cris: Remove unnecessary kmalloc casts arch/powerpc: Remove unnecessary kmalloc casts arch/x86/kernel/tlb_uv.c: Remove unnecessary kmalloc casts drivers/gpu/drm: Remove unnecessary kmalloc casts drivers/isdn/capi/capidrv.c: Remove unnecessary kmalloc casts drivers/media: Remove unnecesary kmalloc casts drivers/message/i2o/i20_config.c: Remove unnecessary kmalloc casts drivers/parisc/iosapic.c: Remove unnecessary kzalloc cast drivers/s390: Remove unnecessary kmalloc casts drivers/serial/icom.c: Remove unnecessary kmalloc casts drivers/usb/storage/isd200.c: Remove unnecessary kmalloc casts fs/ufs/util.c: Remove unnecessary kmalloc casts

#1 lore raw

PATCH 1/12 arch/cris: Remove unnecessary kmalloc casts

And separate declaration from allocation
Still no error checking on failure, but it probably doesn't matter.

---
 arch/cris/arch-v32/mm/intmem.c |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)
arch/cris/arch-v32/mm/intmem.c +5 -8
index 9e8b69c..1b17d92 100644
@@ -33,8 +33,8 @@ static void crisv32_intmem_init(void)
 {
 	static int initiated = 0;
 	if (!initiated) {
-		struct intmem_allocation* alloc =
-		  (struct intmem_allocation*)kmalloc(sizeof *alloc, GFP_KERNEL);
+		struct intmem_allocation* alloc;
+		alloc = kmalloc(sizeof *alloc, GFP_KERNEL);
 		INIT_LIST_HEAD(&intmem_allocations);
 		intmem_virtual = ioremap(MEM_INTMEM_START + RESERVED_SIZE,
 					 MEM_INTMEM_SIZE - RESERVED_SIZE);
@@ -62,9 +62,8 @@ void* crisv32_intmem_alloc(unsigned size, unsigned align)
 		if (allocation->status == STATUS_FREE &&
 		    allocation->size >= size + alignment) {
 			if (allocation->size > size + alignment) {
-				struct intmem_allocation* alloc =
-					(struct intmem_allocation*)
-					kmalloc(sizeof *alloc, GFP_ATOMIC);
+				struct intmem_allocation* alloc;
+				alloc = kmalloc(sizeof *alloc, GFP_ATOMIC);
 				alloc->status = STATUS_FREE;
 				alloc->size = allocation->size - size -
 					alignment;
@@ -74,9 +73,7 @@ void* crisv32_intmem_alloc(unsigned size, unsigned align)
 
 				if (alignment) {
 					struct intmem_allocation *tmp;
-					tmp = (struct intmem_allocation *)
-						kmalloc(sizeof *tmp,
-							GFP_ATOMIC);
+					tmp = kmalloc(sizeof *tmp, GFP_ATOMIC);
 					tmp->offset = allocation->offset;
 					tmp->size = alignment;
 					tmp->status = STATUS_FREE;
Signature · 1 line
1.7.1.244.gbdc4
#8 lore raw

PATCH 4/12 drivers/gpu/drm: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 drivers/gpu/drm/drm_sman.c      |    4 +---
 drivers/gpu/drm/i915/i915_dma.c |    3 +--
 2 files changed, 2 insertions(+), 5 deletions(-)
drivers/gpu/drm/drm_sman.c +1 -3
index 463aed9..3466458 100644
@@ -59,9 +59,7 @@ drm_sman_init(struct drm_sman * sman, unsigned int num_managers,
 {
 	int ret = 0;
 
-	sman->mm = (struct drm_sman_mm *) kcalloc(num_managers,
-						  sizeof(*sman->mm),
-						  GFP_KERNEL);
+	sman->mm = kcalloc(num_managers, sizeof(*sman->mm), GFP_KERNEL);
 	if (!sman->mm) {
 		ret = -ENOMEM;
 		goto out;
drivers/gpu/drm/i915/i915_dma.c +1 -2
index b2ebf02..a1744bd 100644
@@ -2276,8 +2276,7 @@ int i915_driver_open(struct drm_device *dev, struct drm_file *file_priv)
 	struct drm_i915_file_private *i915_file_priv;
 
 	DRM_DEBUG_DRIVER("\n");
-	i915_file_priv = (struct drm_i915_file_private *)
-	    kmalloc(sizeof(*i915_file_priv), GFP_KERNEL);
+	i915_file_priv = kmalloc(sizeof(*i915_file_priv), GFP_KERNEL);
 
 	if (!i915_file_priv)
 		return -ENOMEM;
Signature · 1 line
1.7.1.244.gbdc4
#9 lore raw

PATCH 5/12 drivers/isdn/capi/capidrv.c: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 drivers/isdn/capi/capidrv.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/isdn/capi/capidrv.c +1 -2
index bf55ed5..02e0182 100644
@@ -469,8 +469,7 @@ static int capidrv_add_ack(struct capidrv_ncci *nccip,
 {
 	struct ncci_datahandle_queue *n, **pp;
 
-	n = (struct ncci_datahandle_queue *)
-		kmalloc(sizeof(struct ncci_datahandle_queue), GFP_ATOMIC);
+	n = kmalloc(sizeof(struct ncci_datahandle_queue), GFP_ATOMIC);
 	if (!n) {
 	   printk(KERN_ERR "capidrv: kmalloc ncci_datahandle failed\n");
 	   return -1;
Signature · 1 line
1.7.1.244.gbdc4
#14 lore raw

PATCH 10/12 drivers/serial/icom.c: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 drivers/serial/icom.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/serial/icom.c +1 -2
index 53a4682..105e25c 100644
@@ -1416,8 +1416,7 @@ static int __devinit icom_alloc_adapter(struct icom_adapter
 	struct icom_adapter *cur_adapter_entry;
 	struct list_head *tmp;
 
-	icom_adapter = (struct icom_adapter *)
-	    kzalloc(sizeof(struct icom_adapter), GFP_KERNEL);
+	icom_adapter = kzalloc(sizeof(struct icom_adapter), GFP_KERNEL);
 
 	if (!icom_adapter) {
 		return -ENOMEM;
Signature · 1 line
1.7.1.244.gbdc4
#16 lore raw

PATCH 12/12 fs/ufs/util.c: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 fs/ufs/util.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
fs/ufs/util.c +1 -2
index 85a7fc9..9c44f32 100644
@@ -26,8 +26,7 @@ struct ufs_buffer_head * _ubh_bread_ (struct ufs_sb_private_info * uspi,
 	count = size >> uspi->s_fshift;
 	if (count > UFS_MAXFRAG)
 		return NULL;
-	ubh = (struct ufs_buffer_head *)
-		kmalloc (sizeof (struct ufs_buffer_head), GFP_KERNEL);
+	ubh = kmalloc(sizeof(struct ufs_buffer_head), GFP_KERNEL);
 	if (!ubh)
 		return NULL;
 	ubh->fragment = fragment;
Signature · 1 line
1.7.1.244.gbdc4
#15 lore raw

PATCH 11/12 drivers/usb/storage/isd200.c: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 drivers/usb/storage/isd200.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/usb/storage/isd200.c +1 -2
index e9cbc14..6b9982c 100644
@@ -1456,8 +1456,7 @@ static int isd200_init_info(struct us_data *us)
 	int retStatus = ISD200_GOOD;
 	struct isd200_info *info;
 
-	info = (struct isd200_info *)
-			kzalloc(sizeof(struct isd200_info), GFP_KERNEL);
+	info = kzalloc(sizeof(struct isd200_info), GFP_KERNEL);
 	if (!info)
 		retStatus = ISD200_ERROR;
 	else {
Signature · 1 line
1.7.1.244.gbdc4
#13 lore raw

PATCH 9/12 drivers/s390: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 drivers/s390/block/dasd_devmap.c |    3 +--
 drivers/s390/char/con3215.c      |    4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)
drivers/s390/block/dasd_devmap.c +1 -2
index 34d51dd..8c962dc 100644
@@ -409,8 +409,7 @@ dasd_add_busid(const char *bus_id, int features)
 	struct dasd_devmap *devmap, *new, *tmp;
 	int hash;
 
-	new = (struct dasd_devmap *)
-		kzalloc(sizeof(struct dasd_devmap), GFP_KERNEL);
+	new = kzalloc(sizeof(struct dasd_devmap), GFP_KERNEL);
 	if (!new)
 		return ERR_PTR(-ENOMEM);
 	spin_lock(&dasd_devmap_lock);
drivers/s390/char/con3215.c +2 -2
index 59ec073..6752c42 100644
@@ -888,8 +888,8 @@ static int __init con3215_init(void)
 	if (IS_ERR(cdev))
 		return -ENODEV;
 
-	raw3215[0] = raw = (struct raw3215_info *)
-		kzalloc(sizeof(struct raw3215_info), GFP_KERNEL | GFP_DMA);
+	raw3215[0] = raw = kzalloc(sizeof(struct raw3215_info),
+				   GFP_KERNEL | GFP_DMA);
 	raw->buffer = kzalloc(RAW3215_BUFFER_SIZE, GFP_KERNEL | GFP_DMA);
 	raw->inbuf = kzalloc(RAW3215_INBUF_SIZE, GFP_KERNEL | GFP_DMA);
 	raw->cdev = cdev;
Signature · 1 line
1.7.1.244.gbdc4
#11 lore raw

PATCH 7/12 drivers/message/i2o/i20_config.c: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 drivers/message/i2o/i2o_config.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/message/i2o/i2o_config.c +1 -2
index c4b117f..3be46c5 100644
@@ -1041,8 +1041,7 @@ static long i2o_cfg_ioctl(struct file *fp, unsigned int cmd, unsigned long arg)
 
 static int cfg_open(struct inode *inode, struct file *file)
 {
-	struct i2o_cfg_info *tmp =
-	    (struct i2o_cfg_info *)kmalloc(sizeof(struct i2o_cfg_info),
+	struct i2o_cfg_info *tmp = kmalloc(sizeof(struct i2o_cfg_info),
 					   GFP_KERNEL);
 	unsigned long flags;
 
Signature · 1 line
1.7.1.244.gbdc4
#12 lore raw

PATCH 8/12 drivers/parisc/iosapic.c: Remove unnecessary kzalloc cast

In reply to Joe Perches

Convert kzalloc to kcalloc

---
 drivers/parisc/iosapic.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/parisc/iosapic.c +2 -2
index c768367..3e6f56c 100644
@@ -891,8 +891,8 @@ void *iosapic_register(unsigned long hpa)
 	isi->isi_version = iosapic_rd_version(isi);
 	isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1;
 
-	vip = isi->isi_vector = (struct vector_info *)
-		kzalloc(sizeof(struct vector_info) * isi->isi_num_vectors, GFP_KERNEL);
+	vip = isi->isi_vector = kcalloc(isi->isi_num_vectors,
+					sizeof(struct vector_info), GFP_KERNEL);
 	if (vip == NULL) {
 		kfree(isi);
 		return NULL;
Signature · 1 line
1.7.1.244.gbdc4
#10 lore raw

PATCH 6/12 drivers/media: Remove unnecesary kmalloc casts

In reply to Joe Perches
---
 drivers/media/dvb/siano/smscoreapi.c |    4 +---
 drivers/media/video/w9968cf.c        |    3 +--
 2 files changed, 2 insertions(+), 5 deletions(-)
drivers/media/dvb/siano/smscoreapi.c +1 -3
index 0c87a3c..828bcc2 100644
@@ -116,9 +116,7 @@ static struct smscore_registry_entry_t *smscore_find_registry(char *devpath)
 			return entry;
 		}
 	}
-	entry = (struct smscore_registry_entry_t *)
-			kmalloc(sizeof(struct smscore_registry_entry_t),
-				GFP_KERNEL);
+	entry = kmalloc(sizeof(struct smscore_registry_entry_t), GFP_KERNEL);
 	if (entry) {
 		entry->mode = default_mode;
 		strcpy(entry->devpath, devpath);
drivers/media/video/w9968cf.c +1 -2
index d807eea..591fc6d 100644
@@ -3429,8 +3429,7 @@ w9968cf_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
 	else
 		return -ENODEV;
 
-	cam = (struct w9968cf_device*)
-		  kzalloc(sizeof(struct w9968cf_device), GFP_KERNEL);
+	cam = kzalloc(sizeof(struct w9968cf_device), GFP_KERNEL);
 	if (!cam)
 		return -ENOMEM;
 
Signature · 1 line
1.7.1.244.gbdc4
#7 lore raw

PATCH 3/12 arch/x86/kernel/tlb_uv.c: Remove unnecessary kmalloc casts

In reply to Joe Perches

And convert a kmalloc/memset to kzalloc

---
 arch/x86/kernel/tlb_uv.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)
arch/x86/kernel/tlb_uv.c +7 -8
index 7fea555..4c0a5e8 100644
@@ -1141,8 +1141,9 @@ uv_activation_descriptor_init(int node, int pnode)
 	 * each bau_desc is 64 bytes; there are 8 (UV_ITEMS_PER_DESCRIPTOR)
 	 * per cpu; and up to 32 (UV_ADP_SIZE) cpu's per uvhub
 	 */
-	bau_desc = (struct bau_desc *)kmalloc_node(sizeof(struct bau_desc)*
-		UV_ADP_SIZE*UV_ITEMS_PER_DESCRIPTOR, GFP_KERNEL, node);
+	bau_desc = kmalloc_node(sizeof(struct bau_desc) *
+				UV_ADP_SIZE * UV_ITEMS_PER_DESCRIPTOR,
+				GFP_KERNEL, node);
 	BUG_ON(!bau_desc);
 
 	pa = uv_gpa(bau_desc); /* need the real nasid*/
@@ -1200,9 +1201,9 @@ uv_payload_queue_init(int node, int pnode)
 	struct bau_payload_queue_entry *pqp_malloc;
 	struct bau_control *bcp;
 
-	pqp = (struct bau_payload_queue_entry *) kmalloc_node(
-		(DEST_Q_SIZE + 1) * sizeof(struct bau_payload_queue_entry),
-		GFP_KERNEL, node);
+	pqp = kmalloc_node((DEST_Q_SIZE + 1) *
+			   sizeof(struct bau_payload_queue_entry),
+			   GFP_KERNEL, node);
 	BUG_ON(!pqp);
 	pqp_malloc = pqp;
 
@@ -1286,9 +1287,7 @@ static void uv_init_per_cpu(int nuvhubs)
 	};
 	struct uvhub_desc *uvhub_descs;
 
-	uvhub_descs = (struct uvhub_desc *)
-		kmalloc(nuvhubs * sizeof(struct uvhub_desc), GFP_KERNEL);
-	memset(uvhub_descs, 0, nuvhubs * sizeof(struct uvhub_desc));
+	uvhub_descs = kzalloc(nuvhubs * sizeof(struct uvhub_desc), GFP_KERNEL);
 	for_each_present_cpu(cpu) {
 		bcp = &per_cpu(bau_control, cpu);
 		memset(bcp, 0, sizeof(struct bau_control));
Signature · 1 line
1.7.1.244.gbdc4
#6 lore raw

PATCH 2/12 arch/powerpc: Remove unnecessary kmalloc casts

In reply to Joe Perches
---
 arch/powerpc/kernel/nvram_64.c |    3 +--
 arch/powerpc/kvm/book3s.c      |    4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)
arch/powerpc/kernel/nvram_64.c +1 -2
index 9cf197f..99c6dab 100644
@@ -502,8 +502,7 @@ static int __init nvram_scan_partitions(void)
 			       "detected: 0-length partition\n");
 			goto out;
 		}
-		tmp_part = (struct nvram_partition *)
-			kmalloc(sizeof(struct nvram_partition), GFP_KERNEL);
+		tmp_part = kmalloc(sizeof(struct nvram_partition), GFP_KERNEL);
 		err = -ENOMEM;
 		if (!tmp_part) {
 			printk(KERN_ERR "nvram_scan_partitions: kmalloc failed\n");
arch/powerpc/kvm/book3s.c +2 -2
index b998abf..2a8b9b6 100644
@@ -1248,8 +1248,8 @@ struct kvm_vcpu *kvmppc_core_vcpu_create(struct kvm *kvm, unsigned int id)
 
 	memset(vcpu_book3s, 0, sizeof(struct kvmppc_vcpu_book3s));
 
-	vcpu_book3s->shadow_vcpu = (struct kvmppc_book3s_shadow_vcpu *)
-		kzalloc(sizeof(*vcpu_book3s->shadow_vcpu), GFP_KERNEL);
+	vcpu_book3s->shadow_vcpu = kzalloc(sizeof(*vcpu_book3s->shadow_vcpu),
+					   GFP_KERNEL);
 	if (!vcpu_book3s->shadow_vcpu)
 		goto free_vcpu;
 
Signature · 1 line
1.7.1.244.gbdc4
#2 lore raw

Re: [PATCH 01/12] arch/cris: Remove unnecessary kmalloc casts

In reply to Joe Perches
Quoted 25 lines · Joe Perches

And separate declaration from allocation
Still no error checking on failure, but it probably doesn't matter.

---
 arch/cris/arch-v32/mm/intmem.c |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)
arch/cris/arch-v32/mm/intmem.c +2 -2
index 9e8b69c..1b17d92 100644
@@ -33,8 +33,8 @@ static void crisv32_intmem_init(void)
 {
 	static int initiated = 0;
 	if (!initiated) {
-		struct intmem_allocation* alloc =
-		  (struct intmem_allocation*)kmalloc(sizeof *alloc, GFP_KERNEL);
+		struct intmem_allocation* alloc;
+		alloc = kmalloc(sizeof *alloc, GFP_KERNEL);
 		INIT_LIST_HEAD(&intmem_allocations);
 		intmem_virtual = ioremap(MEM_INTMEM_START + RESERVED_SIZE,
 					 MEM_INTMEM_SIZE - RESERVED_SIZE);
@@ -62,9 +62,8 @@ void* crisv32_intmem_alloc(unsigned size, unsigned align)
 		if (allocation->status == STATUS_FREE &&

arch/cris/arch-v32/mm/intmem.c void* crisv32_intmem_alloc(unsigned size, unsigned align) · line 69

Quoted 10 lines
arch/cris/arch-v32/mm/intmem.c +2 -3
 		    allocation->size >= size + alignment) {
 			if (allocation->size > size + alignment) {
-				struct intmem_allocation* alloc =
-					(struct intmem_allocation*)
-					kmalloc(sizeof *alloc, GFP_ATOMIC);
+				struct intmem_allocation* alloc;
+				alloc = kmalloc(sizeof *alloc, GFP_ATOMIC);
 				alloc->status = STATUS_FREE;
 				alloc->size = allocation->size - size -
 					alignment;

Why not fix the checkpatch failures at the same time?

ERROR: "foo* bar" should be "foo *bar"
#26: FILE: arch/cris/arch-v32/mm/intmem.c:36:
+ struct intmem_allocation* alloc;

ERROR: "foo* bar" should be "foo *bar"
#38: FILE: arch/cris/arch-v32/mm/intmem.c:65:
+ struct intmem_allocation* alloc;

#3 lore raw

Re: [PATCH 01/12] arch/cris: Remove unnecessary kmalloc casts

Quoted 3 lines · David Rientjes
Quoted 2 lines · Joe Perches

And separate declaration from allocation
Still no error checking on failure, but it probably doesn't matter.

[]

Quoted 1 line

Why not fix the checkpatch failures at the same time?

I think that's better done in a separate pass.

#17 lore raw
In reply to Joe Perches
Quoted 15 lines · Joe Perches

Trivial cleanups

arch/cris: Remove unnecessary kmalloc casts arch/powerpc: Remove unnecessary kmalloc casts arch/x86/kernel/tlb_uv.c: Remove unnecessary kmalloc casts drivers/gpu/drm: Remove unnecessary kmalloc casts drivers/isdn/capi/capidrv.c: Remove unnecessary kmalloc casts drivers/media: Remove unnecesary kmalloc casts drivers/message/i2o/i20_config.c: Remove unnecessary kmalloc casts drivers/parisc/iosapic.c: Remove unnecessary kzalloc cast drivers/s390: Remove unnecessary kmalloc casts drivers/serial/icom.c: Remove unnecessary kmalloc casts drivers/usb/storage/isd200.c: Remove unnecessary kmalloc casts fs/ufs/util.c: Remove unnecessary kmalloc casts

Joe,

Thanks for doing cleanups.

However, in this case you are removing casts that, while not necessary for C, are indeed there for a reason.

Specifically, they are of the form
type *p;
<code>
p = (type *)kmalloc(sizeof(type), ...);

For example, from the powerpc patch:

Quoted 6 lines

goto out;
}
- tmp_part = (struct nvram_partition *)
- kmalloc(sizeof(struct nvram_partition), GFP_KERNEL);
+ tmp_part = kmalloc(sizeof(struct nvram_partition), GFP_KERNEL); err = -ENOMEM;

The reason they casts are present is to guard against someone changing the type of p at the top of the function and not changing the type at the kmalloc.

This was discussed some years ago, possibly around the time kcalloc got its underflow detection.

Should we create a kmalloc wrapper that enforces this type saftey? While we have added static analysis tools that can check these things, and we have slab redzoning options, they tend to be run in batch by "someone else" or in response to debugging a problem.

There may have been discussion of doing the above vs
p = kmalloc(sizeof(*p), ...);

I don't remember if it was programmer preference or issues when p is an array type.

I am not subscribed so I don't have the full list that you sent these to, and I know some maintainers have already taken some of the series the last time you posted; could you please augment the CC list.

thanks,
milton

#18 lore raw
Quoted 5 lines · Milton Miller
Quoted 1 line · Joe Perches

Trivial cleanups

The reason they casts are present is to guard against someone changing the type of p at the top of the function and not changing the type at the kmalloc.

That'd be true for most all of the kernel mallocs.

Quoted 3 lines

I know some maintainers have already taken some of
the series the last time you posted; could you please augment the CC list.

I did not send to trivial any of kmalloc cast removal patches that were acked. The patches in this series were not acked, so I think no CC list needs augmentation.

Original: http://lkml.org/lkml/2010/5/31/471
Newest:   http://lkml.org/lkml/2010/6/7/428

cheers, Joe

#19 lore raw
In reply to Milton Miller

Hi Milton,

Quoted 16 lines · Milton Miller

However, in this case you are removing casts that, while not necessary for C, are indeed there for a reason.

Specifically, they are of the form
=A0 type *p;
=A0 <code>
=A0 p =3D (type *)kmalloc(sizeof(type), ...);

For example, from the powerpc patch:

Quoted 6 lines

goto out;
}
- tmp_part =3D (struct nvram_partition *)
- kmalloc(sizeof(struct nvram_partition), GFP_KERNEL);
+ tmp_part =3D kmalloc(sizeof(struct nvram_partition), GFP_KERNEL); err =3D -ENOMEM;

Quoted 3 lines

The reason they casts are present is to guard against someone changing the type of p at the top of the function and not changing the type at the kmalloc.

If you're worried about that...

[snip]

Quoted 2 lines

There may have been discussion of doing the above vs =A0 p =3D kmalloc(sizeof(*p), ...);

...it's better to use this form. There's actually a mention of this in "Chapter 14: Allocating memory" of Documentation/CodingStyle. The guard is not really a guard as someone can still change the "sizeof" part to something else and the cast from "void *" will silently ignore it.

Pekka

Acked-by on v1 1/12
#4 lore raw

Re: [PATCH 01/12] arch/cris: Remove unnecessary kmalloc casts

In reply to Joe Perches
Quoted 2 lines · Joe Perches

And separate declaration from allocation
Still no error checking on failure, but it probably doesn't matter.

Quoted 51 lines
---
 arch/cris/arch-v32/mm/intmem.c |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)
arch/cris/arch-v32/mm/intmem.c +5 -8
index 9e8b69c..1b17d92 100644
@@ -33,8 +33,8 @@ static void crisv32_intmem_init(void)
 {
 	static int initiated = 0;
 	if (!initiated) {
-		struct intmem_allocation* alloc =
-		  (struct intmem_allocation*)kmalloc(sizeof *alloc, GFP_KERNEL);
+		struct intmem_allocation* alloc;
+		alloc = kmalloc(sizeof *alloc, GFP_KERNEL);
 		INIT_LIST_HEAD(&intmem_allocations);
 		intmem_virtual = ioremap(MEM_INTMEM_START + RESERVED_SIZE,
 					 MEM_INTMEM_SIZE - RESERVED_SIZE);
@@ -62,9 +62,8 @@ void* crisv32_intmem_alloc(unsigned size, unsigned align)
 		if (allocation->status == STATUS_FREE &&
 		    allocation->size >= size + alignment) {
 			if (allocation->size > size + alignment) {
-				struct intmem_allocation* alloc =
-					(struct intmem_allocation*)
-					kmalloc(sizeof *alloc, GFP_ATOMIC);
+				struct intmem_allocation* alloc;
+				alloc = kmalloc(sizeof *alloc, GFP_ATOMIC);
 				alloc->status = STATUS_FREE;
 				alloc->size = allocation->size - size -
 					alignment;
@@ -74,9 +73,7 @@ void* crisv32_intmem_alloc(unsigned size, unsigned align)
 
 				if (alignment) {
 					struct intmem_allocation *tmp;
-					tmp = (struct intmem_allocation *)
-						kmalloc(sizeof *tmp,
-							GFP_ATOMIC);
+					tmp = kmalloc(sizeof *tmp, GFP_ATOMIC);
 					tmp->offset = allocation->offset;
 					tmp->size = alignment;
 					tmp->status = STATUS_FREE;
Signature · 7 lines
1.7.1.244.gbdc4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

/^JN - Jesper Nilsson

Signature · 1 line
               Jesper Nilsson -- [email protected]
Applied
#5 lore raw

Re: [PATCH 01/12] arch/cris: Remove unnecessary kmalloc casts

Quoted 5 lines · Jesper Nilsson
Quoted 2 lines · Joe Perches

And separate declaration from allocation
Still no error checking on failure, but it probably doesn't matter.

Applied, thanks.

Signature · 2 lines
Jiri Kosina
SUSE Labs, Novell Inc.