diff options
| -rw-r--r-- | block/blk-core.c | 1 | ||||
| -rw-r--r-- | kernel/trace/blktrace.c | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 29bcfac6c688..859879d0a0bf 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
| @@ -132,6 +132,7 @@ void blk_rq_init(struct request_queue *q, struct request *rq) | |||
| 132 | INIT_HLIST_NODE(&rq->hash); | 132 | INIT_HLIST_NODE(&rq->hash); |
| 133 | RB_CLEAR_NODE(&rq->rb_node); | 133 | RB_CLEAR_NODE(&rq->rb_node); |
| 134 | rq->cmd = rq->__cmd; | 134 | rq->cmd = rq->__cmd; |
| 135 | rq->cmd_len = BLK_MAX_CDB; | ||
| 135 | rq->tag = -1; | 136 | rq->tag = -1; |
| 136 | rq->ref_count = 1; | 137 | rq->ref_count = 1; |
| 137 | } | 138 | } |
diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c index 947c5b3f90c4..b32ff446c3fb 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c | |||
| @@ -327,10 +327,10 @@ static ssize_t blk_msg_write(struct file *filp, const char __user *buffer, | |||
| 327 | char *msg; | 327 | char *msg; |
| 328 | struct blk_trace *bt; | 328 | struct blk_trace *bt; |
| 329 | 329 | ||
| 330 | if (count > BLK_TN_MAX_MSG) | 330 | if (count >= BLK_TN_MAX_MSG) |
| 331 | return -EINVAL; | 331 | return -EINVAL; |
| 332 | 332 | ||
| 333 | msg = kmalloc(count, GFP_KERNEL); | 333 | msg = kmalloc(count + 1, GFP_KERNEL); |
| 334 | if (msg == NULL) | 334 | if (msg == NULL) |
| 335 | return -ENOMEM; | 335 | return -ENOMEM; |
| 336 | 336 | ||
| @@ -339,6 +339,7 @@ static ssize_t blk_msg_write(struct file *filp, const char __user *buffer, | |||
| 339 | return -EFAULT; | 339 | return -EFAULT; |
| 340 | } | 340 | } |
| 341 | 341 | ||
| 342 | msg[count] = '\0'; | ||
| 342 | bt = filp->private_data; | 343 | bt = filp->private_data; |
| 343 | __trace_note_message(bt, "%s", msg); | 344 | __trace_note_message(bt, "%s", msg); |
| 344 | kfree(msg); | 345 | kfree(msg); |
| @@ -642,7 +643,7 @@ static void blk_add_trace_rq(struct request_queue *q, struct request *rq, | |||
| 642 | if (blk_pc_request(rq)) { | 643 | if (blk_pc_request(rq)) { |
| 643 | what |= BLK_TC_ACT(BLK_TC_PC); | 644 | what |= BLK_TC_ACT(BLK_TC_PC); |
| 644 | __blk_add_trace(bt, 0, rq->data_len, rw, what, rq->errors, | 645 | __blk_add_trace(bt, 0, rq->data_len, rw, what, rq->errors, |
| 645 | sizeof(rq->cmd), rq->cmd); | 646 | rq->cmd_len, rq->cmd); |
| 646 | } else { | 647 | } else { |
| 647 | what |= BLK_TC_ACT(BLK_TC_FS); | 648 | what |= BLK_TC_ACT(BLK_TC_FS); |
| 648 | __blk_add_trace(bt, rq->hard_sector, rq->hard_nr_sectors << 9, | 649 | __blk_add_trace(bt, rq->hard_sector, rq->hard_nr_sectors << 9, |
