virtio-blk: don't use pointer for configuration.
The configuration field must not be a pointer as it will be used for virtio-blk properties. So *blk is replaced by blk in VirtIOBlock structure. Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 1363624648-16906-5-git-send-email-fred.konrad@greensocs.com Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
		
							parent
							
								
									10479a8089
								
							
						
					
					
						commit
						da3dcefa64
					
				@ -151,7 +151,7 @@ static void virtio_blk_handle_scsi(VirtIOBlockReq *req)
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    req->scsi = (void *)req->elem.in_sg[req->elem.in_num - 2].iov_base;
 | 
					    req->scsi = (void *)req->elem.in_sg[req->elem.in_num - 2].iov_base;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!req->dev->blk->scsi) {
 | 
					    if (!req->dev->blk.scsi) {
 | 
				
			||||||
        status = VIRTIO_BLK_S_UNSUPP;
 | 
					        status = VIRTIO_BLK_S_UNSUPP;
 | 
				
			||||||
        goto fail;
 | 
					        goto fail;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -371,7 +371,7 @@ static void virtio_blk_handle_request(VirtIOBlockReq *req,
 | 
				
			|||||||
         * terminated by '\0' only when shorter than buffer.
 | 
					         * terminated by '\0' only when shorter than buffer.
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
        strncpy(req->elem.in_sg[0].iov_base,
 | 
					        strncpy(req->elem.in_sg[0].iov_base,
 | 
				
			||||||
                s->blk->serial ? s->blk->serial : "",
 | 
					                s->blk.serial ? s->blk.serial : "",
 | 
				
			||||||
                MIN(req->elem.in_sg[0].iov_len, VIRTIO_BLK_ID_BYTES));
 | 
					                MIN(req->elem.in_sg[0].iov_len, VIRTIO_BLK_ID_BYTES));
 | 
				
			||||||
        virtio_blk_req_complete(req, VIRTIO_BLK_S_OK);
 | 
					        virtio_blk_req_complete(req, VIRTIO_BLK_S_OK);
 | 
				
			||||||
        g_free(req);
 | 
					        g_free(req);
 | 
				
			||||||
@ -534,7 +534,7 @@ static uint32_t virtio_blk_get_features(VirtIODevice *vdev, uint32_t features)
 | 
				
			|||||||
    features |= (1 << VIRTIO_BLK_F_BLK_SIZE);
 | 
					    features |= (1 << VIRTIO_BLK_F_BLK_SIZE);
 | 
				
			||||||
    features |= (1 << VIRTIO_BLK_F_SCSI);
 | 
					    features |= (1 << VIRTIO_BLK_F_SCSI);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->blk->config_wce) {
 | 
					    if (s->blk.config_wce) {
 | 
				
			||||||
        features |= (1 << VIRTIO_BLK_F_CONFIG_WCE);
 | 
					        features |= (1 << VIRTIO_BLK_F_CONFIG_WCE);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (bdrv_enable_write_cache(s->bs))
 | 
					    if (bdrv_enable_write_cache(s->bs))
 | 
				
			||||||
@ -650,7 +650,7 @@ VirtIODevice *virtio_blk_init(DeviceState *dev, VirtIOBlkConf *blk)
 | 
				
			|||||||
    s->vdev.reset = virtio_blk_reset;
 | 
					    s->vdev.reset = virtio_blk_reset;
 | 
				
			||||||
    s->bs = blk->conf.bs;
 | 
					    s->bs = blk->conf.bs;
 | 
				
			||||||
    s->conf = &blk->conf;
 | 
					    s->conf = &blk->conf;
 | 
				
			||||||
    s->blk = blk;
 | 
					    memcpy(&(s->blk), blk, sizeof(struct VirtIOBlkConf));
 | 
				
			||||||
    s->rq = NULL;
 | 
					    s->rq = NULL;
 | 
				
			||||||
    s->sector_mask = (s->conf->logical_block_size / BDRV_SECTOR_SIZE) - 1;
 | 
					    s->sector_mask = (s->conf->logical_block_size / BDRV_SECTOR_SIZE) - 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -118,7 +118,7 @@ typedef struct VirtIOBlock {
 | 
				
			|||||||
    void *rq;
 | 
					    void *rq;
 | 
				
			||||||
    QEMUBH *bh;
 | 
					    QEMUBH *bh;
 | 
				
			||||||
    BlockConf *conf;
 | 
					    BlockConf *conf;
 | 
				
			||||||
    VirtIOBlkConf *blk;
 | 
					    VirtIOBlkConf blk;
 | 
				
			||||||
    unsigned short sector_mask;
 | 
					    unsigned short sector_mask;
 | 
				
			||||||
    DeviceState *qdev;
 | 
					    DeviceState *qdev;
 | 
				
			||||||
    VMChangeStateEntry *change;
 | 
					    VMChangeStateEntry *change;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user