Messages in this thread | | | Date | Tue, 6 Dec 2011 05:33:06 +0400 | From | Anton Vorontsov <> | Subject | Re: [PATCH 5/5] power: sbs-battery: Change power supply name |
| |
On Mon, Dec 05, 2011 at 03:58:07PM -0800, Rhyland Klein wrote: > static int sbs_read_word_data(struct i2c_client *client, u8 address) > @@ -681,15 +682,25 @@ static int __devinit sbs_probe(struct i2c_client *client, > struct sbs_platform_data *pdata = client->dev.platform_data; > int rc; > int irq; > + char *name; > > - chip = kzalloc(sizeof(struct sbs_info), GFP_KERNEL); > - if (!chip) > + name = kasprintf(GFP_KERNEL, "%s-%s", "sbs", dev_name(&client->dev));
Mm... why not just
kasprintf(GFP_KERNEL, "sbs-%s", dev_name(&client->dev)) ?
> + if (!name) { > + dev_err(&client->dev, "Failed to allocate device name\n"); > return -ENOMEM; > + } > + > + chip = kzalloc(sizeof(struct sbs_info), GFP_KERNEL); > + if (!chip) { > + rc = -ENOMEM; > + goto exit_free_name; > + } > > chip->client = client; > chip->enable_detection = false; > chip->gpio_detect = false; > - chip->power_supply.name = "battery"; > + chip->name = name; > + chip->power_supply.name = name; > chip->power_supply.type = POWER_SUPPLY_TYPE_BATTERY; > chip->power_supply.properties = sbs_properties; > chip->power_supply.num_properties = ARRAY_SIZE(sbs_properties); > @@ -774,6 +785,9 @@ exit_psupply: > > kfree(chip); > > +exit_free_name: > + kfree(name); > + > return rc; > } > > @@ -790,6 +804,7 @@ static int __devexit sbs_remove(struct i2c_client *client) > > cancel_delayed_work_sync(&chip->work); > > + kfree(chip->name);
I think you don't really need chip->name.
power_supply_unregister() won't touch power_supply.name, so you can kfree(chip->power_supply.name);
Otherwise, the patch looks great.
Thanks!
-- Anton Vorontsov Email: cbouatmailru@gmail.com
| |