2021-03-01 14:10:12

by luanshi

[permalink] [raw]
Subject: [PATCH] ipmi:ssif: make ssif_i2c_send() void

This function actually needs no return value. So remove the unneeded
check and make it void.

Signed-off-by: Liguang Zhang <[email protected]>
---
drivers/char/ipmi/ipmi_ssif.c | 81 +++++++++--------------------------
1 file changed, 20 insertions(+), 61 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
index 0416b9c9d410..20d5af92966d 100644
--- a/drivers/char/ipmi/ipmi_ssif.c
+++ b/drivers/char/ipmi/ipmi_ssif.c
@@ -510,7 +510,7 @@ static int ipmi_ssif_thread(void *data)
return 0;
}

-static int ssif_i2c_send(struct ssif_info *ssif_info,
+static void ssif_i2c_send(struct ssif_info *ssif_info,
ssif_i2c_done handler,
int read_write, int command,
unsigned char *data, unsigned int size)
@@ -522,7 +522,6 @@ static int ssif_i2c_send(struct ssif_info *ssif_info,
ssif_info->i2c_data = data;
ssif_info->i2c_size = size;
complete(&ssif_info->wake_thread);
- return 0;
}


@@ -531,22 +530,12 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,

static void start_get(struct ssif_info *ssif_info)
{
- int rv;
-
ssif_info->rtc_us_timer = 0;
ssif_info->multi_pos = 0;

- rv = ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
- SSIF_IPMI_RESPONSE,
- ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
- if (rv < 0) {
- /* request failed, just return the error. */
- if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
- dev_dbg(&ssif_info->client->dev,
- "Error from i2c_non_blocking_op(5)\n");
-
- msg_done_handler(ssif_info, -EIO, NULL, 0);
- }
+ ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
+ SSIF_IPMI_RESPONSE,
+ ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
}

static void retry_timeout(struct timer_list *t)
@@ -620,7 +609,6 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
{
struct ipmi_smi_msg *msg;
unsigned long oflags, *flags;
- int rv;

/*
* We are single-threaded here, so no need for a lock until we
@@ -666,17 +654,10 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
ssif_info->multi_len = len;
ssif_info->multi_pos = 1;

- rv = ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
- SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
- ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
- if (rv < 0) {
- if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
- dev_dbg(&ssif_info->client->dev,
- "Error from i2c_non_blocking_op(1)\n");
-
- result = -EIO;
- } else
- return;
+ ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
+ SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
+ ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
+ return;
} else if (ssif_info->multi_pos) {
/* Middle of multi-part read. Start the next transaction. */
int i;
@@ -738,19 +719,12 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,

ssif_info->multi_pos++;

- rv = ssif_i2c_send(ssif_info, msg_done_handler,
- I2C_SMBUS_READ,
- SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
- ssif_info->recv,
- I2C_SMBUS_BLOCK_DATA);
- if (rv < 0) {
- if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
- dev_dbg(&ssif_info->client->dev,
- "Error from ssif_i2c_send\n");
-
- result = -EIO;
- } else
- return;
+ ssif_i2c_send(ssif_info, msg_done_handler,
+ I2C_SMBUS_READ,
+ SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
+ ssif_info->recv,
+ I2C_SMBUS_BLOCK_DATA);
+ return;
}
}

