2024-05-24 07:58:16

by Dan Carpenter

[permalink] [raw]
Subject: [bug report] crypto: atmel-sha204a - add reading from otp zone

Hello Lothar Rubusch,

Commit e05ce444e9e5 ("crypto: atmel-sha204a - add reading from otp
zone") from May 3, 2024 (linux-next), leads to the following Smatch
static checker warning:

drivers/crypto/atmel-sha204a.c:109 atmel_sha204a_otp_read()
warn: should this return really be negated?

drivers/crypto/atmel-sha204a.c
94 static int atmel_sha204a_otp_read(struct i2c_client *client, u16 addr, u8 *otp)
95 {
96 struct atmel_i2c_cmd cmd;
97 int ret = -1;

ret is set to -EPERM here.

98
99 if (atmel_i2c_init_read_otp_cmd(&cmd, addr) < 0) {
100 dev_err(&client->dev, "failed, invalid otp address %04X\n",
101 addr);
102 return ret;

It would be more readable to return a literal.

103 }
104
105 ret = atmel_i2c_send_receive(client, &cmd);
106
107 if (cmd.data[0] == 0xff) {
108 dev_err(&client->dev, "failed, device not ready\n");
--> 109 return -ret;

atmel_i2c_send_receive() either returns zero on success or a negative
kernel error code or a positive error code from error_list[]. It really
doesn't work to mix them like this where -EPERM and negative 0x01 could
be confused.

110 }
111
112 memcpy(otp, cmd.data+1, 4);
113
114 return ret;
115 }

regards,
dan carpenter