
From: Dmitry Torokhov <dtor_core@ameritech.net>

IRDA: smsc-ircc2 - remove home-grown DIM macro, use ARRAY_SIZE intead.
      Also fix out-of-bound array access.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Cc: Jean Tourrilhes <jt@hpl.hp.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/net/irda/smsc-ircc2.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff -puN drivers/net/irda/smsc-ircc2.c~smsc-ircc2-drop-dim-macro-in-favor-of-array_size drivers/net/irda/smsc-ircc2.c
--- 25/drivers/net/irda/smsc-ircc2.c~smsc-ircc2-drop-dim-macro-in-favor-of-array_size	2005-06-24 23:45:12.000000000 -0700
+++ 25-akpm/drivers/net/irda/smsc-ircc2.c	2005-06-24 23:45:12.000000000 -0700
@@ -163,7 +163,6 @@ struct smsc_ircc_cb {
 /* Constants */
 
 static const char *driver_name = "smsc-ircc2";
-#define	DIM(x)	(sizeof(x)/(sizeof(*(x))))
 #define SMSC_IRCC2_C_IRDA_FALLBACK_SPEED	9600
 #define SMSC_IRCC2_C_DEFAULT_TRANSCEIVER	1
 #define SMSC_IRCC2_C_NET_TIMEOUT		0
@@ -240,7 +239,7 @@ static smsc_transceiver_t smsc_transceiv
 	{ "ATC IRMode", smsc_ircc_set_transceiver_smsc_ircc_atc, smsc_ircc_probe_transceiver_smsc_ircc_atc },
 	{ NULL, NULL }
 };
-#define SMSC_IRCC2_C_NUMBER_OF_TRANSCEIVERS (DIM(smsc_transceivers)-1)
+#define SMSC_IRCC2_C_NUMBER_OF_TRANSCEIVERS (ARRAY_SIZE(smsc_transceivers) - 1)
 
 /*  SMC SuperIO chipsets definitions */
 
@@ -400,7 +399,7 @@ static int __init smsc_ircc_open(unsigne
 		goto err_out;
 
 	err = -ENOMEM;
-	if (dev_count > DIM(dev_self)) {
+	if (dev_count >= ARRAY_SIZE(dev_self)) {
 	        IRDA_WARNING("%s(), too many devices!\n", __FUNCTION__);
 		goto err_out1;
 	}
_