@@ -908,8 +882,6 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
static void msg_written_handler(struct ssif_info *ssif_info, int result,
unsigned char *data, unsigned int len)
{
- int rv;
-
/* We are single-threaded here, so no need for a lock. */
if (result < 0) {
ssif_info->retries_left--;
@@ -972,18 +944,9 @@ static void msg_written_handler(struct ssif_info *ssif_info, int result,
ssif_info->multi_data = NULL;
}

- rv = ssif_i2c_send(ssif_info, msg_written_handler,
- I2C_SMBUS_WRITE, cmd,
- data_to_send, I2C_SMBUS_BLOCK_DATA);
- if (rv < 0) {
- /* request failed, just return the error. */
- ssif_inc_stat(ssif_info, send_errors);
-
- if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
- dev_dbg(&ssif_info->client->dev,
- "Error from i2c_non_blocking_op(3)\n");
- msg_done_handler(ssif_info, -EIO, NULL, 0);
- }
+ ssif_i2c_send(ssif_info, msg_written_handler,
+ I2C_SMBUS_WRITE, cmd,
+ data_to_send, I2C_SMBUS_BLOCK_DATA);
} else {
/* Ready to request the result. */
unsigned long oflags, *flags;
@@ -1012,7 +975,6 @@ static void msg_written_handler(struct ssif_info *ssif_info, int result,

static int start_resend(struct ssif_info *ssif_info)
{
- int rv;
int command;

ssif_info->got_alert = false;
@@ -1034,12 +996,9 @@ static int start_resend(struct ssif_info *ssif_info)
ssif_info->data[0] = ssif_info->data_len;
}

- rv = ssif_i2c_send(ssif_info, msg_written_handler, I2C_SMBUS_WRITE,
- command, ssif_info->data, I2C_SMBUS_BLOCK_DATA);
- if (rv && (ssif_info->ssif_debug & SSIF_DEBUG_MSG))
- dev_dbg(&ssif_info->client->dev,
- "Error from i2c_non_blocking_op(4)\n");
- return rv;
+ ssif_i2c_send(ssif_info, msg_written_handler, I2C_SMBUS_WRITE,
+ command, ssif_info->data, I2C_SMBUS_BLOCK_DATA);
+ return 0;
}

static int start_send(struct ssif_info *ssif_info,
--
2.19.1.6.gb485710b


2021-03-01 15:26:48

by Corey Minyard

[permalink] [raw]
Subject: Re: [PATCH] ipmi:ssif: make ssif_i2c_send() void

This looks ok, it's queued for 5.12.

Thanks,

-corey

On Mon, Mar 01, 2021 at 10:05:15PM +0800, Liguang Zhang wrote:
> This function actually needs no return value. So remove the unneeded
> check and make it void.
>
> Signed-off-by: Liguang Zhang <[email protected]>
> ---
> drivers/char/ipmi/ipmi_ssif.c | 81 +++++++++--------------------------
> 1 file changed, 20 insertions(+), 61 deletions(-)
>
> diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
> index 0416b9c9d410..20d5af92966d 100644
> --- a/drivers/char/ipmi/ipmi_ssif.c
> +++ b/drivers/char/ipmi/ipmi_ssif.c
> @@ -510,7 +510,7 @@ static int ipmi_ssif_thread(void *data)
> return 0;
> }
>
> -static int ssif_i2c_send(struct ssif_info *ssif_info,
> +static void ssif_i2c_send(struct ssif_info *ssif_info,
> ssif_i2c_done handler,
> int read_write, int command,
> unsigned char *data, unsigned int size)
> @@ -522,7 +522,6 @@ static int ssif_i2c_send(struct ssif_info *ssif_info,
> ssif_info->i2c_data = data;
> ssif_info->i2c_size = size;
> complete(&ssif_info->wake_thread);
> - return 0;
> }
>
>
> @@ -531,22 +530,12 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
>
> static void start_get(struct ssif_info *ssif_info)
> {
> - int rv;
> -
> ssif_info->rtc_us_timer = 0;
> ssif_info->multi_pos = 0;
>
> - rv = ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
> - SSIF_IPMI_RESPONSE,
> - ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
> - if (rv < 0) {
> - /* request failed, just return the error. */
> - if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
> - dev_dbg(&ssif_info->client->dev,
> - "Error from i2c_non_blocking_op(5)\n");
> -
> - msg_done_handler(ssif_info, -EIO, NULL, 0);
> - }
> + ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
> + SSIF_IPMI_RESPONSE,
> + ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
> }
>
> static void retry_timeout(struct timer_list *t)
> @@ -620,7 +609,6 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
> {
> struct ipmi_smi_msg *msg;
> unsigned long oflags, *flags;
> - int rv;
>
> /*
> * We are single-threaded here, so no need for a lock until we
> @@ -666,17 +654,10 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
> ssif_info->multi_len = len;
> ssif_info->multi_pos = 1;
>
> - rv = ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
> - SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
> - ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
> - if (rv < 0) {
> - if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
> - dev_dbg(&ssif_info->client->dev,
> - "Error from i2c_non_blocking_op(1)\n");
> -
> - result = -EIO;
> - } else
> - return;
> + ssif_i2c_send(ssif_info, msg_done_handler, I2C_SMBUS_READ,
> + SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
> + ssif_info->recv, I2C_SMBUS_BLOCK_DATA);
> + return;
> } else if (ssif_info->multi_pos) {
> /* Middle of multi-part read. Start the next transaction. */
> int i;
> @@ -738,19 +719,12 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
>
> ssif_info->multi_pos++;
>
> - rv = ssif_i2c_send(ssif_info, msg_done_handler,
> - I2C_SMBUS_READ,
> - SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
> - ssif_info->recv,
> - I2C_SMBUS_BLOCK_DATA);
> - if (rv < 0) {
> - if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
> - dev_dbg(&ssif_info->client->dev,
> - "Error from ssif_i2c_send\n");
> -
> - result = -EIO;
> - } else
> - return;
> + ssif_i2c_send(ssif_info, msg_done_handler,
> + I2C_SMBUS_READ,
> + SSIF_IPMI_MULTI_PART_RESPONSE_MIDDLE,
> + ssif_info->recv,
> + I2C_SMBUS_BLOCK_DATA);
> + return;
> }
> }
>
> @@ -908,8 +882,6 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result,
> static void msg_written_handler(struct ssif_info *ssif_info, int result,
> unsigned char *data, unsigned int len)
> {
> - int rv;
> -
> /* We are single-threaded here, so no need for a lock. */
> if (result < 0) {
> ssif_info->retries_left--;
> @@ -972,18 +944,9 @@ static void msg_written_handler(struct ssif_info *ssif_info, int result,
> ssif_info->multi_data = NULL;
> }
>
> - rv = ssif_i2c_send(ssif_info, msg_written_handler,
> - I2C_SMBUS_WRITE, cmd,
> - data_to_send, I2C_SMBUS_BLOCK_DATA);
> - if (rv < 0) {
> - /* request failed, just return the error. */
> - ssif_inc_stat(ssif_info, send_errors);
> -
> - if (ssif_info->ssif_debug & SSIF_DEBUG_MSG)
> - dev_dbg(&ssif_info->client->dev,
> - "Error from i2c_non_blocking_op(3)\n");
> - msg_done_handler(ssif_info, -EIO, NULL, 0);
> - }
> + ssif_i2c_send(ssif_info, msg_written_handler,
> + I2C_SMBUS_WRITE, cmd,
> + data_to_send, I2C_SMBUS_BLOCK_DATA);
> } else {
> /* Ready to request the result. */
> unsigned long oflags, *flags;
> @@ -1012,7 +975,6 @@ static void msg_written_handler(struct ssif_info *ssif_info, int result,
>
> static int start_resend(struct ssif_info *ssif_info)
> {
> - int rv;
> int command;
>
> ssif_info->got_alert = false;
> @@ -1034,12 +996,9 @@ static int start_resend(struct ssif_info *ssif_info)
> ssif_info->data[0] = ssif_info->data_len;
> }
>
> - rv = ssif_i2c_send(ssif_info, msg_written_handler, I2C_SMBUS_WRITE,
> - command, ssif_info->data, I2C_SMBUS_BLOCK_DATA);
> - if (rv && (ssif_info->ssif_debug & SSIF_DEBUG_MSG))
> - dev_dbg(&ssif_info->client->dev,
> - "Error from i2c_non_blocking_op(4)\n");
> - return rv;
> + ssif_i2c_send(ssif_info, msg_written_handler, I2C_SMBUS_WRITE,
> + command, ssif_info->data, I2C_SMBUS_BLOCK_DATA);
> + return 0;
> }
>
> static int start_send(struct ssif_info *ssif_info,
> --
> 2.19.1.6.gb485710b
>