w1: fix for loop exit condition in w1_seq_show()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 1 Jun 2015 09:55:37 +0000 (12:55 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Jun 2015 23:58:33 +0000 (16:58 -0700)
The W1_42_FINISHED_BYTE is 0xFF so the cast means the condition is
never true.

Fixes: d9411e57dc7f ('w1: Add support for DS28EA00 sequence to w1-therm')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/w1/slaves/w1_therm.c

index d21e6864b06fc18c4fc7b6c93a876ac2fe64e21d..3351be66795752a8414c87f349cd2647ce337630 100644 (file)
@@ -378,7 +378,7 @@ static ssize_t w1_seq_show(struct device *device,
                w1_write_8(sl->master, W1_42_COND_READ);
                rv = w1_read_block(sl->master, (u8 *)&rn, 8);
                reg_num = (struct w1_reg_num *) &rn;
-               if ((char)reg_num->family == W1_42_FINISHED_BYTE)
+               if (reg_num->family == W1_42_FINISHED_BYTE)
                        break;
                if (sl->reg_num.id == reg_num->id)
                        seq = i;