• Sibi Sankar's avatar
    firmware: arm_scmi: Fix NULL pointer dereference during fastchannel init · 3cc12bb8
    Sibi Sankar authored
    The scmi_perf_domain_lookup requires the protocol handle to have the
    private data set, which is yet to happen during the fastchannel init
    scenario. This results in a NULL pointer dereference. Fix this by using
    the pre-populated perf_dom_info to pass on the required information
    instead.
    
      |  scmi_perf_protocol_init+0x434/0x678
      |  scmi_get_protocol_instance+0x168/0x29c
      |  scmi_devres_protocol_instance_get+0x50/0xa0
      |  scmi_devm_protocol_get+0x20/0x50
      |  scmi_cpufreq_probe+0x34/0xd4
      |  scmi_dev_probe+0x28/0x3c
      |  really_probe+0x148/0x2ac
      |  __driver_probe_device+0x78/0x12c
      |  driver_probe_device+0x40/0x160
      |  __device_attach_driver+0xb8/0x134
      |  bus_for_each_drv+0x80/0xdc
      |  __device_attach+0xa8/0x1b0
      |  device_initial_probe+0x14/0x20
      |  bus_probe_device+0xa8/0xac
      |  device_add+0x5cc/0x778
      |  device_register+0x20/0x30
      |  __scmi_device_create.part.0+0xec/0x1cc
      |  scmi_device_create+0x180/0x1c4
      |  scmi_create_protocol_devices+0x4c/0xb0
      |  scmi_probe+0x660/0x738
      |  platform_probe+0x68/0xdc
      |  really_probe+0x148/0x2ac
      |  __driver_probe_device+0x78/0x12c
      |  driver_probe_device+0x40/0x160
      |  __device_attach_driver+0xb8/0x134
      |  bus_for_each_drv+0x80/0xdc
      |  __device_attach+0xa8/0x1b0
      |  device_initial_probe+0x14/0x20
      |  bus_probe_device+0xa8/0xac
      |  deferred_probe_work_func+0x88/0xc0
      |  process_one_work+0x13c/0x264
      |  worker_thread+0x32c/0x438
      |  kthread+0x118/0x11c
      |  ret_from_fork+0x10/0x20
    
    Fixes: 619bc6e0 ("firmware: arm_scmi: Populate fastchannel info only if set operations are allowed")
    Signed-off-by: default avatarSibi Sankar <quic_sibis@quicinc.com>
    Link: https://lore.kernel.org/r/20231129065748.19871-2-quic_sibis@quicinc.comReviewed-by: default avatarCristian Marussi <cristian.marussi@arm.com>
    Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
    3cc12bb8
perf.c 26.4 KB