diff mbox series

i3c: Fix the verification of random PID

Message ID f787c7ac5a4a82624b1711b9eba2a2a1d4cf5b58.1554828338.git.vitor.soares@synopsys.com (mailing list archive)
State Mainlined
Commit 9752c37cc89f43675e70cf9acff23519fa84b48c
Headers show
Series i3c: Fix the verification of random PID | expand

Commit Message

Vitor Soares April 9, 2019, 4:59 p.m. UTC
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.

Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure")
Signed-off-by: Vitor Soares <vitor.soares@synopsys.com>

Cc: Boris Brezillon <bbrezillon@kernel.org>
Cc: <stable@vger.kernel.org>
---
 drivers/i3c/master.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Boris Brezillon April 10, 2019, 10:37 a.m. UTC | #1
On Tue,  9 Apr 2019 18:59:59 +0200
Vitor Soares <vitor.soares@synopsys.com> wrote:

> 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.
> 
> Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure")
> Signed-off-by: Vitor Soares <vitor.soares@synopsys.com>
> 
Note for you future contributions: please don't add a blank line
between Cc and SoB/Fixes lines.

> Cc: Boris Brezillon <bbrezillon@kernel.org>
> Cc: <stable@vger.kernel.org>
> ---
>  drivers/i3c/master.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
> index 569ea68..d23a57e 100644
> --- a/drivers/i3c/master.c
> +++ b/drivers/i3c/master.c
> @@ -2006,7 +2006,6 @@ of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,
>  {
>  	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;
>  
> @@ -2038,8 +2037,8 @@ of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,
>  
>  	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;
diff mbox series

Patch

diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 569ea68..d23a57e 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -2006,7 +2006,6 @@  of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,
 {
 	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;
 
@@ -2038,8 +2037,8 @@  of_i3c_master_add_i3c_boardinfo(struct i3c_master_controller *master,
 
 	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;