linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* (no subject)
@ 2012-02-24  1:38 Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 1/9] mei: cosmetic cleanup in interrupt.c Devin J. Pohly
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel

This is just a number of cleanups in mei driver, mostly interrupt.c, to make
the code a bit more idiomatic and kernel-like.  The only patch which should
change the operation of the code is PATCH 4/9, where an obviously wrong "return
~Exxx" was fixed.

Broken apart by type of cleanup.  For reducing indentation, separated by how
complex the job was, from easiest to hardest.

 drivers/staging/mei/init.c        |    2 +-
 drivers/staging/mei/interrupt.c   |  799 +++++++++++++++++--------------------
 drivers/staging/mei/mei_dev.h     |    3 +-
 drivers/staging/mei/mei_version.h |    6 +-
 drivers/staging/mei/wd.c          |   23 +-
 5 files changed, 387 insertions(+), 446 deletions(-)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/9] mei: cosmetic cleanup in interrupt.c
  2012-02-24  1:38 Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-24  2:51   ` Greg KH
  2012-02-24  1:38 ` [PATCH 2/9] mei: factor some bits of code outside if blocks Devin J. Pohly
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

Tabs, spaces, long lines, lines that could be combined, superfluous
parentheses, etc.  Also uses DIV_ROUND_UP and sizeof(*ptr) where
appropriate.

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/init.c        |    2 +-
 drivers/staging/mei/interrupt.c   |  239 +++++++++++++++++--------------------
 drivers/staging/mei/mei_dev.h     |    3 +-
 drivers/staging/mei/mei_version.h |    6 +-
 drivers/staging/mei/wd.c          |   23 ++--
 5 files changed, 131 insertions(+), 142 deletions(-)

diff --git a/drivers/staging/mei/init.c b/drivers/staging/mei/init.c
index 4ac3696..1a00ede 100644
--- a/drivers/staging/mei/init.c
+++ b/drivers/staging/mei/init.c
@@ -455,7 +455,7 @@ void mei_allocate_me_clients_storage(struct mei_device *dev)
  * @dev: the device structure
  *
  * returns:
- * 	< 0 - Error.
+ *  < 0 - Error.
  *  = 0 - no more clients.
  *  = 1 - still have clients to send properties request.
  */
diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index 3544fee..4914589 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -14,7 +14,6 @@
  *
  */
 
-
 #include <linux/pci.h>
 #include <linux/kthread.h>
 #include <linux/interrupt.h>
@@ -26,7 +25,6 @@
 #include "hw.h"
 #include "interface.h"
 
-
 /**
  * mei_interrupt_quick_handler - The ISR of the MEI device
  *
@@ -69,7 +67,6 @@ static void _mei_cmpl(struct mei_cl *cl, struct mei_cl_cb *cb_pos)
 		cl->reading_state = MEI_READ_COMPLETE;
 		if (waitqueue_active(&cl->rx_wait))
 			wake_up_interruptible(&cl->rx_wait);
-
 	}
 }
 
@@ -101,7 +98,6 @@ static void _mei_cmpl_iamthif(struct mei_device *dev, struct mei_cl_cb *cb_pos)
 	wake_up_interruptible(&dev->iamthif_cl.wait);
 }
 
-
 /**
  * mei_irq_thread_read_amthi_message - bottom half read routine after ISR to
  * handle the read amthi message data processing.
@@ -150,14 +146,13 @@ static int mei_irq_thread_read_amthi_message(struct mei_io_list *complete_list,
 		return -ENODEV;
 
 	dev->iamthif_stall_timer = 0;
-	cb->information =	dev->iamthif_msg_buf_index;
+	cb->information = dev->iamthif_msg_buf_index;
 	cb->read_time = jiffies;
 	if (dev->iamthif_ioctl && cl == &dev->iamthif_cl) {
 		/* found the iamthif cb */
 		dev_dbg(&dev->pdev->dev, "complete the amthi read cb.\n ");
 		dev_dbg(&dev->pdev->dev, "add the amthi read cb to complete.\n ");
-		list_add_tail(&cb->cb_list,
-						&complete_list->mei_cb.cb_list);
+		list_add_tail(&cb->cb_list, &complete_list->mei_cb.cb_list);
 	}
 	return 0;
 }
