blob: 20a59be7a45bca35ba6057766a3c523c98b43b29 [file] [log] [blame]
// BUG: workqueue lockup
// https://syzkaller.appspot.com/bug?id=c71be6415ea3c5aaf723eeb40b7f0b5ae59d8387
// status:open
// autogenerated by syzkaller (https://github.com/google/syzkaller)
#define _GNU_SOURCE
#include <endian.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <unistd.h>
uint64_t r[1] = {0xffffffffffffffff};
int main(void)
{
syscall(__NR_mmap, 0x20000000, 0x1000000, 3, 0x32, -1, 0);
long res = 0;
memcpy((void*)0x20000000, "/dev/rtc0", 10);
res = syscall(__NR_openat, 0xffffffffffffff9c, 0x20000000, 0x60400, 0);
if (res != -1)
r[0] = res;
syscall(__NR_ioctl, r[0], 0x7003);
*(uint32_t*)0x20000080 = 0;
*(uint32_t*)0x20000084 = 0;
*(uint32_t*)0x20000088 = 6;
*(uint32_t*)0x2000008c = 8;
*(uint32_t*)0x20000090 = 0;
*(uint32_t*)0x20000094 = 0xa9;
*(uint32_t*)0x20000098 = 0;
*(uint32_t*)0x2000009c = 0;
*(uint32_t*)0x200000a0 = 0;
syscall(__NR_ioctl, r[0], 0x4024700a, 0x20000080);
return 0;
}