[PATCH] af9015: avoid magically sized temporal buffer in eeprom_dump

2009-06-18 Thread Jan Nikitenko
Replace printing to magically sized temporal buffer with use of KERN_CONT for 
continual printing of eeprom registers dump.

Since deb_info is defined as dprintk, which is defined as printk without 
additional parameters, meaning that deb_info is equivalent to direct printk 
(without KERN_ facility), we can use KERN_DEBUG and KERN_CONT in there, 
eliminating the need for sprintf into temporal buffer with not easily 
readable/magical size.

Though it's strange, that deb_info definition uses printk without KERN_ 
facility and callers don't use it either.

---

I do not see better solution for the magical sized buffer, since print_hex_dump 
like functions need dump of registers in memory (so the magical sized temporal 
buffer would be needed for a copy anyway).
If deb_info was defined with inside KERN_ facility, then this patch would not 
be valid and so the magically sized temporal buffer might be acceptable to keep 
there.

This patch depends on 'af9015: fix stack corruption bug' patch.

 linux/drivers/media/dvb/dvb-usb/af9015.c |   12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff -r 722c6faf3ab5 linux/drivers/media/dvb/dvb-usb/af9015.c
--- a/linux/drivers/media/dvb/dvb-usb/af9015.c  Wed Jun 17 22:39:23 2009 -0300
+++ b/linux/drivers/media/dvb/dvb-usb/af9015.c  Thu Jun 18 08:49:58 2009 +0200
@@ -541,24 +541,22 @@
 /* dump eeprom */
 static int af9015_eeprom_dump(struct dvb_usb_device *d)
 {
-   char buf[4+3*16+1], buf2[4];
u8 reg, val;
 
for (reg = 0; ; reg++) {
if (reg % 16 == 0) {
if (reg)
-   deb_info(%s\n, buf);
-   sprintf(buf, %02x: , reg);
+   deb_info(KERN_CONT \n);
+   deb_info(KERN_DEBUG %02x:, reg);
}
if (af9015_read_reg_i2c(d, AF9015_I2C_EEPROM, reg, val) == 0)
-   sprintf(buf2, %02x , val);
+   deb_info(KERN_CONT,  %02x, val);
else
-   strcpy(buf2, -- );
-   strcat(buf, buf2);
+   deb_info(KERN_CONT,  --);
if (reg == 0xff)
break;
}
-   deb_info(%s\n, buf);
+   deb_info(KERN_CONT \n);
return 0;
 }
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] af9015: avoid magically sized temporal buffer in eeprom_dump

2009-06-18 Thread Jan Nikitenko
Replace printing to magically sized temporal buffer with use of KERN_CONT
for continual printing of eeprom registers dump.

Since deb_info is defined as dprintk, which is defined as printk without
additional parameters, meaning that deb_info is equivalent to direct printk
(without KERN_ facility), we can use KERN_DEBUG and KERN_CONT in there,
eliminating the need for sprintf into temporal buffer with not easily
readable/magical size.

Though it's strange, that deb_info definition uses printk without KERN_
facility and callers don't use it either.

Signed-off-by: Jan Nikitenko jan.nikite...@gmail.com

---

(added missing Singned-off)

I do not see better solution for the magical sized buffer, since print_hex_dump
like functions need dump of registers in memory (so the magical sized temporal
buffer would be needed for a copy anyway).
If deb_info was defined with inside KERN_ facility, then this patch would not
be valid and so the magically sized temporal buffer might be acceptable to keep
there.

This patch depends on 'af9015: fix stack corruption bug' patch.

 linux/drivers/media/dvb/dvb-usb/af9015.c |   12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff -r 722c6faf3ab5 linux/drivers/media/dvb/dvb-usb/af9015.c
--- a/linux/drivers/media/dvb/dvb-usb/af9015.c  Wed Jun 17 22:39:23 2009 -0300
+++ b/linux/drivers/media/dvb/dvb-usb/af9015.c  Thu Jun 18 08:49:58 2009 +0200
@@ -541,24 +541,22 @@
 /* dump eeprom */
 static int af9015_eeprom_dump(struct dvb_usb_device *d)
 {
-   char buf[4+3*16+1], buf2[4];
u8 reg, val;
 
for (reg = 0; ; reg++) {
if (reg % 16 == 0) {
if (reg)
-   deb_info(%s\n, buf);
-   sprintf(buf, %02x: , reg);
+   deb_info(KERN_CONT \n);
+   deb_info(KERN_DEBUG %02x:, reg);
}
if (af9015_read_reg_i2c(d, AF9015_I2C_EEPROM, reg, val) == 0)
-   sprintf(buf2, %02x , val);
+   deb_info(KERN_CONT,  %02x, val);
else
-   strcpy(buf2, -- );
-   strcat(buf, buf2);
+   deb_info(KERN_CONT,  --);
if (reg == 0xff)
break;
}
-   deb_info(%s\n, buf);
+   deb_info(KERN_CONT \n);
return 0;
 }
 
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] af9015: avoid magically sized temporal buffer in eeprom_dump

2009-06-18 Thread Trent Piepho
On Thu, 18 Jun 2009, Jan Nikitenko wrote:
 Replace printing to magically sized temporal buffer with use of KERN_CONT

temporary not temporal.

 - sprintf(buf2, %02x , val);
 + deb_info(KERN_CONT,  %02x, val);

No comma after KERN_CONT

   else
 - strcpy(buf2, -- );
 - strcat(buf, buf2);
 + deb_info(KERN_CONT,  --);

No comma after KERN_CONT

Just use printk() instead of deb_info() for the ones that use KERN_CONT.

   if (reg == 0xff)
   break;
   }
 - deb_info(%s\n, buf);
 + deb_info(KERN_CONT \n);
   return 0;
  }

 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html