@@ -266,11 +261,10 @@ quit:
  */
 static int _mei_irq_thread_iamthif_read(struct mei_device *dev, s32 *slots)
 {
-
 	if (((*slots) * sizeof(u32)) >= (sizeof(struct mei_msg_hdr)
 			+ sizeof(struct hbm_flow_control))) {
-		*slots -= (sizeof(struct mei_msg_hdr) +
-				sizeof(struct hbm_flow_control) + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+				sizeof(struct hbm_flow_control), sizeof(u32));
 		if (!mei_send_flow_control(dev, &dev->iamthif_cl)) {
 			dev_dbg(&dev->pdev->dev, "iamthif flow control failed\n");
 		} else {
@@ -307,8 +301,9 @@ static int _mei_irq_thread_close(struct mei_device *dev, s32 *slots,
 {
 	if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) +
 			sizeof(struct hbm_client_disconnect_request))) {
-		*slots -= (sizeof(struct mei_msg_hdr) +
-			sizeof(struct hbm_client_disconnect_request) + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+			sizeof(struct hbm_client_disconnect_request),
+			sizeof(u32));
 
 		if (!mei_disconnect(dev, cl)) {
 			cl->status = 0;
@@ -345,7 +340,7 @@ static bool is_treat_specially_client(struct mei_cl *cl,
 {
 
 	if (cl->host_client_id == rs->host_addr &&
-	    cl->me_client_id == rs->me_addr) {
+			cl->me_client_id == rs->me_addr) {
 		if (!rs->status) {
 			cl->state = MEI_FILE_CONNECTED;
 			cl->status = 0;
@@ -449,7 +444,7 @@ static void mei_client_disconnect_response(struct mei_device *dev,
 
 		dev_dbg(&dev->pdev->dev, "list_for_each_entry_safe in ctrl_rd_list.\n");
 		if (cl->host_client_id == rs->host_addr &&
-		    cl->me_client_id == rs->me_addr) {
+					cl->me_client_id == rs->me_addr) {
 
 			list_del(&cb_pos->cb_list);
 			if (!rs->status)
@@ -483,7 +478,7 @@ static int same_flow_addr(struct mei_cl *cl, struct hbm_flow_control *flow)
  * @flow: flow control.
  */
 static void add_single_flow_creds(struct mei_device *dev,
-				  struct hbm_flow_control *flow)
+				struct hbm_flow_control *flow)
 {
 	struct mei_me_client *client;
 	int i;
@@ -494,9 +489,9 @@ static void add_single_flow_creds(struct mei_device *dev,
 			if (client->props.single_recv_buf) {
 				client->mei_flow_ctrl_creds++;
 				dev_dbg(&dev->pdev->dev, "recv flow ctrl msg ME %d (single).\n",
-				    flow->me_addr);
+						flow->me_addr);
 				dev_dbg(&dev->pdev->dev, "flow control credentials =%d.\n",
-				    client->mei_flow_ctrl_creds);
+						client->mei_flow_ctrl_creds);
 			} else {
 				BUG();	/* error in flow control */
 			}
@@ -526,18 +521,18 @@ static void mei_client_flow_control_response(struct mei_device *dev,
 			dev_dbg(&dev->pdev->dev, "list_for_each_entry_safe in file_list\n");
 
 			dev_dbg(&dev->pdev->dev, "cl of host client %d ME client %d.\n",
-			    cl_pos->host_client_id,
-			    cl_pos->me_client_id);
+						cl_pos->host_client_id,
+						cl_pos->me_client_id);
 			dev_dbg(&dev->pdev->dev, "flow ctrl msg for host %d ME %d.\n",
-			    flow_control->host_addr,
-			    flow_control->me_addr);
+						flow_control->host_addr,
+						flow_control->me_addr);
 			if (same_flow_addr(cl_pos, flow_control)) {
 				dev_dbg(&dev->pdev->dev, "recv ctrl msg for host  %d ME %d.\n",
-				    flow_control->host_addr,
-				    flow_control->me_addr);
+							flow_control->host_addr,
+							flow_control->me_addr);
 				cl_pos->mei_flow_ctrl_creds++;
 				dev_dbg(&dev->pdev->dev, "flow control credentials = %d.\n",
-				    cl_pos->mei_flow_ctrl_creds);
+						cl_pos->mei_flow_ctrl_creds);
 				break;
 			}
 		}
@@ -553,7 +548,7 @@ static void mei_client_flow_control_response(struct mei_device *dev,
  * returns !=0, same; 0,not.
  */
 static int same_disconn_addr(struct mei_cl *cl,
-			     struct hbm_client_disconnect_request *disconn)
+			struct hbm_client_disconnect_request *disconn)
 {
 	return (cl->host_client_id == disconn->host_addr &&
 		cl->me_client_id == disconn->me_addr);
@@ -591,8 +586,7 @@ static void mei_client_disconnect_request(struct mei_device *dev,
 				(struct mei_msg_hdr *) &dev->ext_msg_buf[0];
 			mei_hdr->host_addr = 0;
 			mei_hdr->me_addr = 0;
-			mei_hdr->length =
-				sizeof(struct hbm_client_connect_response);
+			mei_hdr->length = sizeof(*disconnect_res);
 			mei_hdr->msg_complete = 1;
 			mei_hdr->reserved = 0;
 
@@ -610,7 +604,6 @@ static void mei_client_disconnect_request(struct mei_device *dev,
 	}
 }
 
-
 /**
  * mei_irq_thread_read_bus_message - bottom half read routine after ISR to
  * handle the read bus message cmd processing.
@@ -647,7 +640,8 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 			dev->version.major_version = HBM_MAJOR_VERSION;
 			dev->version.minor_version = HBM_MINOR_VERSION;
 			if (dev->mei_state == MEI_INIT_CLIENTS &&
-			    dev->init_clients_state == MEI_START_MESSAGE) {
+					dev->init_clients_state ==
+					MEI_START_MESSAGE) {
 				dev->init_clients_timer = 0;
 				mei_host_enum_clients_message(dev);
 			} else {
@@ -661,21 +655,19 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 			/* send stop message */
 			mei_hdr->host_addr = 0;
 			mei_hdr->me_addr = 0;
-			mei_hdr->length = sizeof(struct hbm_host_stop_request);
+			mei_hdr->length = sizeof(*host_stop_req);
 			mei_hdr->msg_complete = 1;
 			mei_hdr->reserved = 0;
 
 			host_stop_req = (struct hbm_host_stop_request *)
 							&dev->wr_msg_buf[1];
 
-			memset(host_stop_req,
-					0,
-					sizeof(struct hbm_host_stop_request));
+			memset(host_stop_req, 0, sizeof(*host_stop_req));
 			host_stop_req->cmd.cmd = HOST_STOP_REQ_CMD;
 			host_stop_req->reason = DRIVER_STOP_REQUEST;
 			mei_write_message(dev, mei_hdr,
-					   (unsigned char *) (host_stop_req),
-					   mei_hdr->length);
+					(unsigned char *) (host_stop_req),
+					mei_hdr->length);
 			dev_dbg(&dev->pdev->dev, "version mismatch.\n");
 			return;
 		}
@@ -685,16 +677,14 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 		break;
 
 	case CLIENT_CONNECT_RES_CMD:
-		connect_res =
-			(struct hbm_client_connect_response *) mei_msg;
+		connect_res = (struct hbm_client_connect_response *) mei_msg;
 		mei_client_connect_response(dev, connect_res);
 		dev_dbg(&dev->pdev->dev, "client connect response message received.\n");
 		wake_up(&dev->wait_recvd_msg);
 		break;
 
 	case CLIENT_DISCONNECT_RES_CMD:
-		disconnect_res =
-			(struct hbm_client_connect_response *) mei_msg;
+		disconnect_res = (struct hbm_client_connect_response *) mei_msg;
 		mei_client_disconnect_response(dev, disconnect_res);
 		dev_dbg(&dev->pdev->dev, "client disconnect response message received.\n");
 		wake_up(&dev->wait_recvd_msg);
@@ -720,12 +710,12 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 						= props_res->client_properties;
 
 			if (dev->mei_state == MEI_INIT_CLIENTS &&
-			    dev->init_clients_state ==
+					dev->init_clients_state ==
 					MEI_CLIENT_PROPERTIES_MESSAGE) {
 				dev->me_client_index++;
 				dev->me_client_presentation_num++;
 
-				/** Send Client Propeties request **/
+				/* Send Client Properties request */
 				res = mei_host_client_properties(dev);
 				if (res < 0) {
 					dev_dbg(&dev->pdev->dev, "mei_host_client_properties() failed");
@@ -733,24 +723,28 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 				} else if (!res) {
 					/*
 					 * No more clients to send to.
-					 * Clear Map for indicating now ME clients
-					 * with associated host client
+					 * Clear Map for indicating now ME
+					 * clients with associated host client
 					 */
-					bitmap_zero(dev->host_clients_map, MEI_CLIENTS_MAX);
+					bitmap_zero(dev->host_clients_map,
+							MEI_CLIENTS_MAX);
 					dev->open_handle_count = 0;
 
 					/*
 					 * Reserving the first three client IDs
-					 * Client Id 0 - Reserved for MEI Bus Message communications
+					 * Client Id 0 - Reserved for MEI Bus
+					 *               Message communications
 					 * Client Id 1 - Reserved for Watchdog
 					 * Client ID 2 - Reserved for AMTHI
 					 */
 					bitmap_set(dev->host_clients_map, 0, 3);
 					dev->mei_state = MEI_ENABLED;
 
-					/* if wd initialization fails, initialization the AMTHI client,
-					 * otherwise the AMTHI client will be initialized after the WD client connect response
-					 * will be received
+					/* if wd initialization fails,
+					 * initialize the AMTHI client,
+					 * otherwise the AMTHI client will be
+					 * initialized after the WD client
+					 * connect response is received
 					 */
 					if (mei_wd_host_init(dev))
 						mei_host_init_iamthif(dev);
@@ -772,14 +766,15 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 		enum_res = (struct hbm_host_enum_response *) mei_msg;
 		memcpy(dev->me_clients_map, enum_res->valid_addresses, 32);
 		if (dev->mei_state == MEI_INIT_CLIENTS &&
-		    dev->init_clients_state == MEI_ENUM_CLIENTS_MESSAGE) {
-				dev->init_clients_timer = 0;
-				dev->me_client_presentation_num = 0;
-				dev->me_client_index = 0;
-				mei_allocate_me_clients_storage(dev);
-				dev->init_clients_state =
-					MEI_CLIENT_PROPERTIES_MESSAGE;
-				mei_host_client_properties(dev);
+				dev->init_clients_state ==
+				MEI_ENUM_CLIENTS_MESSAGE) {
+			dev->init_clients_timer = 0;
+			dev->me_client_presentation_num = 0;
+			dev->me_client_index = 0;
+			mei_allocate_me_clients_storage(dev);
+			dev->init_clients_state =
+				MEI_CLIENT_PROPERTIES_MESSAGE;
+			mei_host_client_properties(dev);
 		} else {
 			dev_dbg(&dev->pdev->dev, "reset due to received host enumeration clients response bus message.\n");
 			mei_reset(dev, 1);
@@ -805,12 +800,12 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 		mei_hdr = (struct mei_msg_hdr *) &dev->ext_msg_buf[0];
 		mei_hdr->host_addr = 0;
 		mei_hdr->me_addr = 0;
-		mei_hdr->length = sizeof(struct hbm_host_stop_request);
+		mei_hdr->length = sizeof(*host_stop_req);
 		mei_hdr->msg_complete = 1;
 		mei_hdr->reserved = 0;
 		host_stop_req =
 			(struct hbm_host_stop_request *) &dev->ext_msg_buf[1];
-		memset(host_stop_req, 0, sizeof(struct hbm_host_stop_request));
+		memset(host_stop_req, 0, sizeof(*host_stop_req));
 		host_stop_req->cmd.cmd = HOST_STOP_REQ_CMD;
 		host_stop_req->reason = DRIVER_STOP_REQUEST;
 		host_stop_req->reserved[0] = 0;
@@ -821,11 +816,9 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 	default:
 		BUG();
 		break;
-
 	}
 }
 
-
 /**
  * _mei_hb_read - processes read related operation.
  *
@@ -837,15 +830,15 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
  *
  * returns 0, OK; otherwise, error.
  */
-static int _mei_irq_thread_read(struct mei_device *dev,	s32 *slots,
+static int _mei_irq_thread_read(struct mei_device *dev, s32 *slots,
 			struct mei_cl_cb *cb_pos,
 			struct mei_cl *cl,
 			struct mei_io_list *cmpl_list)
 {
 	if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) +
 			sizeof(struct hbm_flow_control))) {
-		*slots -= (sizeof(struct mei_msg_hdr) +
-			sizeof(struct hbm_flow_control) + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+			sizeof(struct hbm_flow_control), sizeof(u32));
 		if (!mei_send_flow_control(dev, cl)) {
 			cl->status = -ENODEV;
 			cb_pos->information = 0;
@@ -865,7 +858,6 @@ static int _mei_irq_thread_read(struct mei_device *dev,	s32 *slots,
 	return 0;
 }
 
-
 /**
  * _mei_irq_thread_ioctl - processes ioctl related operation.
  *
@@ -885,8 +877,8 @@ static int _mei_irq_thread_ioctl(struct mei_device *dev, s32 *slots,
 	if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) +
 			sizeof(struct hbm_client_connect_request))) {
 		cl->state = MEI_FILE_CONNECTING;
-		*slots -= (sizeof(struct mei_msg_hdr) +
-			sizeof(struct hbm_client_connect_request) + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+			sizeof(struct hbm_client_connect_request), sizeof(u32));
 		if (!mei_connect(dev, cl)) {
 			cl->status = -ENODEV;
 			cb_pos->information = 0;
@@ -917,7 +909,7 @@ static int _mei_irq_thread_ioctl(struct mei_device *dev, s32 *slots,
  *
  * returns 0, OK; otherwise, error.
  */
-static int _mei_irq_thread_cmpl(struct mei_device *dev,	s32 *slots,
+static int _mei_irq_thread_cmpl(struct mei_device *dev, s32 *slots,
 			struct mei_cl_cb *cb_pos,
 			struct mei_cl *cl,
 			struct mei_io_list *cmpl_list)
@@ -942,8 +934,8 @@ static int _mei_irq_thread_cmpl(struct mei_device *dev,	s32 *slots,
 				cb_pos->information);
 		dev_dbg(&dev->pdev->dev, "mei_hdr->length  =%d\n",
 				mei_hdr->length);
-		*slots -= (sizeof(struct mei_msg_hdr) +
-				mei_hdr->length + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+				mei_hdr->length, sizeof(u32));
 		if (!mei_write_message(dev, mei_hdr,
 				(unsigned char *)
 				(cb_pos->request_buffer.data +
@@ -966,13 +958,12 @@ static int _mei_irq_thread_cmpl(struct mei_device *dev,	s32 *slots,
 		mei_hdr = (struct mei_msg_hdr *) &dev->wr_msg_buf[0];
 		mei_hdr->host_addr = cl->host_client_id;
 		mei_hdr->me_addr = cl->me_client_id;
-		mei_hdr->length =
-			(*slots * sizeof(u32)) - sizeof(struct mei_msg_hdr);
+		mei_hdr->length = (*slots * sizeof(u32)) - sizeof(*mei_hdr);
 		mei_hdr->msg_complete = 0;
 		mei_hdr->reserved = 0;
 
-		(*slots) -= (sizeof(struct mei_msg_hdr) +
-				mei_hdr->length + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+				mei_hdr->length, sizeof(u32));
 		if (!mei_write_message(dev, mei_hdr,
 					(unsigned char *)
 					(cb_pos->request_buffer.data +
@@ -1031,8 +1022,8 @@ static int _mei_irq_thread_cmpl_iamthif(struct mei_device *dev, s32 *slots,
 		mei_hdr->msg_complete = 1;
 		mei_hdr->reserved = 0;
 
-		*slots -= (sizeof(struct mei_msg_hdr) +
-				mei_hdr->length + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+				mei_hdr->length, sizeof(u32));
 
 		if (!mei_write_message(dev, mei_hdr,
 					(dev->iamthif_msg_buf +
@@ -1061,13 +1052,12 @@ static int _mei_irq_thread_cmpl_iamthif(struct mei_device *dev, s32 *slots,
 		mei_hdr = (struct mei_msg_hdr *) &dev->wr_msg_buf[0];
 		mei_hdr->host_addr = cl->host_client_id;
 		mei_hdr->me_addr = cl->me_client_id;
-		mei_hdr->length =
-			(*slots * sizeof(u32)) - sizeof(struct mei_msg_hdr);
+		mei_hdr->length = (*slots * sizeof(u32)) - sizeof(*mei_hdr);
 		mei_hdr->msg_complete = 0;
 		mei_hdr->reserved = 0;
 
-		*slots -= (sizeof(struct mei_msg_hdr) +
-				mei_hdr->length + 3) / 4;
+		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+				mei_hdr->length, sizeof(u32));
 
 		if (!mei_write_message(dev, mei_hdr,
 					(dev->iamthif_msg_buf +
@@ -1129,7 +1119,8 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 					cl_pos->host_client_id,
 					cl_pos->me_client_id);
 			if (cl_pos->host_client_id == mei_hdr->host_addr &&
-			    cl_pos->me_client_id == mei_hdr->me_addr)
+					cl_pos->me_client_id ==
+					mei_hdr->me_addr)
 				break;
 		}
 
@@ -1154,8 +1145,8 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 		mei_irq_thread_read_bus_message(dev, mei_hdr);
 		dev_dbg(&dev->pdev->dev, "end mei_irq_thread_read_bus_message.\n");
 	} else if (mei_hdr->host_addr == dev->iamthif_cl.host_client_id &&
-		   (MEI_FILE_CONNECTED == dev->iamthif_cl.state) &&
-		   (dev->iamthif_state == MEI_IAMTHIF_READING)) {
+				(MEI_FILE_CONNECTED == dev->iamthif_cl.state) &&
+				(dev->iamthif_state == MEI_IAMTHIF_READING)) {
 		dev_dbg(&dev->pdev->dev, "call mei_irq_thread_read_iamthif_message.\n");
 		dev_dbg(&dev->pdev->dev, "mei_hdr->length =%d\n",
 				mei_hdr->length);
@@ -1167,7 +1158,7 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 	} else {
 		dev_dbg(&dev->pdev->dev, "call mei_irq_thread_read_client_message.\n");
 		ret = mei_irq_thread_read_client_message(cmpl_list,
-							 dev, mei_hdr);
+							dev, mei_hdr);
 		if (ret)
 			goto end;
 
@@ -1188,7 +1179,6 @@ end:
 	return ret;
 }
 
-
 /**
  * mei_irq_thread_write_handler - bottom half write routine after
  * ISR to handle the write processing.
@@ -1220,15 +1210,15 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 	list = &dev->write_waiting_list;
 	list_for_each_entry_safe(pos, next,
 			&list->mei_cb.cb_list, cb_list) {
-		cl = (struct mei_cl *)pos->file_private;
+		cl = (struct mei_cl *) pos->file_private;
 		if (cl == NULL)
 			continue;
 
 		cl->status = 0;
 		list_del(&pos->cb_list);
 		if (MEI_WRITING == cl->writing_state &&
-		   (pos->major_file_operations == MEI_WRITE) &&
-		   (cl != &dev->iamthif_cl)) {
+				(pos->major_file_operations == MEI_WRITE) &&
+				(cl != &dev->iamthif_cl)) {
 			dev_dbg(&dev->pdev->dev,
 				"MEI WRITE COMPLETE\n");
 			cl->writing_state = MEI_WRITE_COMPLETE;
@@ -1274,12 +1264,14 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 			dev->wd_pending = false;
 
 			if (dev->wd_timeout) {
-				*slots -= (sizeof(struct mei_msg_hdr) +
-					 MEI_START_WD_DATA_SIZE + 3) / 4;
+				*slots -= DIV_ROUND_UP(
+					sizeof(struct mei_msg_hdr) +
+					MEI_START_WD_DATA_SIZE, sizeof(u32));
 				dev->wd_due_counter = 2;
 			} else {
-				*slots -= (sizeof(struct mei_msg_hdr) +
-					 MEI_WD_PARAMS_SIZE + 3) / 4;
+				*slots -= DIV_ROUND_UP(
+					sizeof(struct mei_msg_hdr) +
+					MEI_WD_PARAMS_SIZE, sizeof(u32));
 				dev->wd_due_counter = 0;
 			}
 
@@ -1300,34 +1292,32 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 		switch (pos->major_file_operations) {
 		case MEI_CLOSE:
 			/* send disconnect message */
-			ret = _mei_irq_thread_close(dev, slots, pos, cl, cmpl_list);
+			ret = _mei_irq_thread_close(dev, slots, pos, cl,
+					cmpl_list);
 			if (ret)
 				return ret;
-
 			break;
 		case MEI_READ:
 			/* send flow control message */
-			ret = _mei_irq_thread_read(dev, slots, pos, cl, cmpl_list);
+			ret = _mei_irq_thread_read(dev, slots, pos, cl,
+					cmpl_list);
 			if (ret)
 				return ret;
-
 			break;
 		case MEI_IOCTL:
 			/* connect message */
 			if (mei_other_client_is_connecting(dev, cl))
 				continue;
-			ret = _mei_irq_thread_ioctl(dev, slots, pos, cl, cmpl_list);
+			ret = _mei_irq_thread_ioctl(dev, slots, pos, cl,
+					cmpl_list);
 			if (ret)
 				return ret;
-
 			break;
-
 		default:
 			BUG();
 		}
-
 	}
-	/* complete  write list CB */
+	/* complete write list CB */
 	dev_dbg(&dev->pdev->dev, "complete write list cb.\n");
 	list_for_each_entry_safe(pos, next,
 			&dev->write_list.mei_cb.cb_list, cb_list) {
@@ -1339,14 +1329,13 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 			if (!mei_flow_ctrl_creds(dev, cl)) {
 				dev_dbg(&dev->pdev->dev,
 					"No flow control"
-				    " credentials for client"
-				    " %d, not sending.\n",
-				    cl->host_client_id);
+					" credentials for client"
+					" %d, not sending.\n",
+					cl->host_client_id);
 				continue;
 			}
-			ret = _mei_irq_thread_cmpl(dev, slots,
-					    pos,
-					    cl, cmpl_list);
+			ret = _mei_irq_thread_cmpl(dev, slots, pos, cl,
+					cmpl_list);
 			if (ret)
 				return ret;
 
@@ -1356,15 +1345,12 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 			if (!mei_flow_ctrl_creds(dev, cl)) {
 				dev_dbg(&dev->pdev->dev,
 					"No flow control"
-				    " credentials for amthi"
-				    " client %d.\n",
-				    cl->host_client_id);
+					" credentials for amthi"
+					" client %d.\n",
+					cl->host_client_id);
 				continue;
 			}
-			ret = _mei_irq_thread_cmpl_iamthif(dev,
-						slots,
-						pos,
-						cl,
+			ret = _mei_irq_thread_cmpl_iamthif(dev, slots, pos, cl,
 						cmpl_list);
 			if (ret)
 				return ret;
@@ -1375,8 +1361,6 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 	return 0;
 }
 
-
-
 /**
  * mei_timer - timer function.
  *
@@ -1390,13 +1374,12 @@ void mei_timer(struct work_struct *work)
 	struct mei_cl *cl_pos = NULL;
 	struct mei_cl *cl_next = NULL;
 	struct list_head *amthi_complete_list = NULL;
-	struct mei_cl_cb  *cb_pos = NULL;
-	struct mei_cl_cb  *cb_next = NULL;
+	struct mei_cl_cb *cb_pos = NULL;
+	struct mei_cl_cb *cb_next = NULL;
 
 	struct mei_device *dev = container_of(work,
 					struct mei_device, timer_work.work);
 
-
 	mutex_lock(&dev->device_lock);
 	if (dev->mei_state != MEI_ENABLED) {
 		if (dev->mei_state == MEI_INIT_CLIENTS) {
@@ -1410,7 +1393,7 @@ void mei_timer(struct work_struct *work)
 		}
 		goto out;
 	}
-	/*** connect/disconnect timeouts ***/
+	/* connect/disconnect timeouts */
 	list_for_each_entry_safe(cl_pos, cl_next, &dev->file_list, link) {
 		if (cl_pos->timer_count) {
 			if (--cl_pos->timer_count == 0) {
@@ -1442,7 +1425,6 @@ void mei_timer(struct work_struct *work)
 	}
 
 	if (dev->iamthif_timer) {
-
 		timeout = dev->iamthif_timer +
 				msecs_to_jiffies(IAMTHIF_READ_TIMER);
 
@@ -1461,7 +1443,8 @@ void mei_timer(struct work_struct *work)
 			amthi_complete_list = &dev->amthi_read_complete_list.
 					mei_cb.cb_list;
 
-			list_for_each_entry_safe(cb_pos, cb_next, amthi_complete_list, cb_list) {
+			list_for_each_entry_safe(cb_pos, cb_next,
+					amthi_complete_list, cb_list) {
 
 				cl_pos = cb_pos->file_object->private_data;
 
@@ -1486,8 +1469,8 @@ out:
 }
 
 /**
- *  mei_interrupt_thread_handler - function called after ISR to handle the interrupt
- * processing.
+ * mei_interrupt_thread_handler - function called after ISR to handle the
+ * interrupt processing.
  *
  * @irq: The irq number
  * @dev_id: pointer to the device structure
@@ -1503,8 +1486,7 @@ irqreturn_t mei_interrupt_thread_handler(int irq, void *dev_id)
 	struct mei_cl *cl;
 	s32 slots;
 	int rets;
-	bool  bus_message_received;
-
+	bool bus_message_received;
 
 	dev_dbg(&dev->pdev->dev, "function called after ISR to handle the interrupt processing.\n");
 	/* initialize our complete list */
@@ -1521,15 +1503,15 @@ irqreturn_t mei_interrupt_thread_handler(int irq, void *dev_id)
 
 	/* check if ME wants a reset */
 	if ((dev->me_hw_state & ME_RDY_HRA) == 0 &&
-	    dev->mei_state != MEI_RESETING &&
-	    dev->mei_state != MEI_INITIALIZING) {
+			dev->mei_state != MEI_RESETING &&
+			dev->mei_state != MEI_INITIALIZING) {
 		dev_dbg(&dev->pdev->dev, "FW not ready.\n");
 		mei_reset(dev, 1);
 		mutex_unlock(&dev->device_lock);
 		return IRQ_HANDLED;
 	}
 
-	/*  check if we need to start the dev */
+	/* check if we need to start the dev */
 	if ((dev->host_hw_state & H_RDY) == 0) {
 		if ((dev->me_hw_state & ME_RDY_HRA) == ME_RDY_HRA) {
 			dev_dbg(&dev->pdev->dev, "we need to start the dev.\n");
@@ -1581,7 +1563,6 @@ end:
 	if (list_empty(&complete_list.mei_cb.cb_list))
 		return IRQ_HANDLED;
 
-
 	list_for_each_entry_safe(cb_pos, cb_next,
 			&complete_list.mei_cb.cb_list, cb_list) {
 		cl = (struct mei_cl *)cb_pos->file_private;
diff --git a/drivers/staging/mei/mei_dev.h b/drivers/staging/mei/mei_dev.h
index 82bacfc..8ed54da 100644
--- a/drivers/staging/mei/mei_dev.h
+++ b/drivers/staging/mei/mei_dev.h
@@ -271,7 +271,8 @@ int mei_hw_init(struct mei_device *dev);
 int mei_task_initialize_clients(void *data);
 int mei_initialize_clients(struct mei_device *dev);
 int mei_disconnect_host_client(struct mei_device *dev, struct mei_cl *cl);
-void mei_remove_client_from_file_list(struct mei_device *dev, u8 host_client_id);
+void mei_remove_client_from_file_list(struct mei_device *dev,
+		u8 host_client_id);
 void mei_host_init_iamthif(struct mei_device *dev);
 void mei_allocate_me_clients_storage(struct mei_device *dev);
 
diff --git a/drivers/staging/mei/mei_version.h b/drivers/staging/mei/mei_version.h
index 075bad8..70de574 100644
--- a/drivers/staging/mei/mei_version.h
+++ b/drivers/staging/mei/mei_version.h
@@ -23,9 +23,9 @@
 #define QUICK_FIX_NUMBER	20
 #define VER_BUILD		1
 
-#define MEI_DRV_VER1 __stringify(MAJOR_VERSION) "." __stringify(MINOR_VERSION)
-#define MEI_DRV_VER2 __stringify(QUICK_FIX_NUMBER) "." __stringify(VER_BUILD)
+#define MEI_DRV_VER1 (__stringify(MAJOR_VERSION) "." __stringify(MINOR_VERSION))
+#define MEI_DRV_VER2 (__stringify(QUICK_FIX_NUMBER) "." __stringify(VER_BUILD))
 
-#define MEI_DRIVER_VERSION	MEI_DRV_VER1 "." MEI_DRV_VER2
+#define MEI_DRIVER_VERSION	(MEI_DRV_VER1 "." MEI_DRV_VER2)
 
 #endif
diff --git a/drivers/staging/mei/wd.c b/drivers/staging/mei/wd.c
index 8094941..e1b6b2e 100644
--- a/drivers/staging/mei/wd.c
+++ b/drivers/staging/mei/wd.c
@@ -75,7 +75,8 @@ bool mei_wd_host_init(struct mei_device *dev)
 	dev_dbg(&dev->pdev->dev, "check wd_cl\n");
 	if (MEI_FILE_CONNECTING == dev->wd_cl.state) {
 		if (!mei_connect(dev, &dev->wd_cl)) {
-			dev_dbg(&dev->pdev->dev, "Failed to connect to WD client\n");
+			dev_dbg(&dev->pdev->dev,
+					"Failed to connect to WD client\n");
 			dev->wd_cl.state = MEI_FILE_DISCONNECTED;
 			dev->wd_cl.host_client_id = 0;
 			ret = false;
@@ -210,13 +211,15 @@ static int mei_wd_ops_start(struct watchdog_device *wd_dev)
 	mutex_lock(&dev->device_lock);
 
 	if (dev->mei_state != MEI_ENABLED) {
-		dev_dbg(&dev->pdev->dev, "mei_state != MEI_ENABLED  mei_state= %d\n",
-		    dev->mei_state);
+		dev_dbg(&dev->pdev->dev,
+			"mei_state != MEI_ENABLED  mei_state= %d\n",
+			dev->mei_state);
 		goto end_unlock;
 	}
 
 	if (dev->wd_cl.state != MEI_FILE_CONNECTED)	{
-		dev_dbg(&dev->pdev->dev, "MEI Driver is not connected to Watchdog Client\n");
+		dev_dbg(&dev->pdev->dev,
+			"MEI Driver is not connected to Watchdog Client\n");
 		goto end_unlock;
 	}
 
@@ -288,7 +291,8 @@ static int mei_wd_ops_ping(struct watchdog_device *wd_dev)
 		}
 
 		if (mei_flow_ctrl_reduce(dev, &dev->wd_cl)) {
-			dev_dbg(&dev->pdev->dev, "mei_flow_ctrl_reduce() failed.\n");
+			dev_dbg(&dev->pdev->dev,
+					"mei_flow_ctrl_reduce() failed.\n");
 			ret = -EIO;
 			goto end;
 		}
@@ -310,7 +314,8 @@ end:
  *
  * returns 0 if success, negative errno code for failure
  */
-static int mei_wd_ops_set_timeout(struct watchdog_device *wd_dev, unsigned int timeout)
+static int mei_wd_ops_set_timeout(struct watchdog_device *wd_dev,
+		unsigned int timeout)
 {
 	struct mei_device *dev;
 	dev = pci_get_drvdata(mei_device);
@@ -363,10 +368,12 @@ void  mei_watchdog_register(struct mei_device *dev)
 	dev->wd_due_counter = !!dev->wd_timeout;
 
 	if (watchdog_register_device(&amt_wd_dev)) {
-		dev_err(&dev->pdev->dev, "unable to register watchdog device.\n");
+		dev_err(&dev->pdev->dev,
+				"unable to register watchdog device.\n");
 		dev->wd_interface_reg = false;
 	} else {
-		dev_dbg(&dev->pdev->dev, "successfully register watchdog interface.\n");
+		dev_dbg(&dev->pdev->dev,
+				"successfully register watchdog interface.\n");
 		dev->wd_interface_reg = true;
 	}
 }
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/9] mei: factor some bits of code outside if blocks
  2012-02-24  1:38 Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 1/9] mei: cosmetic cleanup in interrupt.c Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 3/9] mei: more idiomatic variable/label usage Devin J. Pohly
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |   15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index 4914589..d1291ae 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -1336,9 +1336,6 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 			}
 			ret = _mei_irq_thread_cmpl(dev, slots, pos, cl,
 					cmpl_list);
-			if (ret)
-				return ret;
-
 		} else if (cl == &dev->iamthif_cl) {
 			/* IAMTHIF IOCTL */
 			dev_dbg(&dev->pdev->dev, "complete amthi write cb.\n");
@@ -1352,11 +1349,9 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 			}
 			ret = _mei_irq_thread_cmpl_iamthif(dev, slots, pos, cl,
 						cmpl_list);
-			if (ret)
-				return ret;
-
 		}
-
+		if (ret)
+			return ret;
 	}
 	return 0;
 }
@@ -1523,13 +1518,11 @@ irqreturn_t mei_interrupt_thread_handler(int irq, void *dev_id)
 			 * start sending messages.
 			 */
 			mei_host_start_message(dev);
-			mutex_unlock(&dev->device_lock);
-			return IRQ_HANDLED;
 		} else {
 			dev_dbg(&dev->pdev->dev, "FW not ready.\n");
-			mutex_unlock(&dev->device_lock);
-			return IRQ_HANDLED;
 		}
+		mutex_unlock(&dev->device_lock);
+		return IRQ_HANDLED;
 	}
 	/* check slots avalable for reading */
 	slots = mei_count_full_read_slots(dev);
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/9] mei: more idiomatic variable/label usage
  2012-02-24  1:38 Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 1/9] mei: cosmetic cleanup in interrupt.c Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 2/9] mei: factor some bits of code outside if blocks Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 4/9] mei: return values are -Exxx, not ~Exxx! Devin J. Pohly
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

Rename rets -> ret, and quit -> out.  Also, use return instead of goto
end when end is just a return anyway.

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |   31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index d1291ae..0601789 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -194,7 +194,7 @@ static int mei_irq_thread_read_client_message(struct mei_io_list *complete_list,
 
 	dev_dbg(&dev->pdev->dev, "start client msg\n");
 	if (list_empty(&dev->read_list.mei_cb.cb_list))
-		goto quit;
+		goto out;
 
 	list_for_each_entry_safe(cb_pos, cb_next,
 			&dev->read_list.mei_cb.cb_list, cb_list) {
@@ -239,7 +239,7 @@ static int mei_irq_thread_read_client_message(struct mei_io_list *complete_list,
 
 	}
 
-quit:
+out:
 	dev_dbg(&dev->pdev->dev, "message read\n");
 	if (!buffer) {
 		mei_read_slots(dev, (unsigned char *) dev->rd_msg_buf,
@@ -1106,8 +1106,7 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 
 	if (mei_hdr->reserved || !dev->rd_msg_hdr) {
 		dev_dbg(&dev->pdev->dev, "corrupted message header.\n");
-		ret = -EBADMSG;
-		goto end;
+		return -EBADMSG;
 	}
 
 	if (mei_hdr->host_addr || mei_hdr->me_addr) {
@@ -1126,8 +1125,7 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 
 		if (&cl_pos->link == &dev->file_list) {
 			dev_dbg(&dev->pdev->dev, "corrupted message header\n");
-			ret = -EBADMSG;
-			goto end;
+			return -EBADMSG;
 		}
 	}
 	if (((*slots) * sizeof(u32)) < mei_hdr->length) {
@@ -1135,8 +1133,7 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 				"we can't read the message slots =%08x.\n",
 				*slots);
 		/* we can't read the message */
-		ret = -ERANGE;
-		goto end;
+		return -ERANGE;
 	}
 
 	/* decide where to read the message too */
@@ -1153,14 +1150,14 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 		ret = mei_irq_thread_read_amthi_message(cmpl_list,
 							dev, mei_hdr);
 		if (ret)
-			goto end;
+			return ret;
 
 	} else {
 		dev_dbg(&dev->pdev->dev, "call mei_irq_thread_read_client_message.\n");
 		ret = mei_irq_thread_read_client_message(cmpl_list,
 							dev, mei_hdr);
 		if (ret)
-			goto end;
+			return ret;
 
 	}
 
@@ -1172,11 +1169,9 @@ static int mei_irq_thread_read_handler(struct mei_io_list *cmpl_list,
 		/* overflow - reset */
 		dev_dbg(&dev->pdev->dev, "resetting due to slots overflow.\n");
 		/* set the event since message has been read */
-		ret = -ERANGE;
-		goto end;
+		return -ERANGE;
 	}
-end:
-	return ret;
+	return 0;
 }
 
 /**
@@ -1480,7 +1475,7 @@ irqreturn_t mei_interrupt_thread_handler(int irq, void *dev_id)
 	struct mei_cl_cb *cb_pos = NULL, *cb_next = NULL;
 	struct mei_cl *cl;
 	s32 slots;
-	int rets;
+	int ret;
 	bool bus_message_received;
 
 	dev_dbg(&dev->pdev->dev, "function called after ISR to handle the interrupt processing.\n");
@@ -1532,11 +1527,11 @@ irqreturn_t mei_interrupt_thread_handler(int irq, void *dev_id)
 		dev_dbg(&dev->pdev->dev, "slots =%08x  extra_write_index =%08x.\n",
 				slots, dev->extra_write_index);
 		dev_dbg(&dev->pdev->dev, "call mei_irq_thread_read_handler.\n");
-		rets = mei_irq_thread_read_handler(&complete_list, dev, &slots);
-		if (rets)
+		ret = mei_irq_thread_read_handler(&complete_list, dev, &slots);
+		if (ret)
 			goto end;
 	}
-	rets = mei_irq_thread_write_handler(&complete_list, dev, &slots);
+	mei_irq_thread_write_handler(&complete_list, dev, &slots);
 end:
 	dev_dbg(&dev->pdev->dev, "end of bottom half function.\n");
 	dev->host_hw_state = mei_hcsr_read(dev);
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/9] mei: return values are -Exxx, not ~Exxx!
  2012-02-24  1:38 Devin J. Pohly
                   ` (2 preceding siblings ...)
  2012-02-24  1:38 ` [PATCH 3/9] mei: more idiomatic variable/label usage Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-27 16:35   ` Tomas Winkler
  2012-02-24  1:38 ` [PATCH 5/9] mei: remove indentation where else follows return Devin J. Pohly
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

There's no way this is what was intended! :)

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index 0601789..b024270 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -1273,7 +1273,7 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 		}
 	}
 	if (dev->stop)
-		return ~ENODEV;
+		return -ENODEV;
 
 	/* complete control write list CB */
 	dev_dbg(&dev->pdev->dev, "complete control write list cb.\n");
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5/9] mei: remove indentation where else follows return
  2012-02-24  1:38 Devin J. Pohly
                   ` (3 preceding siblings ...)
  2012-02-24  1:38 ` [PATCH 4/9] mei: return values are -Exxx, not ~Exxx! Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 6/9] mei: reduce indentation with early returns Devin J. Pohly
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

If a function returns early as the last statement of an if block, the
"else" is pretty much implied.

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |   58 ++++++++++++++++++---------------------
 1 file changed, 27 insertions(+), 31 deletions(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index b024270..ade5574 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -945,14 +945,13 @@ static int _mei_irq_thread_cmpl(struct mei_device *dev, s32 *slots,
 			list_move_tail(&cb_pos->cb_list,
 				&cmpl_list->mei_cb.cb_list);
 			return -ENODEV;
-		} else {
-			if (mei_flow_ctrl_reduce(dev, cl))
-				return -ENODEV;
-			cl->status = 0;
-			cb_pos->information += mei_hdr->length;
-			list_move_tail(&cb_pos->cb_list,
-				&dev->write_waiting_list.mei_cb.cb_list);
 		}
+		if (mei_flow_ctrl_reduce(dev, cl))
+			return -ENODEV;
+		cl->status = 0;
+		cb_pos->information += mei_hdr->length;
+		list_move_tail(&cb_pos->cb_list,
+			&dev->write_waiting_list.mei_cb.cb_list);
 	} else if (*slots == ((dev->host_hw_state & H_CBD) >> 24)) {
 		/* buffer is still empty */
 		mei_hdr = (struct mei_msg_hdr *) &dev->wr_msg_buf[0];
@@ -973,18 +972,17 @@ static int _mei_irq_thread_cmpl(struct mei_device *dev, s32 *slots,
 			list_move_tail(&cb_pos->cb_list,
 				&cmpl_list->mei_cb.cb_list);
 			return -ENODEV;
-		} else {
-			cb_pos->information += mei_hdr->length;
-			dev_dbg(&dev->pdev->dev,
-					"cb_pos->request_buffer.size =%d"
-					" mei_hdr->msg_complete = %d\n",
-					cb_pos->request_buffer.size,
-					mei_hdr->msg_complete);
-			dev_dbg(&dev->pdev->dev, "cb_pos->information  =%lu\n",
-					cb_pos->information);
-			dev_dbg(&dev->pdev->dev, "mei_hdr->length  =%d\n",
-					mei_hdr->length);
 		}
+		cb_pos->information += mei_hdr->length;
+		dev_dbg(&dev->pdev->dev,
+				"cb_pos->request_buffer.size =%d"
+				" mei_hdr->msg_complete = %d\n",
+				cb_pos->request_buffer.size,
+				mei_hdr->msg_complete);
+		dev_dbg(&dev->pdev->dev, "cb_pos->information  =%lu\n",
+				cb_pos->information);
+		dev_dbg(&dev->pdev->dev, "mei_hdr->length  =%d\n",
+				mei_hdr->length);
 		return -EMSGSIZE;
 	} else {
 		return -EBADMSG;
@@ -1033,20 +1031,18 @@ static int _mei_irq_thread_cmpl_iamthif(struct mei_device *dev, s32 *slots,
 			cl->status = -ENODEV;
 			list_del(&cb_pos->cb_list);
 			return -ENODEV;
-		} else {
-			if (mei_flow_ctrl_reduce(dev, cl))
-				return -ENODEV;
-			dev->iamthif_msg_buf_index += mei_hdr->length;
-			cb_pos->information = dev->iamthif_msg_buf_index;
-			cl->status = 0;
-			dev->iamthif_state = MEI_IAMTHIF_FLOW_CONTROL;
-			dev->iamthif_flow_control_pending = true;
-			/* save iamthif cb sent to amthi client */
-			dev->iamthif_current_cb = cb_pos;
-			list_move_tail(&cb_pos->cb_list,
-				&dev->write_waiting_list.mei_cb.cb_list);
-
 		}
+		if (mei_flow_ctrl_reduce(dev, cl))
+			return -ENODEV;
+		dev->iamthif_msg_buf_index += mei_hdr->length;
+		cb_pos->information = dev->iamthif_msg_buf_index;
+		cl->status = 0;
+		dev->iamthif_state = MEI_IAMTHIF_FLOW_CONTROL;
+		dev->iamthif_flow_control_pending = true;
+		/* save iamthif cb sent to amthi client */
+		dev->iamthif_current_cb = cb_pos;
+		list_move_tail(&cb_pos->cb_list,
+			&dev->write_waiting_list.mei_cb.cb_list);
 	} else if (*slots == ((dev->host_hw_state & H_CBD) >> 24)) {
 			/* buffer is still empty */
 		mei_hdr = (struct mei_msg_hdr *) &dev->wr_msg_buf[0];
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 6/9] mei: reduce indentation with early returns
  2012-02-24  1:38 Devin J. Pohly
                   ` (4 preceding siblings ...)
  2012-02-24  1:38 ` [PATCH 5/9] mei: remove indentation where else follows return Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 7/9] mei: reduce indentation by combining if blocks Devin J. Pohly
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

Rather than check an error condition in the last part of an if-else set,
check it up front, return, and then don't bother with the "else" part.

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |  352 +++++++++++++++++++--------------------
 1 file changed, 170 insertions(+), 182 deletions(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index ade5574..541d018 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -261,26 +261,26 @@ out:
  */
 static int _mei_irq_thread_iamthif_read(struct mei_device *dev, s32 *slots)
 {
-	if (((*slots) * sizeof(u32)) >= (sizeof(struct mei_msg_hdr)
-			+ sizeof(struct hbm_flow_control))) {
-		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
-				sizeof(struct hbm_flow_control), sizeof(u32));
-		if (!mei_send_flow_control(dev, &dev->iamthif_cl)) {
-			dev_dbg(&dev->pdev->dev, "iamthif flow control failed\n");
-		} else {
-			dev_dbg(&dev->pdev->dev, "iamthif flow control success\n");
-			dev->iamthif_state = MEI_IAMTHIF_READING;
-			dev->iamthif_flow_control_pending = false;
-			dev->iamthif_msg_buf_index = 0;
-			dev->iamthif_msg_buf_size = 0;
-			dev->iamthif_stall_timer = IAMTHIF_STALL_TIMER;
-			dev->mei_host_buffer_is_empty =
-					mei_host_buffer_is_empty(dev);
-		}
-		return 0;
-	} else {
+	if (*slots * sizeof(u32) < (sizeof(struct mei_msg_hdr)
+			+ sizeof(struct hbm_flow_control)))
 		return -EMSGSIZE;
+	*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+			sizeof(struct hbm_flow_control),
+			sizeof(u32));
+	if (!mei_send_flow_control(dev, &dev->iamthif_cl)) {
+		dev_dbg(&dev->pdev->dev, "iamthif flow control failed\n");
+		return 0;
 	}
+
+	dev_dbg(&dev->pdev->dev, "iamthif flow control success\n");
+	dev->iamthif_state = MEI_IAMTHIF_READING;
+	dev->iamthif_flow_control_pending = false;
+	dev->iamthif_msg_buf_index = 0;
+	dev->iamthif_msg_buf_size = 0;
+	dev->iamthif_stall_timer = IAMTHIF_STALL_TIMER;
+	dev->mei_host_buffer_is_empty =
+		mei_host_buffer_is_empty(dev);
+	return 0;
 }
 
 /**
@@ -299,31 +299,27 @@ static int _mei_irq_thread_close(struct mei_device *dev, s32 *slots,
 				struct mei_cl *cl,
 				struct mei_io_list *cmpl_list)
 {
-	if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) +
-			sizeof(struct hbm_client_disconnect_request))) {
-		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+	if ((*slots * sizeof(u32)) < (sizeof(struct mei_msg_hdr) +
+			sizeof(struct hbm_client_disconnect_request)))
+		return -EBADMSG;
+
+	*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
 			sizeof(struct hbm_client_disconnect_request),
 			sizeof(u32));
 
-		if (!mei_disconnect(dev, cl)) {
-			cl->status = 0;
-			cb_pos->information = 0;
-			list_move_tail(&cb_pos->cb_list,
-					&cmpl_list->mei_cb.cb_list);
-			return -EMSGSIZE;
-		} else {
-			cl->state = MEI_FILE_DISCONNECTING;
-			cl->status = 0;
-			cb_pos->information = 0;
-			list_move_tail(&cb_pos->cb_list,
-					&dev->ctrl_rd_list.mei_cb.cb_list);
-			cl->timer_count = MEI_CONNECT_TIMEOUT;
-		}
-	} else {
-		/* return the cancel routine */
-		return -EBADMSG;
+	if (!mei_disconnect(dev, cl)) {
+		cl->status = 0;
+		cb_pos->information = 0;
+		list_move_tail(&cb_pos->cb_list, &cmpl_list->mei_cb.cb_list);
+		return -EMSGSIZE;
 	}
 
+	cl->state = MEI_FILE_DISCONNECTING;
+	cl->status = 0;
+	cb_pos->information = 0;
+	list_move_tail(&cb_pos->cb_list, &dev->ctrl_rd_list.mei_cb.cb_list);
+	cl->timer_count = MEI_CONNECT_TIMEOUT;
+
 	return 0;
 }
 
@@ -338,22 +334,20 @@ static int _mei_irq_thread_close(struct mei_device *dev, s32 *slots,
 static bool is_treat_specially_client(struct mei_cl *cl,
 		struct hbm_client_connect_response *rs)
 {
+	if (cl->host_client_id != rs->host_addr ||
+				cl->me_client_id != rs->me_addr)
+		return false;
 
-	if (cl->host_client_id == rs->host_addr &&
-			cl->me_client_id == rs->me_addr) {
-		if (!rs->status) {
-			cl->state = MEI_FILE_CONNECTED;
-			cl->status = 0;
-
-		} else {
-			cl->state = MEI_FILE_DISCONNECTED;
-			cl->status = -ENODEV;
-		}
-		cl->timer_count = 0;
-
-		return true;
+	if (!rs->status) {
+		cl->state = MEI_FILE_CONNECTED;
+		cl->status = 0;
+	} else {
+		cl->state = MEI_FILE_DISCONNECTED;
+		cl->status = -ENODEV;
 	}
-	return false;
+	cl->timer_count = 0;
+
+	return true;
 }
 
 /**
@@ -486,15 +480,14 @@ static void add_single_flow_creds(struct mei_device *dev,
 	for (i = 0; i < dev->me_clients_num; i++) {
 		client = &dev->me_clients[i];
 		if (client && flow->me_addr == client->client_id) {
-			if (client->props.single_recv_buf) {
-				client->mei_flow_ctrl_creds++;
-				dev_dbg(&dev->pdev->dev, "recv flow ctrl msg ME %d (single).\n",
-						flow->me_addr);
-				dev_dbg(&dev->pdev->dev, "flow control credentials =%d.\n",
-						client->mei_flow_ctrl_creds);
-			} else {
-				BUG();	/* error in flow control */
-			}
+			/* bug on error in flow control */
+			BUG_ON(!client->props.single_recv_buf);
+
+			client->mei_flow_ctrl_creds++;
+			dev_dbg(&dev->pdev->dev, "recv flow ctrl msg ME %d (single).\n",
+					flow->me_addr);
+			dev_dbg(&dev->pdev->dev, "flow control credentials =%d.\n",
+					client->mei_flow_ctrl_creds);
 		}
 	}
 }
@@ -569,38 +562,37 @@ static void mei_client_disconnect_request(struct mei_device *dev,
 	struct mei_cl *cl_next = NULL;
 
 	list_for_each_entry_safe(cl_pos, cl_next, &dev->file_list, link) {
-		if (same_disconn_addr(cl_pos, disconnect_req)) {
-			dev_dbg(&dev->pdev->dev, "disconnect request host client %d ME client %d.\n",
-					disconnect_req->host_addr,
-					disconnect_req->me_addr);
-			cl_pos->state = MEI_FILE_DISCONNECTED;
-			cl_pos->timer_count = 0;
-			if (cl_pos == &dev->wd_cl) {
-				dev->wd_due_counter = 0;
-				dev->wd_pending = false;
-			} else if (cl_pos == &dev->iamthif_cl)
-				dev->iamthif_timer = 0;
-
-			/* prepare disconnect response */
-			mei_hdr =
-				(struct mei_msg_hdr *) &dev->ext_msg_buf[0];
-			mei_hdr->host_addr = 0;
-			mei_hdr->me_addr = 0;
-			mei_hdr->length = sizeof(*disconnect_res);
-			mei_hdr->msg_complete = 1;
-			mei_hdr->reserved = 0;
+		if (!same_disconn_addr(cl_pos, disconnect_req))
+			continue;
 
-			disconnect_res =
-				(struct hbm_client_connect_response *)
-				&dev->ext_msg_buf[1];
-			disconnect_res->host_addr = cl_pos->host_client_id;
-			disconnect_res->me_addr = cl_pos->me_client_id;
-			*(u8 *) (&disconnect_res->cmd) =
-				CLIENT_DISCONNECT_RES_CMD;
-			disconnect_res->status = 0;
-			dev->extra_write_index = 2;
-			break;
+		dev_dbg(&dev->pdev->dev, "disconnect request host client %d ME client %d.\n",
+				disconnect_req->host_addr,
+				disconnect_req->me_addr);
+		cl_pos->state = MEI_FILE_DISCONNECTED;
+		cl_pos->timer_count = 0;
+		if (cl_pos == &dev->wd_cl) {
+			dev->wd_due_counter = 0;
+			dev->wd_pending = false;
+		} else if (cl_pos == &dev->iamthif_cl) {
+			dev->iamthif_timer = 0;
 		}
+
+		/* prepare disconnect response */
+		mei_hdr = (struct mei_msg_hdr *) &dev->ext_msg_buf[0];
+		mei_hdr->host_addr = 0;
+		mei_hdr->me_addr = 0;
+		mei_hdr->length = sizeof(*disconnect_res);
+		mei_hdr->msg_complete = 1;
+		mei_hdr->reserved = 0;
+
+		disconnect_res = (struct hbm_client_connect_response *)
+			&dev->ext_msg_buf[1];
+		disconnect_res->host_addr = cl_pos->host_client_id;
+		disconnect_res->me_addr = cl_pos->me_client_id;
+		*(u8 *) (&disconnect_res->cmd) = CLIENT_DISCONNECT_RES_CMD;
+		disconnect_res->status = 0;
+		dev->extra_write_index = 2;
+		break;
 	}
 }
 
@@ -704,82 +696,82 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 			return;
 		}
 		if (dev->me_clients[dev->me_client_presentation_num]
-					.client_id == props_res->address) {
-
-			dev->me_clients[dev->me_client_presentation_num].props
-						= props_res->client_properties;
+					.client_id != props_res->address) {
+			dev_dbg(&dev->pdev->dev, "reset due to received host client properties response bus message for wrong client ID\n");
+			mei_reset(dev, 1);
+			return;
+		}
 
-			if (dev->mei_state == MEI_INIT_CLIENTS &&
-					dev->init_clients_state ==
-					MEI_CLIENT_PROPERTIES_MESSAGE) {
-				dev->me_client_index++;
-				dev->me_client_presentation_num++;
-
-				/* Send Client Properties request */
-				res = mei_host_client_properties(dev);
-				if (res < 0) {
-					dev_dbg(&dev->pdev->dev, "mei_host_client_properties() failed");
-					return;
-				} else if (!res) {
-					/*
-					 * No more clients to send to.
-					 * Clear Map for indicating now ME
-					 * clients with associated host client
-					 */
-					bitmap_zero(dev->host_clients_map,
-							MEI_CLIENTS_MAX);
-					dev->open_handle_count = 0;
-
-					/*
-					 * Reserving the first three client IDs
-					 * Client Id 0 - Reserved for MEI Bus
-					 *               Message communications
-					 * Client Id 1 - Reserved for Watchdog
-					 * Client ID 2 - Reserved for AMTHI
-					 */
-					bitmap_set(dev->host_clients_map, 0, 3);
-					dev->mei_state = MEI_ENABLED;
-
-					/* if wd initialization fails,
-					 * initialize the AMTHI client,
-					 * otherwise the AMTHI client will be
-					 * initialized after the WD client
-					 * connect response is received
-					 */
-					if (mei_wd_host_init(dev))
-						mei_host_init_iamthif(dev);
-				}
+		dev->me_clients[dev->me_client_presentation_num].props
+					= props_res->client_properties;
 
-			} else {
-				dev_dbg(&dev->pdev->dev, "reset due to received host client properties response bus message");
-				mei_reset(dev, 1);
-				return;
-			}
-		} else {
-			dev_dbg(&dev->pdev->dev, "reset due to received host client properties response bus message for wrong client ID\n");
+		if (dev->mei_state != MEI_INIT_CLIENTS ||
+				dev->init_clients_state !=
+				MEI_CLIENT_PROPERTIES_MESSAGE) {
+			dev_dbg(&dev->pdev->dev, "reset due to received host client properties response bus message");
 			mei_reset(dev, 1);
 			return;
 		}
+
+		dev->me_client_index++;
+		dev->me_client_presentation_num++;
+
+		/* Send Client Properties request */
+		res = mei_host_client_properties(dev);
+		if (res < 0) {
+			dev_dbg(&dev->pdev->dev, "mei_host_client_properties() failed");
+			return;
+		}
+		if (res)
+			break;
+
+		/*
+		 * No more clients to send to.
+		 * Clear Map for indicating now ME
+		 * clients with associated host client
+		 */
+		bitmap_zero(dev->host_clients_map,
+				MEI_CLIENTS_MAX);
+		dev->open_handle_count = 0;
+
+		/*
+		 * Reserving the first three client IDs
+		 * Client Id 0 - Reserved for MEI Bus
+		 *               Message communications
+		 * Client Id 1 - Reserved for Watchdog
+		 * Client ID 2 - Reserved for AMTHI
+		 */
+		bitmap_set(dev->host_clients_map, 0, 3);
+		dev->mei_state = MEI_ENABLED;
+
+		/* if wd initialization fails,
+		 * initialize the AMTHI client,
+		 * otherwise the AMTHI client will be
+		 * initialized after the WD client
+		 * connect response is received
+		 */
+		if (mei_wd_host_init(dev))
+			mei_host_init_iamthif(dev);
 		break;
 
 	case HOST_ENUM_RES_CMD:
 		enum_res = (struct hbm_host_enum_response *) mei_msg;
 		memcpy(dev->me_clients_map, enum_res->valid_addresses, 32);
-		if (dev->mei_state == MEI_INIT_CLIENTS &&
-				dev->init_clients_state ==
-				MEI_ENUM_CLIENTS_MESSAGE) {
-			dev->init_clients_timer = 0;
-			dev->me_client_presentation_num = 0;
-			dev->me_client_index = 0;
-			mei_allocate_me_clients_storage(dev);
-			dev->init_clients_state =
-				MEI_CLIENT_PROPERTIES_MESSAGE;
-			mei_host_client_properties(dev);
-		} else {
+		if (dev->mei_state != MEI_INIT_CLIENTS ||
+					dev->init_clients_state !=
+					MEI_ENUM_CLIENTS_MESSAGE) {
 			dev_dbg(&dev->pdev->dev, "reset due to received host enumeration clients response bus message.\n");
 			mei_reset(dev, 1);
 			return;
 		}
+
+		dev->init_clients_timer = 0;
+		dev->me_client_presentation_num = 0;
+		dev->me_client_index = 0;
+		mei_allocate_me_clients_storage(dev);
+		dev->init_clients_state =
+			MEI_CLIENT_PROPERTIES_MESSAGE;
+		mei_host_client_properties(dev);
 		break;
 
 	case HOST_STOP_RES_CMD:
@@ -835,26 +827,24 @@ static int _mei_irq_thread_read(struct mei_device *dev, s32 *slots,
 			struct mei_cl *cl,
 			struct mei_io_list *cmpl_list)
 {
-	if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) +
+	if ((*slots * sizeof(u32)) < (sizeof(struct mei_msg_hdr) +
 			sizeof(struct hbm_flow_control))) {
-		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
-			sizeof(struct hbm_flow_control), sizeof(u32));
-		if (!mei_send_flow_control(dev, cl)) {
-			cl->status = -ENODEV;
-			cb_pos->information = 0;
-			list_move_tail(&cb_pos->cb_list,
-					&cmpl_list->mei_cb.cb_list);
-			return -ENODEV;
-		} else {
-			list_move_tail(&cb_pos->cb_list,
-					&dev->read_list.mei_cb.cb_list);
-		}
-	} else {
 		/* return the cancel routine */
 		list_del(&cb_pos->cb_list);
 		return -EBADMSG;
 	}
+	*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+		sizeof(struct hbm_flow_control), sizeof(u32));
+	if (!mei_send_flow_control(dev, cl)) {
+		cl->status = -ENODEV;
+		cb_pos->information = 0;
+		list_move_tail(&cb_pos->cb_list,
+				&cmpl_list->mei_cb.cb_list);
+		return -ENODEV;
+	}
 
+	list_move_tail(&cb_pos->cb_list,
+			&dev->read_list.mei_cb.cb_list);
 	return 0;
 }
 
