rd_dev 28 drivers/target/target_core_rd.c static inline struct rd_dev *RD_DEV(struct se_device *dev) rd_dev 30 drivers/target/target_core_rd.c return container_of(dev, struct rd_dev, dev); rd_dev 63 drivers/target/target_core_rd.c static u32 rd_release_sgl_table(struct rd_dev *rd_dev, struct rd_dev_sg_table *sg_table, rd_dev 88 drivers/target/target_core_rd.c static void rd_release_device_space(struct rd_dev *rd_dev) rd_dev 92 drivers/target/target_core_rd.c if (!rd_dev->sg_table_array || !rd_dev->sg_table_count) rd_dev 95 drivers/target/target_core_rd.c page_count = rd_release_sgl_table(rd_dev, rd_dev->sg_table_array, rd_dev 96 drivers/target/target_core_rd.c rd_dev->sg_table_count); rd_dev 100 drivers/target/target_core_rd.c rd_dev->rd_host->rd_host_id, rd_dev->rd_dev_id, page_count, rd_dev 101 drivers/target/target_core_rd.c rd_dev->sg_table_count, (unsigned long)page_count * PAGE_SIZE); rd_dev 103 drivers/target/target_core_rd.c rd_dev->sg_table_array = NULL; rd_dev 104 drivers/target/target_core_rd.c rd_dev->sg_table_count = 0; rd_dev 112 drivers/target/target_core_rd.c static int rd_allocate_sgl_table(struct rd_dev *rd_dev, struct rd_dev_sg_table *sg_table, rd_dev 174 drivers/target/target_core_rd.c static int rd_build_device_space(struct rd_dev *rd_dev) rd_dev 182 drivers/target/target_core_rd.c if (rd_dev->rd_page_count <= 0) { rd_dev 184 drivers/target/target_core_rd.c rd_dev->rd_page_count); rd_dev 189 drivers/target/target_core_rd.c if (rd_dev->rd_flags & RDF_NULLIO) rd_dev 192 drivers/target/target_core_rd.c total_sg_needed = rd_dev->rd_page_count; rd_dev 199 drivers/target/target_core_rd.c rd_dev->sg_table_array = sg_table; rd_dev 200 drivers/target/target_core_rd.c rd_dev->sg_table_count = sg_tables; rd_dev 202 drivers/target/target_core_rd.c rc = rd_allocate_sgl_table(rd_dev, sg_table, total_sg_needed, 0x00); rd_dev 207 drivers/target/target_core_rd.c " %u pages in %u tables\n", rd_dev->rd_host->rd_host_id, rd_dev 208 drivers/target/target_core_rd.c rd_dev->rd_dev_id, rd_dev->rd_page_count, rd_dev 209 drivers/target/target_core_rd.c rd_dev->sg_table_count); rd_dev 214 drivers/target/target_core_rd.c static void rd_release_prot_space(struct rd_dev *rd_dev) rd_dev 218 drivers/target/target_core_rd.c if (!rd_dev->sg_prot_array || !rd_dev->sg_prot_count) rd_dev 221 drivers/target/target_core_rd.c page_count = rd_release_sgl_table(rd_dev, rd_dev->sg_prot_array, rd_dev 222 drivers/target/target_core_rd.c rd_dev->sg_prot_count); rd_dev 226 drivers/target/target_core_rd.c rd_dev->rd_host->rd_host_id, rd_dev->rd_dev_id, page_count, rd_dev 227 drivers/target/target_core_rd.c rd_dev->sg_table_count, (unsigned long)page_count * PAGE_SIZE); rd_dev 229 drivers/target/target_core_rd.c rd_dev->sg_prot_array = NULL; rd_dev 230 drivers/target/target_core_rd.c rd_dev->sg_prot_count = 0; rd_dev 233 drivers/target/target_core_rd.c static int rd_build_prot_space(struct rd_dev *rd_dev, int prot_length, int block_size) rd_dev 241 drivers/target/target_core_rd.c if (rd_dev->rd_flags & RDF_NULLIO) rd_dev 249 drivers/target/target_core_rd.c total_sg_needed = (rd_dev->rd_page_count * prot_length / block_size) + 1; rd_dev 256 drivers/target/target_core_rd.c rd_dev->sg_prot_array = sg_table; rd_dev 257 drivers/target/target_core_rd.c rd_dev->sg_prot_count = sg_tables; rd_dev 259 drivers/target/target_core_rd.c rc = rd_allocate_sgl_table(rd_dev, sg_table, total_sg_needed, 0xff); rd_dev 264 drivers/target/target_core_rd.c " %u pages in %u tables\n", rd_dev->rd_host->rd_host_id, rd_dev 265 drivers/target/target_core_rd.c rd_dev->rd_dev_id, total_sg_needed, rd_dev->sg_prot_count); rd_dev 272 drivers/target/target_core_rd.c struct rd_dev *rd_dev; rd_dev 275 drivers/target/target_core_rd.c rd_dev = kzalloc(sizeof(*rd_dev), GFP_KERNEL); rd_dev 276 drivers/target/target_core_rd.c if (!rd_dev) rd_dev 279 drivers/target/target_core_rd.c rd_dev->rd_host = rd_host; rd_dev 281 drivers/target/target_core_rd.c return &rd_dev->dev; rd_dev 286 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 290 drivers/target/target_core_rd.c if (!(rd_dev->rd_flags & RDF_HAS_PAGE_COUNT)) { rd_dev 295 drivers/target/target_core_rd.c ret = rd_build_device_space(rd_dev); rd_dev 304 drivers/target/target_core_rd.c rd_dev->rd_dev_id = rd_host->rd_host_dev_id_count++; rd_dev 308 drivers/target/target_core_rd.c rd_host->rd_host_id, rd_dev->rd_dev_id, rd_dev->rd_page_count, rd_dev 309 drivers/target/target_core_rd.c rd_dev->sg_table_count, rd_dev 310 drivers/target/target_core_rd.c (unsigned long)(rd_dev->rd_page_count * PAGE_SIZE)); rd_dev 315 drivers/target/target_core_rd.c rd_release_device_space(rd_dev); rd_dev 322 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 324 drivers/target/target_core_rd.c kfree(rd_dev); rd_dev 334 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 336 drivers/target/target_core_rd.c rd_release_device_space(rd_dev); rd_dev 339 drivers/target/target_core_rd.c static struct rd_dev_sg_table *rd_get_sg_table(struct rd_dev *rd_dev, u32 page) rd_dev 346 drivers/target/target_core_rd.c if (i < rd_dev->sg_table_count) { rd_dev 347 drivers/target/target_core_rd.c sg_table = &rd_dev->sg_table_array[i]; rd_dev 359 drivers/target/target_core_rd.c static struct rd_dev_sg_table *rd_get_prot_table(struct rd_dev *rd_dev, u32 page) rd_dev 366 drivers/target/target_core_rd.c if (i < rd_dev->sg_prot_count) { rd_dev 367 drivers/target/target_core_rd.c sg_table = &rd_dev->sg_prot_array[i]; rd_dev 382 drivers/target/target_core_rd.c struct rd_dev *dev = RD_DEV(se_dev); rd_dev 421 drivers/target/target_core_rd.c struct rd_dev *dev = RD_DEV(se_dev); rd_dev 545 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 564 drivers/target/target_core_rd.c rd_dev->rd_page_count = arg; rd_dev 566 drivers/target/target_core_rd.c " Count: %u\n", rd_dev->rd_page_count); rd_dev 567 drivers/target/target_core_rd.c rd_dev->rd_flags |= RDF_HAS_PAGE_COUNT; rd_dev 575 drivers/target/target_core_rd.c rd_dev->rd_flags |= RDF_NULLIO; rd_dev 588 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 591 drivers/target/target_core_rd.c rd_dev->rd_dev_id); rd_dev 593 drivers/target/target_core_rd.c " SG_table_count: %u nullio: %d\n", rd_dev->rd_page_count, rd_dev 594 drivers/target/target_core_rd.c PAGE_SIZE, rd_dev->sg_table_count, rd_dev 595 drivers/target/target_core_rd.c !!(rd_dev->rd_flags & RDF_NULLIO)); rd_dev 601 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 603 drivers/target/target_core_rd.c unsigned long long blocks_long = ((rd_dev->rd_page_count * PAGE_SIZE) / rd_dev 611 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 616 drivers/target/target_core_rd.c return rd_build_prot_space(rd_dev, dev->prot_length, rd_dev 622 drivers/target/target_core_rd.c struct rd_dev *rd_dev = RD_DEV(dev); rd_dev 624 drivers/target/target_core_rd.c rd_release_prot_space(rd_dev); rd_dev 610 virt/kvm/arm/vgic/vgic-mmio-v3.c struct vgic_io_device *rd_dev = &vcpu->arch.vgic_cpu.rd_iodev; rd_dev 635 virt/kvm/arm/vgic/vgic-mmio-v3.c kvm_iodevice_init(&rd_dev->dev, &kvm_io_gic_ops); rd_dev 636 virt/kvm/arm/vgic/vgic-mmio-v3.c rd_dev->base_addr = rd_base; rd_dev 637 virt/kvm/arm/vgic/vgic-mmio-v3.c rd_dev->iodev_type = IODEV_REDIST; rd_dev 638 virt/kvm/arm/vgic/vgic-mmio-v3.c rd_dev->regions = vgic_v3_rd_registers; rd_dev 639 virt/kvm/arm/vgic/vgic-mmio-v3.c rd_dev->nr_regions = ARRAY_SIZE(vgic_v3_rd_registers); rd_dev 640 virt/kvm/arm/vgic/vgic-mmio-v3.c rd_dev->redist_vcpu = vcpu; rd_dev 644 virt/kvm/arm/vgic/vgic-mmio-v3.c 2 * SZ_64K, &rd_dev->dev); rd_dev 656 virt/kvm/arm/vgic/vgic-mmio-v3.c struct vgic_io_device *rd_dev = &vcpu->arch.vgic_cpu.rd_iodev; rd_dev 658 virt/kvm/arm/vgic/vgic-mmio-v3.c kvm_io_bus_unregister_dev(vcpu->kvm, KVM_MMIO_BUS, &rd_dev->dev); rd_dev 966 virt/kvm/arm/vgic/vgic-mmio-v3.c struct vgic_io_device rd_dev = { rd_dev 971 virt/kvm/arm/vgic/vgic-mmio-v3.c return vgic_uaccess(vcpu, &rd_dev, is_write, offset, val);