mirror of
https://github.com/torvalds/linux.git
synced 2026-10-04 10:19:02 +02:00
ALSA: hda: tas2781: Use auto-cleanup for put_device()
A temporary refcount management of a struct device can be done gracefully with __clean(put_device) for avoiding potential leaks. No functional change but just a code cleanup. Cc: Shenghao Ding <shenghao-ding@ti.com> Cc: Kevin Lu <kevin-lu@ti.com> Cc: Baojun Xu <baojun.xu@ti.com> Cc: Sen Wang <sen@ti.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20260803140100.919071-2-tiwai@suse.de
This commit is contained in:
parent
5713fea91f
commit
7c458597a2
|
|
@ -88,7 +88,6 @@ static int tas2781_read_acpi(struct tasdevice_priv *p, const char *hid)
|
|||
{
|
||||
struct gpio_desc *speaker_id;
|
||||
struct acpi_device *adev;
|
||||
struct device *physdev;
|
||||
LIST_HEAD(resources);
|
||||
const char *sub;
|
||||
uint32_t subid;
|
||||
|
|
@ -101,7 +100,8 @@ static int tas2781_read_acpi(struct tasdevice_priv *p, const char *hid)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
physdev = get_device(acpi_get_first_physical_node(adev));
|
||||
struct device *physdev __free(put_device) =
|
||||
get_device(acpi_get_first_physical_node(adev));
|
||||
ret = acpi_dev_get_resources(adev, &resources, tas2781_get_i2c_res, p);
|
||||
if (ret < 0) {
|
||||
dev_err(p->dev, "Failed to get ACPI resource.\n");
|
||||
|
|
@ -151,14 +151,12 @@ static int tas2781_read_acpi(struct tasdevice_priv *p, const char *hid)
|
|||
end_2563:
|
||||
acpi_dev_free_resource_list(&resources);
|
||||
strscpy(p->dev_name, hid, sizeof(p->dev_name));
|
||||
put_device(physdev);
|
||||
acpi_dev_put(adev);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
dev_err(p->dev, "read acpi error, ret: %d\n", ret);
|
||||
put_device(physdev);
|
||||
acpi_dev_put(adev);
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -328,7 +328,6 @@ static int tas2781_read_acpi(struct tas2781_hda *tas_hda,
|
|||
{
|
||||
struct tasdevice_priv *p = tas_hda->priv;
|
||||
struct acpi_device *adev;
|
||||
struct device *physdev;
|
||||
u32 values[HDA_MAX_COMPONENTS];
|
||||
const char *property;
|
||||
size_t nval;
|
||||
|
|
@ -341,7 +340,9 @@ static int tas2781_read_acpi(struct tas2781_hda *tas_hda,
|
|||
}
|
||||
|
||||
strscpy(p->dev_name, hid, sizeof(p->dev_name));
|
||||
physdev = get_device(acpi_get_first_physical_node(adev));
|
||||
|
||||
struct device *physdev __free(put_device) =
|
||||
get_device(acpi_get_first_physical_node(adev));
|
||||
acpi_dev_put(adev);
|
||||
if (!physdev)
|
||||
return -ENODEV;
|
||||
|
|
@ -381,13 +382,11 @@ static int tas2781_read_acpi(struct tas2781_hda *tas_hda,
|
|||
goto err;
|
||||
}
|
||||
}
|
||||
put_device(physdev);
|
||||
|
||||
return 0;
|
||||
|
||||
err:
|
||||
dev_err(p->dev, "read acpi error, ret: %d\n", ret);
|
||||
put_device(physdev);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user