@@ -874,26 +864,24 @@ static int _mei_irq_thread_ioctl(struct mei_device *dev, s32 *slots,
 			struct mei_cl *cl,
 			struct mei_io_list *cmpl_list)
 {
-	if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) +
+	if ((*slots * sizeof(u32)) < (sizeof(struct mei_msg_hdr) +
 			sizeof(struct hbm_client_connect_request))) {
-		cl->state = MEI_FILE_CONNECTING;
-		*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
-			sizeof(struct hbm_client_connect_request), sizeof(u32));
-		if (!mei_connect(dev, cl)) {
-			cl->status = -ENODEV;
-			cb_pos->information = 0;
-			list_del(&cb_pos->cb_list);
-			return -ENODEV;
-		} else {
-			list_move_tail(&cb_pos->cb_list,
-				&dev->ctrl_rd_list.mei_cb.cb_list);
-			cl->timer_count = MEI_CONNECT_TIMEOUT;
-		}
-	} else {
 		/* return the cancel routine */
 		list_del(&cb_pos->cb_list);
 		return -EBADMSG;
 	}
+	cl->state = MEI_FILE_CONNECTING;
+	*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
+		sizeof(struct hbm_client_connect_request), sizeof(u32));
+	if (!mei_connect(dev, cl)) {
+		cl->status = -ENODEV;
+		cb_pos->information = 0;
+		list_del(&cb_pos->cb_list);
+		return -ENODEV;
+	}
+	list_move_tail(&cb_pos->cb_list,
+			&dev->ctrl_rd_list.mei_cb.cb_list);
+	cl->timer_count = MEI_CONNECT_TIMEOUT;
 
 	return 0;
 }
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 7/9] mei: reduce indentation by combining if blocks
  2012-02-24  1:38 Devin J. Pohly
                   ` (5 preceding siblings ...)
  2012-02-24  1:38 ` [PATCH 6/9] mei: reduce indentation with early returns Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 8/9] mei: reduce indentation in read_client_message Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 9/9] mei: reduce indentation in read_bus_message Devin J. Pohly
  8 siblings, 0 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |   84 +++++++++++++++++----------------------
 1 file changed, 36 insertions(+), 48 deletions(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index 541d018..6ae7a0e 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -1231,29 +1231,23 @@ static int mei_irq_thread_write_handler(struct mei_io_list *cmpl_list,
 		*slots -= dev->extra_write_index;
 		dev->extra_write_index = 0;
 	}
-	if (dev->mei_state == MEI_ENABLED) {
-		if (dev->wd_pending &&
+	if (dev->mei_state == MEI_ENABLED && dev->wd_pending &&
 			mei_flow_ctrl_creds(dev, &dev->wd_cl) > 0) {
-			if (mei_wd_send(dev))
-				dev_dbg(&dev->pdev->dev, "wd send failed.\n");
-			else
-				if (mei_flow_ctrl_reduce(dev, &dev->wd_cl))
-					return -ENODEV;
+		if (mei_wd_send(dev))
+			dev_dbg(&dev->pdev->dev, "wd send failed.\n");
+		else if (mei_flow_ctrl_reduce(dev, &dev->wd_cl))
+			return -ENODEV;
 
-			dev->wd_pending = false;
+		dev->wd_pending = false;
 
-			if (dev->wd_timeout) {
-				*slots -= DIV_ROUND_UP(
-					sizeof(struct mei_msg_hdr) +
+		if (dev->wd_timeout) {
+			*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
 					MEI_START_WD_DATA_SIZE, sizeof(u32));
-				dev->wd_due_counter = 2;
-			} else {
-				*slots -= DIV_ROUND_UP(
-					sizeof(struct mei_msg_hdr) +
+			dev->wd_due_counter = 2;
+		} else {
+			*slots -= DIV_ROUND_UP(sizeof(struct mei_msg_hdr) +
 					MEI_WD_PARAMS_SIZE, sizeof(u32));
-				dev->wd_due_counter = 0;
-			}
-
+			dev->wd_due_counter = 0;
 		}
 	}
 	if (dev->stop)
@@ -1356,46 +1350,40 @@ void mei_timer(struct work_struct *work)
 
 	mutex_lock(&dev->device_lock);
 	if (dev->mei_state != MEI_ENABLED) {
-		if (dev->mei_state == MEI_INIT_CLIENTS) {
-			if (dev->init_clients_timer) {
-				if (--dev->init_clients_timer == 0) {
-					dev_dbg(&dev->pdev->dev, "IMEI reset due to init clients timeout ,init clients state = %d.\n",
-						dev->init_clients_state);
-					mei_reset(dev, 1);
-				}
-			}
+		if (dev->mei_state == MEI_INIT_CLIENTS &&
+				dev->init_clients_timer &&
+				--dev->init_clients_timer == 0) {
+			dev_dbg(&dev->pdev->dev, "IMEI reset due to init clients timeout ,init clients state = %d.\n",
+					dev->init_clients_state);
+			mei_reset(dev, 1);
 		}
 		goto out;
 	}
 	/* connect/disconnect timeouts */
 	list_for_each_entry_safe(cl_pos, cl_next, &dev->file_list, link) {
-		if (cl_pos->timer_count) {
-			if (--cl_pos->timer_count == 0) {
-				dev_dbg(&dev->pdev->dev, "HECI reset due to connect/disconnect timeout.\n");
-				mei_reset(dev, 1);
-				goto out;
-			}
+		if (cl_pos->timer_count && --cl_pos->timer_count == 0) {
+			dev_dbg(&dev->pdev->dev, "HECI reset due to connect/disconnect timeout.\n");
+			mei_reset(dev, 1);
+			goto out;
 		}
 	}
 
-	if (dev->iamthif_stall_timer) {
-		if (--dev->iamthif_stall_timer == 0) {
-			dev_dbg(&dev->pdev->dev, "reseting because of hang to amthi.\n");
-			mei_reset(dev, 1);
-			dev->iamthif_msg_buf_size = 0;
-			dev->iamthif_msg_buf_index = 0;
-			dev->iamthif_canceled = false;
-			dev->iamthif_ioctl = true;
-			dev->iamthif_state = MEI_IAMTHIF_IDLE;
-			dev->iamthif_timer = 0;
+	if (dev->iamthif_stall_timer && --dev->iamthif_stall_timer == 0) {
+		dev_dbg(&dev->pdev->dev, "reseting because of hang to amthi.\n");
+		mei_reset(dev, 1);
+		dev->iamthif_msg_buf_size = 0;
+		dev->iamthif_msg_buf_index = 0;
+		dev->iamthif_canceled = false;
+		dev->iamthif_ioctl = true;
+		dev->iamthif_state = MEI_IAMTHIF_IDLE;
+		dev->iamthif_timer = 0;
 
-			if (dev->iamthif_current_cb)
-				mei_free_cb_private(dev->iamthif_current_cb);
+		if (dev->iamthif_current_cb)
+			mei_free_cb_private(dev->iamthif_current_cb);
 
-			dev->iamthif_file_object = NULL;
-			dev->iamthif_current_cb = NULL;
-			mei_run_next_iamthif_cmd(dev);
-		}
+		dev->iamthif_file_object = NULL;
+		dev->iamthif_current_cb = NULL;
+		mei_run_next_iamthif_cmd(dev);
 	}
 
 	if (dev->iamthif_timer) {
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 8/9] mei: reduce indentation in read_client_message
  2012-02-24  1:38 Devin J. Pohly
                   ` (6 preceding siblings ...)
  2012-02-24  1:38 ` [PATCH 7/9] mei: reduce indentation by combining if blocks Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  2012-02-24  1:38 ` [PATCH 9/9] mei: reduce indentation in read_bus_message Devin J. Pohly
  8 siblings, 0 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

Removes the empty check since that's handled by foreach.  Moves a big
chunk of code out of the foreach since it's followed by a break anyway.

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |   67 ++++++++++++++++++---------------------
 1 file changed, 30 insertions(+), 37 deletions(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index 6ae7a0e..f2c864e 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -193,51 +193,44 @@ static int mei_irq_thread_read_client_message(struct mei_io_list *complete_list,
 	unsigned char *buffer = NULL;
 
 	dev_dbg(&dev->pdev->dev, "start client msg\n");
-	if (list_empty(&dev->read_list.mei_cb.cb_list))
-		goto out;
 
 	list_for_each_entry_safe(cb_pos, cb_next,
 			&dev->read_list.mei_cb.cb_list, cb_list) {
 		cl = (struct mei_cl *)cb_pos->file_private;
-		if (cl && _mei_irq_thread_state_ok(cl, mei_hdr)) {
-			cl->reading_state = MEI_READING;
-			buffer = (unsigned char *)
-				(cb_pos->response_buffer.data +
-				cb_pos->information);
-
-			if (cb_pos->response_buffer.size <
-					mei_hdr->length + cb_pos->information) {
-				dev_dbg(&dev->pdev->dev, "message overflow.\n");
-				list_del(&cb_pos->cb_list);
-				return -ENOMEM;
-			}
-			if (buffer)
-				mei_read_slots(dev, buffer, mei_hdr->length);
+		if (cl && _mei_irq_thread_state_ok(cl, mei_hdr))
+			break;
+	}
 
-			cb_pos->information += mei_hdr->length;
-			if (mei_hdr->msg_complete) {
-				cl->status = 0;
-				list_del(&cb_pos->cb_list);
-				dev_dbg(&dev->pdev->dev,
-					"completed read host client = %d,"
-					"ME client = %d, "
-					"data length = %lu\n",
-					cl->host_client_id,
-					cl->me_client_id,
-					cb_pos->information);
-
-				*(cb_pos->response_buffer.data +
-					cb_pos->information) = '\0';
-				dev_dbg(&dev->pdev->dev, "cb_pos->res_buffer - %s\n",
-					cb_pos->response_buffer.data);
-				list_add_tail(&cb_pos->cb_list,
-					&complete_list->mei_cb.cb_list);
-			}
+	/* List empty, or client not found */
+	if (&cb_pos->cb_list == &dev->read_list.mei_cb.cb_list)
+		goto out;
 
-			break;
-		}
+	cl->reading_state = MEI_READING;
+	buffer = cb_pos->response_buffer.data + cb_pos->information;
 
+	if (cb_pos->response_buffer.size <
+			mei_hdr->length + cb_pos->information) {
+		dev_dbg(&dev->pdev->dev, "message overflow.\n");
+		list_del(&cb_pos->cb_list);
+		return -ENOMEM;
 	}
+	if (buffer)
+		mei_read_slots(dev, buffer, mei_hdr->length);
+
+	cb_pos->information += mei_hdr->length;
+	if (!mei_hdr->msg_complete)
+		goto out;
+
+	cl->status = 0;
+	list_del(&cb_pos->cb_list);
+	dev_dbg(&dev->pdev->dev, "completed read host client = %d, "
+		"ME client = %d, data length = %lu\n",
+		cl->host_client_id, cl->me_client_id, cb_pos->information);
+
+	cb_pos->response_buffer.data[cb_pos->information] = '\0';
+	dev_dbg(&dev->pdev->dev, "cb_pos->res_buffer - %s\n",
+		cb_pos->response_buffer.data);
+	list_add_tail(&cb_pos->cb_list, &complete_list->mei_cb.cb_list);
 
 out:
 	dev_dbg(&dev->pdev->dev, "message read\n");
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 9/9] mei: reduce indentation in read_bus_message
  2012-02-24  1:38 Devin J. Pohly
                   ` (7 preceding siblings ...)
  2012-02-24  1:38 ` [PATCH 8/9] mei: reduce indentation in read_client_message Devin J. Pohly
@ 2012-02-24  1:38 ` Devin J. Pohly
  8 siblings, 0 replies; 12+ messages in thread
From: Devin J. Pohly @ 2012-02-24  1:38 UTC (permalink / raw)
  To: gregkh; +Cc: linux-kernel, Devin J. Pohly

From: "Devin J. Pohly" <djpohly@gmail.com>

A chunk of code can be deindented by checking conditions early.

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
---
 drivers/staging/mei/interrupt.c |   29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/drivers/staging/mei/interrupt.c b/drivers/staging/mei/interrupt.c
index f2c864e..c2800ba 100644
--- a/drivers/staging/mei/interrupt.c
+++ b/drivers/staging/mei/interrupt.c
@@ -621,21 +621,7 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 	switch (*(u8 *) mei_msg) {
 	case HOST_START_RES_CMD:
 		version_res = (struct hbm_host_version_response *) mei_msg;
-		if (version_res->host_version_supported) {
-			dev->version.major_version = HBM_MAJOR_VERSION;
-			dev->version.minor_version = HBM_MINOR_VERSION;
-			if (dev->mei_state == MEI_INIT_CLIENTS &&
-					dev->init_clients_state ==
-					MEI_START_MESSAGE) {
-				dev->init_clients_timer = 0;
-				mei_host_enum_clients_message(dev);
-			} else {
-				dev->recvd_msg = false;
-				dev_dbg(&dev->pdev->dev, "IMEI reset due to received host start response bus message.\n");
-				mei_reset(dev, 1);
-				return;
-			}
-		} else {
+		if (!version_res->host_version_supported) {
 			dev->version = version_res->me_max_version;
 			/* send stop message */
 			mei_hdr->host_addr = 0;
@@ -657,6 +643,19 @@ static void mei_irq_thread_read_bus_message(struct mei_device *dev,
 			return;
 		}
 
+		dev->version.major_version = HBM_MAJOR_VERSION;
+		dev->version.minor_version = HBM_MINOR_VERSION;
+		if (dev->mei_state != MEI_INIT_CLIENTS ||
+					dev->init_clients_state !=
+					MEI_START_MESSAGE) {
+			dev->recvd_msg = false;
+			dev_dbg(&dev->pdev->dev, "IMEI reset due to received host start response bus message.\n");
+			mei_reset(dev, 1);
+			return;
+		}
+		dev->init_clients_timer = 0;
+		mei_host_enum_clients_message(dev);
+
 		dev->recvd_msg = true;
 		dev_dbg(&dev->pdev->dev, "host start response message received.\n");
 		break;
-- 
1.7.9.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/9] mei: cosmetic cleanup in interrupt.c
  2012-02-24  1:38 ` [PATCH 1/9] mei: cosmetic cleanup in interrupt.c Devin J. Pohly
@ 2012-02-24  2:51   ` Greg KH
  0 siblings, 0 replies; 12+ messages in thread
From: Greg KH @ 2012-02-24  2:51 UTC (permalink / raw)
  To: Devin J. Pohly; +Cc: linux-kernel

On Thu, Feb 23, 2012 at 08:38:48PM -0500, Devin J. Pohly wrote:
> From: "Devin J. Pohly" <djpohly@gmail.com>
> 
> Tabs, spaces, long lines, lines that could be combined, superfluous
> parentheses, etc.  Also uses DIV_ROUND_UP and sizeof(*ptr) where
> appropriate.

That's a lot of different things all in one patch.

Please only do one thing per patch.

Also, please cc: the maintainers of this patch, I'm sure they would also
have comments on it, use the scripts/get_maintainer.pl tool to figure
out who to send it to (hint, you also should copy the driverdevel
mailing list.)

Care to redo these please?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/9] mei: return values are -Exxx, not ~Exxx!
  2012-02-24  1:38 ` [PATCH 4/9] mei: return values are -Exxx, not ~Exxx! Devin J. Pohly
@ 2012-02-27 16:35   ` Tomas Winkler
  0 siblings, 0 replies; 12+ messages in thread
From: Tomas Winkler @ 2012-02-27 16:35 UTC (permalink / raw)
  To: Devin J. Pohly, Greg KH; +Cc: linux-kernel, devel

On Fri, Feb 24, 2012 at 3:38 AM, Devin J. Pohly <djpohly@gmail.com> wrote:
> From: "Devin J. Pohly" <djpohly@gmail.com>
>
> There's no way this is what was intended! :)
>
> Signed-off-by: Devin J. Pohly <djpohly@gmail.com>

Good catch but  can you please resend it out of  the series with maybe
some more informative commit message.

Appreciated
Tomas

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2012-02-27 16:35 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-24  1:38 Devin J. Pohly
2012-02-24  1:38 ` [PATCH 1/9] mei: cosmetic cleanup in interrupt.c Devin J. Pohly
2012-02-24  2:51   ` Greg KH
2012-02-24  1:38 ` [PATCH 2/9] mei: factor some bits of code outside if blocks Devin J. Pohly
2012-02-24  1:38 ` [PATCH 3/9] mei: more idiomatic variable/label usage Devin J. Pohly
2012-02-24  1:38 ` [PATCH 4/9] mei: return values are -Exxx, not ~Exxx! Devin J. Pohly
2012-02-27 16:35   ` Tomas Winkler
2012-02-24  1:38 ` [PATCH 5/9] mei: remove indentation where else follows return Devin J. Pohly
2012-02-24  1:38 ` [PATCH 6/9] mei: reduce indentation with early returns Devin J. Pohly
2012-02-24  1:38 ` [PATCH 7/9] mei: reduce indentation by combining if blocks Devin J. Pohly
2012-02-24  1:38 ` [PATCH 8/9] mei: reduce indentation in read_client_message Devin J. Pohly
2012-02-24  1:38 ` [PATCH 9/9] mei: reduce indentation in read_bus_message Devin J. Pohly

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).