its                22 arch/arc/include/asm/tlb-mmu1.h ;   and its unpleasant LFSR pseudo-random sequence
its                55 arch/um/os-Linux/time.c 	struct itimerspec its;
its                57 arch/um/os-Linux/time.c 	its.it_value.tv_sec = nsecs / UM_NSEC_PER_SEC;
its                58 arch/um/os-Linux/time.c 	its.it_value.tv_nsec = nsecs % UM_NSEC_PER_SEC;
its                60 arch/um/os-Linux/time.c 	its.it_interval.tv_sec = nsecs / UM_NSEC_PER_SEC;
its                61 arch/um/os-Linux/time.c 	its.it_interval.tv_nsec = nsecs % UM_NSEC_PER_SEC;
its                63 arch/um/os-Linux/time.c 	if (timer_settime(event_high_res_timer, 0, &its, NULL) == -1)
its                71 arch/um/os-Linux/time.c 	struct itimerspec its = {
its                79 arch/um/os-Linux/time.c 	timer_settime(event_high_res_timer, 0, &its, NULL);
its                88 arch/um/os-Linux/time.c 	struct itimerspec its;
its                90 arch/um/os-Linux/time.c 	memset(&its, 0, sizeof(struct itimerspec));
its                91 arch/um/os-Linux/time.c 	timer_settime(event_high_res_timer, 0, &its, NULL);
its               601 drivers/acpi/arm64/iort.c 	struct acpi_iort_its_group *its;
its               613 drivers/acpi/arm64/iort.c 	its = (struct acpi_iort_its_group *)node->node_data;
its               614 drivers/acpi/arm64/iort.c 	if (idx >= its->its_count) {
its               616 drivers/acpi/arm64/iort.c 			idx, its->its_count);
its               620 drivers/acpi/arm64/iort.c 	*its_id = its->identifiers[idx];
its               649 drivers/acpi/arm64/iort.c 	struct acpi_iort_its_group *its;
its               678 drivers/acpi/arm64/iort.c 	its = (struct acpi_iort_its_group *)msi_parent->node_data;
its               680 drivers/acpi/arm64/iort.c 	iort_fwnode = iort_find_domain_token(its->identifiers[0]);
its               700 drivers/acpi/arm64/iort.c 	struct acpi_iort_its_group *its;
its               721 drivers/acpi/arm64/iort.c 	its = (struct acpi_iort_its_group *)msi_parent->node_data;
its               723 drivers/acpi/arm64/iort.c 	iort_fwnode = iort_find_domain_token(its->identifiers[0]);
its               799 drivers/acpi/arm64/iort.c 	struct acpi_iort_its_group *its;
its               828 drivers/acpi/arm64/iort.c 	its = (struct acpi_iort_its_group *)its_node->node_data;
its               830 drivers/acpi/arm64/iort.c 	for (i = 0; i < its->its_count; i++) {
its               833 drivers/acpi/arm64/iort.c 		if (!iort_find_its_base(its->identifiers[i], &base)) {
its               846 drivers/acpi/arm64/iort.c 	return (resv == its->its_count) ? resv : -ENODEV;
its               147 drivers/irqchip/irq-gic-v3-its.c 	struct its_node		*its;
its               180 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its               183 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its               184 drivers/irqchip/irq-gic-v3-its.c 		if (!its->is_v4)
its               187 drivers/irqchip/irq-gic-v3-its.c 		if (vm->vlpi_count[its->list_nr])
its               188 drivers/irqchip/irq-gic-v3-its.c 			__set_bit(its->list_nr, &its_list);
its               197 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = its_dev->its;
its               199 drivers/irqchip/irq-gic-v3-its.c 	return its->collections + its_dev->event_map.col_map[event];
its               210 drivers/irqchip/irq-gic-v3-its.c static struct its_vpe *valid_vpe(struct its_node *its, struct its_vpe *vpe)
its               212 drivers/irqchip/irq-gic-v3-its.c 	if (valid_col(its->collections + vpe->col_idx))
its               423 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_mapd_cmd(struct its_node *its,
its               444 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_mapc_cmd(struct its_node *its,
its               458 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_mapti_cmd(struct its_node *its,
its               478 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_movi_cmd(struct its_node *its,
its               497 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_discard_cmd(struct its_node *its,
its               515 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_inv_cmd(struct its_node *its,
its               533 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_int_cmd(struct its_node *its,
its               551 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_clear_cmd(struct its_node *its,
its               569 drivers/irqchip/irq-gic-v3-its.c static struct its_collection *its_build_invall_cmd(struct its_node *its,
its               581 drivers/irqchip/irq-gic-v3-its.c static struct its_vpe *its_build_vinvall_cmd(struct its_node *its,
its               590 drivers/irqchip/irq-gic-v3-its.c 	return valid_vpe(its, desc->its_vinvall_cmd.vpe);
its               593 drivers/irqchip/irq-gic-v3-its.c static struct its_vpe *its_build_vmapp_cmd(struct its_node *its,
its               601 drivers/irqchip/irq-gic-v3-its.c 	target = desc->its_vmapp_cmd.col->target_address + its->vlpi_redist_offset;
its               612 drivers/irqchip/irq-gic-v3-its.c 	return valid_vpe(its, desc->its_vmapp_cmd.vpe);
its               615 drivers/irqchip/irq-gic-v3-its.c static struct its_vpe *its_build_vmapti_cmd(struct its_node *its,
its               635 drivers/irqchip/irq-gic-v3-its.c 	return valid_vpe(its, desc->its_vmapti_cmd.vpe);
its               638 drivers/irqchip/irq-gic-v3-its.c static struct its_vpe *its_build_vmovi_cmd(struct its_node *its,
its               658 drivers/irqchip/irq-gic-v3-its.c 	return valid_vpe(its, desc->its_vmovi_cmd.vpe);
its               661 drivers/irqchip/irq-gic-v3-its.c static struct its_vpe *its_build_vmovp_cmd(struct its_node *its,
its               667 drivers/irqchip/irq-gic-v3-its.c 	target = desc->its_vmovp_cmd.col->target_address + its->vlpi_redist_offset;
its               676 drivers/irqchip/irq-gic-v3-its.c 	return valid_vpe(its, desc->its_vmovp_cmd.vpe);
its               679 drivers/irqchip/irq-gic-v3-its.c static u64 its_cmd_ptr_to_offset(struct its_node *its,
its               682 drivers/irqchip/irq-gic-v3-its.c 	return (ptr - its->cmd_base) * sizeof(*ptr);
its               685 drivers/irqchip/irq-gic-v3-its.c static int its_queue_full(struct its_node *its)
its               690 drivers/irqchip/irq-gic-v3-its.c 	widx = its->cmd_write - its->cmd_base;
its               691 drivers/irqchip/irq-gic-v3-its.c 	ridx = readl_relaxed(its->base + GITS_CREADR) / sizeof(struct its_cmd_block);
its               700 drivers/irqchip/irq-gic-v3-its.c static struct its_cmd_block *its_allocate_entry(struct its_node *its)
its               705 drivers/irqchip/irq-gic-v3-its.c 	while (its_queue_full(its)) {
its               715 drivers/irqchip/irq-gic-v3-its.c 	cmd = its->cmd_write++;
its               718 drivers/irqchip/irq-gic-v3-its.c 	if (its->cmd_write == (its->cmd_base + ITS_CMD_QUEUE_NR_ENTRIES))
its               719 drivers/irqchip/irq-gic-v3-its.c 		its->cmd_write = its->cmd_base;
its               730 drivers/irqchip/irq-gic-v3-its.c static struct its_cmd_block *its_post_commands(struct its_node *its)
its               732 drivers/irqchip/irq-gic-v3-its.c 	u64 wr = its_cmd_ptr_to_offset(its, its->cmd_write);
its               734 drivers/irqchip/irq-gic-v3-its.c 	writel_relaxed(wr, its->base + GITS_CWRITER);
its               736 drivers/irqchip/irq-gic-v3-its.c 	return its->cmd_write;
its               739 drivers/irqchip/irq-gic-v3-its.c static void its_flush_cmd(struct its_node *its, struct its_cmd_block *cmd)
its               745 drivers/irqchip/irq-gic-v3-its.c 	if (its->flags & ITS_FLAGS_CMDQ_NEEDS_FLUSHING)
its               751 drivers/irqchip/irq-gic-v3-its.c static int its_wait_for_range_completion(struct its_node *its,
its               759 drivers/irqchip/irq-gic-v3-its.c 	to_idx = its_cmd_ptr_to_offset(its, to);
its               768 drivers/irqchip/irq-gic-v3-its.c 		rd_idx = readl_relaxed(its->base + GITS_CREADR);
its               798 drivers/irqchip/irq-gic-v3-its.c void name(struct its_node *its,						\
its               807 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_lock_irqsave(&its->lock, flags);			\
its               809 drivers/irqchip/irq-gic-v3-its.c 	cmd = its_allocate_entry(its);					\
its               811 drivers/irqchip/irq-gic-v3-its.c 		raw_spin_unlock_irqrestore(&its->lock, flags);		\
its               814 drivers/irqchip/irq-gic-v3-its.c 	sync_obj = builder(its, cmd, desc);				\
its               815 drivers/irqchip/irq-gic-v3-its.c 	its_flush_cmd(its, cmd);					\
its               818 drivers/irqchip/irq-gic-v3-its.c 		sync_cmd = its_allocate_entry(its);			\
its               822 drivers/irqchip/irq-gic-v3-its.c 		buildfn(its, sync_cmd, sync_obj);			\
its               823 drivers/irqchip/irq-gic-v3-its.c 		its_flush_cmd(its, sync_cmd);				\
its               827 drivers/irqchip/irq-gic-v3-its.c 	rd_idx = readl_relaxed(its->base + GITS_CREADR);		\
its               828 drivers/irqchip/irq-gic-v3-its.c 	next_cmd = its_post_commands(its);				\
its               829 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_unlock_irqrestore(&its->lock, flags);			\
its               831 drivers/irqchip/irq-gic-v3-its.c 	if (its_wait_for_range_completion(its, rd_idx, next_cmd))	\
its               835 drivers/irqchip/irq-gic-v3-its.c static void its_build_sync_cmd(struct its_node *its,
its               848 drivers/irqchip/irq-gic-v3-its.c static void its_build_vsync_cmd(struct its_node *its,
its               868 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(dev->its, its_build_int_cmd, &desc);
its               878 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(dev->its, its_build_clear_cmd, &desc);
its               888 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(dev->its, its_build_inv_cmd, &desc);
its               898 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(dev->its, its_build_mapd_cmd, &desc);
its               901 drivers/irqchip/irq-gic-v3-its.c static void its_send_mapc(struct its_node *its, struct its_collection *col,
its               909 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(its, its_build_mapc_cmd, &desc);
its               920 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(dev->its, its_build_mapti_cmd, &desc);
its               932 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(dev->its, its_build_movi_cmd, &desc);
its               942 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(dev->its, its_build_discard_cmd, &desc);
its               945 drivers/irqchip/irq-gic-v3-its.c static void its_send_invall(struct its_node *its, struct its_collection *col)
its               951 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_command(its, its_build_invall_cmd, &desc);
its               965 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_vcommand(dev->its, its_build_vmapti_cmd, &desc);
its               978 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_vcommand(dev->its, its_build_vmovi_cmd, &desc);
its               981 drivers/irqchip/irq-gic-v3-its.c static void its_send_vmapp(struct its_node *its,
its               988 drivers/irqchip/irq-gic-v3-its.c 	desc.its_vmapp_cmd.col = &its->collections[vpe->col_idx];
its               990 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_vcommand(its, its_build_vmapp_cmd, &desc);
its               996 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              1003 drivers/irqchip/irq-gic-v3-its.c 		its = list_first_entry(&its_nodes, struct its_node, entry);
its              1004 drivers/irqchip/irq-gic-v3-its.c 		desc.its_vmovp_cmd.col = &its->collections[col_id];
its              1005 drivers/irqchip/irq-gic-v3-its.c 		its_send_single_vcommand(its, its_build_vmovp_cmd, &desc);
its              1023 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its              1024 drivers/irqchip/irq-gic-v3-its.c 		if (!its->is_v4)
its              1027 drivers/irqchip/irq-gic-v3-its.c 		if (!vpe->its_vm->vlpi_count[its->list_nr])
its              1030 drivers/irqchip/irq-gic-v3-its.c 		desc.its_vmovp_cmd.col = &its->collections[col_id];
its              1031 drivers/irqchip/irq-gic-v3-its.c 		its_send_single_vcommand(its, its_build_vmovp_cmd, &desc);
its              1037 drivers/irqchip/irq-gic-v3-its.c static void its_send_vinvall(struct its_node *its, struct its_vpe *vpe)
its              1042 drivers/irqchip/irq-gic-v3-its.c 	its_send_single_vcommand(its, its_build_vinvall_cmd, &desc);
its              1154 drivers/irqchip/irq-gic-v3-its.c 	if (its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) {
its              1155 drivers/irqchip/irq-gic-v3-its.c 		if (its_dev->its->numa_node >= 0) {
its              1156 drivers/irqchip/irq-gic-v3-its.c 			cpu_mask = cpumask_of_node(its_dev->its->numa_node);
its              1169 drivers/irqchip/irq-gic-v3-its.c 		target_col = &its_dev->its->collections[cpu];
its              1180 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = its_dev->its;
its              1182 drivers/irqchip/irq-gic-v3-its.c 	return its->phys_base + GITS_TRANSLATER;
its              1188 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              1191 drivers/irqchip/irq-gic-v3-its.c 	its = its_dev->its;
its              1192 drivers/irqchip/irq-gic-v3-its.c 	addr = its->get_msi_base(its_dev);
its              1219 drivers/irqchip/irq-gic-v3-its.c static void its_map_vm(struct its_node *its, struct its_vm *vm)
its              1233 drivers/irqchip/irq-gic-v3-its.c 	vm->vlpi_count[its->list_nr]++;
its              1235 drivers/irqchip/irq-gic-v3-its.c 	if (vm->vlpi_count[its->list_nr] == 1) {
its              1244 drivers/irqchip/irq-gic-v3-its.c 			its_send_vmapp(its, vpe, true);
its              1245 drivers/irqchip/irq-gic-v3-its.c 			its_send_vinvall(its, vpe);
its              1253 drivers/irqchip/irq-gic-v3-its.c static void its_unmap_vm(struct its_node *its, struct its_vm *vm)
its              1263 drivers/irqchip/irq-gic-v3-its.c 	if (!--vm->vlpi_count[its->list_nr]) {
its              1267 drivers/irqchip/irq-gic-v3-its.c 			its_send_vmapp(its, vm->vpes[i], false);
its              1309 drivers/irqchip/irq-gic-v3-its.c 		its_map_vm(its_dev->its, info->map->vm);
its              1381 drivers/irqchip/irq-gic-v3-its.c 	its_unmap_vm(its_dev->its, its_dev->event_map.vm);
its              1419 drivers/irqchip/irq-gic-v3-its.c 	if (!its_dev->its->is_v4)
its              1738 drivers/irqchip/irq-gic-v3-its.c static u64 its_read_baser(struct its_node *its, struct its_baser *baser)
its              1740 drivers/irqchip/irq-gic-v3-its.c 	u32 idx = baser - its->tables;
its              1742 drivers/irqchip/irq-gic-v3-its.c 	return gits_read_baser(its->base + GITS_BASER + (idx << 3));
its              1745 drivers/irqchip/irq-gic-v3-its.c static void its_write_baser(struct its_node *its, struct its_baser *baser,
its              1748 drivers/irqchip/irq-gic-v3-its.c 	u32 idx = baser - its->tables;
its              1750 drivers/irqchip/irq-gic-v3-its.c 	gits_write_baser(val, its->base + GITS_BASER + (idx << 3));
its              1751 drivers/irqchip/irq-gic-v3-its.c 	baser->val = its_read_baser(its, baser);
its              1754 drivers/irqchip/irq-gic-v3-its.c static int its_setup_baser(struct its_node *its, struct its_baser *baser,
its              1758 drivers/irqchip/irq-gic-v3-its.c 	u64 val = its_read_baser(its, baser);
its              1770 drivers/irqchip/irq-gic-v3-its.c 			&its->phys_base, its_base_type_string[type],
its              1776 drivers/irqchip/irq-gic-v3-its.c 	page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO, order);
its              1820 drivers/irqchip/irq-gic-v3-its.c 	its_write_baser(its, baser, val);
its              1860 drivers/irqchip/irq-gic-v3-its.c 		       &its->phys_base, its_base_type_string[type],
its              1872 drivers/irqchip/irq-gic-v3-its.c 		&its->phys_base, (int)(PAGE_ORDER_TO_SIZE(order) / (int)tmp),
its              1881 drivers/irqchip/irq-gic-v3-its.c static bool its_parse_indirect_baser(struct its_node *its,
its              1885 drivers/irqchip/irq-gic-v3-its.c 	u64 tmp = its_read_baser(its, baser);
its              1898 drivers/irqchip/irq-gic-v3-its.c 		its_write_baser(its, baser, val | GITS_BASER_INDIRECT);
its              1926 drivers/irqchip/irq-gic-v3-its.c 			&its->phys_base, its_base_type_string[type],
its              1927 drivers/irqchip/irq-gic-v3-its.c 			its->device_ids, ids);
its              1935 drivers/irqchip/irq-gic-v3-its.c static void its_free_tables(struct its_node *its)
its              1940 drivers/irqchip/irq-gic-v3-its.c 		if (its->tables[i].base) {
its              1941 drivers/irqchip/irq-gic-v3-its.c 			free_pages((unsigned long)its->tables[i].base,
its              1942 drivers/irqchip/irq-gic-v3-its.c 				   its->tables[i].order);
its              1943 drivers/irqchip/irq-gic-v3-its.c 			its->tables[i].base = NULL;
its              1948 drivers/irqchip/irq-gic-v3-its.c static int its_alloc_tables(struct its_node *its)
its              1955 drivers/irqchip/irq-gic-v3-its.c 	if (its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_22375)
its              1960 drivers/irqchip/irq-gic-v3-its.c 		struct its_baser *baser = its->tables + i;
its              1961 drivers/irqchip/irq-gic-v3-its.c 		u64 val = its_read_baser(its, baser);
its              1971 drivers/irqchip/irq-gic-v3-its.c 			indirect = its_parse_indirect_baser(its, baser,
its              1973 drivers/irqchip/irq-gic-v3-its.c 							    its->device_ids);
its              1977 drivers/irqchip/irq-gic-v3-its.c 			indirect = its_parse_indirect_baser(its, baser,
its              1983 drivers/irqchip/irq-gic-v3-its.c 		err = its_setup_baser(its, baser, cache, shr, psz, order, indirect);
its              1985 drivers/irqchip/irq-gic-v3-its.c 			its_free_tables(its);
its              1998 drivers/irqchip/irq-gic-v3-its.c static int its_alloc_collections(struct its_node *its)
its              2002 drivers/irqchip/irq-gic-v3-its.c 	its->collections = kcalloc(nr_cpu_ids, sizeof(*its->collections),
its              2004 drivers/irqchip/irq-gic-v3-its.c 	if (!its->collections)
its              2008 drivers/irqchip/irq-gic-v3-its.c 		its->collections[i].target_address = ~0ULL;
its              2231 drivers/irqchip/irq-gic-v3-its.c static void its_cpu_init_collection(struct its_node *its)
its              2237 drivers/irqchip/irq-gic-v3-its.c 	if (its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144) {
its              2241 drivers/irqchip/irq-gic-v3-its.c 		if (its->numa_node != NUMA_NO_NODE &&
its              2242 drivers/irqchip/irq-gic-v3-its.c 			its->numa_node != of_node_to_nid(cpu_node))
its              2250 drivers/irqchip/irq-gic-v3-its.c 	if (gic_read_typer(its->base + GITS_TYPER) & GITS_TYPER_PTA) {
its              2263 drivers/irqchip/irq-gic-v3-its.c 	its->collections[cpu].target_address = target;
its              2264 drivers/irqchip/irq-gic-v3-its.c 	its->collections[cpu].col_id = cpu;
its              2266 drivers/irqchip/irq-gic-v3-its.c 	its_send_mapc(its, &its->collections[cpu], 1);
its              2267 drivers/irqchip/irq-gic-v3-its.c 	its_send_invall(its, &its->collections[cpu]);
its              2272 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              2276 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry)
its              2277 drivers/irqchip/irq-gic-v3-its.c 		its_cpu_init_collection(its);
its              2282 drivers/irqchip/irq-gic-v3-its.c static struct its_device *its_find_device(struct its_node *its, u32 dev_id)
its              2287 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_lock_irqsave(&its->lock, flags);
its              2289 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(tmp, &its->its_device_list, entry) {
its              2296 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_unlock_irqrestore(&its->lock, flags);
its              2301 drivers/irqchip/irq-gic-v3-its.c static struct its_baser *its_get_baser(struct its_node *its, u32 type)
its              2306 drivers/irqchip/irq-gic-v3-its.c 		if (GITS_BASER_TYPE(its->tables[i].val) == type)
its              2307 drivers/irqchip/irq-gic-v3-its.c 			return &its->tables[i];
its              2313 drivers/irqchip/irq-gic-v3-its.c static bool its_alloc_table_entry(struct its_node *its,
its              2334 drivers/irqchip/irq-gic-v3-its.c 		page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO,
its              2356 drivers/irqchip/irq-gic-v3-its.c static bool its_alloc_device_table(struct its_node *its, u32 dev_id)
its              2360 drivers/irqchip/irq-gic-v3-its.c 	baser = its_get_baser(its, GITS_BASER_TYPE_DEVICE);
its              2364 drivers/irqchip/irq-gic-v3-its.c 		return (ilog2(dev_id) < its->device_ids);
its              2366 drivers/irqchip/irq-gic-v3-its.c 	return its_alloc_table_entry(its, baser, dev_id);
its              2371 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              2380 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its              2383 drivers/irqchip/irq-gic-v3-its.c 		if (!its->is_v4)
its              2386 drivers/irqchip/irq-gic-v3-its.c 		baser = its_get_baser(its, GITS_BASER_TYPE_VCPU);
its              2390 drivers/irqchip/irq-gic-v3-its.c 		if (!its_alloc_table_entry(its, baser, vpe_id))
its              2397 drivers/irqchip/irq-gic-v3-its.c static struct its_device *its_create_device(struct its_node *its, u32 dev_id,
its              2410 drivers/irqchip/irq-gic-v3-its.c 	if (!its_alloc_device_table(its, dev_id))
its              2422 drivers/irqchip/irq-gic-v3-its.c 	sz = nr_ites * its->ite_size;
its              2424 drivers/irqchip/irq-gic-v3-its.c 	itt = kzalloc_node(sz, GFP_KERNEL, its->numa_node);
its              2446 drivers/irqchip/irq-gic-v3-its.c 	dev->its = its;
its              2457 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_lock_irqsave(&its->lock, flags);
its              2458 drivers/irqchip/irq-gic-v3-its.c 	list_add(&dev->entry, &its->its_device_list);
its              2459 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_unlock_irqrestore(&its->lock, flags);
its              2471 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_lock_irqsave(&its_dev->its->lock, flags);
its              2473 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_unlock_irqrestore(&its_dev->its->lock, flags);
its              2497 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              2512 drivers/irqchip/irq-gic-v3-its.c 	its = msi_info->data;
its              2516 drivers/irqchip/irq-gic-v3-its.c 	    vpe_proxy.dev->its == its &&
its              2524 drivers/irqchip/irq-gic-v3-its.c 	mutex_lock(&its->dev_alloc_lock);
its              2525 drivers/irqchip/irq-gic-v3-its.c 	its_dev = its_find_device(its, dev_id);
its              2537 drivers/irqchip/irq-gic-v3-its.c 	its_dev = its_create_device(its, dev_id, nvec, true);
its              2545 drivers/irqchip/irq-gic-v3-its.c 	mutex_unlock(&its->dev_alloc_lock);
its              2583 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = its_dev->its;
its              2592 drivers/irqchip/irq-gic-v3-its.c 	err = iommu_dma_prepare_msi(info->desc, its->get_msi_base(its_dev));
its              2621 drivers/irqchip/irq-gic-v3-its.c 	if (its_dev->its->numa_node >= 0)
its              2622 drivers/irqchip/irq-gic-v3-its.c 		cpu_mask = cpumask_of_node(its_dev->its->numa_node);
its              2627 drivers/irqchip/irq-gic-v3-its.c 		if (its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_23144)
its              2656 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = its_dev->its;
its              2670 drivers/irqchip/irq-gic-v3-its.c 	mutex_lock(&its->dev_alloc_lock);
its              2689 drivers/irqchip/irq-gic-v3-its.c 	mutex_unlock(&its->dev_alloc_lock);
its              2785 drivers/irqchip/irq-gic-v3-its.c 	target_col = &vpe_proxy.dev->its->collections[to];
its              2869 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              2871 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its              2872 drivers/irqchip/irq-gic-v3-its.c 		if (!its->is_v4)
its              2875 drivers/irqchip/irq-gic-v3-its.c 		if (its_list_map && !vpe->its_vm->vlpi_count[its->list_nr])
its              2882 drivers/irqchip/irq-gic-v3-its.c 		its_send_vinvall(its, vpe);
its              3137 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              3146 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its              3147 drivers/irqchip/irq-gic-v3-its.c 		if (!its->is_v4)
its              3150 drivers/irqchip/irq-gic-v3-its.c 		its_send_vmapp(its, vpe, true);
its              3151 drivers/irqchip/irq-gic-v3-its.c 		its_send_vinvall(its, vpe);
its              3163 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              3172 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its              3173 drivers/irqchip/irq-gic-v3-its.c 		if (!its->is_v4)
its              3176 drivers/irqchip/irq-gic-v3-its.c 		its_send_vmapp(its, vpe, false);
its              3222 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = data;
its              3225 drivers/irqchip/irq-gic-v3-its.c 	its->device_ids = 0x14;		/* 20 bits, 8MB */
its              3226 drivers/irqchip/irq-gic-v3-its.c 	its->flags |= ITS_FLAGS_WORKAROUND_CAVIUM_22375;
its              3233 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = data;
its              3235 drivers/irqchip/irq-gic-v3-its.c 	its->flags |= ITS_FLAGS_WORKAROUND_CAVIUM_23144;
its              3242 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = data;
its              3245 drivers/irqchip/irq-gic-v3-its.c 	its->ite_size = 16;
its              3252 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = its_dev->its;
its              3261 drivers/irqchip/irq-gic-v3-its.c 	return its->pre_its_base + (its_dev->device_id << 2);
its              3266 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = data;
its              3270 drivers/irqchip/irq-gic-v3-its.c 	if (!fwnode_property_read_u32_array(its->fwnode_handle,
its              3275 drivers/irqchip/irq-gic-v3-its.c 		its->pre_its_base = pre_its_window[0];
its              3276 drivers/irqchip/irq-gic-v3-its.c 		its->get_msi_base = its_irq_get_msi_base_pre_its;
its              3279 drivers/irqchip/irq-gic-v3-its.c 		if (its->device_ids > ids)
its              3280 drivers/irqchip/irq-gic-v3-its.c 			its->device_ids = ids;
its              3283 drivers/irqchip/irq-gic-v3-its.c 		its->msi_domain_flags &= ~IRQ_DOMAIN_FLAG_MSI_REMAP;
its              3291 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its = data;
its              3297 drivers/irqchip/irq-gic-v3-its.c 	its->vlpi_redist_offset = SZ_128K;
its              3351 drivers/irqchip/irq-gic-v3-its.c static void its_enable_quirks(struct its_node *its)
its              3353 drivers/irqchip/irq-gic-v3-its.c 	u32 iidr = readl_relaxed(its->base + GITS_IIDR);
its              3355 drivers/irqchip/irq-gic-v3-its.c 	gic_enable_quirks(iidr, its_quirks, its);
its              3360 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              3364 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its              3367 drivers/irqchip/irq-gic-v3-its.c 		if (!(its->flags & ITS_FLAGS_SAVE_SUSPEND_STATE))
its              3370 drivers/irqchip/irq-gic-v3-its.c 		base = its->base;
its              3371 drivers/irqchip/irq-gic-v3-its.c 		its->ctlr_save = readl_relaxed(base + GITS_CTLR);
its              3375 drivers/irqchip/irq-gic-v3-its.c 			       &its->phys_base, err);
its              3376 drivers/irqchip/irq-gic-v3-its.c 			writel_relaxed(its->ctlr_save, base + GITS_CTLR);
its              3380 drivers/irqchip/irq-gic-v3-its.c 		its->cbaser_save = gits_read_cbaser(base + GITS_CBASER);
its              3385 drivers/irqchip/irq-gic-v3-its.c 		list_for_each_entry_continue_reverse(its, &its_nodes, entry) {
its              3388 drivers/irqchip/irq-gic-v3-its.c 			if (!(its->flags & ITS_FLAGS_SAVE_SUSPEND_STATE))
its              3391 drivers/irqchip/irq-gic-v3-its.c 			base = its->base;
its              3392 drivers/irqchip/irq-gic-v3-its.c 			writel_relaxed(its->ctlr_save, base + GITS_CTLR);
its              3402 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              3406 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry) {
its              3410 drivers/irqchip/irq-gic-v3-its.c 		if (!(its->flags & ITS_FLAGS_SAVE_SUSPEND_STATE))
its              3413 drivers/irqchip/irq-gic-v3-its.c 		base = its->base;
its              3424 drivers/irqchip/irq-gic-v3-its.c 			       &its->phys_base, ret);
its              3428 drivers/irqchip/irq-gic-v3-its.c 		gits_write_cbaser(its->cbaser_save, base + GITS_CBASER);
its              3434 drivers/irqchip/irq-gic-v3-its.c 		its->cmd_write = its->cmd_base;
its              3439 drivers/irqchip/irq-gic-v3-its.c 			struct its_baser *baser = &its->tables[i];
its              3444 drivers/irqchip/irq-gic-v3-its.c 			its_write_baser(its, baser, baser->val);
its              3446 drivers/irqchip/irq-gic-v3-its.c 		writel_relaxed(its->ctlr_save, base + GITS_CTLR);
its              3453 drivers/irqchip/irq-gic-v3-its.c 		if (its->collections[smp_processor_id()].col_id <
its              3455 drivers/irqchip/irq-gic-v3-its.c 			its_cpu_init_collection(its);
its              3465 drivers/irqchip/irq-gic-v3-its.c static int its_init_domain(struct fwnode_handle *handle, struct its_node *its)
its              3474 drivers/irqchip/irq-gic-v3-its.c 	inner_domain = irq_domain_create_tree(handle, &its_domain_ops, its);
its              3482 drivers/irqchip/irq-gic-v3-its.c 	inner_domain->flags |= its->msi_domain_flags;
its              3484 drivers/irqchip/irq-gic-v3-its.c 	info->data = its;
its              3492 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              3502 drivers/irqchip/irq-gic-v3-its.c 	its = list_first_entry(&its_nodes, struct its_node, entry);
its              3513 drivers/irqchip/irq-gic-v3-its.c 	devid = GENMASK(its->device_ids - 1, 0);
its              3514 drivers/irqchip/irq-gic-v3-its.c 	vpe_proxy.dev = its_create_device(its, devid, entries, false);
its              3572 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              3600 drivers/irqchip/irq-gic-v3-its.c 	its = kzalloc(sizeof(*its), GFP_KERNEL);
its              3601 drivers/irqchip/irq-gic-v3-its.c 	if (!its) {
its              3606 drivers/irqchip/irq-gic-v3-its.c 	raw_spin_lock_init(&its->lock);
its              3607 drivers/irqchip/irq-gic-v3-its.c 	mutex_init(&its->dev_alloc_lock);
its              3608 drivers/irqchip/irq-gic-v3-its.c 	INIT_LIST_HEAD(&its->entry);
its              3609 drivers/irqchip/irq-gic-v3-its.c 	INIT_LIST_HEAD(&its->its_device_list);
its              3611 drivers/irqchip/irq-gic-v3-its.c 	its->base = its_base;
its              3612 drivers/irqchip/irq-gic-v3-its.c 	its->phys_base = res->start;
its              3613 drivers/irqchip/irq-gic-v3-its.c 	its->ite_size = GITS_TYPER_ITT_ENTRY_SIZE(typer);
its              3614 drivers/irqchip/irq-gic-v3-its.c 	its->device_ids = GITS_TYPER_DEVBITS(typer);
its              3615 drivers/irqchip/irq-gic-v3-its.c 	its->is_v4 = !!(typer & GITS_TYPER_VLPIS);
its              3616 drivers/irqchip/irq-gic-v3-its.c 	if (its->is_v4) {
its              3622 drivers/irqchip/irq-gic-v3-its.c 			its->list_nr = err;
its              3631 drivers/irqchip/irq-gic-v3-its.c 	its->numa_node = numa_node;
its              3633 drivers/irqchip/irq-gic-v3-its.c 	page = alloc_pages_node(its->numa_node, GFP_KERNEL | __GFP_ZERO,
its              3639 drivers/irqchip/irq-gic-v3-its.c 	its->cmd_base = (void *)page_address(page);
its              3640 drivers/irqchip/irq-gic-v3-its.c 	its->cmd_write = its->cmd_base;
its              3641 drivers/irqchip/irq-gic-v3-its.c 	its->fwnode_handle = handle;
its              3642 drivers/irqchip/irq-gic-v3-its.c 	its->get_msi_base = its_irq_get_msi_base;
its              3643 drivers/irqchip/irq-gic-v3-its.c 	its->msi_domain_flags = IRQ_DOMAIN_FLAG_MSI_REMAP;
its              3645 drivers/irqchip/irq-gic-v3-its.c 	its_enable_quirks(its);
its              3647 drivers/irqchip/irq-gic-v3-its.c 	err = its_alloc_tables(its);
its              3651 drivers/irqchip/irq-gic-v3-its.c 	err = its_alloc_collections(its);
its              3655 drivers/irqchip/irq-gic-v3-its.c 	baser = (virt_to_phys(its->cmd_base)	|
its              3661 drivers/irqchip/irq-gic-v3-its.c 	gits_write_cbaser(baser, its->base + GITS_CBASER);
its              3662 drivers/irqchip/irq-gic-v3-its.c 	tmp = gits_read_cbaser(its->base + GITS_CBASER);
its              3674 drivers/irqchip/irq-gic-v3-its.c 			gits_write_cbaser(baser, its->base + GITS_CBASER);
its              3677 drivers/irqchip/irq-gic-v3-its.c 		its->flags |= ITS_FLAGS_CMDQ_NEEDS_FLUSHING;
its              3680 drivers/irqchip/irq-gic-v3-its.c 	gits_write_cwriter(0, its->base + GITS_CWRITER);
its              3681 drivers/irqchip/irq-gic-v3-its.c 	ctlr = readl_relaxed(its->base + GITS_CTLR);
its              3683 drivers/irqchip/irq-gic-v3-its.c 	if (its->is_v4)
its              3685 drivers/irqchip/irq-gic-v3-its.c 	writel_relaxed(ctlr, its->base + GITS_CTLR);
its              3688 drivers/irqchip/irq-gic-v3-its.c 		its->flags |= ITS_FLAGS_SAVE_SUSPEND_STATE;
its              3690 drivers/irqchip/irq-gic-v3-its.c 	err = its_init_domain(handle, its);
its              3695 drivers/irqchip/irq-gic-v3-its.c 	list_add(&its->entry, &its_nodes);
its              3701 drivers/irqchip/irq-gic-v3-its.c 	its_free_tables(its);
its              3703 drivers/irqchip/irq-gic-v3-its.c 	free_pages((unsigned long)its->cmd_base, get_order(ITS_CMD_QUEUE_SZ));
its              3705 drivers/irqchip/irq-gic-v3-its.c 	kfree(its);
its              3985 drivers/irqchip/irq-gic-v3-its.c 	struct its_node *its;
its              4007 drivers/irqchip/irq-gic-v3-its.c 	list_for_each_entry(its, &its_nodes, entry)
its              4008 drivers/irqchip/irq-gic-v3-its.c 		has_v4 |= its->is_v4;
its               404 drivers/media/platform/sti/bdisp/bdisp-hw.c 	u32 its;
its               406 drivers/media/platform/sti/bdisp/bdisp-hw.c 	its = readl(bdisp->regs + BLT_ITS);
its               409 drivers/media/platform/sti/bdisp/bdisp-hw.c 	if (!(its & BLT_ITS_AQ1_LNA)) {
its               410 drivers/media/platform/sti/bdisp/bdisp-hw.c 		dev_dbg(bdisp->dev, "Unexpected IT status: 0x%08X\n", its);
its               411 drivers/media/platform/sti/bdisp/bdisp-hw.c 		writel(its, bdisp->regs + BLT_ITS);
its               416 drivers/media/platform/sti/bdisp/bdisp-hw.c 	writel(its, bdisp->regs + BLT_ITS);
its               157 include/kvm/arm_vgic.h 		struct vgic_its *its;
its                75 include/linux/time.h static inline bool itimerspec64_valid(const struct itimerspec64 *its)
its                77 include/linux/time.h 	if (!timespec64_valid(&(its->it_interval)) ||
its                78 include/linux/time.h 		!timespec64_valid(&(its->it_value)))
its                68 include/linux/time32.h extern int get_old_itimerspec32(struct itimerspec64 *its,
its                70 include/linux/time32.h extern int put_old_itimerspec32(const struct itimerspec64 *its,
its                10 include/net/netfilter/nf_conntrack_synproxy.h 	u32	its;
its               980 kernel/time/time.c int get_old_itimerspec32(struct itimerspec64 *its,
its               984 kernel/time/time.c 	if (__get_old_timespec32(&its->it_interval, &uits->it_interval) ||
its               985 kernel/time/time.c 	    __get_old_timespec32(&its->it_value, &uits->it_value))
its               991 kernel/time/time.c int put_old_itimerspec32(const struct itimerspec64 *its,
its               994 kernel/time/time.c 	if (__put_old_timespec32(&its->it_interval, &uits->it_interval) ||
its               995 kernel/time/time.c 	    __put_old_timespec32(&its->it_value, &uits->it_value))
its               475 net/netfilter/nf_conntrack_netlink.c 	    nla_put_be32(skb, CTA_SYNPROXY_ITS, htonl(synproxy->its)) ||
its              1844 net/netfilter/nf_conntrack_netlink.c 	synproxy->its = ntohl(nla_get_be32(tb[CTA_SYNPROXY_ITS]));
its               731 net/netfilter/nf_synproxy_core.c 			synproxy->its = opts.tsecr;
its               743 net/netfilter/nf_synproxy_core.c 			synproxy->tsoff = opts.tsval - synproxy->its;
its              1155 net/netfilter/nf_synproxy_core.c 			synproxy->its = opts.tsecr;
its              1167 net/netfilter/nf_synproxy_core.c 			synproxy->tsoff = opts.tsval - synproxy->its;
its                26 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_tables_v0(struct vgic_its *its);
its                27 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_tables_v0(struct vgic_its *its);
its                28 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_commit_v0(struct vgic_its *its);
its               164 virt/kvm/arm/vgic/vgic-its.c 	int (*save_tables)(struct vgic_its *its);
its               165 virt/kvm/arm/vgic/vgic-its.c 	int (*restore_tables)(struct vgic_its *its);
its               166 virt/kvm/arm/vgic/vgic-its.c 	int (*commit)(struct vgic_its *its);
its               185 virt/kvm/arm/vgic/vgic-its.c inline const struct vgic_its_abi *vgic_its_get_abi(struct vgic_its *its)
its               187 virt/kvm/arm/vgic/vgic-its.c 	return &its_table_abi_versions[its->abi_rev];
its               190 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_set_abi(struct vgic_its *its, u32 rev)
its               194 virt/kvm/arm/vgic/vgic-its.c 	its->abi_rev = rev;
its               195 virt/kvm/arm/vgic/vgic-its.c 	abi = vgic_its_get_abi(its);
its               196 virt/kvm/arm/vgic/vgic-its.c 	return abi->commit(its);
its               203 virt/kvm/arm/vgic/vgic-its.c static struct its_device *find_its_device(struct vgic_its *its, u32 device_id)
its               207 virt/kvm/arm/vgic/vgic-its.c 	list_for_each_entry(device, &its->device_list, dev_list)
its               219 virt/kvm/arm/vgic/vgic-its.c static struct its_ite *find_ite(struct vgic_its *its, u32 device_id,
its               225 virt/kvm/arm/vgic/vgic-its.c 	device = find_its_device(its, device_id);
its               237 virt/kvm/arm/vgic/vgic-its.c #define for_each_lpi_its(dev, ite, its) \
its               238 virt/kvm/arm/vgic/vgic-its.c 	list_for_each_entry(dev, &(its)->device_list, dev_list) \
its               252 virt/kvm/arm/vgic/vgic-its.c static struct its_collection *find_collection(struct vgic_its *its, int coll_id)
its               256 virt/kvm/arm/vgic/vgic-its.c 	list_for_each_entry(collection, &its->collection_list, coll_list) {
its               392 virt/kvm/arm/vgic/vgic-its.c static void update_affinity_collection(struct kvm *kvm, struct vgic_its *its,
its               398 virt/kvm/arm/vgic/vgic-its.c 	for_each_lpi_its(device, ite, its) {
its               467 virt/kvm/arm/vgic/vgic-its.c 					      struct vgic_its *its,
its               470 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its               489 virt/kvm/arm/vgic/vgic-its.c 					     struct vgic_its *its,
its               494 virt/kvm/arm/vgic/vgic-its.c 	val = (its->abi_rev << GITS_IIDR_REV_SHIFT) & GITS_IIDR_REV_MASK;
its               500 virt/kvm/arm/vgic/vgic-its.c 					    struct vgic_its *its,
its               508 virt/kvm/arm/vgic/vgic-its.c 	return vgic_its_set_abi(its, rev);
its               512 virt/kvm/arm/vgic/vgic-its.c 					       struct vgic_its *its,
its               583 virt/kvm/arm/vgic/vgic-its.c static void vgic_its_cache_translation(struct kvm *kvm, struct vgic_its *its,
its               606 virt/kvm/arm/vgic/vgic-its.c 	db = its->vgic_its_base + GITS_TRANSLATER;
its               659 virt/kvm/arm/vgic/vgic-its.c int vgic_its_resolve_lpi(struct kvm *kvm, struct vgic_its *its,
its               665 virt/kvm/arm/vgic/vgic-its.c 	if (!its->enabled)
its               668 virt/kvm/arm/vgic/vgic-its.c 	ite = find_ite(its, devid, eventid);
its               679 virt/kvm/arm/vgic/vgic-its.c 	vgic_its_cache_translation(kvm, its, devid, eventid, ite->irq);
its               710 virt/kvm/arm/vgic/vgic-its.c 	return iodev->its;
its               720 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_trigger_msi(struct kvm *kvm, struct vgic_its *its,
its               727 virt/kvm/arm/vgic/vgic-its.c 	err = vgic_its_resolve_lpi(kvm, its, devid, eventid, &irq);
its               769 virt/kvm/arm/vgic/vgic-its.c 	struct vgic_its *its;
its               775 virt/kvm/arm/vgic/vgic-its.c 	its = vgic_msi_to_its(kvm, msi);
its               776 virt/kvm/arm/vgic/vgic-its.c 	if (IS_ERR(its))
its               777 virt/kvm/arm/vgic/vgic-its.c 		return PTR_ERR(its);
its               779 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->its_lock);
its               780 virt/kvm/arm/vgic/vgic-its.c 	ret = vgic_its_trigger_msi(kvm, its, msi->devid, msi->data);
its               781 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->its_lock);
its               832 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_discard(struct kvm *kvm, struct vgic_its *its,
its               840 virt/kvm/arm/vgic/vgic-its.c 	ite = find_ite(its, device_id, event_id);
its               860 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_movi(struct kvm *kvm, struct vgic_its *its,
its               870 virt/kvm/arm/vgic/vgic-its.c 	ite = find_ite(its, device_id, event_id);
its               877 virt/kvm/arm/vgic/vgic-its.c 	collection = find_collection(its, coll_id);
its               896 virt/kvm/arm/vgic/vgic-its.c static bool vgic_its_check_id(struct vgic_its *its, u64 baser, u32 id,
its               942 virt/kvm/arm/vgic/vgic-its.c 	if (kvm_read_guest_lock(its->dev->kvm,
its               965 virt/kvm/arm/vgic/vgic-its.c 	idx = srcu_read_lock(&its->dev->kvm->srcu);
its               966 virt/kvm/arm/vgic/vgic-its.c 	ret = kvm_is_visible_gfn(its->dev->kvm, gfn);
its               967 virt/kvm/arm/vgic/vgic-its.c 	srcu_read_unlock(&its->dev->kvm->srcu, idx);
its               971 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_alloc_collection(struct vgic_its *its,
its               977 virt/kvm/arm/vgic/vgic-its.c 	if (!vgic_its_check_id(its, its->baser_coll_table, coll_id, NULL))
its               987 virt/kvm/arm/vgic/vgic-its.c 	list_add_tail(&collection->coll_list, &its->collection_list);
its               993 virt/kvm/arm/vgic/vgic-its.c static void vgic_its_free_collection(struct vgic_its *its, u32 coll_id)
its              1004 virt/kvm/arm/vgic/vgic-its.c 	collection = find_collection(its, coll_id);
its              1008 virt/kvm/arm/vgic/vgic-its.c 	for_each_lpi_its(device, ite, its)
its              1039 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_mapi(struct kvm *kvm, struct vgic_its *its,
its              1052 virt/kvm/arm/vgic/vgic-its.c 	device = find_its_device(its, device_id);
its              1068 virt/kvm/arm/vgic/vgic-its.c 	if (find_ite(its, device_id, event_id))
its              1071 virt/kvm/arm/vgic/vgic-its.c 	collection = find_collection(its, coll_id);
its              1073 virt/kvm/arm/vgic/vgic-its.c 		int ret = vgic_its_alloc_collection(its, &collection, coll_id);
its              1082 virt/kvm/arm/vgic/vgic-its.c 			vgic_its_free_collection(its, coll_id);
its              1092 virt/kvm/arm/vgic/vgic-its.c 			vgic_its_free_collection(its, coll_id);
its              1121 virt/kvm/arm/vgic/vgic-its.c static void vgic_its_free_device_list(struct kvm *kvm, struct vgic_its *its)
its              1125 virt/kvm/arm/vgic/vgic-its.c 	list_for_each_entry_safe(cur, temp, &its->device_list, dev_list)
its              1130 virt/kvm/arm/vgic/vgic-its.c static void vgic_its_free_collection_list(struct kvm *kvm, struct vgic_its *its)
its              1134 virt/kvm/arm/vgic/vgic-its.c 	list_for_each_entry_safe(cur, temp, &its->collection_list, coll_list)
its              1135 virt/kvm/arm/vgic/vgic-its.c 		vgic_its_free_collection(its, cur->collection_id);
its              1139 virt/kvm/arm/vgic/vgic-its.c static struct its_device *vgic_its_alloc_device(struct vgic_its *its,
its              1154 virt/kvm/arm/vgic/vgic-its.c 	list_add_tail(&device->dev_list, &its->device_list);
its              1162 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_mapd(struct kvm *kvm, struct vgic_its *its,
its              1171 virt/kvm/arm/vgic/vgic-its.c 	if (!vgic_its_check_id(its, its->baser_device_table, device_id, NULL))
its              1177 virt/kvm/arm/vgic/vgic-its.c 	device = find_its_device(its, device_id);
its              1194 virt/kvm/arm/vgic/vgic-its.c 	device = vgic_its_alloc_device(its, device_id, itt_addr,
its              1204 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_mapc(struct kvm *kvm, struct vgic_its *its,
its              1220 virt/kvm/arm/vgic/vgic-its.c 		vgic_its_free_collection(its, coll_id);
its              1223 virt/kvm/arm/vgic/vgic-its.c 		collection = find_collection(its, coll_id);
its              1228 virt/kvm/arm/vgic/vgic-its.c 			ret = vgic_its_alloc_collection(its, &collection,
its              1235 virt/kvm/arm/vgic/vgic-its.c 			update_affinity_collection(kvm, its, collection);
its              1246 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_clear(struct kvm *kvm, struct vgic_its *its,
its              1254 virt/kvm/arm/vgic/vgic-its.c 	ite = find_ite(its, device_id, event_id);
its              1271 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_inv(struct kvm *kvm, struct vgic_its *its,
its              1279 virt/kvm/arm/vgic/vgic-its.c 	ite = find_ite(its, device_id, event_id);
its              1294 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_invall(struct kvm *kvm, struct vgic_its *its,
its              1304 virt/kvm/arm/vgic/vgic-its.c 	collection = find_collection(its, coll_id);
its              1338 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_movall(struct kvm *kvm, struct vgic_its *its,
its              1380 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_cmd_handle_int(struct kvm *kvm, struct vgic_its *its,
its              1386 virt/kvm/arm/vgic/vgic-its.c 	return vgic_its_trigger_msi(kvm, its, msi_devid, msi_data);
its              1393 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_handle_command(struct kvm *kvm, struct vgic_its *its,
its              1398 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->its_lock);
its              1401 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_mapd(kvm, its, its_cmd);
its              1404 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_mapc(kvm, its, its_cmd);
its              1407 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_mapi(kvm, its, its_cmd);
its              1410 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_mapi(kvm, its, its_cmd);
its              1413 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_movi(kvm, its, its_cmd);
its              1416 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_discard(kvm, its, its_cmd);
its              1419 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_clear(kvm, its, its_cmd);
its              1422 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_movall(kvm, its, its_cmd);
its              1425 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_int(kvm, its, its_cmd);
its              1428 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_inv(kvm, its, its_cmd);
its              1431 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_cmd_handle_invall(kvm, its, its_cmd);
its              1438 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->its_lock);
its              1480 virt/kvm/arm/vgic/vgic-its.c 					       struct vgic_its *its,
its              1483 virt/kvm/arm/vgic/vgic-its.c 	return extract_bytes(its->cbaser, addr & 7, len);
its              1486 virt/kvm/arm/vgic/vgic-its.c static void vgic_mmio_write_its_cbaser(struct kvm *kvm, struct vgic_its *its,
its              1491 virt/kvm/arm/vgic/vgic-its.c 	if (its->enabled)
its              1494 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->cmd_lock);
its              1495 virt/kvm/arm/vgic/vgic-its.c 	its->cbaser = update_64bit_reg(its->cbaser, addr & 7, len, val);
its              1496 virt/kvm/arm/vgic/vgic-its.c 	its->cbaser = vgic_sanitise_its_cbaser(its->cbaser);
its              1497 virt/kvm/arm/vgic/vgic-its.c 	its->creadr = 0;
its              1502 virt/kvm/arm/vgic/vgic-its.c 	its->cwriter = its->creadr;
its              1503 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->cmd_lock);
its              1511 virt/kvm/arm/vgic/vgic-its.c static void vgic_its_process_commands(struct kvm *kvm, struct vgic_its *its)
its              1517 virt/kvm/arm/vgic/vgic-its.c 	if (!its->enabled)
its              1520 virt/kvm/arm/vgic/vgic-its.c 	cbaser = GITS_CBASER_ADDRESS(its->cbaser);
its              1522 virt/kvm/arm/vgic/vgic-its.c 	while (its->cwriter != its->creadr) {
its              1523 virt/kvm/arm/vgic/vgic-its.c 		int ret = kvm_read_guest_lock(kvm, cbaser + its->creadr,
its              1533 virt/kvm/arm/vgic/vgic-its.c 			vgic_its_handle_command(kvm, its, cmd_buf);
its              1535 virt/kvm/arm/vgic/vgic-its.c 		its->creadr += ITS_CMD_SIZE;
its              1536 virt/kvm/arm/vgic/vgic-its.c 		if (its->creadr == ITS_CMD_BUFFER_SIZE(its->cbaser))
its              1537 virt/kvm/arm/vgic/vgic-its.c 			its->creadr = 0;
its              1547 virt/kvm/arm/vgic/vgic-its.c static void vgic_mmio_write_its_cwriter(struct kvm *kvm, struct vgic_its *its,
its              1553 virt/kvm/arm/vgic/vgic-its.c 	if (!its)
its              1556 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->cmd_lock);
its              1558 virt/kvm/arm/vgic/vgic-its.c 	reg = update_64bit_reg(its->cwriter, addr & 7, len, val);
its              1560 virt/kvm/arm/vgic/vgic-its.c 	if (reg >= ITS_CMD_BUFFER_SIZE(its->cbaser)) {
its              1561 virt/kvm/arm/vgic/vgic-its.c 		mutex_unlock(&its->cmd_lock);
its              1564 virt/kvm/arm/vgic/vgic-its.c 	its->cwriter = reg;
its              1566 virt/kvm/arm/vgic/vgic-its.c 	vgic_its_process_commands(kvm, its);
its              1568 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->cmd_lock);
its              1572 virt/kvm/arm/vgic/vgic-its.c 						struct vgic_its *its,
its              1575 virt/kvm/arm/vgic/vgic-its.c 	return extract_bytes(its->cwriter, addr & 0x7, len);
its              1579 virt/kvm/arm/vgic/vgic-its.c 					       struct vgic_its *its,
its              1582 virt/kvm/arm/vgic/vgic-its.c 	return extract_bytes(its->creadr, addr & 0x7, len);
its              1586 virt/kvm/arm/vgic/vgic-its.c 					      struct vgic_its *its,
its              1593 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->cmd_lock);
its              1595 virt/kvm/arm/vgic/vgic-its.c 	if (its->enabled) {
its              1601 virt/kvm/arm/vgic/vgic-its.c 	if (cmd_offset >= ITS_CMD_BUFFER_SIZE(its->cbaser)) {
its              1606 virt/kvm/arm/vgic/vgic-its.c 	its->creadr = cmd_offset;
its              1608 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->cmd_lock);
its              1614 virt/kvm/arm/vgic/vgic-its.c 					      struct vgic_its *its,
its              1621 virt/kvm/arm/vgic/vgic-its.c 		reg = its->baser_device_table;
its              1624 virt/kvm/arm/vgic/vgic-its.c 		reg = its->baser_coll_table;
its              1636 virt/kvm/arm/vgic/vgic-its.c 				      struct vgic_its *its,
its              1640 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              1645 virt/kvm/arm/vgic/vgic-its.c 	if (its->enabled)
its              1650 virt/kvm/arm/vgic/vgic-its.c 		regptr = &its->baser_device_table;
its              1655 virt/kvm/arm/vgic/vgic-its.c 		regptr = &its->baser_coll_table;
its              1676 virt/kvm/arm/vgic/vgic-its.c 		mutex_lock(&its->its_lock);
its              1679 virt/kvm/arm/vgic/vgic-its.c 			vgic_its_free_device_list(kvm, its);
its              1682 virt/kvm/arm/vgic/vgic-its.c 			vgic_its_free_collection_list(kvm, its);
its              1685 virt/kvm/arm/vgic/vgic-its.c 		mutex_unlock(&its->its_lock);
its              1690 virt/kvm/arm/vgic/vgic-its.c 					     struct vgic_its *its,
its              1695 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->cmd_lock);
its              1696 virt/kvm/arm/vgic/vgic-its.c 	if (its->creadr == its->cwriter)
its              1698 virt/kvm/arm/vgic/vgic-its.c 	if (its->enabled)
its              1700 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->cmd_lock);
its              1705 virt/kvm/arm/vgic/vgic-its.c static void vgic_mmio_write_its_ctlr(struct kvm *kvm, struct vgic_its *its,
its              1709 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->cmd_lock);
its              1715 virt/kvm/arm/vgic/vgic-its.c 	if (!its->enabled && (val & GITS_CTLR_ENABLE) &&
its              1716 virt/kvm/arm/vgic/vgic-its.c 		(!(its->baser_device_table & GITS_BASER_VALID) ||
its              1717 virt/kvm/arm/vgic/vgic-its.c 		 !(its->baser_coll_table & GITS_BASER_VALID) ||
its              1718 virt/kvm/arm/vgic/vgic-its.c 		 !(its->cbaser & GITS_CBASER_VALID)))
its              1721 virt/kvm/arm/vgic/vgic-its.c 	its->enabled = !!(val & GITS_CTLR_ENABLE);
its              1722 virt/kvm/arm/vgic/vgic-its.c 	if (!its->enabled)
its              1729 virt/kvm/arm/vgic/vgic-its.c 	vgic_its_process_commands(kvm, its);
its              1732 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->cmd_lock);
its              1754 virt/kvm/arm/vgic/vgic-its.c static void its_mmio_write_wi(struct kvm *kvm, struct vgic_its *its,
its              1796 virt/kvm/arm/vgic/vgic-its.c static int vgic_register_its_iodev(struct kvm *kvm, struct vgic_its *its,
its              1799 virt/kvm/arm/vgic/vgic-its.c 	struct vgic_io_device *iodev = &its->iodev;
its              1803 virt/kvm/arm/vgic/vgic-its.c 	if (!IS_VGIC_ADDR_UNDEF(its->vgic_its_base)) {
its              1808 virt/kvm/arm/vgic/vgic-its.c 	its->vgic_its_base = addr;
its              1813 virt/kvm/arm/vgic/vgic-its.c 	iodev->base_addr = its->vgic_its_base;
its              1815 virt/kvm/arm/vgic/vgic-its.c 	iodev->its = its;
its              1878 virt/kvm/arm/vgic/vgic-its.c 	struct vgic_its *its;
its              1883 virt/kvm/arm/vgic/vgic-its.c 	its = kzalloc(sizeof(struct vgic_its), GFP_KERNEL);
its              1884 virt/kvm/arm/vgic/vgic-its.c 	if (!its)
its              1890 virt/kvm/arm/vgic/vgic-its.c 			kfree(its);
its              1897 virt/kvm/arm/vgic/vgic-its.c 	mutex_init(&its->its_lock);
its              1898 virt/kvm/arm/vgic/vgic-its.c 	mutex_init(&its->cmd_lock);
its              1900 virt/kvm/arm/vgic/vgic-its.c 	its->vgic_its_base = VGIC_ADDR_UNDEF;
its              1902 virt/kvm/arm/vgic/vgic-its.c 	INIT_LIST_HEAD(&its->device_list);
its              1903 virt/kvm/arm/vgic/vgic-its.c 	INIT_LIST_HEAD(&its->collection_list);
its              1907 virt/kvm/arm/vgic/vgic-its.c 	its->enabled = false;
its              1908 virt/kvm/arm/vgic/vgic-its.c 	its->dev = dev;
its              1910 virt/kvm/arm/vgic/vgic-its.c 	its->baser_device_table = INITIAL_BASER_VALUE			|
its              1912 virt/kvm/arm/vgic/vgic-its.c 	its->baser_coll_table = INITIAL_BASER_VALUE |
its              1916 virt/kvm/arm/vgic/vgic-its.c 	dev->private = its;
its              1918 virt/kvm/arm/vgic/vgic-its.c 	return vgic_its_set_abi(its, NR_ITS_ABIS - 1);
its              1924 virt/kvm/arm/vgic/vgic-its.c 	struct vgic_its *its = kvm_dev->private;
its              1926 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->its_lock);
its              1928 virt/kvm/arm/vgic/vgic-its.c 	vgic_its_free_device_list(kvm, its);
its              1929 virt/kvm/arm/vgic/vgic-its.c 	vgic_its_free_collection_list(kvm, its);
its              1931 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->its_lock);
its              1932 virt/kvm/arm/vgic/vgic-its.c 	kfree(its);
its              1962 virt/kvm/arm/vgic/vgic-its.c 	struct vgic_its *its;
its              1967 virt/kvm/arm/vgic/vgic-its.c 	its = dev->private;
its              1987 virt/kvm/arm/vgic/vgic-its.c 	if (IS_VGIC_ADDR_UNDEF(its->vgic_its_base)) {
its              2005 virt/kvm/arm/vgic/vgic-its.c 	addr = its->vgic_its_base + offset;
its              2011 virt/kvm/arm/vgic/vgic-its.c 			ret = region->uaccess_its_write(dev->kvm, its, addr,
its              2014 virt/kvm/arm/vgic/vgic-its.c 			region->its_write(dev->kvm, its, addr, len, *reg);
its              2016 virt/kvm/arm/vgic/vgic-its.c 		*reg = region->its_read(dev->kvm, its, addr, len);
its              2061 virt/kvm/arm/vgic/vgic-its.c typedef int (*entry_fn_t)(struct vgic_its *its, u32 id, void *entry,
its              2079 virt/kvm/arm/vgic/vgic-its.c static int scan_its_table(struct vgic_its *its, gpa_t base, int size, u32 esz,
its              2082 virt/kvm/arm/vgic/vgic-its.c 	struct kvm *kvm = its->dev->kvm;
its              2099 virt/kvm/arm/vgic/vgic-its.c 		next_offset = fn(its, id, entry, opaque);
its              2114 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_ite(struct vgic_its *its, struct its_device *dev,
its              2117 virt/kvm/arm/vgic/vgic-its.c 	struct kvm *kvm = its->dev->kvm;
its              2135 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_ite(struct vgic_its *its, u32 event_id,
its              2140 virt/kvm/arm/vgic/vgic-its.c 	struct kvm *kvm = its->dev->kvm;
its              2166 virt/kvm/arm/vgic/vgic-its.c 	collection = find_collection(its, coll_id);
its              2197 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_itt(struct vgic_its *its, struct its_device *device)
its              2199 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2219 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_save_ite(its, device, ite, gpa, ite_esz);
its              2234 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_itt(struct vgic_its *its, struct its_device *dev)
its              2236 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2242 virt/kvm/arm/vgic/vgic-its.c 	ret = scan_its_table(its, base, max_size, ite_esz, 0,
its              2259 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_dte(struct vgic_its *its, struct its_device *dev,
its              2262 virt/kvm/arm/vgic/vgic-its.c 	struct kvm *kvm = its->dev->kvm;
its              2267 virt/kvm/arm/vgic/vgic-its.c 	next_offset = compute_next_devid_offset(&its->device_list, dev);
its              2287 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_dte(struct vgic_its *its, u32 id,
its              2311 virt/kvm/arm/vgic/vgic-its.c 	dev = vgic_its_alloc_device(its, id, itt_addr, num_eventid_bits);
its              2315 virt/kvm/arm/vgic/vgic-its.c 	ret = vgic_its_restore_itt(its, dev);
its              2317 virt/kvm/arm/vgic/vgic-its.c 		vgic_its_free_device(its->dev->kvm, dev);
its              2343 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_device_tables(struct vgic_its *its)
its              2345 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2346 virt/kvm/arm/vgic/vgic-its.c 	u64 baser = its->baser_device_table;
its              2353 virt/kvm/arm/vgic/vgic-its.c 	list_sort(NULL, &its->device_list, vgic_its_device_cmp);
its              2355 virt/kvm/arm/vgic/vgic-its.c 	list_for_each_entry(dev, &its->device_list, dev_list) {
its              2359 virt/kvm/arm/vgic/vgic-its.c 		if (!vgic_its_check_id(its, baser,
its              2363 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_save_itt(its, dev);
its              2367 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_save_dte(its, dev, eaddr, dte_esz);
its              2386 virt/kvm/arm/vgic/vgic-its.c static int handle_l1_dte(struct vgic_its *its, u32 id, void *addr,
its              2389 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2403 virt/kvm/arm/vgic/vgic-its.c 	ret = scan_its_table(its, gpa, SZ_64K, dte_esz,
its              2413 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_device_tables(struct vgic_its *its)
its              2415 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2416 virt/kvm/arm/vgic/vgic-its.c 	u64 baser = its->baser_device_table;
its              2428 virt/kvm/arm/vgic/vgic-its.c 		ret = scan_its_table(its, l1_gpa, l1_tbl_size, l1_esz, 0,
its              2432 virt/kvm/arm/vgic/vgic-its.c 		ret = scan_its_table(its, l1_gpa, l1_tbl_size, l1_esz, 0,
its              2443 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_cte(struct vgic_its *its,
its              2453 virt/kvm/arm/vgic/vgic-its.c 	return kvm_write_guest_lock(its->dev->kvm, gpa, &val, esz);
its              2456 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_cte(struct vgic_its *its, gpa_t gpa, int esz)
its              2459 virt/kvm/arm/vgic/vgic-its.c 	struct kvm *kvm = its->dev->kvm;
its              2479 virt/kvm/arm/vgic/vgic-its.c 	collection = find_collection(its, coll_id);
its              2482 virt/kvm/arm/vgic/vgic-its.c 	ret = vgic_its_alloc_collection(its, &collection, coll_id);
its              2493 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_collection_table(struct vgic_its *its)
its              2495 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2496 virt/kvm/arm/vgic/vgic-its.c 	u64 baser = its->baser_coll_table;
its              2508 virt/kvm/arm/vgic/vgic-its.c 	list_for_each_entry(collection, &its->collection_list, coll_list) {
its              2509 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_save_cte(its, collection, gpa, cte_esz);
its              2525 virt/kvm/arm/vgic/vgic-its.c 	ret = kvm_write_guest_lock(its->dev->kvm, gpa, &val, cte_esz);
its              2534 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_collection_table(struct vgic_its *its)
its              2536 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2537 virt/kvm/arm/vgic/vgic-its.c 	u64 baser = its->baser_coll_table;
its              2551 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_its_restore_cte(its, gpa, cte_esz);
its              2568 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_save_tables_v0(struct vgic_its *its)
its              2572 virt/kvm/arm/vgic/vgic-its.c 	ret = vgic_its_save_device_tables(its);
its              2576 virt/kvm/arm/vgic/vgic-its.c 	return vgic_its_save_collection_table(its);
its              2584 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_restore_tables_v0(struct vgic_its *its)
its              2588 virt/kvm/arm/vgic/vgic-its.c 	ret = vgic_its_restore_collection_table(its);
its              2592 virt/kvm/arm/vgic/vgic-its.c 	return vgic_its_restore_device_tables(its);
its              2595 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_commit_v0(struct vgic_its *its)
its              2599 virt/kvm/arm/vgic/vgic-its.c 	abi = vgic_its_get_abi(its);
its              2600 virt/kvm/arm/vgic/vgic-its.c 	its->baser_coll_table &= ~GITS_BASER_ENTRY_SIZE_MASK;
its              2601 virt/kvm/arm/vgic/vgic-its.c 	its->baser_device_table &= ~GITS_BASER_ENTRY_SIZE_MASK;
its              2603 virt/kvm/arm/vgic/vgic-its.c 	its->baser_coll_table |= (GIC_ENCODE_SZ(abi->cte_esz, 5)
its              2606 virt/kvm/arm/vgic/vgic-its.c 	its->baser_device_table |= (GIC_ENCODE_SZ(abi->dte_esz, 5)
its              2611 virt/kvm/arm/vgic/vgic-its.c static void vgic_its_reset(struct kvm *kvm, struct vgic_its *its)
its              2614 virt/kvm/arm/vgic/vgic-its.c 	its->baser_coll_table &= ~GITS_BASER_VALID;
its              2615 virt/kvm/arm/vgic/vgic-its.c 	its->baser_device_table &= ~GITS_BASER_VALID;
its              2616 virt/kvm/arm/vgic/vgic-its.c 	its->cbaser = 0;
its              2617 virt/kvm/arm/vgic/vgic-its.c 	its->creadr = 0;
its              2618 virt/kvm/arm/vgic/vgic-its.c 	its->cwriter = 0;
its              2619 virt/kvm/arm/vgic/vgic-its.c 	its->enabled = 0;
its              2620 virt/kvm/arm/vgic/vgic-its.c 	vgic_its_free_device_list(kvm, its);
its              2621 virt/kvm/arm/vgic/vgic-its.c 	vgic_its_free_collection_list(kvm, its);
its              2652 virt/kvm/arm/vgic/vgic-its.c static int vgic_its_ctrl(struct kvm *kvm, struct vgic_its *its, u64 attr)
its              2654 virt/kvm/arm/vgic/vgic-its.c 	const struct vgic_its_abi *abi = vgic_its_get_abi(its);
its              2661 virt/kvm/arm/vgic/vgic-its.c 	mutex_lock(&its->its_lock);
its              2664 virt/kvm/arm/vgic/vgic-its.c 		mutex_unlock(&its->its_lock);
its              2671 virt/kvm/arm/vgic/vgic-its.c 		vgic_its_reset(kvm, its);
its              2674 virt/kvm/arm/vgic/vgic-its.c 		ret = abi->save_tables(its);
its              2677 virt/kvm/arm/vgic/vgic-its.c 		ret = abi->restore_tables(its);
its              2682 virt/kvm/arm/vgic/vgic-its.c 	mutex_unlock(&its->its_lock);
its              2690 virt/kvm/arm/vgic/vgic-its.c 	struct vgic_its *its = dev->private;
its              2705 virt/kvm/arm/vgic/vgic-its.c 		ret = vgic_check_ioaddr(dev->kvm, &its->vgic_its_base,
its              2710 virt/kvm/arm/vgic/vgic-its.c 		return vgic_register_its_iodev(dev->kvm, its, addr);
its              2713 virt/kvm/arm/vgic/vgic-its.c 		return vgic_its_ctrl(dev->kvm, its, attr->attr);
its              2732 virt/kvm/arm/vgic/vgic-its.c 		struct vgic_its *its = dev->private;
its              2733 virt/kvm/arm/vgic/vgic-its.c 		u64 addr = its->vgic_its_base;
its               877 virt/kvm/arm/vgic/vgic-mmio.c 		data = region->its_read(vcpu->kvm, iodev->its, addr, len);
its               907 virt/kvm/arm/vgic/vgic-mmio.c 		region->its_write(vcpu->kvm, iodev->its, addr, len, data);
its                16 virt/kvm/arm/vgic/vgic-mmio.h 		unsigned long (*its_read)(struct kvm *kvm, struct vgic_its *its,
its                22 virt/kvm/arm/vgic/vgic-mmio.h 		void (*its_write)(struct kvm *kvm, struct vgic_its *its,
its                31 virt/kvm/arm/vgic/vgic-mmio.h 		int (*uaccess_its_write)(struct kvm *kvm, struct vgic_its *its,
its               251 virt/kvm/arm/vgic/vgic-v4.c 	struct vgic_its *its;
its               263 virt/kvm/arm/vgic/vgic-v4.c 	its = vgic_get_its(kvm, irq_entry);
its               264 virt/kvm/arm/vgic/vgic-v4.c 	if (IS_ERR(its))
its               267 virt/kvm/arm/vgic/vgic-v4.c 	mutex_lock(&its->its_lock);
its               270 virt/kvm/arm/vgic/vgic-v4.c 	ret = vgic_its_resolve_lpi(kvm, its, irq_entry->msi.devid,
its               299 virt/kvm/arm/vgic/vgic-v4.c 	mutex_unlock(&its->its_lock);
its               306 virt/kvm/arm/vgic/vgic-v4.c 	struct vgic_its *its;
its               317 virt/kvm/arm/vgic/vgic-v4.c 	its = vgic_get_its(kvm, irq_entry);
its               318 virt/kvm/arm/vgic/vgic-v4.c 	if (IS_ERR(its))
its               321 virt/kvm/arm/vgic/vgic-v4.c 	mutex_lock(&its->its_lock);
its               323 virt/kvm/arm/vgic/vgic-v4.c 	ret = vgic_its_resolve_lpi(kvm, its, irq_entry->msi.devid,
its               335 virt/kvm/arm/vgic/vgic-v4.c 	mutex_unlock(&its->its_lock);
its               308 virt/kvm/arm/vgic/vgic.h int vgic_its_resolve_lpi(struct kvm *kvm, struct vgic_its *its,