Hi Uwe, On Sun, Oct 10, 2010 at 09:39:46PM +0200, Uwe Kleine-König wrote: > This fixes an off by one error noticed by Vasiliy Kulikov en passant. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > --- > drivers/mfd/mc13xxx-core.c | 7 +------ > 1 files changed, 1 insertions(+), 6 deletions(-) > > diff --git a/drivers/mfd/mc13xxx-core.c b/drivers/mfd/mc13xxx-core.c > index 93258ad..b763b8c 100644 > --- a/drivers/mfd/mc13xxx-core.c > +++ b/drivers/mfd/mc13xxx-core.c > @@ -687,7 +687,6 @@ EXPORT_SYMBOL_GPL(mc13783_adc_do_conversion); > static int mc13xxx_add_subdevice_pdata(struct mc13xxx *mc13xxx, > const char *format, void *pdata, size_t pdata_size) > { > - char buf[30]; > const char *name = mc13xxx_get_chipname(mc13xxx); > > struct mfd_cell cell = { > @@ -695,11 +694,7 @@ static int mc13xxx_add_subdevice_pdata(struct mc13xxx *mc13xxx, > .data_size = pdata_size, > }; > > - /* there is no asnprintf in the kernel :-( */ > - if (snprintf(buf, sizeof(buf), format, name) > sizeof(buf)) > - return -E2BIG; > - > - cell.name = kmemdup(buf, strlen(buf) + 1, GFP_KERNEL); > + cell.name = kasprintf(GFP_KERNEL, format, name); I don't think you need to allocate a name pointer here. cell.name = mc13xxx_get_chipname(mc13xxx); should be enough as platform_device_alloc() will memcpy it into an allocated buffer. Cheers, Samuel. > if (!cell.name) > return -ENOMEM; > > -- > 1.7.2.3 > -- Intel Open Source Technology Centre http://oss.intel.com/ -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html