Kees Cook
69050f8d6d
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
...
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org >
2026-02-21 01:02:28 -08:00
Sakari Ailus and Vinod Koul
01f2bcf06d
dmaengine: ste_dma40: Remove redundant pm_runtime_mark_last_busy() calls
...
pm_runtime_put_autosuspend(), pm_runtime_put_sync_autosuspend(),
pm_runtime_autosuspend() and pm_request_autosuspend() now include a call
to pm_runtime_mark_last_busy(). Remove the now-reduntant explicit call to
pm_runtime_mark_last_busy().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://patch.msgid.link/20251027133232.392898-4-sakari.ailus@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2025-12-16 22:22:49 +05:30
Christoph Hellwig
334304ac2b
dma-mapping: don't return errors from dma_set_max_seg_size
...
A NULL dev->dma_parms indicates either a bus that is not DMA capable or
grave bug in the implementation of the bus code.
There isn't much the driver can do in terms of error handling for either
case, so just warn and continue as DMA operations will fail anyway.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Robin Murphy <robin.murphy@arm.com >
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com >
Acked-by: Ulf Hansson <ulf.hansson@linaro.org > # For MMC
2024-08-29 07:22:49 +03:00
Randy Dunlap and Vinod Koul
71a5197e2b
dmaengine: std_dma40: fix kernel-doc warnings and spelling
...
Correct kernel-doc warnings as reported by kernel test robot:
ste_dma40.c:57: warning: Excess struct member 'dev_tx' description in 'stedma40_platform_data'
ste_dma40.c:57: warning: Excess struct member 'dev_rx' description in 'stedma40_platform_data'
Correct spellos as reported by codespell.
Signed-off-by: Randy Dunlap <rdunlap@infradead.org >
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202312171417.izbQThoU-lkp@intel.com/
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: linux-arm-kernel@lists.infradead.org
Cc: Vinod Koul <vkoul@kernel.org >
Cc: dmaengine@vger.kernel.org
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20231218060834.19222-1-rdunlap@infradead.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-12-21 21:31:30 +05:30
Zhang Shurong and Vinod Koul
0618c077a8
dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe
...
The pm_runtime_enable will increase power disable depth. Thus
a pairing decrement is needed on the error handling path to
keep it balanced according to context.
We fix it by calling pm_runtime_disable when error returns.
Signed-off-by: Zhang Shurong <zhang_shurong@foxmail.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/tencent_DD2D371DB5925B4B602B1E1D0A5FA88F1208@qq.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-10-09 10:56:51 +05:30
ruanjinjie and Vinod Koul
c05ce6907b
dmaengine: ste_dma40: Add missing IRQ check in d40_probe
...
Check for the return value of platform_get_irq(): if no interrupt
is specified, it wouldn't make sense to call request_irq().
Fixes: 8d318a50b3 ("DMAENGINE: Support for ST-Ericssons DMA40 block v3")
Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230724144108.2582917-1-ruanjinjie@huawei.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-08-21 11:12:16 +05:30
Arnd Bergmann and Vinod Koul
41be14c71b
dmaengine: ste_dma40: use proper format string for resource_size_t
...
A fixup for a printk format string warning causes an out-of-bounds
variable access as the %pR string expects a struct resource instead of
a plain resource_size_t.
Change both to the special %pap and %pap helpers for these types.
Fixes: 5a1a3b9c19 ("dmaengine: ste_dma40: Get LCPA SRAM from SRAM node")
Fixes: ef1e1c41a1 ("dmaengine: ste_dma40: use correct print specfier for resource_size_t")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Link: https://lore.kernel.org/r/20230519093447.4097040-1-arnd@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-19 16:17:29 +05:30
Vinod Koul
401f022cc5
dmaengine: ste_dma40: fix typo in enum documentation
...
s/40_command/d40_command to fix the below warning reported:
drivers/dma/ste_dma40.c:151: warning: expecting prototype for enum 40_command.
Prototype was for enum d40_command instead
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
Link: https://lore.kernel.org/r/20230517064434.141091-2-vkoul@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-18 16:56:38 +05:30
Vinod Koul
ef1e1c41a1
dmaengine: ste_dma40: use correct print specfier for resource_size_t
...
We should use %pR for printing resource_size_t, so update that fixing
the warning:
drivers/dma/ste_dma40.c:3556:25: warning: format specifies type 'unsigned int'
but the argument has type 'resource_size_t' (aka 'unsigned long long') [-Wformat]
Reported-by: kernel test robot <lkp@intel.com >
Fixes: 5a1a3b9c19 ("dmaengine: ste_dma40: Get LCPA SRAM from SRAM node")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
Link: https://lore.kernel.org/r/20230517064434.141091-1-vkoul@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-18 16:56:38 +05:30
Linus Walleij and Vinod Koul
2893f6bc9d
dmaengine: ste_dma40: Return error codes properly
...
This makes the probe() and its subfunction d40_hw_detect_init()
return proper error codes.
One effect of this is that deferred probe, e.g from the clock,
will start to work, would it happen. Also it is better design.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230417-ux500-dma40-cleanup-v3-7-60bfa6785968@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-16 23:00:20 +05:30
Linus Walleij and Vinod Koul
339f504108
dmaengine: ste_dma40: Use managed resources
...
This switches the DMA40 driver to use a bunch of managed
resources and strip down the errorpath.
The result is pretty neat and makes the driver way more
readable.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230417-ux500-dma40-cleanup-v3-6-60bfa6785968@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-16 23:00:19 +05:30
Linus Walleij and Vinod Koul
e59d81e917
dmaengine: ste_dma40: Pass dev to OF function
...
The OF platform data population function only wants to
use struct device *dev, so pass that instead.
This change makes the compiler realize that the local
platform data variable is unused, so drop that too.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230417-ux500-dma40-cleanup-v3-5-60bfa6785968@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-16 23:00:19 +05:30
Linus Walleij and Vinod Koul
42ae6f1695
dmaengine: ste_dma40: Remove platform data
...
The Ux500 is device tree-only since ages. Delete the
platform data header and push it into or next to the driver
instead.
Drop the non-DT probe path since this will not happen.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230417-ux500-dma40-cleanup-v3-4-60bfa6785968@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-16 23:00:19 +05:30
Linus Walleij and Vinod Koul
fb85a8c517
dmaengine: ste_dma40: Add dev helper variable
...
The &pdev->dev device pointer is used so many times in the
probe() and d40_hw_detect_init() functions that a local *dev
variable makes the code way easier to read.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230417-ux500-dma40-cleanup-v3-3-60bfa6785968@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-16 23:00:19 +05:30
Linus Walleij and Vinod Koul
5a1a3b9c19
dmaengine: ste_dma40: Get LCPA SRAM from SRAM node
...
Instead of passing the reserved SRAM as a "reg" field
look for a phandle to the LCPA SRAM memory so we can
use the proper SRAM device tree bindings for the SRAM.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20230417-ux500-dma40-cleanup-v3-2-60bfa6785968@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2023-05-16 23:00:19 +05:30
Julia Lawall and Vinod Koul
a71da24ce1
dmaengine: ste_dma40: fix typo in comment
...
Spelling mistake (triple letters) in comment.
Detected with the help of Coccinelle.
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20220521111145.81697-17-Julia.Lawall@inria.fr
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2022-07-06 10:54:08 +05:30
Yang Yingliang and Vinod Koul
fffdaba402
dmaengine: stedma40: add missing iounmap() on error in d40_probe()
...
Add the missing iounmap() before return from d40_probe()
in the error handling case.
Fixes: 8d318a50b3 ("DMAENGINE: Support for ST-Ericssons DMA40 block v3")
Reported-by: Hulk Robot <hulkci@huawei.com >
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20210518141108.1324127-1-yangyingliang@huawei.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2021-05-31 09:47:27 +05:30
Bjorn Helgaas and Vinod Koul
c281cde7a4
dmaengine: stedma40: fix 'physical' typo
...
Fix misspelling of "physical".
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com >
Link: https://lore.kernel.org/r/20210126205906.2918099-1-helgaas@kernel.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2021-01-27 21:13:19 +05:30
Barry Song and Vinod Koul
618a8e383b
dmaengine: ste_dma40: remove redundant irqsave and irqrestore in hardIRQ
...
Running in hardIRQ, disabling IRQ is redundant since hardIRQ has disabled
IRQ. This patch removes the irqsave and irqstore to save some instruction
cycles.
Signed-off-by: Barry Song <song.bao.hua@hisilicon.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Cc: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20201027215252.25820-10-song.bao.hua@hisilicon.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2020-11-09 17:25:54 +05:30
Allen Pais and Vinod Koul
b1880c9074
dmaengine: ste_dma40: convert tasklets to use new tasklet_setup() API
...
In preparation for unconditionally passing the
struct tasklet_struct pointer to all tasklet
callbacks, switch to using the new tasklet_setup()
and from_tasklet() to pass the tasklet pointer explicitly.
Signed-off-by: Romain Perier <romain.perier@gmail.com >
Signed-off-by: Allen Pais <allen.lkml@gmail.com >
Link: https://lore.kernel.org/r/20200831103542.305571-26-allen.lkml@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2020-09-18 12:19:07 +05:30
Robin Murphy and Vinod Koul
1ecb12781c
dmaengine: ste_dma40: Drop local dma_parms
...
Since commit 9495b7e92f ("driver core: platform: Initialize dma_parms
for platform devices"), struct platform_device already provides a
dma_parms structure, so we can save allocating another one.
Signed-off-by: Robin Murphy <robin.murphy@arm.com >
Link: https://lore.kernel.org/r/011a956183b92a258bf0922385d145ea966dcbea.1599164692.git.robin.murphy@arm.com
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2020-09-11 17:42:13 +05:30
Lee Jones and Vinod Koul
0b851134f6
dmaengine: ste_dma40: Supply 2 missing struct attribute descriptions
...
Fixes the following W=1 kernel build warning(s):
drivers/dma/ste_dma40.c:398: warning: Function parameter or member 'dma_addr' not described in 'd40_lcla_pool'
drivers/dma/ste_dma40.c:601: warning: Function parameter or member 'dma_parms' not described in 'd40_base'
Signed-off-by: Lee Jones <lee.jones@linaro.org >
Cc: Per Forlin <per.forlin@stericsson.com >
Cc: Jonas Aaberg <jonas.aberg@stericsson.com >
Link: https://lore.kernel.org/r/20200714111546.1755231-7-lee.jones@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2020-07-15 17:50:46 +05:30
Arnd Bergmann and Vinod Koul
5d6fb56072
dmaengine: ste_dma40: fix unneeded variable warning
...
clang-9 points out that there are two variables that depending on the
configuration may only be used in an ARRAY_SIZE() expression but not
referenced:
drivers/dma/ste_dma40.c:145:12: error: variable 'd40_backup_regs' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]
static u32 d40_backup_regs[] = {
^
drivers/dma/ste_dma40.c:214:12: error: variable 'd40_backup_regs_chan' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration]
static u32 d40_backup_regs_chan[] = {
Mark these __maybe_unused to shut up the warning.
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20190712091357.744515-1-arnd@arndb.de
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2019-07-22 20:58:33 +05:30
Thomas Gleixner and Greg Kroah-Hartman
af873fcece
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194
...
Based on 1 normalized pattern(s):
license terms gnu general public license gpl version 2
extracted by the scancode license scanner the SPDX license identifier
GPL-2.0-only
has been chosen to replace the boilerplate/reference in 161 file(s).
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Allison Randal <allison@lohutok.net >
Reviewed-by: Alexios Zavras <alexios.zavras@intel.com >
Reviewed-by: Steve Winslow <swinslow@gmail.com >
Reviewed-by: Richard Fontana <rfontana@redhat.com >
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190528170027.447718015@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-05-30 11:29:22 -07:00
Vinod Koul
9e314ef35c
dmaengine: ste_dma40: remove dma_slave_config direction usage
...
dma_slave_config direction was marked as deprecated quite some
time back, remove the usage from this driver so that the field
can be removed
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vkoul@kernel.org >
2018-11-24 20:22:21 +05:30