Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: sti: regmap_field usage improvements

Merge series from Sander Vanheule <sander@svanheule.net>:

uni_player_parse_dt_audio_glue() allocates two regmap_field objects on
the device's regmap. However, error codes from these allocations are not
propagated correctly and the resources will leak on device removal.

These issues were found while looking for users of regmap_field_alloc(),
to assess the impact of adding a cleanup helper for regmap_field. It
appears this driver is the only (remaining) in-tree user of this
allocator. Since the resources are long-lived, it may as well switch to
devm_regmap_field_alloc().

As I don't have access to this hardware, these patches were only compile
tested on a UM build.

+7 -2
+7 -2
sound/soc/sti/uniperif_player.c
··· 1028 1028 return PTR_ERR(regmap); 1029 1029 } 1030 1030 1031 - player->clk_sel = regmap_field_alloc(regmap, regfield[0]); 1032 - player->valid_sel = regmap_field_alloc(regmap, regfield[1]); 1031 + player->clk_sel = devm_regmap_field_alloc(&pdev->dev, regmap, regfield[0]); 1032 + if (IS_ERR(player->clk_sel)) 1033 + return PTR_ERR(player->clk_sel); 1034 + 1035 + player->valid_sel = devm_regmap_field_alloc(&pdev->dev, regmap, regfield[1]); 1036 + if (IS_ERR(player->valid_sel)) 1037 + return PTR_ERR(player->valid_sel); 1033 1038 1034 1039 return 0; 1035 1040 }