Loading drivers/char/ipmi/ipmi_ssif.c +23 −23 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ #define SSIF_WATCH_WATCHDOG_TIMEOUT msecs_to_jiffies(250) enum ssif_intf_state { SSIF_NORMAL, SSIF_IDLE, SSIF_GETTING_FLAGS, SSIF_GETTING_EVENTS, SSIF_CLEARING_FLAGS, Loading @@ -100,7 +100,7 @@ enum ssif_intf_state { /* FIXME - add watchdog stuff. */ }; #define SSIF_IDLE(ssif) ((ssif)->ssif_state == SSIF_NORMAL \ #define IS_SSIF_IDLE(ssif) ((ssif)->ssif_state == SSIF_IDLE \ && (ssif)->curr_msg == NULL) /* Loading Loading @@ -348,9 +348,9 @@ static void return_hosed_msg(struct ssif_info *ssif_info, /* * Must be called with the message lock held. This will release the * message lock. Note that the caller will check SSIF_IDLE and start a * new operation, so there is no need to check for new messages to * start in here. * message lock. Note that the caller will check IS_SSIF_IDLE and * start a new operation, so there is no need to check for new * messages to start in here. */ static void start_clear_flags(struct ssif_info *ssif_info, unsigned long *flags) { Loading @@ -367,7 +367,7 @@ static void start_clear_flags(struct ssif_info *ssif_info, unsigned long *flags) if (start_send(ssif_info, msg, 3) != 0) { /* Error, just go to normal state. */ ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; } } Loading @@ -382,7 +382,7 @@ static void start_flag_fetch(struct ssif_info *ssif_info, unsigned long *flags) mb[0] = (IPMI_NETFN_APP_REQUEST << 2); mb[1] = IPMI_GET_MSG_FLAGS_CMD; if (start_send(ssif_info, mb, 2) != 0) ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; } static void check_start_send(struct ssif_info *ssif_info, unsigned long *flags, Loading @@ -393,7 +393,7 @@ static void check_start_send(struct ssif_info *ssif_info, unsigned long *flags, flags = ipmi_ssif_lock_cond(ssif_info, &oflags); ssif_info->curr_msg = NULL; ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); ipmi_free_smi_msg(msg); } Loading @@ -407,7 +407,7 @@ static void start_event_fetch(struct ssif_info *ssif_info, unsigned long *flags) msg = ipmi_alloc_smi_msg(); if (!msg) { ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); return; } Loading @@ -430,7 +430,7 @@ static void start_recv_msg_fetch(struct ssif_info *ssif_info, msg = ipmi_alloc_smi_msg(); if (!msg) { ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); return; } Loading @@ -448,9 +448,9 @@ static void start_recv_msg_fetch(struct ssif_info *ssif_info, /* * Must be called with the message lock held. This will release the * message lock. Note that the caller will check SSIF_IDLE and start a * new operation, so there is no need to check for new messages to * start in here. * message lock. Note that the caller will check IS_SSIF_IDLE and * start a new operation, so there is no need to check for new * messages to start in here. */ static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags) { Loading @@ -466,7 +466,7 @@ static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags) /* Events available. */ start_event_fetch(ssif_info, flags); else { ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); } } Loading Loading @@ -568,7 +568,7 @@ static void watch_timeout(struct timer_list *t) if (ssif_info->watch_timeout) { mod_timer(&ssif_info->watch_timer, jiffies + ssif_info->watch_timeout); if (SSIF_IDLE(ssif_info)) { if (IS_SSIF_IDLE(ssif_info)) { start_flag_fetch(ssif_info, flags); /* Releases lock */ return; } Loading Loading @@ -756,7 +756,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, } switch (ssif_info->ssif_state) { case SSIF_NORMAL: case SSIF_IDLE: ipmi_ssif_unlock_cond(ssif_info, flags); if (!msg) break; Loading @@ -774,7 +774,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, * Error fetching flags, or invalid length, * just give up for now. */ ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); dev_warn(&ssif_info->client->dev, "Error getting flags: %d %d, %x\n", Loading Loading @@ -809,7 +809,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, "Invalid response clearing flags: %x %x\n", data[0], data[1]); } ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); break; Loading Loading @@ -887,7 +887,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, } flags = ipmi_ssif_lock_cond(ssif_info, &oflags); if (SSIF_IDLE(ssif_info) && !ssif_info->stopping) { if (IS_SSIF_IDLE(ssif_info) && !ssif_info->stopping) { if (ssif_info->req_events) start_event_fetch(ssif_info, flags); else if (ssif_info->req_flags) Loading Loading @@ -1032,7 +1032,7 @@ static void start_next_msg(struct ssif_info *ssif_info, unsigned long *flags) unsigned long oflags; restart: if (!SSIF_IDLE(ssif_info)) { if (!IS_SSIF_IDLE(ssif_info)) { ipmi_ssif_unlock_cond(ssif_info, flags); return; } Loading Loading @@ -1255,7 +1255,7 @@ static void shutdown_ssif(void *send_info) dev_set_drvdata(&ssif_info->client->dev, NULL); /* make sure the driver is not looking for flags any more. */ while (ssif_info->ssif_state != SSIF_NORMAL) while (ssif_info->ssif_state != SSIF_IDLE) schedule_timeout(1); ssif_info->stopping = true; Loading Loading @@ -1825,7 +1825,7 @@ static int ssif_probe(struct i2c_client *client) } spin_lock_init(&ssif_info->lock); ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; timer_setup(&ssif_info->retry_timer, retry_timeout, 0); timer_setup(&ssif_info->watch_timer, watch_timeout, 0); Loading Loading
drivers/char/ipmi/ipmi_ssif.c +23 −23 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ #define SSIF_WATCH_WATCHDOG_TIMEOUT msecs_to_jiffies(250) enum ssif_intf_state { SSIF_NORMAL, SSIF_IDLE, SSIF_GETTING_FLAGS, SSIF_GETTING_EVENTS, SSIF_CLEARING_FLAGS, Loading @@ -100,7 +100,7 @@ enum ssif_intf_state { /* FIXME - add watchdog stuff. */ }; #define SSIF_IDLE(ssif) ((ssif)->ssif_state == SSIF_NORMAL \ #define IS_SSIF_IDLE(ssif) ((ssif)->ssif_state == SSIF_IDLE \ && (ssif)->curr_msg == NULL) /* Loading Loading @@ -348,9 +348,9 @@ static void return_hosed_msg(struct ssif_info *ssif_info, /* * Must be called with the message lock held. This will release the * message lock. Note that the caller will check SSIF_IDLE and start a * new operation, so there is no need to check for new messages to * start in here. * message lock. Note that the caller will check IS_SSIF_IDLE and * start a new operation, so there is no need to check for new * messages to start in here. */ static void start_clear_flags(struct ssif_info *ssif_info, unsigned long *flags) { Loading @@ -367,7 +367,7 @@ static void start_clear_flags(struct ssif_info *ssif_info, unsigned long *flags) if (start_send(ssif_info, msg, 3) != 0) { /* Error, just go to normal state. */ ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; } } Loading @@ -382,7 +382,7 @@ static void start_flag_fetch(struct ssif_info *ssif_info, unsigned long *flags) mb[0] = (IPMI_NETFN_APP_REQUEST << 2); mb[1] = IPMI_GET_MSG_FLAGS_CMD; if (start_send(ssif_info, mb, 2) != 0) ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; } static void check_start_send(struct ssif_info *ssif_info, unsigned long *flags, Loading @@ -393,7 +393,7 @@ static void check_start_send(struct ssif_info *ssif_info, unsigned long *flags, flags = ipmi_ssif_lock_cond(ssif_info, &oflags); ssif_info->curr_msg = NULL; ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); ipmi_free_smi_msg(msg); } Loading @@ -407,7 +407,7 @@ static void start_event_fetch(struct ssif_info *ssif_info, unsigned long *flags) msg = ipmi_alloc_smi_msg(); if (!msg) { ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); return; } Loading @@ -430,7 +430,7 @@ static void start_recv_msg_fetch(struct ssif_info *ssif_info, msg = ipmi_alloc_smi_msg(); if (!msg) { ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); return; } Loading @@ -448,9 +448,9 @@ static void start_recv_msg_fetch(struct ssif_info *ssif_info, /* * Must be called with the message lock held. This will release the * message lock. Note that the caller will check SSIF_IDLE and start a * new operation, so there is no need to check for new messages to * start in here. * message lock. Note that the caller will check IS_SSIF_IDLE and * start a new operation, so there is no need to check for new * messages to start in here. */ static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags) { Loading @@ -466,7 +466,7 @@ static void handle_flags(struct ssif_info *ssif_info, unsigned long *flags) /* Events available. */ start_event_fetch(ssif_info, flags); else { ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); } } Loading Loading @@ -568,7 +568,7 @@ static void watch_timeout(struct timer_list *t) if (ssif_info->watch_timeout) { mod_timer(&ssif_info->watch_timer, jiffies + ssif_info->watch_timeout); if (SSIF_IDLE(ssif_info)) { if (IS_SSIF_IDLE(ssif_info)) { start_flag_fetch(ssif_info, flags); /* Releases lock */ return; } Loading Loading @@ -756,7 +756,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, } switch (ssif_info->ssif_state) { case SSIF_NORMAL: case SSIF_IDLE: ipmi_ssif_unlock_cond(ssif_info, flags); if (!msg) break; Loading @@ -774,7 +774,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, * Error fetching flags, or invalid length, * just give up for now. */ ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); dev_warn(&ssif_info->client->dev, "Error getting flags: %d %d, %x\n", Loading Loading @@ -809,7 +809,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, "Invalid response clearing flags: %x %x\n", data[0], data[1]); } ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; ipmi_ssif_unlock_cond(ssif_info, flags); break; Loading Loading @@ -887,7 +887,7 @@ static void msg_done_handler(struct ssif_info *ssif_info, int result, } flags = ipmi_ssif_lock_cond(ssif_info, &oflags); if (SSIF_IDLE(ssif_info) && !ssif_info->stopping) { if (IS_SSIF_IDLE(ssif_info) && !ssif_info->stopping) { if (ssif_info->req_events) start_event_fetch(ssif_info, flags); else if (ssif_info->req_flags) Loading Loading @@ -1032,7 +1032,7 @@ static void start_next_msg(struct ssif_info *ssif_info, unsigned long *flags) unsigned long oflags; restart: if (!SSIF_IDLE(ssif_info)) { if (!IS_SSIF_IDLE(ssif_info)) { ipmi_ssif_unlock_cond(ssif_info, flags); return; } Loading Loading @@ -1255,7 +1255,7 @@ static void shutdown_ssif(void *send_info) dev_set_drvdata(&ssif_info->client->dev, NULL); /* make sure the driver is not looking for flags any more. */ while (ssif_info->ssif_state != SSIF_NORMAL) while (ssif_info->ssif_state != SSIF_IDLE) schedule_timeout(1); ssif_info->stopping = true; Loading Loading @@ -1825,7 +1825,7 @@ static int ssif_probe(struct i2c_client *client) } spin_lock_init(&ssif_info->lock); ssif_info->ssif_state = SSIF_NORMAL; ssif_info->ssif_state = SSIF_IDLE; timer_setup(&ssif_info->retry_timer, retry_timeout, 0); timer_setup(&ssif_info->watch_timer, watch_timeout, 0); Loading