mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 02:09:42 +00:00
skd: Simplify the code for deciding whether or not to send a FIT msg
Due to the previous patch it is guaranteed that the FIT msg contains at least one request after the for-loop has finished. Use this to simplify the code. Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.de> Cc: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
19fc85cfa2
commit
fe4fd7235a
1 changed files with 5 additions and 24 deletions
|
@ -693,36 +693,17 @@ static void skd_request_fn(struct request_queue *q)
|
|||
/*
|
||||
* If the FIT msg buffer is full send it.
|
||||
*/
|
||||
if (skmsg->length >= SKD_N_FITMSG_BYTES ||
|
||||
fmh->num_protocol_cmds_coalesced >= skd_max_req_per_msg) {
|
||||
if (fmh->num_protocol_cmds_coalesced >= skd_max_req_per_msg) {
|
||||
skd_send_fitmsg(skdev, skmsg);
|
||||
skmsg = NULL;
|
||||
fmh = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Is a FIT msg in progress? If it is empty put the buffer back
|
||||
* on the free list. If it is non-empty send what we got.
|
||||
* This minimizes latency when there are fewer requests than
|
||||
* what fits in a FIT msg.
|
||||
*/
|
||||
if (skmsg != NULL) {
|
||||
/* Bigger than just a FIT msg header? */
|
||||
if (skmsg->length > sizeof(struct fit_msg_hdr)) {
|
||||
dev_dbg(&skdev->pdev->dev, "sending msg=%p, len %d\n",
|
||||
skmsg, skmsg->length);
|
||||
skd_send_fitmsg(skdev, skmsg);
|
||||
} else {
|
||||
/*
|
||||
* The FIT msg is empty. It means we got started
|
||||
* on the msg, but the requests were rejected.
|
||||
*/
|
||||
skmsg->state = SKD_MSG_STATE_IDLE;
|
||||
skmsg->id += SKD_ID_INCR;
|
||||
skmsg->next = skdev->skmsg_free_list;
|
||||
skdev->skmsg_free_list = skmsg;
|
||||
}
|
||||
/* If the FIT msg buffer is not empty send what we got. */
|
||||
if (skmsg) {
|
||||
WARN_ON_ONCE(!fmh->num_protocol_cmds_coalesced);
|
||||
skd_send_fitmsg(skdev, skmsg);
|
||||
skmsg = NULL;
|
||||
fmh = NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue