i3c: Fix the verification of random PID
The validation of random PID should be done by checking the boardinfo->pid instead of info.pid which is empty. Doing the change the info struture declaration is no longer necessary. Cc: Boris Brezillon <bbrezillon@kernel.org> Cc: <stable@vger.kernel.org> Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure") Signed-off-by: Vitor Soares <vitor.soares@synopsys.com> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
This commit is contained in:
parent
15ade5d2e7
commit
9752c37cc8
@ -1980,7 +1980,6 @@ of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,
|
|||||||
{
|
{
|
||||||
struct i3c_dev_boardinfo *boardinfo;
|
struct i3c_dev_boardinfo *boardinfo;
|
||||||
struct device *dev = &master->dev;
|
struct device *dev = &master->dev;
|
||||||
struct i3c_device_info info = { };
|
|
||||||
enum i3c_addr_slot_status addrstatus;
|
enum i3c_addr_slot_status addrstatus;
|
||||||
u32 init_dyn_addr = 0;
|
u32 init_dyn_addr = 0;
|
||||||
|
|
||||||
@ -2012,8 +2011,8 @@ of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,
|
|||||||
|
|
||||||
boardinfo->pid = ((u64)reg[1] << 32) | reg[2];
|
boardinfo->pid = ((u64)reg[1] << 32) | reg[2];
|
||||||
|
|
||||||
if ((info.pid & GENMASK_ULL(63, 48)) ||
|
if ((boardinfo->pid & GENMASK_ULL(63, 48)) ||
|
||||||
I3C_PID_RND_LOWER_32BITS(info.pid))
|
I3C_PID_RND_LOWER_32BITS(boardinfo->pid))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
boardinfo->init_dyn_addr = init_dyn_addr;
|
boardinfo->init_dyn_addr = init_dyn_addr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user