Loading drivers/block/virtio_blk.c +6 −4 Original line number Diff line number Diff line Loading @@ -4,7 +4,9 @@ #include <linux/hdreg.h> #include <linux/virtio.h> #include <linux/virtio_blk.h> #include <linux/virtio_blk.h> #include <linux/scatterlist.h> #define VIRTIO_MAX_SG (3+MAX_PHYS_SEGMENTS) static unsigned char virtblk_index = 'a'; struct virtio_blk Loading @@ -23,7 +25,7 @@ struct virtio_blk mempool_t *pool; /* Scatterlist: can be too big for stack. */ struct scatterlist sg[3+MAX_PHYS_SEGMENTS]; struct scatterlist sg[VIRTIO_MAX_SG]; }; struct virtblk_req Loading Loading @@ -94,8 +96,8 @@ static bool do_req(struct request_queue *q, struct virtio_blk *vblk, if (blk_barrier_rq(vbr->req)) vbr->out_hdr.type |= VIRTIO_BLK_T_BARRIER; /* We have to zero this, otherwise blk_rq_map_sg gets upset. */ memset(vblk->sg, 0, sizeof(vblk->sg)); /* This init could be done at vblk creation time */ sg_init_table(vblk->sg, VIRTIO_MAX_SG); sg_set_buf(&vblk->sg[0], &vbr->out_hdr, sizeof(vbr->out_hdr)); num = blk_rq_map_sg(q, vbr->req, vblk->sg+1); sg_set_buf(&vblk->sg[num+1], &vbr->in_hdr, sizeof(vbr->in_hdr)); Loading drivers/cdrom/viocd.c +2 −1 Original line number Diff line number Diff line Loading @@ -41,9 +41,9 @@ #include <linux/completion.h> #include <linux/proc_fs.h> #include <linux/seq_file.h> #include <linux/scatterlist.h> #include <asm/vio.h> #include <asm/scatterlist.h> #include <asm/iseries/hv_types.h> #include <asm/iseries/hv_lp_event.h> #include <asm/iseries/vio.h> Loading Loading @@ -258,6 +258,7 @@ static int send_request(struct request *req) cmd = viomajorsubtype_cdio | viocdwrite; } sg_init_table(&sg, 1); if (blk_rq_map_sg(req->q, req, &sg) == 0) { printk(VIOCD_KERN_WARNING "error setting up scatter/gather list\n"); Loading drivers/message/i2o/i2o_block.c +1 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ static inline struct i2o_block_request *i2o_block_request_alloc(void) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&ireq->queue); sg_init_table(ireq->sg_table, I2O_MAX_PHYS_SEGMENTS); return ireq; }; Loading Loading
drivers/block/virtio_blk.c +6 −4 Original line number Diff line number Diff line Loading @@ -4,7 +4,9 @@ #include <linux/hdreg.h> #include <linux/virtio.h> #include <linux/virtio_blk.h> #include <linux/virtio_blk.h> #include <linux/scatterlist.h> #define VIRTIO_MAX_SG (3+MAX_PHYS_SEGMENTS) static unsigned char virtblk_index = 'a'; struct virtio_blk Loading @@ -23,7 +25,7 @@ struct virtio_blk mempool_t *pool; /* Scatterlist: can be too big for stack. */ struct scatterlist sg[3+MAX_PHYS_SEGMENTS]; struct scatterlist sg[VIRTIO_MAX_SG]; }; struct virtblk_req Loading Loading @@ -94,8 +96,8 @@ static bool do_req(struct request_queue *q, struct virtio_blk *vblk, if (blk_barrier_rq(vbr->req)) vbr->out_hdr.type |= VIRTIO_BLK_T_BARRIER; /* We have to zero this, otherwise blk_rq_map_sg gets upset. */ memset(vblk->sg, 0, sizeof(vblk->sg)); /* This init could be done at vblk creation time */ sg_init_table(vblk->sg, VIRTIO_MAX_SG); sg_set_buf(&vblk->sg[0], &vbr->out_hdr, sizeof(vbr->out_hdr)); num = blk_rq_map_sg(q, vbr->req, vblk->sg+1); sg_set_buf(&vblk->sg[num+1], &vbr->in_hdr, sizeof(vbr->in_hdr)); Loading
drivers/cdrom/viocd.c +2 −1 Original line number Diff line number Diff line Loading @@ -41,9 +41,9 @@ #include <linux/completion.h> #include <linux/proc_fs.h> #include <linux/seq_file.h> #include <linux/scatterlist.h> #include <asm/vio.h> #include <asm/scatterlist.h> #include <asm/iseries/hv_types.h> #include <asm/iseries/hv_lp_event.h> #include <asm/iseries/vio.h> Loading Loading @@ -258,6 +258,7 @@ static int send_request(struct request *req) cmd = viomajorsubtype_cdio | viocdwrite; } sg_init_table(&sg, 1); if (blk_rq_map_sg(req->q, req, &sg) == 0) { printk(VIOCD_KERN_WARNING "error setting up scatter/gather list\n"); Loading
drivers/message/i2o/i2o_block.c +1 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ static inline struct i2o_block_request *i2o_block_request_alloc(void) return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&ireq->queue); sg_init_table(ireq->sg_table, I2O_MAX_PHYS_SEGMENTS); return ireq; }; Loading