CC: [email protected] CC: [email protected] TO: Will Deacon <[email protected]>
Hi Will, First bad commit (maybe != root cause): tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: a0d54b4f5b219fb31f0776e9f53aa137e78ae431 commit: e86d1aa8b60f7ea18d36f50296d7d20eb2852e7e iommu/arm-smmu: Move Arm SMMU drivers into their own subdirectory date: 6 months ago :::::: branch date: 15 hours ago :::::: commit date: 6 months ago config: arm64-randconfig-m031-20210112 (attached as .config) compiler: aarch64-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/iommu/arm/arm-smmu/arm-smmu.c:682 arm_smmu_init_domain_context() warn: missing error code 'ret' drivers/iommu/arm/arm-smmu/arm-smmu.c:1843 arm_smmu_device_cfg_probe() warn: should '2 * size << smmu->pgshift' be a 64 bit type? vim +/ret +682 drivers/iommu/arm/arm-smmu/arm-smmu.c 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 662 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 663 static int arm_smmu_init_domain_context(struct iommu_domain *domain, 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 664 struct arm_smmu_device *smmu) 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 665 { a18037b27ebd23ed drivers/iommu/arm-smmu.c Mitchel Humpherys 2014-07-30 666 int irq, start, ret = 0; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 667 unsigned long ias, oas; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 668 struct io_pgtable_ops *pgtbl_ops; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 669 struct io_pgtable_cfg pgtbl_cfg; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 670 enum io_pgtable_fmt fmt; 1d672638fca24db2 drivers/iommu/arm-smmu.c Joerg Roedel 2015-03-26 671 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 672 struct arm_smmu_cfg *cfg = &smmu_domain->cfg; aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 673 irqreturn_t (*context_fault)(int irq, void *dev); 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 674 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 675 mutex_lock(&smmu_domain->init_mutex); a18037b27ebd23ed drivers/iommu/arm-smmu.c Mitchel Humpherys 2014-07-30 676 if (smmu_domain->smmu) a18037b27ebd23ed drivers/iommu/arm-smmu.c Mitchel Humpherys 2014-07-30 677 goto out_unlock; a18037b27ebd23ed drivers/iommu/arm-smmu.c Mitchel Humpherys 2014-07-30 678 61bc671179f19060 drivers/iommu/arm-smmu.c Will Deacon 2017-01-06 679 if (domain->type == IOMMU_DOMAIN_IDENTITY) { 61bc671179f19060 drivers/iommu/arm-smmu.c Will Deacon 2017-01-06 680 smmu_domain->stage = ARM_SMMU_DOMAIN_BYPASS; 61bc671179f19060 drivers/iommu/arm-smmu.c Will Deacon 2017-01-06 681 smmu_domain->smmu = smmu; 61bc671179f19060 drivers/iommu/arm-smmu.c Will Deacon 2017-01-06 @682 goto out_unlock; 61bc671179f19060 drivers/iommu/arm-smmu.c Will Deacon 2017-01-06 683 } 61bc671179f19060 drivers/iommu/arm-smmu.c Will Deacon 2017-01-06 684 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 685 /* c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 686 * Mapping the requested stage onto what we support is surprisingly c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 687 * complicated, mainly because the spec allows S1+S2 SMMUs without c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 688 * support for nested translation. That means we end up with the c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 689 * following table: c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 690 * c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 691 * Requested Supported Actual c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 692 * S1 N S1 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 693 * S1 S1+S2 S1 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 694 * S1 S2 S2 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 695 * S1 S1 S1 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 696 * N N N c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 697 * N S1+S2 S2 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 698 * N S2 S2 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 699 * N S1 S1 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 700 * c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 701 * Note that you can't actually request stage-2 mappings. 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 702 */ c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 703 if (!(smmu->features & ARM_SMMU_FEAT_TRANS_S1)) c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 704 smmu_domain->stage = ARM_SMMU_DOMAIN_S2; c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 705 if (!(smmu->features & ARM_SMMU_FEAT_TRANS_S2)) c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 706 smmu_domain->stage = ARM_SMMU_DOMAIN_S1; c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 707 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 708 /* 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 709 * Choosing a suitable context format is even more fiddly. Until we 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 710 * grow some way for the caller to express a preference, and/or move 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 711 * the decision into the io-pgtable code where it arguably belongs, 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 712 * just aim for the closest thing to the rest of the system, and hope 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 713 * that the hardware isn't esoteric enough that we can't assume AArch64 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 714 * support to be a superset of AArch32 support... 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 715 */ 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 716 if (smmu->features & ARM_SMMU_FEAT_FMT_AARCH32_L) 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 717 cfg->fmt = ARM_SMMU_CTX_FMT_AARCH32_L; 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 718 if (IS_ENABLED(CONFIG_IOMMU_IO_PGTABLE_ARMV7S) && 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 719 !IS_ENABLED(CONFIG_64BIT) && !IS_ENABLED(CONFIG_ARM_LPAE) && 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 720 (smmu->features & ARM_SMMU_FEAT_FMT_AARCH32_S) && 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 721 (smmu_domain->stage == ARM_SMMU_DOMAIN_S1)) 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 722 cfg->fmt = ARM_SMMU_CTX_FMT_AARCH32_S; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 723 if ((IS_ENABLED(CONFIG_64BIT) || cfg->fmt == ARM_SMMU_CTX_FMT_NONE) && 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 724 (smmu->features & (ARM_SMMU_FEAT_FMT_AARCH64_64K | 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 725 ARM_SMMU_FEAT_FMT_AARCH64_16K | 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 726 ARM_SMMU_FEAT_FMT_AARCH64_4K))) 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 727 cfg->fmt = ARM_SMMU_CTX_FMT_AARCH64; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 728 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 729 if (cfg->fmt == ARM_SMMU_CTX_FMT_NONE) { 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 730 ret = -EINVAL; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 731 goto out_unlock; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 732 } 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 733 c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 734 switch (smmu_domain->stage) { c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 735 case ARM_SMMU_DOMAIN_S1: 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 736 cfg->cbar = CBAR_TYPE_S1_TRANS_S2_BYPASS; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 737 start = smmu->num_s2_context_banks; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 738 ias = smmu->va_size; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 739 oas = smmu->ipa_size; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 740 if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH64) { 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 741 fmt = ARM_64_LPAE_S1; 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 742 } else if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH32_L) { 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 743 fmt = ARM_32_LPAE_S1; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 744 ias = min(ias, 32UL); 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 745 oas = min(oas, 40UL); 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 746 } else { 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 747 fmt = ARM_V7S; 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 748 ias = min(ias, 32UL); 6070529bebd26e0a drivers/iommu/arm-smmu.c Robin Murphy 2016-08-11 749 oas = min(oas, 32UL); 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 750 } abfd6fe0cd535d31 drivers/iommu/arm-smmu.c Will Deacon 2019-07-02 751 smmu_domain->flush_ops = &arm_smmu_s1_tlb_ops; c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 752 break; c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 753 case ARM_SMMU_DOMAIN_NESTED: c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 754 /* c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 755 * We will likely want to change this if/when KVM gets c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 756 * involved. c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 757 */ c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 758 case ARM_SMMU_DOMAIN_S2: 9c5c92e35cf5c4f7 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 759 cfg->cbar = CBAR_TYPE_S2_TRANS; 9c5c92e35cf5c4f7 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 760 start = 0; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 761 ias = smmu->ipa_size; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 762 oas = smmu->pa_size; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 763 if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH64) { 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 764 fmt = ARM_64_LPAE_S2; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 765 } else { 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 766 fmt = ARM_32_LPAE_S2; 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 767 ias = min(ias, 40UL); 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 768 oas = min(oas, 40UL); 7602b8710645da48 drivers/iommu/arm-smmu.c Robin Murphy 2016-04-28 769 } 11febfca2419652f drivers/iommu/arm-smmu.c Robin Murphy 2017-03-30 770 if (smmu->version == ARM_SMMU_V2) abfd6fe0cd535d31 drivers/iommu/arm-smmu.c Will Deacon 2019-07-02 771 smmu_domain->flush_ops = &arm_smmu_s2_tlb_ops_v2; 11febfca2419652f drivers/iommu/arm-smmu.c Robin Murphy 2017-03-30 772 else abfd6fe0cd535d31 drivers/iommu/arm-smmu.c Will Deacon 2019-07-02 773 smmu_domain->flush_ops = &arm_smmu_s2_tlb_ops_v1; c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 774 break; c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 775 default: c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 776 ret = -EINVAL; c752ce45b213de85 drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 777 goto out_unlock; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 778 } 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 779 ret = __arm_smmu_alloc_bitmap(smmu->context_map, start, 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 780 smmu->num_context_banks); 287980e49ffc0f6d drivers/iommu/arm-smmu.c Arnd Bergmann 2016-05-27 781 if (ret < 0) a18037b27ebd23ed drivers/iommu/arm-smmu.c Mitchel Humpherys 2014-07-30 782 goto out_unlock; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 783 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 784 cfg->cbndx = ret; b7862e3559f9ab4a drivers/iommu/arm-smmu.c Robin Murphy 2016-04-13 785 if (smmu->version < ARM_SMMU_V2) { 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 786 cfg->irptndx = atomic_inc_return(&smmu->irptndx); 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 787 cfg->irptndx %= smmu->num_context_irqs; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 788 } else { 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 789 cfg->irptndx = cfg->cbndx; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 790 } 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 791 280b683ceaceb750 drivers/iommu/arm-smmu.c Robin Murphy 2017-03-30 792 if (smmu_domain->stage == ARM_SMMU_DOMAIN_S2) ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 793 cfg->vmid = cfg->cbndx + 1; 280b683ceaceb750 drivers/iommu/arm-smmu.c Robin Murphy 2017-03-30 794 else ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 795 cfg->asid = cfg->cbndx; ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 796 ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 797 smmu_domain->smmu = smmu; ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 798 if (smmu->impl && smmu->impl->init_context) { ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 799 ret = smmu->impl->init_context(smmu_domain); ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 800 if (ret) ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 801 goto out_unlock; ba7e4a08bbf74416 drivers/iommu/arm-smmu.c Robin Murphy 2019-08-15 802 } 280b683ceaceb750 drivers/iommu/arm-smmu.c Robin Murphy 2017-03-30 803 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 804 pgtbl_cfg = (struct io_pgtable_cfg) { d546635731317a5f drivers/iommu/arm-smmu.c Robin Murphy 2016-05-09 805 .pgsize_bitmap = smmu->pgsize_bitmap, 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 806 .ias = ias, 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 807 .oas = oas, 4f41845b340783ea drivers/iommu/arm-smmu.c Will Deacon 2019-06-25 808 .coherent_walk = smmu->features & ARM_SMMU_FEAT_COHERENT_WALK, 696bcfb709862077 drivers/iommu/arm-smmu.c Robin Murphy 2019-09-18 809 .tlb = smmu_domain->flush_ops, 2df7a25ce4a79092 drivers/iommu/arm-smmu.c Robin Murphy 2015-07-29 810 .iommu_dev = smmu->dev, 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 811 }; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 812 44f6876a00e83df5 drivers/iommu/arm-smmu.c Robin Murphy 2018-09-20 813 if (smmu_domain->non_strict) 44f6876a00e83df5 drivers/iommu/arm-smmu.c Robin Murphy 2018-09-20 814 pgtbl_cfg.quirks |= IO_PGTABLE_QUIRK_NON_STRICT; 44f6876a00e83df5 drivers/iommu/arm-smmu.c Robin Murphy 2018-09-20 815 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 816 pgtbl_ops = alloc_io_pgtable_ops(fmt, &pgtbl_cfg, smmu_domain); 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 817 if (!pgtbl_ops) { 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 818 ret = -ENOMEM; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 819 goto out_clear_smmu; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 820 } 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 821 d546635731317a5f drivers/iommu/arm-smmu.c Robin Murphy 2016-05-09 822 /* Update the domain's page sizes to reflect the page table format */ d546635731317a5f drivers/iommu/arm-smmu.c Robin Murphy 2016-05-09 823 domain->pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; 455eb7d34ad11b09 drivers/iommu/arm-smmu.c Robin Murphy 2016-09-12 824 domain->geometry.aperture_end = (1UL << ias) - 1; 455eb7d34ad11b09 drivers/iommu/arm-smmu.c Robin Murphy 2016-09-12 825 domain->geometry.force_aperture = true; 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 826 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 827 /* Initialise the context bank with our page table cfg */ 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 828 arm_smmu_init_context_bank(smmu_domain, &pgtbl_cfg); 90df373cc62e527b drivers/iommu/arm-smmu.c Robin Murphy 2017-08-08 829 arm_smmu_write_context_bank(smmu, cfg->cbndx); a18037b27ebd23ed drivers/iommu/arm-smmu.c Mitchel Humpherys 2014-07-30 830 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 831 /* 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 832 * Request context fault interrupt. Do this last to avoid the 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 833 * handler seeing a half-initialised domain state. 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 834 */ 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 835 irq = smmu->irqs[smmu->num_global_irqs + cfg->irptndx]; aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 836 aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 837 if (smmu->impl && smmu->impl->context_fault) aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 838 context_fault = smmu->impl->context_fault; aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 839 else aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 840 context_fault = arm_smmu_context_fault; aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 841 aa7ec73297df57a8 drivers/iommu/arm-smmu.c Krishna Reddy 2020-07-18 842 ret = devm_request_irq(smmu->dev, irq, context_fault, bee140044579fbfd drivers/iommu/arm-smmu.c Peng Fan 2016-07-04 843 IRQF_SHARED, "arm-smmu-context-fault", domain); 287980e49ffc0f6d drivers/iommu/arm-smmu.c Arnd Bergmann 2016-05-27 844 if (ret < 0) { 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 845 dev_err(smmu->dev, "failed to request context IRQ %d (%u)\n", 44680eedf9409daf drivers/iommu/arm-smmu.c Will Deacon 2014-06-25 846 cfg->irptndx, irq); fba6e960772b7b68 drivers/iommu/arm-smmu.c Will Deacon 2020-01-10 847 cfg->irptndx = ARM_SMMU_INVALID_IRPTNDX; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 848 } 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 849 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 850 mutex_unlock(&smmu_domain->init_mutex); 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 851 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 852 /* Publish page table ops for map/unmap */ 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 853 smmu_domain->pgtbl_ops = pgtbl_ops; a9a1b0b53d8b7ca6 drivers/iommu/arm-smmu.c Will Deacon 2014-05-01 854 return 0; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 855 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 856 out_clear_smmu: 6db7bfb431220d78 drivers/iommu/arm-smmu.c Liu Xiang 2019-09-16 857 __arm_smmu_free_bitmap(smmu->context_map, cfg->cbndx); 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 858 smmu_domain->smmu = NULL; a18037b27ebd23ed drivers/iommu/arm-smmu.c Mitchel Humpherys 2014-07-30 859 out_unlock: 518f7136244c1675 drivers/iommu/arm-smmu.c Will Deacon 2014-11-14 860 mutex_unlock(&smmu_domain->init_mutex); 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 861 return ret; 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 862 } 45ae7cff3684ab45 drivers/iommu/arm-smmu.c Will Deacon 2013-06-24 863 :::::: The code at line 682 was first introduced by commit :::::: 61bc671179f19060be883068b6d3d82ae0b24bc0 iommu/arm-smmu: Install bypass S2CRs for IOMMU_DOMAIN_IDENTITY domains :::::: TO: Will Deacon <[email protected]> :::::: CC: Will Deacon <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
