diff options
author | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | 2020-06-01 02:21:00 +0800 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2020-06-22 17:21:36 +0530 |
commit | dd906cc615a5c0f7b95c20200963958c1cc0ea74 (patch) | |
tree | aadb18e186ea56bfa8ba970c561b6243ce35b909 /drivers/soundwire | |
parent | 9cd1c5a721d2e1d767d9add0ebf53c93459ba87c (diff) | |
download | linux-dd906cc615a5c0f7b95c20200963958c1cc0ea74.tar.gz linux-dd906cc615a5c0f7b95c20200963958c1cc0ea74.tar.bz2 linux-dd906cc615a5c0f7b95c20200963958c1cc0ea74.zip |
soundwire: intel_init: use devm_ allocation
Make error handling simpler with devm_ allocation.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20200531182102.27840-5-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/soundwire')
-rw-r--r-- | drivers/soundwire/intel_init.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/soundwire/intel_init.c b/drivers/soundwire/intel_init.c index d6e85e582c9b..57eac5fd4840 100644 --- a/drivers/soundwire/intel_init.c +++ b/drivers/soundwire/intel_init.c @@ -42,9 +42,6 @@ static int sdw_intel_cleanup_pdev(struct sdw_intel_ctx *ctx) link++; } - kfree(ctx->links); - ctx->links = NULL; - return 0; } @@ -96,14 +93,15 @@ static struct sdw_intel_ctx dev_dbg(&adev->dev, "Creating %d SDW Link devices\n", count); - ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + ctx = devm_kzalloc(&adev->dev, sizeof(*ctx), GFP_KERNEL); if (!ctx) return NULL; ctx->count = count; - ctx->links = kcalloc(ctx->count, sizeof(*ctx->links), GFP_KERNEL); + ctx->links = devm_kcalloc(&adev->dev, ctx->count, + sizeof(*ctx->links), GFP_KERNEL); if (!ctx->links) - goto link_err; + return NULL; link = ctx->links; @@ -146,9 +144,8 @@ static struct sdw_intel_ctx return ctx; pdev_err: + ctx->count = i; sdw_intel_cleanup_pdev(ctx); -link_err: - kfree(ctx); return NULL; } @@ -216,7 +213,6 @@ void *sdw_intel_init(acpi_handle *parent_handle, struct sdw_intel_res *res) void sdw_intel_exit(struct sdw_intel_ctx *ctx) { sdw_intel_cleanup_pdev(ctx); - kfree(ctx); } EXPORT_SYMBOL(sdw_intel_exit); |