Skip to content

Commit

Permalink
V4L/DVB (11325): soc-camera: fix breakage caused by 1fa5ae8
Browse files Browse the repository at this point in the history
soc-camera re-uses struct devices multiple times in calls to device_register(),
therefore it has to reset the embedded struct kobject to avoid the "tried to
init an initialized object" error, which then also erases its name. Now with
the transition to kobject's name for device names, we have to re-initialise the
name before each call to device_register().

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Guennadi Liakhovetski authored and Mauro Carvalho Chehab committed Apr 7, 2009
1 parent 6cb2c00 commit eee1663
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/media/video/soc_camera.c
Original file line number Diff line number Diff line change
Expand Up @@ -764,7 +764,10 @@ static int soc_camera_s_register(struct file *file, void *fh,

static int device_register_link(struct soc_camera_device *icd)
{
int ret = device_register(&icd->dev);
int ret = dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);

if (!ret)
ret = device_register(&icd->dev);

if (ret < 0) {
/* Prevent calling device_unregister() */
Expand Down Expand Up @@ -1060,7 +1063,6 @@ int soc_camera_device_register(struct soc_camera_device *icd)

icd->devnum = num;
icd->dev.bus = &soc_camera_bus_type;
dev_set_name(&icd->dev, "%u-%u", icd->iface, icd->devnum);

icd->dev.release = dummy_release;
icd->use_count = 0;
Expand Down

0 comments on commit eee1663

Please sign in to comment.