[PATCH 5.0 079/115] i3c: Fix the verification of random PID

From: Greg Kroah-Hartman
Date: Wed Apr 24 2019 - 13:36:51 EST


From: Vitor Soares <vitor.soares@xxxxxxxxxxxx>

commit 9752c37cc89f43675e70cf9acff23519fa84b48c upstream.

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@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure")
Signed-off-by: Vitor Soares <vitor.soares@xxxxxxxxxxxx>
Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/i3c/master.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -1980,7 +1980,6 @@ of_i3c_master_add_i3c_boardinfo(struct i
{
struct i3c_dev_boardinfo *boardinfo;
struct device *dev = &master->dev;
- struct i3c_device_info info = { };
enum i3c_addr_slot_status addrstatus;
u32 init_dyn_addr = 0;

@@ -2012,8 +2011,8 @@ of_i3c_master_add_i3c_boardinfo(struct i

boardinfo->pid = ((u64)reg[1] << 32) | reg[2];

- if ((info.pid & GENMASK_ULL(63, 48)) ||
- I3C_PID_RND_LOWER_32BITS(info.pid))
+ if ((boardinfo->pid & GENMASK_ULL(63, 48)) ||
+ I3C_PID_RND_LOWER_32BITS(boardinfo->pid))
return -EINVAL;

boardinfo->init_dyn_addr = init_dyn_addr;