Skip to contentSkip to conversation

batman: cleanup: change test for end of array

PATCH In review Dan Carpenter 2 participants 5 messages Mar 28, 2010 – Mar 30, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 batman: cleanup: change test for end of array

The code here is testing to see if "i" is passed the end of the array. The original code works probably, but it's not the cleanest way.

Andrew Lunn suggested that I also remove all the hard coded references to 256 so I have done that as well.

drivers/staging/batman-adv/device.c +4 -7
index e7f4421..afcf7eb 100644
@@ -43,10 +43,7 @@ static struct device_client *device_client_hash[256];
 
 void bat_device_init(void)
 {
-	int i;
-
-	for (i = 0; i < 256; i++)
-		device_client_hash[i] = NULL;
+	memset(&device_client_hash, 0, sizeof(device_client_hash));
 }
 
 int bat_device_setup(void)
@@ -102,15 +99,15 @@ int bat_device_open(struct inode *inode, struct file *file)
 	if (!device_client)
 		return -ENOMEM;
 
-	for (i = 0; i < 256; i++) {
+	for (i = 0; i < ARRAY_SIZE(device_client_hash); i++) {
 		if (!device_client_hash[i]) {
 			device_client_hash[i] = device_client;
 			break;
 		}
 	}
 
-	if (device_client_hash[i] != device_client) {
-		printk(KERN_ERR "batman-adv:Error - can't add another packet client: maximum number of clients reached \n");
+	if (i = ARRAY_SIZE(device_client_hash)) {
+		printk(KERN_ERR "batman-adv:Error - can't add another packet client: maximum number of clients reached\n");
 		kfree(device_client);
 		return -EXFULL;
 	}
#1 lore raw

drivers/staging/batman-adv/device.c static struct device_client *device_client_hash[256]; · line 44

Quoted 5 lines · On Sunday 28 March 2010 21:13:35 Dan Carpenter wrote:
drivers/staging/batman-adv/device.c +1 -2
@@ -43,10 +43,7 @@ static struct device_client *device_client_hash[256];
 
-	for (i = 0; i < 256; i++)
-		device_client_hash[i] = NULL;
+	memset(&device_client_hash, 0, sizeof(device_client_hash));

I might be mistaken but it looks like the "&" is wrong here. Shouldn't it be:
memset(device_client_hash, 0, sizeof(device_client_hash));

Cheers,
Marek

#2 lore raw
In reply to Dan Carpenter
Quoted 9 lines · Marek Lindner

drivers/staging/batman-adv/device.c static struct device_client *device_client_hash[256]; · line 44

Quoted 5 lines · On Sunday 28 March 2010 21:13:35 Dan Carpenter wrote:
drivers/staging/batman-adv/device.c +1 -2
@@ -43,10 +43,7 @@ static struct device_client *device_client_hash[256];
 
-	for (i = 0; i < 256; i++)
-		device_client_hash[i] = NULL;
+	memset(&device_client_hash, 0, sizeof(device_client_hash));

I might be mistaken but it looks like the "&" is wrong here. Shouldn't it be:
memset(device_client_hash, 0, sizeof(device_client_hash));

Either way works.

You can easily write a small test program to verify. :)

regards,
dan carpenter

Quoted 3 lines

Cheers,
Marek

#3 lore raw
In reply to Dan Carpenter
Quoted 4 lines · On Monday 29 March 2010 16:11:34 Dan Carpenter wrote:
Quoted 2 lines

I might be mistaken but it looks like the "&" is wrong here. Shouldn't it
be: memset(device_client_hash, 0, sizeof(device_client_hash));

Either way works.

Ok, I committed it without the "&" - makes me sleep better. ;-)

Thanks for the patch,
Marek

#4 lore raw
In reply to Dan Carpenter
Quoted 8 lines · Marek Lindner
Quoted 4 lines · On Monday 29 March 2010 16:11:34 Dan Carpenter wrote:
Quoted 2 lines

I might be mistaken but it looks like the "&" is wrong here. Shouldn't it
be: memset(device_client_hash, 0, sizeof(device_client_hash));

Either way works.

Ok, I committed it without the "&" - makes me sleep better. ;-)

Cool.

regars,
dan carpenter

Quoted 6 lines

Thanks for the patch,
Marek
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html