Patch "firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device" has been added to the 6.1-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     firmware-arm_ffa-assign-the-missing-idr-allocation-i.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 81d1980caad699189e53096de0c316cc19a599c6
Author: Sudeep Holla <sudeep.holla@xxxxxxx>
Date:   Tue Oct 3 09:59:32 2023 +0100

    firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device
    
    [ Upstream commit 7d0bc6360f17ea323ab25939a34857123d7d87e5 ]
    
    Commit 19b8766459c4 ("firmware: arm_ffa: Fix FFA device names for logical
    partitions") added an ID to the FFA device using ida_alloc() and append
    the same to "arm-ffa" to make up a unique device name. However it missed
    to stash the id value in ffa_dev to help freeing the ID later when the
    device is destroyed.
    
    Due to the missing/unassigned ID in FFA device, we get the following
    warning when the FF-A device is unregistered.
    
      |   ida_free called for id=0 which is not allocated.
      |   WARNING: CPU: 7 PID: 1 at lib/idr.c:525 ida_free+0x114/0x164
      |   CPU: 7 PID: 1 Comm: swapper/0 Not tainted 6.6.0-rc4 #209
      |   pstate: 61400009 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
      |   pc : ida_free+0x114/0x164
      |   lr : ida_free+0x114/0x164
      |   Call trace:
      |    ida_free+0x114/0x164
      |    ffa_release_device+0x24/0x3c
      |    device_release+0x34/0x8c
      |    kobject_put+0x94/0xf8
      |    put_device+0x18/0x24
      |    klist_devices_put+0x14/0x20
      |    klist_next+0xc8/0x114
      |    bus_for_each_dev+0xd8/0x144
      |    arm_ffa_bus_exit+0x30/0x54
      |    ffa_init+0x68/0x330
      |    do_one_initcall+0xdc/0x250
      |    do_initcall_level+0x8c/0xac
      |    do_initcalls+0x54/0x94
      |    do_basic_setup+0x1c/0x28
      |    kernel_init_freeable+0x104/0x170
      |    kernel_init+0x20/0x1a0
      |    ret_from_fork+0x10/0x20
    
    Fix the same by actually assigning the ID in the FFA device this time
    for real.
    
    Fixes: 19b8766459c4 ("firmware: arm_ffa: Fix FFA device names for logical partitions")
    Link: https://lore.kernel.org/r/20231003085932.3553985-1-sudeep.holla@xxxxxxx
    Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/firmware/arm_ffa/bus.c b/drivers/firmware/arm_ffa/bus.c
index b9ce784f087df..248594b59c64d 100644
--- a/drivers/firmware/arm_ffa/bus.c
+++ b/drivers/firmware/arm_ffa/bus.c
@@ -193,6 +193,7 @@ struct ffa_device *ffa_device_register(const uuid_t *uuid, int vm_id,
 	dev->release = ffa_release_device;
 	dev_set_name(&ffa_dev->dev, "arm-ffa-%d", id);
 
+	ffa_dev->id = id;
 	ffa_dev->vm_id = vm_id;
 	ffa_dev->ops = ops;
 	uuid_copy(&ffa_dev->uuid, uuid);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux