block/partitions/ldm.c
1074
volu = &vb->vblk.volu;
block/partitions/ldm.c
1102
static bool ldm_parse_vblk (const u8 *buf, int len, struct vblk *vb)
block/partitions/ldm.c
1156
struct vblk *vb;
block/partitions/ldm.c
1191
struct vblk *v = list_entry (item, struct vblk, list);
block/partitions/ldm.c
1192
if ((v->vblk.part.disk_id == vb->vblk.part.disk_id) &&
block/partitions/ldm.c
1193
(v->vblk.part.start > vb->vblk.part.start)) {
block/partitions/ldm.c
1408
kfree (list_entry (item, struct vblk, list));
block/partitions/ldm.c
536
static struct vblk * ldm_get_disk_objid (const struct ldmdb *ldb)
block/partitions/ldm.c
543
struct vblk *v = list_entry (item, struct vblk, list);
block/partitions/ldm.c
544
if (uuid_equal(&v->vblk.disk.disk_id, &ldb->ph.disk_id))
block/partitions/ldm.c
572
struct vblk *vb;
block/partitions/ldm.c
573
struct vblk *disk;
block/partitions/ldm.c
589
vb = list_entry (item, struct vblk, list);
block/partitions/ldm.c
590
part = &vb->vblk.part;
block/partitions/ldm.c
718
static bool ldm_parse_cmp3 (const u8 *buffer, int buflen, struct vblk *vb)
block/partitions/ldm.c
746
comp = &vb->vblk.comp;
block/partitions/ldm.c
768
static int ldm_parse_dgr3 (const u8 *buffer, int buflen, struct vblk *vb)
block/partitions/ldm.c
792
dgrp = &vb->vblk.dgrp;
block/partitions/ldm.c
809
static bool ldm_parse_dgr4 (const u8 *buffer, int buflen, struct vblk *vb)
block/partitions/ldm.c
847
static bool ldm_parse_dsk3 (const u8 *buffer, int buflen, struct vblk *vb)
block/partitions/ldm.c
866
disk = &vb->vblk.disk;
block/partitions/ldm.c
886
static bool ldm_parse_dsk4 (const u8 *buffer, int buflen, struct vblk *vb)
block/partitions/ldm.c
903
disk = &vb->vblk.disk;
block/partitions/ldm.c
919
static bool ldm_parse_prt3(const u8 *buffer, int buflen, struct vblk *vb)
block/partitions/ldm.c
969
part = &vb->vblk.part;
block/partitions/ldm.c
993
static bool ldm_parse_vol5(const u8 *buffer, int buflen, struct vblk *vb)
block/partitions/ldm.h
177
} vblk;
drivers/block/virtio_blk.c
1009
snprintf(vblk->vqs[i].name, VQ_NAME_LEN, "req.%u", i);
drivers/block/virtio_blk.c
1010
vqs_info[i].name = vblk->vqs[i].name;
drivers/block/virtio_blk.c
1014
snprintf(vblk->vqs[i].name, VQ_NAME_LEN, "req_poll.%u", i);
drivers/block/virtio_blk.c
1015
vqs_info[i].name = vblk->vqs[i].name;
drivers/block/virtio_blk.c
1024
spin_lock_init(&vblk->vqs[i].lock);
drivers/block/virtio_blk.c
1025
vblk->vqs[i].vq = vqs[i];
drivers/block/virtio_blk.c
1027
vblk->num_vqs = num_vqs;
drivers/block/virtio_blk.c
1033
kfree(vblk->vqs);
drivers/block/virtio_blk.c
1037
vblk->vqs = NULL;
drivers/block/virtio_blk.c
1098
struct virtio_blk *vblk = disk->private_data;
drivers/block/virtio_blk.c
1099
struct virtio_device *vdev = vblk->vdev;
drivers/block/virtio_blk.c
1103
BUG_ON(!virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_CONFIG_WCE));
drivers/block/virtio_blk.c
1125
struct virtio_blk *vblk = disk->private_data;
drivers/block/virtio_blk.c
1126
u8 writeback = virtblk_get_cache_mode(vblk->vdev);
drivers/block/virtio_blk.c
1145
struct virtio_blk *vblk = disk->private_data;
drivers/block/virtio_blk.c
1146
struct virtio_device *vdev = vblk->vdev;
drivers/block/virtio_blk.c
1167
struct virtio_blk *vblk = set->driver_data;
drivers/block/virtio_blk.c
1173
map->nr_queues = vblk->io_queues[i];
drivers/block/virtio_blk.c
1189
&vblk->vdev->dev, 0);
drivers/block/virtio_blk.c
1206
struct virtio_blk *vblk = hctx->queue->queuedata;
drivers/block/virtio_blk.c
1227
blk_mq_start_stopped_hw_queues(vblk->disk->queue, true);
drivers/block/virtio_blk.c
1246
static int virtblk_read_limits(struct virtio_blk *vblk,
drivers/block/virtio_blk.c
1249
struct virtio_device *vdev = vblk->vdev;
drivers/block/virtio_blk.c
133
struct virtio_blk *vblk = hctx->queue->queuedata;
drivers/block/virtio_blk.c
134
struct virtio_blk_vq *vq = &vblk->vqs[hctx->queue_num];
drivers/block/virtio_blk.c
1425
err = virtblk_read_zoned_limits(vblk, lim);
drivers/block/virtio_blk.c
1440
struct virtio_blk *vblk;
drivers/block/virtio_blk.c
1460
vdev->priv = vblk = kmalloc_obj(*vblk);
drivers/block/virtio_blk.c
1461
if (!vblk) {
drivers/block/virtio_blk.c
1466
mutex_init(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
1468
vblk->vdev = vdev;
drivers/block/virtio_blk.c
1470
INIT_WORK(&vblk->config_work, virtblk_config_changed_work);
drivers/block/virtio_blk.c
1472
err = init_vq(vblk);
drivers/block/virtio_blk.c
1478
queue_depth = vblk->vqs[0].vq->num_free;
drivers/block/virtio_blk.c
1486
memset(&vblk->tag_set, 0, sizeof(vblk->tag_set));
drivers/block/virtio_blk.c
1487
vblk->tag_set.ops = &virtio_mq_ops;
drivers/block/virtio_blk.c
1488
vblk->tag_set.queue_depth = queue_depth;
drivers/block/virtio_blk.c
1489
vblk->tag_set.numa_node = NUMA_NO_NODE;
drivers/block/virtio_blk.c
1490
vblk->tag_set.cmd_size =
drivers/block/virtio_blk.c
1493
vblk->tag_set.driver_data = vblk;
drivers/block/virtio_blk.c
1494
vblk->tag_set.nr_hw_queues = vblk->num_vqs;
drivers/block/virtio_blk.c
1495
vblk->tag_set.nr_maps = 1;
drivers/block/virtio_blk.c
1496
if (vblk->io_queues[HCTX_TYPE_POLL])
drivers/block/virtio_blk.c
1497
vblk->tag_set.nr_maps = 3;
drivers/block/virtio_blk.c
1499
err = blk_mq_alloc_tag_set(&vblk->tag_set);
drivers/block/virtio_blk.c
1503
err = virtblk_read_limits(vblk, &lim);
drivers/block/virtio_blk.c
1510
vblk->disk = blk_mq_alloc_disk(&vblk->tag_set, &lim, vblk);
drivers/block/virtio_blk.c
1511
if (IS_ERR(vblk->disk)) {
drivers/block/virtio_blk.c
1512
err = PTR_ERR(vblk->disk);
drivers/block/virtio_blk.c
1516
virtblk_name_format("vd", index, vblk->disk->disk_name, DISK_NAME_LEN);
drivers/block/virtio_blk.c
1518
vblk->disk->major = major;
drivers/block/virtio_blk.c
1519
vblk->disk->first_minor = index_to_minor(index);
drivers/block/virtio_blk.c
1520
vblk->disk->minors = 1 << PART_BITS;
drivers/block/virtio_blk.c
1521
vblk->disk->private_data = vblk;
drivers/block/virtio_blk.c
1522
vblk->disk->fops = &virtblk_fops;
drivers/block/virtio_blk.c
1523
vblk->index = index;
drivers/block/virtio_blk.c
1527
set_disk_ro(vblk->disk, 1);
drivers/block/virtio_blk.c
1529
virtblk_update_capacity(vblk, false);
drivers/block/virtio_blk.c
1538
err = blk_revalidate_disk_zones(vblk->disk);
drivers/block/virtio_blk.c
1543
err = device_add_disk(&vdev->dev, vblk->disk, virtblk_attr_groups);
drivers/block/virtio_blk.c
1550
put_disk(vblk->disk);
drivers/block/virtio_blk.c
1552
blk_mq_free_tag_set(&vblk->tag_set);
drivers/block/virtio_blk.c
1555
kfree(vblk->vqs);
drivers/block/virtio_blk.c
1557
kfree(vblk);
drivers/block/virtio_blk.c
1566
struct virtio_blk *vblk = vdev->priv;
drivers/block/virtio_blk.c
1569
flush_work(&vblk->config_work);
drivers/block/virtio_blk.c
1571
del_gendisk(vblk->disk);
drivers/block/virtio_blk.c
1572
blk_mq_free_tag_set(&vblk->tag_set);
drivers/block/virtio_blk.c
1574
mutex_lock(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
1580
vblk->vdev = NULL;
drivers/block/virtio_blk.c
1583
kfree(vblk->vqs);
drivers/block/virtio_blk.c
1585
mutex_unlock(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
1587
put_disk(vblk->disk);
drivers/block/virtio_blk.c
1592
struct virtio_blk *vblk = vdev->priv;
drivers/block/virtio_blk.c
1593
struct request_queue *q = vblk->disk->queue;
drivers/block/virtio_blk.c
1605
flush_work(&vblk->config_work);
drivers/block/virtio_blk.c
1608
kfree(vblk->vqs);
drivers/block/virtio_blk.c
1614
vblk->vqs = NULL;
drivers/block/virtio_blk.c
1621
struct virtio_blk *vblk = vdev->priv;
drivers/block/virtio_blk.c
1629
blk_mq_unquiesce_queue(vblk->disk->queue);
drivers/block/virtio_blk.c
338
struct virtio_blk *vblk = req->mq_hctx->queue->queuedata;
drivers/block/virtio_blk.c
344
req->__sector = virtio64_to_cpu(vblk->vdev,
drivers/block/virtio_blk.c
352
struct virtio_blk *vblk = vq->vdev->priv;
drivers/block/virtio_blk.c
359
spin_lock_irqsave(&vblk->vqs[qid].lock, flags);
drivers/block/virtio_blk.c
362
while ((vbr = virtqueue_get_buf(vblk->vqs[qid].vq, &len)) != NULL) {
drivers/block/virtio_blk.c
373
blk_mq_start_stopped_hw_queues(vblk->disk->queue, true);
drivers/block/virtio_blk.c
374
spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
drivers/block/virtio_blk.c
379
struct virtio_blk *vblk = hctx->queue->queuedata;
drivers/block/virtio_blk.c
380
struct virtio_blk_vq *vq = &vblk->vqs[hctx->queue_num];
drivers/block/virtio_blk.c
405
struct virtio_blk *vblk,
drivers/block/virtio_blk.c
412
status = virtblk_setup_cmd(vblk->vdev, req, vbr);
drivers/block/virtio_blk.c
429
struct virtio_blk *vblk = hctx->queue->queuedata;
drivers/block/virtio_blk.c
438
status = virtblk_prep_rq(hctx, vblk, req, vbr);
drivers/block/virtio_blk.c
442
spin_lock_irqsave(&vblk->vqs[qid].lock, flags);
drivers/block/virtio_blk.c
443
err = virtblk_add_req(vblk->vqs[qid].vq, vbr);
drivers/block/virtio_blk.c
445
virtqueue_kick(vblk->vqs[qid].vq);
drivers/block/virtio_blk.c
451
spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
drivers/block/virtio_blk.c
456
if (bd->last && virtqueue_kick_prepare(vblk->vqs[qid].vq))
drivers/block/virtio_blk.c
458
spin_unlock_irqrestore(&vblk->vqs[qid].lock, flags);
drivers/block/virtio_blk.c
461
virtqueue_notify(vblk->vqs[qid].vq);
drivers/block/virtio_blk.c
467
struct virtio_blk *vblk = req->mq_hctx->queue->queuedata;
drivers/block/virtio_blk.c
470
return virtblk_prep_rq(req->mq_hctx, vblk, req, vbr) == BLK_STS_OK;
drivers/block/virtio_blk.c
527
static void *virtblk_alloc_report_buffer(struct virtio_blk *vblk,
drivers/block/virtio_blk.c
531
struct request_queue *q = vblk->disk->queue;
drivers/block/virtio_blk.c
536
get_capacity(vblk->disk) >> ilog2(vblk->zone_sectors));
drivers/block/virtio_blk.c
556
static int virtblk_submit_zone_report(struct virtio_blk *vblk,
drivers/block/virtio_blk.c
560
struct request_queue *q = vblk->disk->queue;
drivers/block/virtio_blk.c
571
vbr->out_hdr.type = cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_ZONE_REPORT);
drivers/block/virtio_blk.c
572
vbr->out_hdr.sector = cpu_to_virtio64(vblk->vdev, sector);
drivers/block/virtio_blk.c
585
static int virtblk_parse_zone(struct virtio_blk *vblk,
drivers/block/virtio_blk.c
592
zone.start = virtio64_to_cpu(vblk->vdev, entry->z_start);
drivers/block/virtio_blk.c
593
if (zone.start + vblk->zone_sectors <= get_capacity(vblk->disk))
drivers/block/virtio_blk.c
594
zone.len = vblk->zone_sectors;
drivers/block/virtio_blk.c
596
zone.len = get_capacity(vblk->disk) - zone.start;
drivers/block/virtio_blk.c
597
zone.capacity = virtio64_to_cpu(vblk->vdev, entry->z_cap);
drivers/block/virtio_blk.c
598
zone.wp = virtio64_to_cpu(vblk->vdev, entry->z_wp);
drivers/block/virtio_blk.c
611
dev_err(&vblk->vdev->dev, "zone %llu: invalid type %#x\n",
drivers/block/virtio_blk.c
645
dev_err(&vblk->vdev->dev, "zone %llu: invalid condition %#x\n",
drivers/block/virtio_blk.c
654
return disk_report_zone(vblk->disk, &zone, idx, args);
drivers/block/virtio_blk.c
661
struct virtio_blk *vblk = disk->private_data;
drivers/block/virtio_blk.c
668
if (WARN_ON_ONCE(!vblk->zone_sectors))
drivers/block/virtio_blk.c
671
report = virtblk_alloc_report_buffer(vblk, nr_zones, &buflen);
drivers/block/virtio_blk.c
675
mutex_lock(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
677
if (!vblk->vdev) {
drivers/block/virtio_blk.c
682
while (zone_idx < nr_zones && sector < get_capacity(vblk->disk)) {
drivers/block/virtio_blk.c
685
ret = virtblk_submit_zone_report(vblk, (char *)report,
drivers/block/virtio_blk.c
690
nz = min_t(u64, virtio64_to_cpu(vblk->vdev, report->nr_zones),
drivers/block/virtio_blk.c
698
ret = virtblk_parse_zone(vblk, &report->zones[i],
drivers/block/virtio_blk.c
703
sector = virtio64_to_cpu(vblk->vdev,
drivers/block/virtio_blk.c
705
vblk->zone_sectors;
drivers/block/virtio_blk.c
715
mutex_unlock(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
720
static int virtblk_read_zoned_limits(struct virtio_blk *vblk,
drivers/block/virtio_blk.c
723
struct virtio_device *vdev = vblk->vdev;
drivers/block/virtio_blk.c
756
&vblk->zone_sectors);
drivers/block/virtio_blk.c
757
if (vblk->zone_sectors == 0 || !is_power_of_2(vblk->zone_sectors)) {
drivers/block/virtio_blk.c
760
vblk->zone_sectors);
drivers/block/virtio_blk.c
763
lim->chunk_sectors = vblk->zone_sectors;
drivers/block/virtio_blk.c
764
dev_dbg(&vdev->dev, "zone sectors = %u\n", vblk->zone_sectors);
drivers/block/virtio_blk.c
767
dev_warn(&vblk->vdev->dev,
drivers/block/virtio_blk.c
795
static inline int virtblk_read_zoned_limits(struct virtio_blk *vblk,
drivers/block/virtio_blk.c
798
dev_err(&vblk->vdev->dev,
drivers/block/virtio_blk.c
808
struct virtio_blk *vblk = disk->private_data;
drivers/block/virtio_blk.c
809
struct request_queue *q = vblk->disk->queue;
drivers/block/virtio_blk.c
820
vbr->out_hdr.type = cpu_to_virtio32(vblk->vdev, VIRTIO_BLK_T_GET_ID);
drivers/block/virtio_blk.c
837
struct virtio_blk *vblk = disk->private_data;
drivers/block/virtio_blk.c
840
mutex_lock(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
842
if (!vblk->vdev) {
drivers/block/virtio_blk.c
848
if (virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_GEOMETRY)) {
drivers/block/virtio_blk.c
849
virtio_cread(vblk->vdev, struct virtio_blk_config,
drivers/block/virtio_blk.c
851
virtio_cread(vblk->vdev, struct virtio_blk_config,
drivers/block/virtio_blk.c
853
virtio_cread(vblk->vdev, struct virtio_blk_config,
drivers/block/virtio_blk.c
862
mutex_unlock(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
868
struct virtio_blk *vblk = disk->private_data;
drivers/block/virtio_blk.c
870
ida_free(&vd_index_ida, vblk->index);
drivers/block/virtio_blk.c
871
mutex_destroy(&vblk->vdev_mutex);
drivers/block/virtio_blk.c
872
kfree(vblk);
drivers/block/virtio_blk.c
915
static void virtblk_update_capacity(struct virtio_blk *vblk, bool resize)
drivers/block/virtio_blk.c
917
struct virtio_device *vdev = vblk->vdev;
drivers/block/virtio_blk.c
918
struct request_queue *q = vblk->disk->queue;
drivers/block/virtio_blk.c
935
vblk->disk->disk_name,
drivers/block/virtio_blk.c
942
set_capacity_and_notify(vblk->disk, capacity);
drivers/block/virtio_blk.c
947
struct virtio_blk *vblk =
drivers/block/virtio_blk.c
950
virtblk_update_capacity(vblk, true);
drivers/block/virtio_blk.c
955
struct virtio_blk *vblk = vdev->priv;
drivers/block/virtio_blk.c
957
queue_work(virtblk_wq, &vblk->config_work);
drivers/block/virtio_blk.c
960
static int init_vq(struct virtio_blk *vblk)
drivers/block/virtio_blk.c
968
struct virtio_device *vdev = vblk->vdev;
drivers/block/virtio_blk.c
987
vblk->io_queues[HCTX_TYPE_DEFAULT] = num_vqs - num_poll_vqs;
drivers/block/virtio_blk.c
988
vblk->io_queues[HCTX_TYPE_READ] = 0;
drivers/block/virtio_blk.c
989
vblk->io_queues[HCTX_TYPE_POLL] = num_poll_vqs;
drivers/block/virtio_blk.c
992
vblk->io_queues[HCTX_TYPE_DEFAULT],
drivers/block/virtio_blk.c
993
vblk->io_queues[HCTX_TYPE_READ],
drivers/block/virtio_blk.c
994
vblk->io_queues[HCTX_TYPE_POLL]);
drivers/block/virtio_blk.c
996
vblk->vqs = kmalloc_objs(*vblk->vqs, num_vqs);
drivers/block/virtio_blk.c
997
if (!vblk->vqs)
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
535
u16 hbp = 0, hfp = 0, hsa = 0, hblk = 0, vblk = 0;
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
596
vblk = 0;
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
600
bytes = max_t(size_t, max(max(hfp, hblk), max(hsa, hbp)), vblk);
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
663
sun6i_dsi_build_blk0_pkt(device->channel, vblk));
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
665
sun6i_dsi_build_blk1_pkt(0, buffer, vblk));