On Wed, Oct 25, 2017 at 12:01 PM, Kees Cook <keescook@xxxxxxxxxxxx> wrote: > sess->time2retain_timer.expires = > (get_jiffies_64() + sess->sess_ops->DefaultTime2Retain * HZ); > add_timer(&sess->time2retain_timer); > cmd->dataout_timer.expires = (get_jiffies_64() + na->dataout_timeout * HZ); > add_timer(&cmd->dataout_timer); > np->np_login_timer.expires = (get_jiffies_64() + TA_LOGIN_TIMEOUT * HZ); > add_timer(&np->np_login_timer); > + timeout.timer.expires = (get_jiffies_64() + TA_LOGIN_TIMEOUT * HZ); > + add_timer(&timeout.timer); > conn->nopin_response_timer.expires = > (get_jiffies_64() + na->nopin_response_timeout * HZ); > add_timer(&conn->nopin_response_timer); > conn->nopin_timer.expires = (get_jiffies_64() + na->nopin_timeout * HZ); > add_timer(&conn->nopin_timer); > conn->nopin_timer.expires = (get_jiffies_64() + na->nopin_timeout * HZ); > add_timer(&conn->nopin_timer); I assume you're trying to keep these diffs as small as possible, but I imagine at some point the above can also be combined into a single mod_timer. Also, all the goofiness with the flags stuff seems like an antique replacement for timer_pending: > conn->nopin_response_timer_flags &= ~ISCSI_TF_STOP; > conn->nopin_response_timer_flags |= ISCSI_TF_RUNNING;