> > dfl_fpga_cdev_assign_port() > mutex_lock(&cdev->lock); --> Line 1067 (Lock A) > mutex_lock(&pdata->lock); --> Line 1624 (Lock B) This lock is from port platform device. > > fme_pr() > mutex_lock(&pdata->lock); --> Line 126 (Lock B) This lock is from fme platform device. Actually they are different locks, but yes, maybe we should consider improving the naming to avoid misunderstanding. Thanks Hao > fpga_region_program_fpga() > fpga_bridges_enable() > fpga_bridge_enable() > fme_bridge_enable_set() --> function pointer via > "bridge->br_ops->enable_set()" > dfl_fpga_cdev_find_port() > mutex_lock(&cdev->lock); --> Line 499 (LockA) > > When dfl_fpga_cdev_assign_port() and fme_pr() are concurrently executed, > the deadlock can occur. > > I am not quite sure whether this possible deadlock is real and how to > fix it if it is real. > Any feedback would be appreciated, thanks > > Reported-by: TOTE Robot <oslab@xxxxxxxxxxxxxxx> > > > Best wishes, > Jia-Ju Bai