Re: [PATCH v2] media: qcom: camss: fix error path on configuration of power domains

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 13/08/2024 22:03, Vladimir Zapolskiy wrote:
There is a chance to meet runtime issues during configuration of CAMSS
power domains, because on the error path dev_pm_domain_detach() is
unexpectedly called with NULL or error pointer.

One of the simplest ways to reproduce the problem is to probe CAMSS
driver before registration of CAMSS power domains, for instance if
a platform CAMCC driver is simply not built.

Warning backtrace example:

     Unable to handle kernel NULL pointer dereference at virtual address 00000000000001a2

     <snip>

     pc : dev_pm_domain_detach+0x8/0x48
     lr : camss_probe+0x374/0x9c0

     <snip>

     Call trace:
      dev_pm_domain_detach+0x8/0x48
      platform_probe+0x70/0xf0
      really_probe+0xc4/0x2a8
      __driver_probe_device+0x80/0x140
      driver_probe_device+0x48/0x170
      __device_attach_driver+0xc0/0x148
      bus_for_each_drv+0x88/0xf0
      __device_attach+0xb0/0x1c0
      device_initial_probe+0x1c/0x30
      bus_probe_device+0xb4/0xc0
      deferred_probe_work_func+0x90/0xd0
      process_one_work+0x164/0x3e0
      worker_thread+0x310/0x420
      kthread+0x120/0x130
      ret_from_fork+0x10/0x20

Fixes: 23aa4f0cd327 ("media: qcom: camss: Move VFE power-domain specifics into vfe.c")
Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx>
---
The first version of the patch and discussion is found over here:

   https://lore.kernel.org/all/20240806221204.1560258-1-vladimir.zapolskiy@xxxxxxxxxx/

Changes from v1 to v2:
* added an encountered runtime warning to the commit message per ask from Bryan.

I tested this fix in both cases of set and unset "power-domain-names"
property in camss device tree node, and I didn't find any negative side
effects of the fix.

  drivers/media/platform/qcom/camss/camss.c | 19 ++++++++-----------
  1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 51b1d3550421..aa894be1461d 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c

+ stable@xxxxxxxxxxxxxxx

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux