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,