github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/test/dev_iommu (about)

     1  r0 = openat$iommufd(0xffffffffffffff9c, &AUTO='/dev/iommu\x00', 0x0, 0x0)
     2  
     3  ioctl$IOMMU_IOAS_ALLOC(r0, 0x3b81, &AUTO={0xc, 0x0, <r1=>0x0})
     4  
     5  ioctl$IOMMU_IOAS_IOVA_RANGES(r0, 0x3b84, &AUTO={0x20, r1, 0x2, 0x0, &AUTO=[{0x0,0x0},{0x0,0x0}], 0x0})
     6  ioctl$IOMMU_IOAS_ALLOW_IOVAS(r0, 0x3b82, &AUTO={0x20, r1, 0x2, 0x0, &AUTO=[{0x0,0x1},{0x3,0x5}]})
     7  
     8  ioctl$IOMMU_IOAS_MAP(r0, 0x3b85, &AUTO={0x28, 0x7, r1, 0x0, &AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x1c, 0x1c})
     9  ioctl$IOMMU_IOAS_UNMAP$ALL(r0, 0x3b86, &AUTO={0x18, r1, 0, 0xFFFFFFFFFFFFFFFF})
    10  
    11  ioctl$IOMMU_IOAS_MAP(r0, 0x3b85, &AUTO={0x28, 0x7, r1, 0x0, &AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x1c, 0x2})
    12  ioctl$IOMMU_IOAS_UNMAP(r0, 0x3b86, &AUTO={0x18, r1, 0x2, 0x1c})
    13  
    14  ioctl$IOMMU_IOAS_MAP$PAGES(r0, 0x3b85, &AUTO={0x28, 0x7, r1, 0x0, &(0x7f0000ffc000/0x1000)=nil, 0x1000, 0x0})
    15  ioctl$IOMMU_IOAS_UNMAP$ALL(r0, 0x3b86, &AUTO={0x18, r1, 0, 0xFFFFFFFFFFFFFFFF})
    16  
    17  ioctl$IOMMU_IOAS_ALLOC(r0, 0x3b81, &AUTO={0xc, 0x0, <r2=>0x0})
    18  ioctl$IOMMU_IOAS_MAP(r0, 0x3b85, &AUTO={0x28, 0x7, r1, 0x0, &AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x1c, 0x2})
    19  ioctl$IOMMU_IOAS_COPY(r0, 0x3b83, &AUTO={0x28, 0x7, r2, r1, 0x1c, 0x3, 0x2})
    20  ioctl$IOMMU_IOAS_UNMAP(r0, 0x3b86, &AUTO={0x18, r2, 0x3, 0x1c})
    21  ioctl$IOMMU_DESTROY$ioas(r0, 0x3b80, &AUTO={0x8, r2})
    22  ioctl$IOMMU_IOAS_UNMAP$ALL(r0, 0x3b86, &AUTO={0x18, r1, 0, 0xFFFFFFFFFFFFFFFF})
    23  
    24  ioctl$IOMMU_OPTION$IOMMU_OPTION_RLIMIT_MODE(r0, 0x3b87, &AUTO={0x18, 0x0, 0x1, 0x0, 0x0, 0x0})
    25  ioctl$IOMMU_OPTION$IOMMU_OPTION_HUGE_PAGES(r0, 0x3b87, &AUTO={0x18, 0x1, 0x1, 0x0, r1, 0x0})
    26  
    27  ioctl$IOMMU_VFIO_IOAS$SET(r0, 0x3b88, &AUTO={0xc, r1, 0x1, 0x0})
    28  ioctl$IOMMU_VFIO_IOAS$GET(r0, 0x3b88, &AUTO={0xc, 0x0, 0x0, 0x0})
    29  ioctl$IOMMU_VFIO_IOAS$CLEAR(r0, 0x3b88, &AUTO={0xc, 0x0, 0x2, 0x0})
    30  
    31  ioctl$IOMMU_IOAS_ALLOW_IOVAS(r0, 0x3b82, &AUTO={0x20, r1, 0x0, 0x0, &AUTO=[]})
    32  
    33  ioctl$IOMMU_VFIO_IOAS$SET(r0, 0x3b88, &AUTO={0xc, r1, 0x1, 0x0})
    34  ioctl$IOMMU_VFIO_GET_API_VERSION(r0, 0x3b64)
    35  ioctl$IOMMU_VFIO_SET_IOMMU(r0, 0x3b66, 0x3)
    36  ioctl$IOMMU_VFIO_CHECK_EXTENSION(r0, 0x3b65, 0x9)
    37  ioctl$IOMMU_VFIO_IOMMU_GET_INFO(r0, 0x3b70, &AUTO={0x70, 0x0, 0x0, 0x0, {{0x0, 0x0, 0x0}, 0x0}, {{0x0, 0x0, 0x0}, 0x0, 0x0, [{0x0, 0x0}]}})
    38  ioctl$IOMMU_VFIO_IOMMU_MAP_DMA(r0, 0x3b71, &AUTO={0x20, 0x0, &AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x1c, 0x1c})
    39  ioctl$IOMMU_VFIO_IOMMU_UNMAP_DMA(r0, 0x3b72, &AUTO={0x18, 0x0, 0x1c, 0x1c, ''})
    40  ioctl$IOMMU_IOAS_UNMAP$ALL(r0, 0x3b86, &AUTO={0x18, r1, 0, 0xFFFFFFFFFFFFFFFF})
    41  
    42  ioctl$IOMMU_TEST_OP_ADD_RESERVED(r0, 0x3ba0, &AUTO={0x48, 0x1, r1, 0x0, 0x1000, 0x2000})
    43  
    44  ioctl$IOMMU_TEST_OP_MOCK_DOMAIN(r0, 0x3ba0, &AUTO={0x48, 0x2, r1, 0x0, <r4=>0x0, <r3=>0x0, <r2=>0x0})
    45  ioctl$IOMMU_IOAS_MAP$PAGES(r0, 0x3b85, &AUTO={0x28, 0x7, r1, 0x0, &(0x7f0000ffc000/0x1000)=nil, 0x1000, 0x1004000})
    46  ioctl$IOMMU_TEST_OP_MD_CHECK_MAP(r0, 0x3ba0, &AUTO={0x48, 0x3, r3, 0x0, 0x1004000, 0x1000, &(0x7f0000ffc000/0x1000)})
    47  ioctl$IOMMU_TEST_OP_MD_CHECK_REFS(r0, 0x3ba0, &AUTO={0x48, 0x4, 0x0, 0x0, 0x1000, &(0x7f0000ffc000/0x1000), 0x1})
    48  ioctl$IOMMU_IOAS_UNMAP(r0, 0x3b86, &AUTO={0x18, r1, 0x1000, 0x1004000})
    49  ioctl$IOMMU_DESTROY$stdev(r0, 0x3b80, &AUTO={0x8, r4})
    50  
    51  ioctl$IOMMU_TEST_OP_CREATE_ACCESS(r0, 0x3ba0, &AUTO={0x48, 0x5, r1, 0x0, <r2=>0x0, 0x1})
    52  ioctl$IOMMU_IOAS_MAP(r0, 0x3b85, &AUTO={0x28, 0x7, r1, 0x0, &(0x7f00000a0000)='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x1000, 0x0})
    53  ioctl$IOMMU_TEST_OP_ACCESS_PAGES(r0, 0x3ba0, &AUTO={0x48, 0x7, r2, 0x0, 0x0, <r3=>0x0, 0x0, 0x1000, 0x0})
    54  ioctl$IOMMU_TEST_OP_ACCESS_RW(r0, 0x3ba0, &AUTO={0x48, 0x8, r2, 0x0, 0x0, 0x10, &AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x0})
    55  ioctl$IOMMU_TEST_OP_DESTROY_ACCESS_PAGES(r0, 0x3ba0, &AUTO={0x48, 0x6, r2, 0x0, r3})
    56  ioctl$IOMMU_IOAS_UNMAP$ALL(r0, 0x3b86, &AUTO={0x18, r1, 0, 0xFFFFFFFFFFFFFFFF})
    57  close(r2)
    58  
    59  ioctl$IOMMU_TEST_OP_MOCK_DOMAIN(r0, 0x3ba0, &AUTO={0x48, 0x2, r1, 0x0, <r4=>0x0, <r3=>0x0, <r2=>0x0})
    60  ioctl$IOMMU_HWPT_ALLOC$NONE(r0, 0x3b89,  &AUTO={0x28, 0x1, r2, r1, <r3=>0x0, 0x0, 0x0, 0x0, &AUTO=''})
    61  ioctl$IOMMU_HWPT_ALLOC$TEST(r0, 0x3b89,  &AUTO={0x28, 0, r2, r3, <r5=>0x0, 0x0, 0xdead, 0x4, &AUTO={0xbadbeef}})
    62  ioctl$IOMMU_HWPT_INVALIDATE$TEST(r0, 0x3b8d, &AUTO={0x20, r5, &AUTO=[{0x0, 0x0}], 0xdeadbeef, 0x8, 0x1, 0x0})
    63  ioctl$IOMMU_DESTROY$hwpt(r0, 0x3b80, &AUTO={0x8, r5})
    64  ioctl$IOMMU_DESTROY$hwpt(r0, 0x3b80, &AUTO={0x8, r3})
    65  ioctl$IOMMU_GET_HW_INFO(r0, 0x3b8a, &AUTO={0x24, 0x0, r2, 0x1c, &AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x0, 0x0, 0x0})
    66  ioctl$IOMMU_DESTROY$stdev(r0, 0x3b80, &AUTO={0x8, r4})
    67  
    68  ioctl$IOMMU_TEST_OP_MOCK_DOMAIN(r0, 0x3ba0, &AUTO={0x48, 0x2, r1, 0x0, <r4=>0x0, <r3=>0x0, <r2=>0x0})
    69  ioctl$IOMMU_HWPT_ALLOC$NONE(r0, 0x3b89,  &AUTO={0x28, 0x2, r2, r1, <r3=>0x0, 0x0, 0x0, 0x0, &AUTO=''})
    70  ioctl$IOMMU_HWPT_SET_DIRTY_TRACKING(r0, 0x3b8b, &AUTO={0x16, 0x1, r3, 0x0})
    71  ioctl$IOMMU_HWPT_GET_DIRTY_BITMAP(r0, 0x3b8c, &AUTO={0x30, r3, 0x0, 0x0, 0x0, 0x1000, 0x1000, &AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL'})
    72  ioctl$IOMMU_DESTROY$hwpt(r0, 0x3b80, &AUTO={0x8, r3})
    73  ioctl$IOMMU_DESTROY$stdev(r0, 0x3b80, &AUTO={0x8, r4})
    74  ioctl$IOMMU_IOAS_UNMAP$ALL(r0, 0x3b86, &AUTO={0x18, r1, 0, 0xFFFFFFFFFFFFFFFF})
    75  
    76  ioctl$IOMMU_TEST_OP_SET_TEMP_MEMORY_LIMIT(r0, 0x3ba0, &AUTO={0x48, 0x9, 0x0, 0x0, 0x10})
    77  
    78  ioctl$IOMMU_DESTROY$ioas(r0, 0x3b80, &AUTO={0x8, r1})
    79  
    80  close(r0)