Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vc4: NULL pointer dereference in 4.9.51-v7+ #114

Closed
mattyway opened this issue Sep 29, 2017 · 7 comments
Closed

vc4: NULL pointer dereference in 4.9.51-v7+ #114

mattyway opened this issue Sep 29, 2017 · 7 comments

Comments

@mattyway
Copy link

I'm trying to use the VC4 driver on a Raspberry Pi 3. I have updated the kernel via rpi-update and installed the snapd package, but otherwise it should be a regular Raspbian image.

After enabling the driver via raspi-config and rebooting, it seems to be crashing on a NULL pointer dereference. It does reboot successfully sometimes, but a second reboot will trigger the same crash.

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.51-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #1036 SMP Fri Sep 22 19:49:07 BST 2017
[    0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: Raspberry Pi 3 Model B Rev 1.2
[    0.000000] cma: Reserved 256 MiB at 0x1ec00000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] percpu: Embedded 14 pages/cpu @b7754000 s25600 r8192 d23552 u57344
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 227360
[    0.000000] Kernel command line: 8250.nr_uarts=1 cma=256M bcm2708_fb.fbwidth=1280 bcm2708_fb.fbheight=800 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=PARTUUID=d3646955-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 633128K/917504K available (7168K kernel code, 484K rwdata, 2012K rodata, 1024K init, 778K bss, 22232K reserved, 262144K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xb8800000 - 0xff800000   (1136 MB)
[    0.000000]     lowmem  : 0x80000000 - 0xb8000000   ( 896 MB)
[    0.000000]     modules : 0x7f000000 - 0x80000000   (  16 MB)
[    0.000000]       .text : 0x80008000 - 0x80800000   (8160 kB)
[    0.000000]       .init : 0x80b00000 - 0x80c00000   (1024 kB)
[    0.000000]       .data : 0x80c00000 - 0x80c79034   ( 485 kB)
[    0.000000]        .bss : 0x80c7b000 - 0x80d3daa4   ( 779 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000007] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000023] Switching to timer-based delay loop, resolution 52ns
[    0.000304] Console: colour dummy device 80x30
[    0.001216] console [tty1] enabled
[    0.001265] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[    0.001334] pid_max: default: 32768 minimum: 301
[    0.001667] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001709] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.002750] Disabling memory control group subsystem
[    0.002854] CPU: Testing write buffer coherency: ok
[    0.002919] ftrace: allocating 22401 entries in 66 pages
[    0.049827] CPU0: update cpu_capacity 1024
[    0.049879] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.049941] Setting up static identity map for 0x100000 - 0x100034
[    0.051853] CPU1: update cpu_capacity 1024
[    0.051859] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.052551] CPU2: update cpu_capacity 1024
[    0.052557] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.053236] CPU3: update cpu_capacity 1024
[    0.053243] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.053330] Brought up 4 CPUs
[    0.053505] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[    0.053535] CPU: All CPU(s) started in HYP mode.
[    0.053561] CPU: Virtualization extensions available.
[    0.054381] devtmpfs: initialized
[    0.065764] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[    0.066079] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.066142] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.076725] pinctrl core: initialized pinctrl subsystem
[    0.077762] NET: Registered protocol family 16
[    0.080162] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.089024] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.089074] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.089250] Serial: AMBA PL011 UART driver
[    0.091301] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    0.091861] uart-pl011 3f201000.serial: could not find pctldev for node /soc/gpio@7e200000/uart0_pins, deferring probe
[    0.092219] irq: no irq domain found for /soc/aux@0x7e215000 !
[    0.160782] bcm2835-dma 3f007000.dma: DMA legacy API manager at b880f000, dmachans=0x1
[    0.162656] SCSI subsystem initialized
[    0.162837] usbcore: registered new interface driver usbfs
[    0.162941] usbcore: registered new interface driver hub
[    0.163062] usbcore: registered new device driver usb
[    0.169701] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-09-22 19:50
[    0.171159] clocksource: Switched to clocksource arch_sys_counter
[    0.218418] VFS: Disk quotas dquot_6.6.0
[    0.218532] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.218774] FS-Cache: Loaded
[    0.219044] CacheFiles: Loaded
[    0.231249] NET: Registered protocol family 2
[    0.232158] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.232297] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.232507] TCP: Hash tables configured (established 8192 bind 8192)
[    0.232624] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.232692] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.232925] NET: Registered protocol family 1
[    0.233366] RPC: Registered named UNIX socket transport module.
[    0.233398] RPC: Registered udp transport module.
[    0.233426] RPC: Registered tcp transport module.
[    0.233454] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.234476] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[    0.236833] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.252917] FS-Cache: Netfs 'nfs' registered for caching
[    0.253936] NFS: Registering the id_resolver key type
[    0.253997] Key type id_resolver registered
[    0.254025] Key type id_legacy registered
[    0.256409] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.256557] io scheduler noop registered
[    0.256587] io scheduler deadline registered (default)
[    0.256864] io scheduler cfq registered
[    0.263333] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
[    0.263967] bcm2835-aux-uart 3f215040.serial: could not get clk: -517
[    0.265024] bcm2835-rng 3f104000.rng: hwrng registered
[    0.265168] vc-cma: Videocore CMA driver
[    0.265197] vc-cma: vc_cma_base      = 0x00000000
[    0.265226] vc-cma: vc_cma_size      = 0x00000000 (0 MiB)
[    0.265255] vc-cma: vc_cma_initial   = 0x00000000 (0 MiB)
[    0.265479] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    0.266026] vc-sm: Videocore shared memory driver
[    0.280836] brd: module loaded
[    0.289715] loop: module loaded
[    0.289758] Loading iSCSI transport class v2.0-870.
[    0.290313] usbcore: registered new interface driver smsc95xx
[    0.290355] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    0.518444] Core Release: 2.80a
[    0.518477] Setting default values for core params
[    0.518531] Finished setting default values for core params
[    0.718945] Using Buffer DMA mode
[    0.718974] Periodic Transfer Interrupt Enhancement - disabled
[    0.719004] Multiprocessor Interrupt Enhancement - disabled
[    0.719034] OTG VER PARAM: 0, OTG VER FLAG: 0
[    0.719070] Dedicated Tx FIFOs mode
[    0.719436] WARN::dwc_otg_hcd_init:1032: FIQ DMA bounce buffers: virt = 0x9ed04000 dma = 0xded04000 len=9024
[    0.719505] FIQ FSM acceleration enabled for :
[    0.719505] Non-periodic Split Transactions
[    0.719505] Periodic Split Transactions
[    0.719505] High-Speed Isochronous Endpoints
[    0.719505] Interrupt/Control Split Transaction hack enabled
[    0.719666] WARN::hcd_init_fiq:459: FIQ on core 1 at 0x805905b8
[    0.719703] WARN::hcd_init_fiq:460: FIQ ASM at 0x80590928 length 36
[    0.719740] WARN::hcd_init_fiq:486: MPHI regs_base at 0xb88a7000
[    0.719824] dwc_otg 3f980000.usb: DWC OTG Controller
[    0.719883] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[    0.719954] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000
[    0.720024] Init: Port Power? op_state=1
[    0.720051] Init: Power Port (0)
[    0.720273] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.720310] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.720358] usb usb1: Product: DWC OTG Controller
[    0.720389] usb usb1: Manufacturer: Linux 4.9.51-v7+ dwc_otg_hcd
[    0.720421] usb usb1: SerialNumber: 3f980000.usb
[    0.721308] hub 1-0:1.0: USB hub found
[    0.721371] hub 1-0:1.0: 1 port detected
[    0.722297] usbcore: registered new interface driver usb-storage
[    0.722535] mousedev: PS/2 mouse device common for all mice
[    0.723512] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer
[    0.723823] bcm2835-cpufreq: min=600000 max=1200000
[    0.724251] sdhci: Secure Digital Host Controller Interface driver
[    0.724282] sdhci: Copyright(c) Pierre Ossman
[    0.724585] sdhost-bcm2835 3f202000.sdhost: could not get clk, deferring probe
[    0.726804] mmc-bcm2835 3f300000.mmc: could not get clk, deferring probe
[    0.726933] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.729594] ledtrig-cpu: registered to indicate activity on CPUs
[    0.729810] hidraw: raw HID events driver (C) Jiri Kosina
[    0.730025] usbcore: registered new interface driver usbhid
[    0.730055] usbhid: USB HID core driver
[    0.730854] vchiq: vchiq_init_state: slot_zero = 0x9ed80000, is_master = 0
[    0.732456] [vc_sm_connected_init]: start
[    0.739439] [vc_sm_connected_init]: end - returning 0
[    0.739827] Initializing XFRM netlink socket
[    0.739874] NET: Registered protocol family 17
[    0.740013] Key type dns_resolver registered
[    0.740441] Registering SWP/SWPB emulation handler
[    0.741174] registered taskstats version 1
[    0.747354] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
[    0.748969] console [ttyS0] disabled
[    0.749020] 3f215040.serial: ttyS0 at MMIO 0x0 (irq = 220, base_baud = 31250000) is a 16550
[    1.731340] console [ttyS0] enabled
[    1.735651] sdhost: log_buf @ 9ed07000 (ded07000)
[    1.811183] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    1.818966] mmc-bcm2835 3f300000.mmc: mmc_debug:0 mmc_debug2:0
[    1.824930] mmc-bcm2835 3f300000.mmc: DMA channel allocated
[    1.851307] Indeed it is in host mode hprt0 = 00021501
[    1.941278] of_cfs_init
[    1.943860] of_cfs_init: OK
[    1.944439] random: fast init done
[    1.950631] Waiting for root device PARTUUID=d3646955-02...
[    1.965984] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.976190] mmc0: new high speed SDHC card at address 59b4
[    1.982609] mmcblk0: mmc0:59b4 NCard 7.51 GiB
[    1.988487]  mmcblk0: p1 p2
[    1.996060] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    2.003220] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.010351] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    2.018739] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    2.051199] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    2.057885] Indeed it is in host mode hprt0 = 00001101
[    2.112995] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.121331] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    2.129272] devtmpfs: mounted
[    2.134158] Freeing unused kernel memory: 1024K
[    2.187461] mmc1: new high speed SDIO card at address 0001
[    2.291485] usb 1-1: New USB device found, idVendor=0424, idProduct=9514
[    2.298329] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.306457] hub 1-1:1.0: USB hub found
[    2.310376] hub 1-1:1.0: 5 ports detected
[    2.544233] systemd[1]: System time before build time, advancing clock.
[    2.631202] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    2.664892] NET: Registered protocol family 10
[    2.679714] ip_tables: (C) 2000-2006 Netfilter Core Team
[    2.708376] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    2.727312] systemd[1]: Detected architecture arm.
[    2.734282] systemd[1]: Set hostname to <raspberrypi>.
[    2.761591] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    2.768609] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.779242] smsc95xx v1.0.5
[    2.884918] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:d9:6b:43
[    3.001218] usb 1-1.2: new low-speed USB device number 4 using dwc_otg
[    3.201198] systemd[1]: apparmor.service: Cannot add dependency job, ignoring: Unit apparmor.service is masked.
[    3.219004] systemd[1]: Listening on Journal Socket.
[    3.224929] systemd[1]: Listening on Syslog Socket.
[    3.230344] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[    3.238438] systemd[1]: Created slice System Slice.
[    3.239727] usb 1-1.2: New USB device found, idVendor=04d9, idProduct=1603
[    3.239736] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.239743] usb 1-1.2: Product: USB Keyboard
[    3.239749] usb 1-1.2: Manufacturer:
[    3.270511] systemd[1]: Starting Set the console keyboard layout...
[    3.283448] systemd[1]: Starting Restore / save the current clock...
[    3.291690] input:   USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:04D9:1603.0001/input/input0
[    3.372647] hid-generic 0003:04D9:1603.0001: input,hidraw0: USB HID v1.10 Keyboard [  USB Keyboard] on usb-3f980000.usb-1.2/input0
[    3.393107] i2c /dev entries driver
[    3.480607] input:   USB Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:04D9:1603.0002/input/input1
[  OK  ] Started Show Plymouth Boot Screen.
[  OK  ] Started Forward Password Requests to Plymouth Directory Watch.
[  OK  ] Reached target Paths.
[  OK  ] Reached target Encrypted Volumes.
[  OK  ] Found device /dev/ttyS0.
[  OK  ] Found device /dev/serial1.
[  OK  ] Found device /dev/disk/by-partuuid/d3646955-01.
         Starting File System Check on /dev/disk/by-partuuid/d3646955-01...
[  OK  ] Started File System Check on /dev/disk/by-partuuid/d3646955-01.
         Mounting /boot...
[  OK  ] Mounted /boot.
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[  OK  ] Reached target Sound Card.
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
         Starting Preprocess NFS configuration...
         Starting Set console font and keymap...
         Starting Raise network interfaces...
         Starting Tell Plymouth To Write Out Runtime Data...
         Starting Load/Save RF Kill Switch Status...
[  OK  ] Started Preprocess NFS configuration.
[  OK  ] Started Tell Plymouth To Write Out Runtime Data.
[  OK  ] Started Set console font and keymap.
[  OK  ] Reached target NFS client services.
[  OK  ] Reached target Remote File Systems (Pre).
[  OK  ] Reached target Remote File Systems.
[  OK  ] Started Create Volatile Files and Directories.
         Starting Update UTMP about System Boot/Shutdown...
         Starting Network Time Synchronization...
[  OK  ] Started Load/Save RF Kill Switch Status.
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Synchronized.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on triggerhappy.socket.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
[  OK  ] Started D-Bus System Message Bus.
         Starting LSB: Switch to ondemand cpu governor (unless shift key is pressed)...
         Starting Check for v3d driver...
         Starting triggerhappy global hotkey daemon...
         Starting LSB: Autogenerate and use a swap file...
         Starting System Logging Service...
         Starting Save/Restore Sound Card State...
         Starting Configure Bluetooth Modems connected by UART...
         Starting Avahi mDNS/DNS-SD Stack...
[  OK  ] Started Regular background program processing daemon.
[  OK  ] Started Daily Cleanup of Temporary Directories.
         Starting Login Service...
         Starting dhcpcd on all interfaces...
[  OK  ] Started triggerhappy global hotkey daemon.
[  OK  ] Started Save/Restore Sound Card State.
[  OK  ] Started Check for v3d driver.
[  OK  ] Started dhcpcd on all interfaces.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Started System Logging Service.
[  OK  ] Started Login Service.
[  OK  ] Started Raise network interfaces.
[  OK  ] Reached target Network.
[  OK  ] Reached target Network is Online.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Reached target Timers.
         Starting OpenBSD Secure Shell server...
[  OK  ] Started VNC Server in Service Mode daemon.
         Starting Permit User Sessions...
         Starting /etc/rc.local Compatibility...
[  OK  ] Started Permit User Sessions.
[  OK  ] Started /etc/rc.local Compatibility.
         Starting Terminate Plymouth Boot Screen...
         Starting Light Display Manager...
         Starting Hold until boot process finishes up...
[    9.312194] Unable to handle kernel NULL pointer dereference at virtual address 00000088
[    9.320425] pgd = 80004000
[    9.323172] [00000088] *pgd=00000000
[    9.326804] Internal error: Oops: 5 [#1] SMP ARM
[    9.331495] Modules linked in: vc4 drm_kms_helper drm brcmfmac brcmutil snd_soc_core snd_compress snd_pcm_dmaengine cfg80211 syscopyarea sysfillrect sysimgblt rfkill fb_sys_fops snd_bcm2835 snd_pcm snd_timer snd bcm2835_gpiomem evdev uio_pdrv_genirq uio fixed i2c_dev ip_tables x_tables ipv6
[    9.357678] CPU: 0 PID: 431 Comm: kworker/0:3 Tainted: G        W       4.9.51-v7+ #1036
[    9.365882] Hardware name: BCM2835
[    9.369372] Workqueue: events vc4_overflow_mem_work [vc4]
[    9.374846] task: b67849c0 task.stack: b3e9c000
[    9.379461] PC is at vc4_overflow_mem_work+0x80/0x120 [vc4]
[    9.385114] LR is at _raw_spin_lock_irqsave+0x24/0x68
[    9.390233] pc : [<7f4a8760>]    lr : [<8071acec>]    psr: 60000093
[    9.390233] sp : b3e9dec0  ip : b3e9dea8  fp : b3e9dedc
[    9.401873] r10: 00000000  r9 : 00000008  r8 : 00000000
[    9.407167] r7 : b3e5b0e0  r6 : 00000000  r5 : 00000001  r4 : b3e5b118
[    9.413782] r3 : 00000002  r2 : 00000002  r1 : 20000013  r0 : 00080000
[    9.420400] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[    9.427720] Control: 10c5383d  Table: 3663406a  DAC: 00000055
[    9.433542] Process kworker/0:3 (pid: 431, stack limit = 0xb3e9c210)
[    9.439981] Stack: (0xb3e9dec0 to 0xb3e9e000)
[    9.444397] dec0: b6435300 b3e5b118 b77594c0 b775cd00 b3e9df14 b3e9dee0 80136720 7f4a86ec
[    9.452690] dee0: b77594d8 80c02d00 00000008 b77594c0 b6435318 b77594c0 b77594d8 80c02d00
[    9.460983] df00: 00000008 b6435300 b3e9df5c b3e9df18 80136a80 801365d4 b3e9df3c b3e9c000
[    9.469276] df20: 80c02d00 b6435300 80c71af7 b3e9c018 00000000 00000000 b659cac0 b6435300
[    9.477568] df40: 80136a1c 00000000 00000000 00000000 b3e9dfac b3e9df60 8013c958 80136a28
[    9.485861] df60: 36be9000 00000000 b3e9df94 b6435300 00000000 00000000 b3e9df78 b3e9df78
[    9.494154] df80: 00000000 00000000 b3e9df88 b3e9df88 b659cac0 8013c84c 00000000 00000000
[    9.502446] dfa0: 00000000 b3e9dfb0 80108148 8013c858 00000000 00000000 00000000 00000000
[    9.510738] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    9.519031] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 0001367f 00013680
[    9.527361] [<7f4a8760>] (vc4_overflow_mem_work [vc4]) from [<80136720>] (process_one_work+0x158/0x454)
[    9.536892] [<80136720>] (process_one_work) from [<80136a80>] (worker_thread+0x64/0x568)
[    9.545100] [<80136a80>] (worker_thread) from [<8013c958>] (kthread+0x10c/0x124)
[    9.552605] [<8013c958>] (kthread) from [<80108148>] (ret_from_fork+0x14/0x2c)
[    9.559931] Code: e1a03513 e5043004 f57ff04e e514000c (e5962088)
[    9.566110] ---[ end trace 1773a549536bf2f6 ]---
[    9.571085] Unable to handle kernel paging request at virtual address ffffffec
[    9.578413] pgd = 80004000
[    9.581155] [ffffffec] *pgd=37f7e861, *pte=00000000, *ppte=00000000
[    9.587520] Internal error: Oops: 37 [#2] SMP ARM
[    9.592287] Modules linked in: vc4 drm_kms_helper drm brcmfmac brcmutil snd_soc_core snd_compress snd_pcm_dmaengine cfg80211 syscopyarea sysfillrect sysimgblt rfkill fb_sys_fops snd_bcm2835 snd_pcm snd_timer snd bcm2835_gpiomem evdev uio_pdrv_genirq uio fixed i2c_dev ip_tables x_tables ipv6
[    9.618464] CPU: 0 PID: 431 Comm: kworker/0:3 Tainted: G      D W       4.9.51-v7+ #1036
[    9.626666] Hardware name: BCM2835
[    9.630115] task: b67849c0 task.stack: b3e9c000
[    9.634710] PC is at kthread_data+0x18/0x20
[    9.638950] LR is at wq_worker_sleeping+0x18/0xd8
[    9.643715] pc : [<8013d564>]    lr : [<801379d4>]    psr: 20000193
[    9.643715] sp : b3e9dbd0  ip : b3e9dbe0  fp : b3e9dbdc
[    9.655356] r10: 80b7e940  r9 : 00000000  r8 : 80c0442c
[    9.660649] r7 : 80b7e940  r6 : b6784de8  r5 : b67849c0  r4 : b7759940
[    9.667265] r3 : 00000000  r2 : 00000000  r1 : b67849c0  r0 : b67849c0
[    9.673882] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
[    9.681202] Control: 10c5383d  Table: 3663406a  DAC: 00000055
[    9.687025] Process kworker/0:3 (pid: 431, stack limit = 0xb3e9c210)
[    9.693465] Stack: (0xb3e9dbd0 to 0xb3e9e000)
[    9.697879] dbc0:                                     b3e9dbec b3e9dbe0 801379d4 8013d558
[    9.706172] dbe0: b3e9dc54 b3e9dbf0 807163bc 801379c8 b6bb8b00 b6bb5904 80c7b4d4 b67849c0
[    9.714466] dc00: b3e9dc1c b3e9dc10 36bdb000 8017e998 b3e9dc64 80149700 b7759940 8017ecac
[    9.722759] dc20: 80cb40f0 00000000 80b79300 b67849c0 b3e9d8b4 b3e9dc70 b6784d60 00000001
[    9.731052] dc40: 00000001 b70d0000 b3e9dc64 b3e9dc58 80149700 80715eac b3e9dca4 b3e9dc68
[    9.739345] dc60: 80121788 80149674 00000006 80c7b2c4 b3e9dc70 b3e9dc70 0000000b 80c7b2c4
[    9.747637] dc80: 60000193 80c08990 0000000b 7f4a8764 00000001 7f4a8762 b3e9dd2c b3e9dca8
[    9.755930] dca0: 8010c2b0 80121040 b3e9c210 0000000b 00000000 8094e54c 00000008 7f000000
[    9.764223] dcc0: 00000000 80c08990 651720e4 33306131 20333135 34303565 34303033 37356620
[    9.772516] dce0: 34306666 35652065 30303431 28206330 36393565 38383032 80002029 80209e4c
[    9.780809] dd00: 8094fe40 00000088 00000005 b3e9de70 00000000 00000000 b3e9c000 00000000
[    9.789102] dd20: b3e9dd44 b3e9dd30 80118eb4 8010c068 b3e9de70 00000088 b3e9dd9c b3e9dd48
[    9.797394] dd40: 8071bbc8 80118e4c b3e9dd8c b3e9dd58 8014e6cc 80169d94 b6994a54 00000001
[    9.805686] dd60: b3e9de24 b67849c0 b7759978 80152afc 00000001 00000005 00000005 8071bd34
[    9.813979] dd80: 00000088 b3e9de70 b3e9c000 00000000 b3e9ddbc b3e9dda0 8071bdf0 8071b984
[    9.822272] dda0: 80c040a4 80c093c4 00000005 8071bd34 b3e9de6c b3e9ddc0 801011e8 8071bd40
[    9.830564] ddc0: 0001570b 80151598 b6784a40 b6784a40 b6784de4 80b7e940 80c0442c 00000000
[    9.838858] dde0: b3e9de64 b3e9ddf0 80151598 8014f9fc 80197ab0 805db820 00000001 00ffffff
[    9.847150] de00: 00000000 00000000 afb50401 00000000 00014fb1 8015a864 b3e9de94 b3e9de28
[    9.855443] de20: 8015a864 80182968 8014d51c 80b7e940 b6bd6000 b3e5b0e0 60000013 60000013
[    9.863736] de40: b3e5b0e0 7f4a8760 60000093 7f4a8760 60000093 ffffffff b3e9dea4 00000000
[    9.872028] de60: b3e9dedc b3e9de70 8071b174 801011ac 00080000 20000013 00000002 00000002
[    9.880319] de80: b3e5b118 00000001 00000000 b3e5b0e0 00000000 00000008 00000000 b3e9dedc
[    9.888611] dea0: b3e9dea8 b3e9dec0 8071acec 7f4a8760 60000093 ffffffff 7f4a8718 00000000
[    9.896903] dec0: b6435300 b3e5b118 b77594c0 b775cd00 b3e9df14 b3e9dee0 80136720 7f4a86ec
[    9.905196] dee0: b77594d8 80c02d00 00000008 b77594c0 b6435318 b77594c0 b77594d8 80c02d00
[    9.913489] df00: 00000008 b6435300 b3e9df5c b3e9df18 80136a80 801365d4 b3e9df3c b3e9c000
[    9.921783] df20: 80c02d00 b6435300 80c71af7 b3e9c018 00000000 00000000 b659cac0 b6435300
[    9.930077] df40: 80136a1c 00000000 00000000 00000000 b3e9dfac b3e9df60 8013c958 80136a28
[    9.938369] df60: 36be9000 00000000 b3e9df94 b6435300 00000000 00000000 b3e9df78 b3e9df78
[    9.946662] df80: 00000001 00010001 b3e9df88 b3e9df88 b659cac0 8013c84c 00000000 00000000
[    9.954954] dfa0: 00000000 b3e9dfb0 80108148 8013c858 00000000 00000000 00000000 00000000
[    9.963247] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    9.971540] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 0001367f 00013680
[    9.979842] [<8013d564>] (kthread_data) from [<801379d4>] (wq_worker_sleeping+0x18/0xd8)
[    9.988055] [<801379d4>] (wq_worker_sleeping) from [<807163bc>] (__schedule+0x51c/0x7bc)
[    9.996267] [<807163bc>] (__schedule) from [<80149700>] (do_task_dead+0x98/0x9c)
[   10.003786] [<80149700>] (do_task_dead) from [<80121788>] (do_exit+0x754/0xaec)
[   10.011206] [<80121788>] (do_exit) from [<8010c2b0>] (die+0x254/0x440)
[   10.017828] [<8010c2b0>] (die) from [<80118eb4>] (__do_kernel_fault.part.0+0x74/0x1f4)
[   10.025860] [<80118eb4>] (__do_kernel_fault.part.0) from [<8071bbc8>] (do_page_fault+0x250/0x3bc)
[   10.034861] [<8071bbc8>] (do_page_fault) from [<8071bdf0>] (do_translation_fault+0xbc/0xc0)
[   10.043333] [<8071bdf0>] (do_translation_fault) from [<801011e8>] (do_DataAbort+0x48/0xc4)
[   10.051715] [<801011e8>] (do_DataAbort) from [<8071b174>] (__dabt_svc+0x54/0x80)
[   10.059212] Exception stack(0xb3e9de70 to 0xb3e9deb8)
[   10.064331] de60:                                     00080000 20000013 00000002 00000002
[   10.072624] de80: b3e5b118 00000001 00000000 b3e5b0e0 00000000 00000008 00000000 b3e9dedc
[   10.080915] dea0: b3e9dea8 b3e9dec0 8071acec 7f4a8760 60000093 ffffffff
[   10.087659] [<8071b174>] (__dabt_svc) from [<7f4a8760>] (vc4_overflow_mem_work+0x80/0x120 [vc4])
[   10.096599] [<7f4a8760>] (vc4_overflow_mem_work [vc4]) from [<80136720>] (process_one_work+0x158/0x454)
[   10.106130] [<80136720>] (process_one_work) from [<80136a80>] (worker_thread+0x64/0x568)
[   10.114337] [<80136a80>] (worker_thread) from [<8013c958>] (kthread+0x10c/0x124)
[   10.121839] [<8013c958>] (kthread) from [<80108148>] (ret_from_fork+0x14/0x2c)
[   10.129164] Code: e24cb004 e52de004 e8bd4000 e59033f8 (e5130014)
[   10.135342] ---[ end trace 1773a549536bf2f7 ]---
[   10.140022] Fixing recursive fault but reboot is needed!
@lategoodbye
Copy link

@lategoodbye
Copy link

@mattyway Any chance to test the linked patch?

@anyc
Copy link

anyc commented Oct 8, 2017

Unfortunately, the oops still occurs with the patch. :/

@anyc
Copy link

anyc commented Oct 8, 2017

By the way, I don't know if it was the same cause but I had freezing RPis also with earlier 4.9 kernels - less than 4.9.40 I think.

@lategoodbye
Copy link

@anyc I'm not sure your issue is related to this one.

fengguang pushed a commit to 0day-ci/linux that referenced this issue Oct 8, 2017
This fixes the race between vc4_overflow_mem_work and the init of the
job lock. Otherwise we could trigger a NULL pointer dereference
during VC4 binding.

Link: anholt/linux#114
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
@lategoodbye
Copy link

@mattyway

Please try the following patches (keep in mind they are written for current mainline, so maybe they need rework):
https://patchwork.kernel.org/patch/10052207/
https://patchwork.kernel.org/patch/10052209/

fengguang pushed a commit to 0day-ci/linux that referenced this issue Nov 12, 2017
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
@anholt
Copy link
Owner

anholt commented Nov 14, 2017

Pushed to drm-misc-fixes:

commit 253696ccd613fbdaa5aba1de44c461a058e0a114 (HEAD -> drm-misc-fixes, drm-misc/for-linux-next-fixes, drm-misc/drm-misc-fixes)
Author: Stefan Schake <stschake@gmail.com>
Date:   Fri Nov 10 02:05:06 2017 +0100

    drm/vc4: Account for interrupts in flight

@anholt anholt closed this as completed Nov 14, 2017
anholt pushed a commit that referenced this issue Nov 14, 2017
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: #114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
anholt pushed a commit that referenced this issue Nov 21, 2017
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: #114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
anholt pushed a commit that referenced this issue Nov 21, 2017
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: #114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
anholt pushed a commit that referenced this issue Nov 21, 2017
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: #114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
fengguang pushed a commit to 0day-ci/linux that referenced this issue Nov 29, 2017
GIT 43f462f

commit 3c02a6d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Nov 27 10:59:40 2017 +0100

    Revert "ALSA: usb-audio: Fix potential zero-division at parsing FU"
    
    The commit 8428a8e ("ALSA: usb-audio: Fix potential zero-division
    at parsing FU") is utterly bogus and breaks the case with csize=1
    instead of fixing anything.  Just take it back again.
    
    Reported-by: Jörg Otte <jrg.otte@gmail.com>
    Fixes: 8428a8e ("ALSA: usb-audio: Fix potential zero-division at parsing FU"
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 8f5abe8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Nov 27 16:45:56 2017 -0800

    proc: don't report kernel addresses in /proc/<pid>/stack
    
    This just changes the file to report them as zero, although maybe even
    that could be removed.  I checked, and at least procps doesn't actually
    seem to parse the 'stack' file at all.
    
    And since the file doesn't necessarily even exist (it requires
    CONFIG_STACKTRACE), possibly other tools don't really use it either.
    
    That said, in case somebody parses it with tools, just having that zero
    there should keep such tools happy.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 1751e8a
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Nov 27 13:05:09 2017 -0800

    Rename superblock flags (MS_xyz -> SB_xyz)
    
    This is a pure automated search-and-replace of the internal kernel
    superblock flags.
    
    The s_flags are now called SB_*, with the names and the values for the
    moment mirroring the MS_* flags that they're equivalent to.
    
    Note how the MS_xyz flags are the ones passed to the mount system call,
    while the SB_xyz flags are what we then use in sb->s_flags.
    
    The script to do this was:
    
        # places to look in; re security/*: it generally should *not* be
        # touched (that stuff parses mount(2) arguments directly), but
        # there are two places where we really deal with superblock flags.
        FILES="drivers/mtd drivers/staging/lustre fs ipc mm \
                include/linux/fs.h include/uapi/linux/bfs_fs.h \
                security/apparmor/apparmorfs.c security/apparmor/include/lib.h"
        # the list of MS_... constants
        SYMS="RDONLY NOSUID NODEV NOEXEC SYNCHRONOUS REMOUNT MANDLOCK \
              DIRSYNC NOATIME NODIRATIME BIND MOVE REC VERBOSE SILENT \
              POSIXACL UNBINDABLE PRIVATE SLAVE SHARED RELATIME KERNMOUNT \
              I_VERSION STRICTATIME LAZYTIME SUBMOUNT NOREMOTELOCK NOSEC BORN \
              ACTIVE NOUSER"
    
        SED_PROG=
        for i in $SYMS; do SED_PROG="$SED_PROG -e s/MS_$i/SB_$i/g"; done
    
        # we want files that contain at least one of MS_...,
        # with fs/namespace.c and fs/pnode.c excluded.
        L=$(for i in $SYMS; do git grep -w -l MS_$i $FILES; done| sort|uniq|grep -v '^fs/namespace.c'|grep -v '^fs/pnode.c')
    
        for f in $L; do sed -i $f $SED_PROG; done
    
    Requested-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 141cbfb
Author: Thomas Meyer <thomas@m3y3r.de>
Date:   Thu Aug 10 10:53:53 2017 +0200

    auxdisplay: img-ascii-lcd: Only build on archs that have IOMEM
    
    This avoids the MODPOST error:
    
      ERROR: "devm_ioremap_resource" [drivers/auxdisplay/img-ascii-lcd.ko] undefined!
    
    Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 152e93a
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Mon Nov 27 06:21:26 2017 +0300

    mm, thp: Do not make pmd/pud dirty without a reason
    
    Currently we make page table entries dirty all the time regardless of
    access type and don't even consider if the mapping is write-protected.
    The reasoning is that we don't really need dirty tracking on THP and
    making the entry dirty upfront may save some time on first write to the
    page.
    
    Unfortunately, such approach may result in false-positive
    can_follow_write_pmd() for huge zero page or read-only shmem file.
    
    Let's only make page dirty only if we about to write to the page anyway
    (as we do for small pages).
    
    I've restructured the code to make entry dirty inside
    maybe_p[mu]d_mkwrite(). It also takes into account if the vma is
    write-protected.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a8f9736
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Mon Nov 27 06:21:25 2017 +0300

    mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
    
    Currently, we unconditionally make page table dirty in touch_pmd().
    It may result in false-positive can_follow_write_pmd().
    
    We may avoid the situation, if we would only make the page table entry
    dirty if caller asks for write access -- FOLL_WRITE.
    
    The patch also changes touch_pud() in the same way.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 33d22c2
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 23 12:12:17 2017 +1000

    drm/ttm: don't attempt to use hugepages if dma32 requested (v2)
    
    The commit below introduced thp support for ttm allocations, however it didn't
    take into account the case where dma32 was requested. Some drivers always request
    dma32, and the bochs driver is one of those.
    
    This fixes an oops:
    
    [   30.108507] ------------[ cut here ]------------
    [   30.108920] kernel BUG at ./include/linux/gfp.h:408!
    [   30.109356] invalid opcode: 0000 [#1] SMP
    [   30.109700] Modules linked in: fuse nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack devlink ip_set nfnetlink ebtable_nat ebtable_broute bridge ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack libcrc32c iptable_mangle iptable_raw iptable_security ebtable_filter ebtables ip6table_filter ip6_tables snd_hda_codec_generic kvm_intel kvm snd_hda_intel snd_hda_codec irqbypass ppdev snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm bochs_drm ttm joydev drm_kms_helper virtio_balloon snd_timer snd parport_pc drm soundcore parport i2c_piix4 nls_utf8 isofs squashfs zstd_decompress xxhash 8021q garp mrp stp llc virtio_net
    [   30.115605]  virtio_console virtio_scsi crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel serio_raw virtio_pci virtio_ring virtio ata_generic pata_acpi qemu_fw_cfg sunrpc scsi_transport_iscsi loop
    [   30.117425] CPU: 0 PID: 1347 Comm: gnome-shell Not tainted 4.15.0-0.rc0.git6.1.fc28.x86_64 #1
    [   30.118141] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-2.fc27 04/01/2014
    [   30.118866] task: ffff923a77e03380 task.stack: ffffa78182228000
    [   30.119366] RIP: 0010:__alloc_pages_nodemask+0x35e/0x430
    [   30.119810] RSP: 0000:ffffa7818222bba8 EFLAGS: 00010202
    [   30.120250] RAX: 0000000000000001 RBX: 00000000014382c6 RCX: 0000000000000006
    [   30.120840] RDX: 0000000000000000 RSI: 0000000000000009 RDI: 0000000000000000
    [   30.121443] RBP: ffff923a760d6000 R08: 0000000000000000 R09: 0000000000000006
    [   30.122039] R10: 0000000000000040 R11: 0000000000000300 R12: ffff923a729273c0
    [   30.122629] R13: 0000000000000000 R14: 0000000000000000 R15: ffff923a7483d400
    [   30.123223] FS:  00007fe48da7dac0(0000) GS:ffff923a7cc00000(0000) knlGS:0000000000000000
    [   30.123896] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   30.124373] CR2: 00007fe457b73000 CR3: 0000000078313000 CR4: 00000000000006f0
    [   30.124968] Call Trace:
    [   30.125186]  ttm_pool_populate+0x19b/0x400 [ttm]
    [   30.125578]  ttm_bo_vm_fault+0x325/0x570 [ttm]
    [   30.125964]  __do_fault+0x19/0x11e
    [   30.126255]  __handle_mm_fault+0xcd3/0x1260
    [   30.126609]  handle_mm_fault+0x14c/0x310
    [   30.126947]  __do_page_fault+0x28c/0x530
    [   30.127282]  do_page_fault+0x32/0x270
    [   30.127593]  async_page_fault+0x22/0x30
    [   30.127922] RIP: 0033:0x7fe48aae39a8
    [   30.128225] RSP: 002b:00007ffc21c4d928 EFLAGS: 00010206
    [   30.128664] RAX: 00007fe457b73000 RBX: 000055cd4c1041a0 RCX: 00007fe457b73040
    [   30.129259] RDX: 0000000000300000 RSI: 0000000000000000 RDI: 00007fe457b73000
    [   30.129855] RBP: 0000000000000300 R08: 000000000000000c R09: 0000000100000000
    [   30.130457] R10: 0000000000000001 R11: 0000000000000246 R12: 000055cd4c1041a0
    [   30.131054] R13: 000055cd4bdfe990 R14: 000055cd4c104110 R15: 0000000000000400
    [   30.131648] Code: 11 01 00 0f 84 a9 00 00 00 65 ff 0d 6d cc dd 44 e9 0f ff ff ff 40 80 cd 80 e9 99 fe ff ff 48 89 c7 e8 e7 f6 01 00 e9 b7 fe ff ff <0f> 0b 0f ff e9 40 fd ff ff 65 48 8b 04 25 80 d5 00 00 8b 40 4c
    [   30.133245] RIP: __alloc_pages_nodemask+0x35e/0x430 RSP: ffffa7818222bba8
    [   30.133836] ---[ end trace d4f1deb60784f40a ]---
    
    v2: handle free path as well.
    
    Reported-by: Laura Abbott <labbott@redhat.com>
    Reported-by: Adam Williamson <awilliam@redhat.com>
    Fixes: 0284f1e (drm/ttm: add transparent huge page support for cached allocations v2)
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit b8a3365
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Thu Nov 23 11:37:37 2017 +0100

    drm/vblank: Pass crtc_id to page_flip_ioctl.
    
    We added crtc_id to the atomic ioctl, but forgot to add it for vblank
    and page flip events. Commit bd386e5 ("drm: Reorganize
    drm_pending_event to support future event types [v2]") added it to
    the vblank event, but page flip event was still missing.
    
    Correct this and add a test for making sure we always set crtc_id correctly.
    
    Fixes: bd386e5 ("drm: Reorganize drm_pending_event to support future event types [v2]")
    Fixes: 5db06a8 ("drm: Pass CRTC ID in userspace vblank events")
    Cc: Daniel Stone <daniels@collabora.com>
    Cc: Daniel Vetter <daniel.vetter@intel.com>
    Cc: Gustavo Padovan <gustavo@padovan.org>
    Cc: Sean Paul <seanpaul@chromium.org>
    Cc: dri-devel@lists.freedesktop.org
    Cc: <stable@vger.kernel.org> # v4.12+
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> #irc
    Testcase: igt/kms_vblank/crtc_id
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171123103737.47138-1-maarten.lankhorst@linux.intel.com

commit 3572f04
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu Nov 16 18:02:15 2017 +0200

    drm/i915: Fix init_clock_gating for resume
    
    Moving the init_clock_gating() call from intel_modeset_init_hw() to
    intel_modeset_gem_init() had an unintended effect of not applying
    some workarounds on resume. This, for example, cause some kind of
    corruption to appear at the top of my IVB Thinkpad X1 Carbon LVDS
    screen after hibernation. Fix the problem by explicitly calling
    init_clock_gating() from the resume path.
    
    I really hope this doesn't break something else again. At least
    the problems reported at https://bugs.freedesktop.org/show_bug.cgi?id=103549
    didn't make a comeback, even after a hibernate cycle.
    
    v2: Reorder the init_clock_gating vs. modeset_init_hw to match
        the display reset path (Rodrigo)
    
    Cc: stable@vger.kernel.org
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Fixes: 6ac4327 ("drm/i915: Move init_clock_gating() back to where it was")
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171116160215.25715-1-ville.syrjala@linux.intel.com
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    (cherry picked from commit 675f7ff)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 457db89
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 14 17:35:20 2017 +0000

    drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM
    
    Commit  21cc643 ("drm/i915: Mark the userptr invalidate workqueue
    as WQ_MEM_RECLAIM") tried to fixup the check_flush_dependency warning
    for hitting i915_gem_userptr_mn_invalidate_range_start from within the
    shrinker, but I failed to notice userptr has 2 similarly named
    workqueues. I marked up i915-userptr-acquire as WQ_MEM_RECLAIM whereas
    we only wait upon i915-userptr-release from inside the reclaim paths.
    
    [62530.869510] workqueue: PF_MEMALLOC task 7983(gem_shrink) is flushing !WQ_MEM_RECLAIM i915-userptr-release:          (null)
    [62530.869515] ------------[ cut here ]------------
    [62530.869519] WARNING: CPU: 1 PID: 7983 at kernel/workqueue.c:2434 check_flush_dependency+0x7f/0x110
    [62530.869519] Modules linked in: pegasus mii ip6table_filter ip6_tables bnep iptable_filter snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic binfmt_misc nls_iso8859_1 intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_intel snd_hda_codec kvm_intel snd_hda_core snd_hwdep kvm snd_pcm irqbypass snd_seq_midi snd_seq_midi_event snd_rawmidi crct10dif_pclmul crc32_pclmul 8250_dw ghash_clmulni_intel snd_seq pcbc snd_seq_device snd_timer btusb aesni_intel btrtl btbcm aes_x86_64 iwlwifi btintel crypto_simd glue_helper cryptd bluetooth snd intel_cstate input_leds idma64 intel_rapl_perf ecdh_generic serio_raw soundcore cfg80211 wmi_bmof virt_dma intel_lpss_pci intel_lpss acpi_als kfifo_buf industrialio winbond_cir soc_button_array rc_core spidev tpm_crb intel_hid acpi_pad mac_hid sparse_keymap
    [62530.869546]  parport_pc ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid i915 i2c_algo_bit prime_numbers drm_kms_helper syscopyarea e1000e sysfillrect sysimgblt fb_sys_fops ahci ptp pps_core libahci drm wmi video i2c_hid hid
    [62530.869557] CPU: 1 PID: 7983 Comm: gem_shrink Tainted: G     U  W    L  4.14.0-rc8-drm-tip-ww45-commit-1342299+ #1
    [62530.869558] Hardware name: Intel Corporation CoffeeLake Client Platform/CoffeeLake H DDR4 RVP, BIOS CNLSFWR1.R00.X098.A00.1707301945 07/30/2017
    [62530.869559] task: ffffa1049dbeec80 task.stack: ffffae7d05c44000
    [62530.869560] RIP: 0010:check_flush_dependency+0x7f/0x110
    [62530.869561] RSP: 0018:ffffae7d05c473a0 EFLAGS: 00010286
    [62530.869562] RAX: 000000000000006e RBX: ffffa1049540f400 RCX: ffffffffa3e55788
    [62530.869562] RDX: 0000000000000000 RSI: 0000000000000092 RDI: 0000000000000202
    [62530.869563] RBP: ffffae7d05c473c0 R08: 000000000000006e R09: 000000000038bb0e
    [62530.869563] R10: 0000000000000000 R11: 000000000000006e R12: ffffa1049dbeec80
    [62530.869564] R13: 0000000000000000 R14: 0000000000000000 R15: ffffae7d05c473e0
    [62530.869565] FS:  00007f621b129880(0000) GS:ffffa1050b240000(0000) knlGS:0000000000000000
    [62530.869566] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [62530.869566] CR2: 00007f6214400000 CR3: 0000000353a17003 CR4: 00000000003606e0
    [62530.869567] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [62530.869567] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [62530.869568] Call Trace:
    [62530.869570]  flush_workqueue+0x115/0x3d0
    [62530.869573]  ? wake_up_process+0x15/0x20
    [62530.869596]  i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
    [62530.869614]  ? i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
    [62530.869616]  __mmu_notifier_invalidate_range_start+0x55/0x80
    [62530.869618]  try_to_unmap_one+0x791/0x8b0
    [62530.869620]  ? call_rwsem_down_read_failed+0x18/0x30
    [62530.869622]  rmap_walk_anon+0x10b/0x260
    [62530.869624]  rmap_walk+0x48/0x60
    [62530.869625]  try_to_unmap+0x93/0xf0
    [62530.869626]  ? page_remove_rmap+0x2a0/0x2a0
    [62530.869627]  ? page_not_mapped+0x20/0x20
    [62530.869629]  ? page_get_anon_vma+0x90/0x90
    [62530.869630]  ? invalid_mkclean_vma+0x20/0x20
    [62530.869631]  migrate_pages+0x946/0xaa0
    [62530.869633]  ? __ClearPageMovable+0x10/0x10
    [62530.869635]  ? isolate_freepages_block+0x3c0/0x3c0
    [62530.869636]  compact_zone+0x22f/0x970
    [62530.869638]  compact_zone_order+0xa3/0xd0
    [62530.869640]  try_to_compact_pages+0x1a5/0x2a0
    [62530.869641]  ? try_to_compact_pages+0x1a5/0x2a0
    [62530.869643]  __alloc_pages_direct_compact+0x50/0x110
    [62530.869644]  __alloc_pages_slowpath+0x4da/0xf30
    [62530.869646]  __alloc_pages_nodemask+0x262/0x280
    [62530.869648]  alloc_pages_vma+0x165/0x1e0
    [62530.869649]  shmem_alloc_hugepage+0xd0/0x130
    [62530.869651]  ? __radix_tree_insert+0x45/0x230
    [62530.869652]  ? __vm_enough_memory+0x29/0x130
    [62530.869654]  shmem_alloc_and_acct_page+0x10d/0x1e0
    [62530.869655]  shmem_getpage_gfp+0x426/0xc00
    [62530.869657]  shmem_fault+0xa0/0x1e0
    [62530.869659]  ? file_update_time+0x60/0x110
    [62530.869660]  __do_fault+0x1e/0xc0
    [62530.869661]  __handle_mm_fault+0xa35/0x1170
    [62530.869662]  handle_mm_fault+0xcc/0x1c0
    [62530.869664]  __do_page_fault+0x262/0x4f0
    [62530.869666]  do_page_fault+0x2e/0xe0
    [62530.869667]  page_fault+0x22/0x30
    [62530.869668] RIP: 0033:0x404335
    [62530.869669] RSP: 002b:00007fff7829e420 EFLAGS: 00010216
    [62530.869670] RAX: 00007f6210400000 RBX: 0000000000000004 RCX: 0000000000b80000
    [62530.869670] RDX: 0000000000002e01 RSI: 0000000000008000 RDI: 0000000000000004
    [62530.869671] RBP: 0000000000000019 R08: 0000000000000002 R09: 0000000000000000
    [62530.869671] R10: 0000000000000559 R11: 0000000000000246 R12: 0000000008000000
    [62530.869672] R13: 00000000004042f0 R14: 0000000000000004 R15: 000000000000007e
    [62530.869673] Code: 00 8b b0 18 05 00 00 48 8d 8b b0 00 00 00 48 8d 90 c0 06 00 00 4d 89 f0 48 c7 c7 40 c0 c8 a3 c6 05 68 c5 e8 00 01 e8 c2 68 04 00 <0f> ff 4d 85 ed 74 18 49 8b 45 20 48 8b 70 08 8b 86 00 01 00 00
    [62530.869691] ---[ end trace 01e01ad0ff5781f8 ]---
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103739
    Fixes: 21cc643 ("drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Michał Winiarski <michal.winiarski@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171114173520.8829-1-chris@chris-wilson.co.uk
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    (cherry picked from commit 41729bf)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 6e06827
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 15 12:14:58 2017 +0000

    drm/i915: Clear breadcrumb node when cancelling signaling
    
    When we call intel_engine_cancel_signaling() to stop reporting when
    a request is completed via an asynchronous signal, we remove that request
    from the breadcrumb wait queue. However, we may be concurrently
    processing that request in the signaler itself, the actual operations on
    the request's node itself are serialised but we do not actually clear the
    waiter after removing it from the tree allowing both parties to attempt
    to do so and corrupting the rbtree. (Previously removing from the
    breadcrumb wait queue could only be done on behalf of i915_wait_request,
    so this race could not happen).
    
    Reported-by: "He, Bo" <bo.he@intel.com>
    Fixes: 9eb143b ("drm/i915: Allow a request to be cancelled")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: "He, Bo" <bo.he@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Michał Winiarski <michal.winiarski@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171115121458.24655-1-chris@chris-wilson.co.uk
    Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    (cherry picked from commit c534612)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit dcd1d83
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Sep 19 16:55:34 2017 +0100

    drm/i915/gvt: ensure -ve return value is handled correctly
    
    An earlier fix changed the return type from find_bb_size however the
    integer return is being assigned to a unsigned int so the -ve error
    check will never be detected. Make bb_size an int to fix this.
    
    Detected by CoverityScan CID#1456886 ("Unsigned compared against 0")
    
    Fixes: 1e3197d ("drm/i915/gvt: Refine error handling for perform_bb_shadow")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    (cherry picked from commit 24f8a29)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 294cf1a
Author: Hans de Goede <j.w.r.degoede@gmail.com>
Date:   Tue Nov 14 14:55:17 2017 +0100

    drm/i915: Re-register PMIC bus access notifier on runtime resume
    
    intel_uncore_suspend() unregisters the uncore code's PMIC bus access
    notifier and gets called on both normal and runtime suspend.
    
    intel_uncore_resume_early() re-registers the notifier, but only on
    normal resume. Add a new intel_uncore_runtime_resume() function which
    only re-registers the notifier and call that on runtime resume.
    
    Cc: stable@vger.kernel.org
    Reported-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171114135518.15981-2-hdegoede@redhat.com
    (cherry picked from commit bedf4d7)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit f4359ce
Author: Hans de Goede <j.w.r.degoede@gmail.com>
Date:   Fri Nov 10 16:03:01 2017 +0100

    drm/i915: Fix false-positive assert_rpm_wakelock_held in i915_pmic_bus_access_notifier v2
    
    assert_rpm_wakelock_held is triggered from i915_pmic_bus_access_notifier
    even though it gets unregistered on (runtime) suspend, this is caused
    by a race happening under the following circumstances:
    
    intel_runtime_pm_put does:
    
       atomic_dec(&dev_priv->pm.wakeref_count);
    
       pm_runtime_mark_last_busy(kdev);
       pm_runtime_put_autosuspend(kdev);
    
    And pm_runtime_put_autosuspend calls intel_runtime_suspend from
    a workqueue, so there is ample of time between the atomic_dec() and
    intel_runtime_suspend() unregistering the notifier. If the notifier
    gets called in this windowd assert_rpm_wakelock_held falsely triggers
    (at this point we're not runtime-suspended yet).
    
    This commit adds disable_rpm_wakeref_asserts and
    enable_rpm_wakeref_asserts calls around the
    intel_uncore_forcewake_get(FORCEWAKE_ALL) call in
    i915_pmic_bus_access_notifier fixing the false-positive WARN_ON.
    
    Changes in v2:
    -Reword comment explaining why disabling the wakeref asserts is
     ok and necessary
    
    Cc: stable@vger.kernel.org
    Reported-by: FKr <bugs-freedesktop@ubermail.me>
    Reviewed-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171110150301.9601-2-hdegoede@redhat.com
    (cherry picked from commit ce30560)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 9271c0c
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Wed Nov 8 17:25:04 2017 +0200

    drm/edid: Don't send non-zero YQ in AVI infoframe for HDMI 1.x sinks
    
    Apparently some sinks look at the YQ bits even when receiving RGB,
    and they get somehow confused when they see a non-zero YQ value.
    So we can't just blindly follow CEA-861-F and set YQ to match the
    RGB range.
    
    Unfortunately there is no good way to tell whether the sink
    designer claims to have read CEA-861-F. The CEA extension block
    revision number has generally been stuck at 3 since forever,
    and even a very recently manufactured sink might be based on
    an old design so the manufacturing date doesn't seem like
    something we can use. In lieu of better information let's
    follow CEA-861-F only for HDMI 2.0 sinks, since HDMI 2.0 is
    based on CEA-861-F. For HDMI 1.x sinks we'll always set YQ=0.
    
    The alternative would of course be to always set YQ=0. And if
    we ever encounter a HDMI 2.0+ sink with this bug that's what
    we'll probably have to do.
    
    Cc: stable@vger.kernel.org
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Eric Anholt <eric@anholt.net>
    Cc: Neil Kownacki <njkkow@gmail.com>
    Reported-by: Neil Kownacki <njkkow@gmail.com>
    Tested-by: Neil Kownacki <njkkow@gmail.com>
    Fixes: fcc8a22 ("drm/edid: Set YQ bits in the AVI infoframe according to CEA-861-F")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101639
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171108152504.12596-1-ville.syrjala@linux.intel.com
    Acked-by: Eric Anholt <eric@anholt.net>

commit 253696c
Author: Stefan Schake <stschake@gmail.com>
Date:   Fri Nov 10 02:05:06 2017 +0100

    drm/vc4: Account for interrupts in flight
    
    Synchronously disable the IRQ to make the following cancel_work_sync
    invocation effective.
    
    An interrupt in flight could enqueue further overflow mem work. As we
    free the binner BO immediately following vc4_irq_uninstall this caused
    a NULL pointer dereference in the work callback vc4_overflow_mem_work.
    
    Link: anholt/linux#114
    Signed-off-by: Stefan Schake <stschake@gmail.com>
    Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
fengguang pushed a commit to 0day-ci/linux that referenced this issue Dec 7, 2017
GIT 43570f0

commit 3c02a6d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Nov 27 10:59:40 2017 +0100

    Revert "ALSA: usb-audio: Fix potential zero-division at parsing FU"
    
    The commit 8428a8e ("ALSA: usb-audio: Fix potential zero-division
    at parsing FU") is utterly bogus and breaks the case with csize=1
    instead of fixing anything.  Just take it back again.
    
    Reported-by: Jörg Otte <jrg.otte@gmail.com>
    Fixes: 8428a8e ("ALSA: usb-audio: Fix potential zero-division at parsing FU"
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 8f5abe8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Nov 27 16:45:56 2017 -0800

    proc: don't report kernel addresses in /proc/<pid>/stack
    
    This just changes the file to report them as zero, although maybe even
    that could be removed.  I checked, and at least procps doesn't actually
    seem to parse the 'stack' file at all.
    
    And since the file doesn't necessarily even exist (it requires
    CONFIG_STACKTRACE), possibly other tools don't really use it either.
    
    That said, in case somebody parses it with tools, just having that zero
    there should keep such tools happy.
    
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 1751e8a
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Nov 27 13:05:09 2017 -0800

    Rename superblock flags (MS_xyz -> SB_xyz)
    
    This is a pure automated search-and-replace of the internal kernel
    superblock flags.
    
    The s_flags are now called SB_*, with the names and the values for the
    moment mirroring the MS_* flags that they're equivalent to.
    
    Note how the MS_xyz flags are the ones passed to the mount system call,
    while the SB_xyz flags are what we then use in sb->s_flags.
    
    The script to do this was:
    
        # places to look in; re security/*: it generally should *not* be
        # touched (that stuff parses mount(2) arguments directly), but
        # there are two places where we really deal with superblock flags.
        FILES="drivers/mtd drivers/staging/lustre fs ipc mm \
                include/linux/fs.h include/uapi/linux/bfs_fs.h \
                security/apparmor/apparmorfs.c security/apparmor/include/lib.h"
        # the list of MS_... constants
        SYMS="RDONLY NOSUID NODEV NOEXEC SYNCHRONOUS REMOUNT MANDLOCK \
              DIRSYNC NOATIME NODIRATIME BIND MOVE REC VERBOSE SILENT \
              POSIXACL UNBINDABLE PRIVATE SLAVE SHARED RELATIME KERNMOUNT \
              I_VERSION STRICTATIME LAZYTIME SUBMOUNT NOREMOTELOCK NOSEC BORN \
              ACTIVE NOUSER"
    
        SED_PROG=
        for i in $SYMS; do SED_PROG="$SED_PROG -e s/MS_$i/SB_$i/g"; done
    
        # we want files that contain at least one of MS_...,
        # with fs/namespace.c and fs/pnode.c excluded.
        L=$(for i in $SYMS; do git grep -w -l MS_$i $FILES; done| sort|uniq|grep -v '^fs/namespace.c'|grep -v '^fs/pnode.c')
    
        for f in $L; do sed -i $f $SED_PROG; done
    
    Requested-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 141cbfb
Author: Thomas Meyer <thomas@m3y3r.de>
Date:   Thu Aug 10 10:53:53 2017 +0200

    auxdisplay: img-ascii-lcd: Only build on archs that have IOMEM
    
    This avoids the MODPOST error:
    
      ERROR: "devm_ioremap_resource" [drivers/auxdisplay/img-ascii-lcd.ko] undefined!
    
    Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 152e93a
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Mon Nov 27 06:21:26 2017 +0300

    mm, thp: Do not make pmd/pud dirty without a reason
    
    Currently we make page table entries dirty all the time regardless of
    access type and don't even consider if the mapping is write-protected.
    The reasoning is that we don't really need dirty tracking on THP and
    making the entry dirty upfront may save some time on first write to the
    page.
    
    Unfortunately, such approach may result in false-positive
    can_follow_write_pmd() for huge zero page or read-only shmem file.
    
    Let's only make page dirty only if we about to write to the page anyway
    (as we do for small pages).
    
    I've restructured the code to make entry dirty inside
    maybe_p[mu]d_mkwrite(). It also takes into account if the vma is
    write-protected.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a8f9736
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Mon Nov 27 06:21:25 2017 +0300

    mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()
    
    Currently, we unconditionally make page table dirty in touch_pmd().
    It may result in false-positive can_follow_write_pmd().
    
    We may avoid the situation, if we would only make the page table entry
    dirty if caller asks for write access -- FOLL_WRITE.
    
    The patch also changes touch_pud() in the same way.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Hugh Dickins <hughd@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit c14ca83
Author: Ondrej Mosnáček <omosnacek@gmail.com>
Date:   Thu Nov 23 13:49:06 2017 +0100

    crypto: skcipher - Fix skcipher_walk_aead_common
    
    The skcipher_walk_aead_common function calls scatterwalk_copychunks on
    the input and output walks to skip the associated data. If the AD end
    at an SG list entry boundary, then after these calls the walks will
    still be pointing to the end of the skipped region.
    
    These offsets are later checked for alignment in skcipher_walk_next,
    so the skcipher_walk may detect the alignment incorrectly.
    
    This patch fixes it by calling scatterwalk_done after the copychunks
    calls to ensure that the offsets refer to the right SG list entry.
    
    Fixes: b286d8b ("crypto: skcipher - Add skcipher walk interface")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ondrej Mosnacek <omosnacek@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

commit 7d2c3f5
Author: Stephan Mueller <smueller@chronox.de>
Date:   Fri Nov 10 13:20:55 2017 +0100

    crypto: af_alg - remove locking in async callback
    
    The code paths protected by the socket-lock do not use or modify the
    socket in a non-atomic fashion. The actions pertaining the socket do not
    even need to be handled as an atomic operation. Thus, the socket-lock
    can be safely ignored.
    
    This fixes a bug regarding scheduling in atomic as the callback function
    may be invoked in interrupt context.
    
    In addition, the sock_hold is moved before the AIO encrypt/decrypt
    operation to ensure that the socket is always present. This avoids a
    tiny race window where the socket is unprotected and yet used by the AIO
    operation.
    
    Finally, the release of resources for a crypto operation is moved into a
    common function of af_alg_free_resources.
    
    Cc: <stable@vger.kernel.org>
    Fixes: e870456 ("crypto: algif_skcipher - overhaul memory management")
    Fixes: d887c52 ("crypto: algif_aead - overhaul memory management")
    Reported-by: Romain Izard <romain.izard.pro@gmail.com>
    Signed-off-by: Stephan Mueller <smueller@chronox.de>
    Tested-by: Romain Izard <romain.izard.pro@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

commit 8e1fa89
Author: Stephan Mueller <smueller@chronox.de>
Date:   Fri Nov 10 11:04:52 2017 +0100

    crypto: algif_aead - skip SGL entries with NULL page
    
    The TX SGL may contain SGL entries that are assigned a NULL page. This
    may happen if a multi-stage AIO operation is performed where the data
    for each stage is pointed to by one SGL entry. Upon completion of that
    stage, af_alg_pull_tsgl will assign NULL to the SGL entry.
    
    The NULL cipher used to copy the AAD from TX SGL to the destination
    buffer, however, cannot handle the case where the SGL starts with an SGL
    entry having a NULL page. Thus, the code needs to advance the start
    pointer into the SGL to the first non-NULL entry.
    
    This fixes a crash visible on Intel x86 32 bit using the libkcapi test
    suite.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 72548b0 ("crypto: algif_aead - copy AAD from src to dst")
    Signed-off-by: Stephan Mueller <smueller@chronox.de>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

commit 33d22c2
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 23 12:12:17 2017 +1000

    drm/ttm: don't attempt to use hugepages if dma32 requested (v2)
    
    The commit below introduced thp support for ttm allocations, however it didn't
    take into account the case where dma32 was requested. Some drivers always request
    dma32, and the bochs driver is one of those.
    
    This fixes an oops:
    
    [   30.108507] ------------[ cut here ]------------
    [   30.108920] kernel BUG at ./include/linux/gfp.h:408!
    [   30.109356] invalid opcode: 0000 [#1] SMP
    [   30.109700] Modules linked in: fuse nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack devlink ip_set nfnetlink ebtable_nat ebtable_broute bridge ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack libcrc32c iptable_mangle iptable_raw iptable_security ebtable_filter ebtables ip6table_filter ip6_tables snd_hda_codec_generic kvm_intel kvm snd_hda_intel snd_hda_codec irqbypass ppdev snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm bochs_drm ttm joydev drm_kms_helper virtio_balloon snd_timer snd parport_pc drm soundcore parport i2c_piix4 nls_utf8 isofs squashfs zstd_decompress xxhash 8021q garp mrp stp llc virtio_net
    [   30.115605]  virtio_console virtio_scsi crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel serio_raw virtio_pci virtio_ring virtio ata_generic pata_acpi qemu_fw_cfg sunrpc scsi_transport_iscsi loop
    [   30.117425] CPU: 0 PID: 1347 Comm: gnome-shell Not tainted 4.15.0-0.rc0.git6.1.fc28.x86_64 #1
    [   30.118141] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-2.fc27 04/01/2014
    [   30.118866] task: ffff923a77e03380 task.stack: ffffa78182228000
    [   30.119366] RIP: 0010:__alloc_pages_nodemask+0x35e/0x430
    [   30.119810] RSP: 0000:ffffa7818222bba8 EFLAGS: 00010202
    [   30.120250] RAX: 0000000000000001 RBX: 00000000014382c6 RCX: 0000000000000006
    [   30.120840] RDX: 0000000000000000 RSI: 0000000000000009 RDI: 0000000000000000
    [   30.121443] RBP: ffff923a760d6000 R08: 0000000000000000 R09: 0000000000000006
    [   30.122039] R10: 0000000000000040 R11: 0000000000000300 R12: ffff923a729273c0
    [   30.122629] R13: 0000000000000000 R14: 0000000000000000 R15: ffff923a7483d400
    [   30.123223] FS:  00007fe48da7dac0(0000) GS:ffff923a7cc00000(0000) knlGS:0000000000000000
    [   30.123896] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   30.124373] CR2: 00007fe457b73000 CR3: 0000000078313000 CR4: 00000000000006f0
    [   30.124968] Call Trace:
    [   30.125186]  ttm_pool_populate+0x19b/0x400 [ttm]
    [   30.125578]  ttm_bo_vm_fault+0x325/0x570 [ttm]
    [   30.125964]  __do_fault+0x19/0x11e
    [   30.126255]  __handle_mm_fault+0xcd3/0x1260
    [   30.126609]  handle_mm_fault+0x14c/0x310
    [   30.126947]  __do_page_fault+0x28c/0x530
    [   30.127282]  do_page_fault+0x32/0x270
    [   30.127593]  async_page_fault+0x22/0x30
    [   30.127922] RIP: 0033:0x7fe48aae39a8
    [   30.128225] RSP: 002b:00007ffc21c4d928 EFLAGS: 00010206
    [   30.128664] RAX: 00007fe457b73000 RBX: 000055cd4c1041a0 RCX: 00007fe457b73040
    [   30.129259] RDX: 0000000000300000 RSI: 0000000000000000 RDI: 00007fe457b73000
    [   30.129855] RBP: 0000000000000300 R08: 000000000000000c R09: 0000000100000000
    [   30.130457] R10: 0000000000000001 R11: 0000000000000246 R12: 000055cd4c1041a0
    [   30.131054] R13: 000055cd4bdfe990 R14: 000055cd4c104110 R15: 0000000000000400
    [   30.131648] Code: 11 01 00 0f 84 a9 00 00 00 65 ff 0d 6d cc dd 44 e9 0f ff ff ff 40 80 cd 80 e9 99 fe ff ff 48 89 c7 e8 e7 f6 01 00 e9 b7 fe ff ff <0f> 0b 0f ff e9 40 fd ff ff 65 48 8b 04 25 80 d5 00 00 8b 40 4c
    [   30.133245] RIP: __alloc_pages_nodemask+0x35e/0x430 RSP: ffffa7818222bba8
    [   30.133836] ---[ end trace d4f1deb60784f40a ]---
    
    v2: handle free path as well.
    
    Reported-by: Laura Abbott <labbott@redhat.com>
    Reported-by: Adam Williamson <awilliam@redhat.com>
    Fixes: 0284f1e (drm/ttm: add transparent huge page support for cached allocations v2)
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit b8a3365
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Thu Nov 23 11:37:37 2017 +0100

    drm/vblank: Pass crtc_id to page_flip_ioctl.
    
    We added crtc_id to the atomic ioctl, but forgot to add it for vblank
    and page flip events. Commit bd386e5 ("drm: Reorganize
    drm_pending_event to support future event types [v2]") added it to
    the vblank event, but page flip event was still missing.
    
    Correct this and add a test for making sure we always set crtc_id correctly.
    
    Fixes: bd386e5 ("drm: Reorganize drm_pending_event to support future event types [v2]")
    Fixes: 5db06a8 ("drm: Pass CRTC ID in userspace vblank events")
    Cc: Daniel Stone <daniels@collabora.com>
    Cc: Daniel Vetter <daniel.vetter@intel.com>
    Cc: Gustavo Padovan <gustavo@padovan.org>
    Cc: Sean Paul <seanpaul@chromium.org>
    Cc: dri-devel@lists.freedesktop.org
    Cc: <stable@vger.kernel.org> # v4.12+
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> #irc
    Testcase: igt/kms_vblank/crtc_id
    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171123103737.47138-1-maarten.lankhorst@linux.intel.com

commit 3572f04
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu Nov 16 18:02:15 2017 +0200

    drm/i915: Fix init_clock_gating for resume
    
    Moving the init_clock_gating() call from intel_modeset_init_hw() to
    intel_modeset_gem_init() had an unintended effect of not applying
    some workarounds on resume. This, for example, cause some kind of
    corruption to appear at the top of my IVB Thinkpad X1 Carbon LVDS
    screen after hibernation. Fix the problem by explicitly calling
    init_clock_gating() from the resume path.
    
    I really hope this doesn't break something else again. At least
    the problems reported at https://bugs.freedesktop.org/show_bug.cgi?id=103549
    didn't make a comeback, even after a hibernate cycle.
    
    v2: Reorder the init_clock_gating vs. modeset_init_hw to match
        the display reset path (Rodrigo)
    
    Cc: stable@vger.kernel.org
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Fixes: 6ac4327 ("drm/i915: Move init_clock_gating() back to where it was")
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171116160215.25715-1-ville.syrjala@linux.intel.com
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    (cherry picked from commit 675f7ff)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 457db89
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 14 17:35:20 2017 +0000

    drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM
    
    Commit  21cc643 ("drm/i915: Mark the userptr invalidate workqueue
    as WQ_MEM_RECLAIM") tried to fixup the check_flush_dependency warning
    for hitting i915_gem_userptr_mn_invalidate_range_start from within the
    shrinker, but I failed to notice userptr has 2 similarly named
    workqueues. I marked up i915-userptr-acquire as WQ_MEM_RECLAIM whereas
    we only wait upon i915-userptr-release from inside the reclaim paths.
    
    [62530.869510] workqueue: PF_MEMALLOC task 7983(gem_shrink) is flushing !WQ_MEM_RECLAIM i915-userptr-release:          (null)
    [62530.869515] ------------[ cut here ]------------
    [62530.869519] WARNING: CPU: 1 PID: 7983 at kernel/workqueue.c:2434 check_flush_dependency+0x7f/0x110
    [62530.869519] Modules linked in: pegasus mii ip6table_filter ip6_tables bnep iptable_filter snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic binfmt_misc nls_iso8859_1 intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_intel snd_hda_codec kvm_intel snd_hda_core snd_hwdep kvm snd_pcm irqbypass snd_seq_midi snd_seq_midi_event snd_rawmidi crct10dif_pclmul crc32_pclmul 8250_dw ghash_clmulni_intel snd_seq pcbc snd_seq_device snd_timer btusb aesni_intel btrtl btbcm aes_x86_64 iwlwifi btintel crypto_simd glue_helper cryptd bluetooth snd intel_cstate input_leds idma64 intel_rapl_perf ecdh_generic serio_raw soundcore cfg80211 wmi_bmof virt_dma intel_lpss_pci intel_lpss acpi_als kfifo_buf industrialio winbond_cir soc_button_array rc_core spidev tpm_crb intel_hid acpi_pad mac_hid sparse_keymap
    [62530.869546]  parport_pc ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid i915 i2c_algo_bit prime_numbers drm_kms_helper syscopyarea e1000e sysfillrect sysimgblt fb_sys_fops ahci ptp pps_core libahci drm wmi video i2c_hid hid
    [62530.869557] CPU: 1 PID: 7983 Comm: gem_shrink Tainted: G     U  W    L  4.14.0-rc8-drm-tip-ww45-commit-1342299+ #1
    [62530.869558] Hardware name: Intel Corporation CoffeeLake Client Platform/CoffeeLake H DDR4 RVP, BIOS CNLSFWR1.R00.X098.A00.1707301945 07/30/2017
    [62530.869559] task: ffffa1049dbeec80 task.stack: ffffae7d05c44000
    [62530.869560] RIP: 0010:check_flush_dependency+0x7f/0x110
    [62530.869561] RSP: 0018:ffffae7d05c473a0 EFLAGS: 00010286
    [62530.869562] RAX: 000000000000006e RBX: ffffa1049540f400 RCX: ffffffffa3e55788
    [62530.869562] RDX: 0000000000000000 RSI: 0000000000000092 RDI: 0000000000000202
    [62530.869563] RBP: ffffae7d05c473c0 R08: 000000000000006e R09: 000000000038bb0e
    [62530.869563] R10: 0000000000000000 R11: 000000000000006e R12: ffffa1049dbeec80
    [62530.869564] R13: 0000000000000000 R14: 0000000000000000 R15: ffffae7d05c473e0
    [62530.869565] FS:  00007f621b129880(0000) GS:ffffa1050b240000(0000) knlGS:0000000000000000
    [62530.869566] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [62530.869566] CR2: 00007f6214400000 CR3: 0000000353a17003 CR4: 00000000003606e0
    [62530.869567] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [62530.869567] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [62530.869568] Call Trace:
    [62530.869570]  flush_workqueue+0x115/0x3d0
    [62530.869573]  ? wake_up_process+0x15/0x20
    [62530.869596]  i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
    [62530.869614]  ? i915_gem_userptr_mn_invalidate_range_start+0x12f/0x160 [i915]
    [62530.869616]  __mmu_notifier_invalidate_range_start+0x55/0x80
    [62530.869618]  try_to_unmap_one+0x791/0x8b0
    [62530.869620]  ? call_rwsem_down_read_failed+0x18/0x30
    [62530.869622]  rmap_walk_anon+0x10b/0x260
    [62530.869624]  rmap_walk+0x48/0x60
    [62530.869625]  try_to_unmap+0x93/0xf0
    [62530.869626]  ? page_remove_rmap+0x2a0/0x2a0
    [62530.869627]  ? page_not_mapped+0x20/0x20
    [62530.869629]  ? page_get_anon_vma+0x90/0x90
    [62530.869630]  ? invalid_mkclean_vma+0x20/0x20
    [62530.869631]  migrate_pages+0x946/0xaa0
    [62530.869633]  ? __ClearPageMovable+0x10/0x10
    [62530.869635]  ? isolate_freepages_block+0x3c0/0x3c0
    [62530.869636]  compact_zone+0x22f/0x970
    [62530.869638]  compact_zone_order+0xa3/0xd0
    [62530.869640]  try_to_compact_pages+0x1a5/0x2a0
    [62530.869641]  ? try_to_compact_pages+0x1a5/0x2a0
    [62530.869643]  __alloc_pages_direct_compact+0x50/0x110
    [62530.869644]  __alloc_pages_slowpath+0x4da/0xf30
    [62530.869646]  __alloc_pages_nodemask+0x262/0x280
    [62530.869648]  alloc_pages_vma+0x165/0x1e0
    [62530.869649]  shmem_alloc_hugepage+0xd0/0x130
    [62530.869651]  ? __radix_tree_insert+0x45/0x230
    [62530.869652]  ? __vm_enough_memory+0x29/0x130
    [62530.869654]  shmem_alloc_and_acct_page+0x10d/0x1e0
    [62530.869655]  shmem_getpage_gfp+0x426/0xc00
    [62530.869657]  shmem_fault+0xa0/0x1e0
    [62530.869659]  ? file_update_time+0x60/0x110
    [62530.869660]  __do_fault+0x1e/0xc0
    [62530.869661]  __handle_mm_fault+0xa35/0x1170
    [62530.869662]  handle_mm_fault+0xcc/0x1c0
    [62530.869664]  __do_page_fault+0x262/0x4f0
    [62530.869666]  do_page_fault+0x2e/0xe0
    [62530.869667]  page_fault+0x22/0x30
    [62530.869668] RIP: 0033:0x404335
    [62530.869669] RSP: 002b:00007fff7829e420 EFLAGS: 00010216
    [62530.869670] RAX: 00007f6210400000 RBX: 0000000000000004 RCX: 0000000000b80000
    [62530.869670] RDX: 0000000000002e01 RSI: 0000000000008000 RDI: 0000000000000004
    [62530.869671] RBP: 0000000000000019 R08: 0000000000000002 R09: 0000000000000000
    [62530.869671] R10: 0000000000000559 R11: 0000000000000246 R12: 0000000008000000
    [62530.869672] R13: 00000000004042f0 R14: 0000000000000004 R15: 000000000000007e
    [62530.869673] Code: 00 8b b0 18 05 00 00 48 8d 8b b0 00 00 00 48 8d 90 c0 06 00 00 4d 89 f0 48 c7 c7 40 c0 c8 a3 c6 05 68 c5 e8 00 01 e8 c2 68 04 00 <0f> ff 4d 85 ed 74 18 49 8b 45 20 48 8b 70 08 8b 86 00 01 00 00
    [62530.869691] ---[ end trace 01e01ad0ff5781f8 ]---
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103739
    Fixes: 21cc643 ("drm/i915: Mark the userptr invalidate workqueue as WQ_MEM_RECLAIM")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Michał Winiarski <michal.winiarski@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171114173520.8829-1-chris@chris-wilson.co.uk
    Reviewed-by: Matthew Auld <matthew.auld@intel.com>
    (cherry picked from commit 41729bf)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 6e06827
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Nov 15 12:14:58 2017 +0000

    drm/i915: Clear breadcrumb node when cancelling signaling
    
    When we call intel_engine_cancel_signaling() to stop reporting when
    a request is completed via an asynchronous signal, we remove that request
    from the breadcrumb wait queue. However, we may be concurrently
    processing that request in the signaler itself, the actual operations on
    the request's node itself are serialised but we do not actually clear the
    waiter after removing it from the tree allowing both parties to attempt
    to do so and corrupting the rbtree. (Previously removing from the
    breadcrumb wait queue could only be done on behalf of i915_wait_request,
    so this race could not happen).
    
    Reported-by: "He, Bo" <bo.he@intel.com>
    Fixes: 9eb143b ("drm/i915: Allow a request to be cancelled")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: "He, Bo" <bo.he@intel.com>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Michał Winiarski <michal.winiarski@intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171115121458.24655-1-chris@chris-wilson.co.uk
    Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    (cherry picked from commit c534612)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit dcd1d83
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Sep 19 16:55:34 2017 +0100

    drm/i915/gvt: ensure -ve return value is handled correctly
    
    An earlier fix changed the return type from find_bb_size however the
    integer return is being assigned to a unsigned int so the -ve error
    check will never be detected. Make bb_size an int to fix this.
    
    Detected by CoverityScan CID#1456886 ("Unsigned compared against 0")
    
    Fixes: 1e3197d ("drm/i915/gvt: Refine error handling for perform_bb_shadow")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
    (cherry picked from commit 24f8a29)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 294cf1a
Author: Hans de Goede <j.w.r.degoede@gmail.com>
Date:   Tue Nov 14 14:55:17 2017 +0100

    drm/i915: Re-register PMIC bus access notifier on runtime resume
    
    intel_uncore_suspend() unregisters the uncore code's PMIC bus access
    notifier and gets called on both normal and runtime suspend.
    
    intel_uncore_resume_early() re-registers the notifier, but only on
    normal resume. Add a new intel_uncore_runtime_resume() function which
    only re-registers the notifier and call that on runtime resume.
    
    Cc: stable@vger.kernel.org
    Reported-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171114135518.15981-2-hdegoede@redhat.com
    (cherry picked from commit bedf4d7)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit f4359ce
Author: Hans de Goede <j.w.r.degoede@gmail.com>
Date:   Fri Nov 10 16:03:01 2017 +0100

    drm/i915: Fix false-positive assert_rpm_wakelock_held in i915_pmic_bus_access_notifier v2
    
    assert_rpm_wakelock_held is triggered from i915_pmic_bus_access_notifier
    even though it gets unregistered on (runtime) suspend, this is caused
    by a race happening under the following circumstances:
    
    intel_runtime_pm_put does:
    
       atomic_dec(&dev_priv->pm.wakeref_count);
    
       pm_runtime_mark_last_busy(kdev);
       pm_runtime_put_autosuspend(kdev);
    
    And pm_runtime_put_autosuspend calls intel_runtime_suspend from
    a workqueue, so there is ample of time between the atomic_dec() and
    intel_runtime_suspend() unregistering the notifier. If the notifier
    gets called in this windowd assert_rpm_wakelock_held falsely triggers
    (at this point we're not runtime-suspended yet).
    
    This commit adds disable_rpm_wakeref_asserts and
    enable_rpm_wakeref_asserts calls around the
    intel_uncore_forcewake_get(FORCEWAKE_ALL) call in
    i915_pmic_bus_access_notifier fixing the false-positive WARN_ON.
    
    Changes in v2:
    -Reword comment explaining why disabling the wakeref asserts is
     ok and necessary
    
    Cc: stable@vger.kernel.org
    Reported-by: FKr <bugs-freedesktop@ubermail.me>
    Reviewed-by: Imre Deak <imre.deak@intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171110150301.9601-2-hdegoede@redhat.com
    (cherry picked from commit ce30560)
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>

commit 9271c0c
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Wed Nov 8 17:25:04 2017 +0200

    drm/edid: Don't send non-zero YQ in AVI infoframe for HDMI 1.x sinks
    
    Apparently some sinks look at the YQ bits even when receiving RGB,
    and they get somehow confused when they see a non-zero YQ value.
    So we can't just blindly follow CEA-861-F and set YQ to match the
    RGB range.
    
    Unfortunately there is no good way to tell whether the sink
    designer claims to have read CEA-861-F. The CEA extension block
    revision number has generally been stuck at 3 since forever,
    and even a very recently manufactured sink might be based on
    an old design so the manufacturing date doesn't seem like
    something we can use. In lieu of better information let's
    follow CEA-861-F only for HDMI 2.0 sinks, since HDMI 2.0 is
    based on CEA-861-F. For HDMI 1.x sinks we'll always set YQ=0.
    
    The alternative would of course be to always set YQ=0. And if
    we ever encounter a HDMI 2.0+ sink with this bug that's what
    we'll probably have to do.
    
    Cc: stable@vger.kernel.org
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Eric Anholt <eric@anholt.net>
    Cc: Neil Kownacki <njkkow@gmail.com>
    Reported-by: Neil Kownacki <njkkow@gmail.com>
    Tested-by: Neil Kownacki <njkkow@gmail.com>
    Fixes: fcc8a22 ("drm/edid: Set YQ bits in the AVI infoframe according to CEA-861-F")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101639
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171108152504.12596-1-ville.syrjala@linux.intel.com
    Acked-by: Eric Anholt <eric@anholt.net>

commit 253696c
Author: Stefan Schake <stschake@gmail.com>
Date:   Fri Nov 10 02:05:06 2017 +0100

    drm/vc4: Account for interrupts in flight
    
    Synchronously disable the IRQ to make the following cancel_work_sync
    invocation effective.
    
    An interrupt in flight could enqueue further overflow mem work. As we
    free the binner BO immediately following vc4_irq_uninstall this caused
    a NULL pointer dereference in the work callback vc4_overflow_mem_work.
    
    Link: anholt/linux#114
    Signed-off-by: Stefan Schake <stschake@gmail.com>
    Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
anholt pushed a commit that referenced this issue Jan 17, 2018
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: #114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
popcornmix pushed a commit to raspberrypi/linux that referenced this issue Jan 25, 2018
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
popcornmix pushed a commit to raspberrypi/linux that referenced this issue Jan 31, 2018
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
TiejunChina pushed a commit to TiejunChina/linux that referenced this issue Feb 2, 2018
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
woodsts pushed a commit to woodsts/linux-stable that referenced this issue Feb 3, 2018
[ Upstream commit 253696c ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
woodsts pushed a commit to woodsts/linux-stable that referenced this issue Feb 3, 2018
[ Upstream commit 253696c ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
automorphism88 pushed a commit to automorphism88/amd-staging-sources that referenced this issue Feb 3, 2018
[ Upstream commit 253696c ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
popcornmix pushed a commit to raspberrypi/linux that referenced this issue Feb 6, 2018
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
(cherry picked from commit 253696c)
anholt pushed a commit that referenced this issue Mar 1, 2018
commit 5516e21 upstream.

Currently a crash can be seen if we reach the "err"
label in dmi_add_platform_ipmi(), calling
platform_device_put(), like here:
[    7.270584]  (null): ipmi:dmi: Unable to add resources: -16
[    7.330229] ------------[ cut here ]------------
[    7.334889] kernel BUG at mm/slub.c:3894!
[    7.338936] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
[    7.344475] Modules linked in:
[    7.347556] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.15.0-rc2-00004-gbe9cb7b-dirty #114
[    7.355907] Hardware name: Huawei Taishan 2280 /D05, BIOS Hisilicon D05 IT17 Nemo 2.0 RC0 11/29/2017
[    7.365137] task: 00000000c211f6d3 task.stack: 00000000f276e9af
[    7.371116] pstate: 60000005 (nZCv daif -PAN -UAO)
[    7.375957] pc : kfree+0x194/0x1b4
[    7.379389] lr : platform_device_release+0xcc/0xd8
[    7.384225] sp : ffff0000092dba90
[    7.387567] x29: ffff0000092dba90 x28: ffff000008a83000
[    7.392933] x27: ffff0000092dbc10 x26: 00000000000000e6
[    7.398297] x25: 0000000000000003 x24: ffff0000085b51e8
[    7.403662] x23: 0000000000000100 x22: ffff7e0000234cc0
[    7.409027] x21: ffff000008af3660 x20: ffff8017d21acc10
[    7.414392] x19: ffff8017d21acc00 x18: 0000000000000002
[    7.419757] x17: 0000000000000001 x16: 0000000000000008
[    7.425121] x15: 0000000000000001 x14: 6666666678303d65
[    7.430486] x13: 6469727265766f5f x12: 7265766972642e76
[    7.435850] x11: 6564703e2d617020 x10: 6530326435373638
[    7.441215] x9 : 3030303030303030 x8 : 3d76656420657361
[    7.446580] x7 : ffff000008f59df8 x6 : ffff8017fbe0ea50
[    7.451945] x5 : 0000000000000000 x4 : 0000000000000000
[    7.457309] x3 : ffffffffffffffff x2 : 0000000000000000
[    7.462674] x1 : 0fffc00000000800 x0 : ffff7e0000234ce0
[    7.468039] Process swapper/0 (pid: 1, stack limit = 0x00000000f276e9af)
[    7.474809] Call trace:
[    7.477272]  kfree+0x194/0x1b4
[    7.480351]  platform_device_release+0xcc/0xd8
[    7.484837]  device_release+0x34/0x90
[    7.488531]  kobject_put+0x70/0xcc
[    7.491961]  put_device+0x14/0x1c
[    7.495304]  platform_device_put+0x14/0x1c
[    7.499439]  dmi_add_platform_ipmi+0x348/0x3ac
[    7.503923]  scan_for_dmi_ipmi+0xfc/0x10c
[    7.507970]  do_one_initcall+0x38/0x124
[    7.511840]  kernel_init_freeable+0x188/0x228
[    7.516238]  kernel_init+0x10/0x100
[    7.519756]  ret_from_fork+0x10/0x18
[    7.523362] Code: f94002c0 37780080 f94012c0 37000040 (d4210000)
[    7.529552] ---[ end trace 11750e4787deef9e ]---
[    7.534228] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    7.534228]

This is because when the device is released in
platform_device_release(), we try to free
pdev.driver_override. This is a const string, hence
the crash.
Fix by using dynamic memory for pdev->driver_override.

Signed-off-by: John Garry <john.garry@huawei.com>
[Removed the free of driver_override from ipmi_si_remove_by_dev().  The
 free is done in platform_device_release(), and would result in a double
 free, and ipmi_si_remove_by_dev() is called by non-platform devices.]
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
raspbian-autopush pushed a commit to raspbian-packages/linux-4.9 that referenced this issue Apr 7, 2018
commit 65804da
Author: Stefan Schake <stschake@gmail.com>
Date:   Fri Nov 10 02:05:06 2017 +0100

    drm/vc4: Account for interrupts in flight
    
    Synchronously disable the IRQ to make the following cancel_work_sync
    invocation effective.
    
    An interrupt in flight could enqueue further overflow mem work. As we
    free the binner BO immediately following vc4_irq_uninstall this caused
    a NULL pointer dereference in the work callback vc4_overflow_mem_work.
    
    Link: anholt/linux#114
    Signed-off-by: Stefan Schake <stschake@gmail.com>
    Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
    (cherry picked from commit 253696ccd613fbdaa5aba1de44c461a058e0a114)


Gbp-Pq: Topic rpi
Gbp-Pq: Name rpi_1466_65804da2e8476aaa632b094c6dc9bc45c0cdb65c.patch
johalun pushed a commit to FreeBSDDesktop/kms-drm that referenced this issue Apr 15, 2018
Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
jpuhlman pushed a commit to MontaVista-OpenSourceTechnology/linux-mvista-2.4 that referenced this issue Apr 21, 2018
Source: Kernel.org
MR: 93353
Type: Integration
Disposition: Backport from git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable linux-4.14.y
ChangeID: 08bb42086b3e9c5619e6e82aed576eae8a6583ef
Description:

[ Upstream commit 253696c ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster@mvista.com>
raspbian-autopush pushed a commit to raspbian-packages/linux-4.9 that referenced this issue Nov 11, 2018
commit 65804da
Author: Stefan Schake <stschake@gmail.com>
Date:   Fri Nov 10 02:05:06 2017 +0100

    drm/vc4: Account for interrupts in flight
    
    Synchronously disable the IRQ to make the following cancel_work_sync
    invocation effective.
    
    An interrupt in flight could enqueue further overflow mem work. As we
    free the binner BO immediately following vc4_irq_uninstall this caused
    a NULL pointer dereference in the work callback vc4_overflow_mem_work.
    
    Link: anholt/linux#114
    Signed-off-by: Stefan Schake <stschake@gmail.com>
    Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
    (cherry picked from commit 253696ccd613fbdaa5aba1de44c461a058e0a114)


Gbp-Pq: Topic rpi
Gbp-Pq: Name rpi_1466_65804da2e8476aaa632b094c6dc9bc45c0cdb65c.patch
klabit87 pushed a commit to klabit87/twrp_android_samsung_kernel_sdm845 that referenced this issue Dec 14, 2018
[ Upstream commit 253696ccd613fbdaa5aba1de44c461a058e0a114 ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
trilean pushed a commit to trilean/linux-renner that referenced this issue Feb 25, 2019
[ Upstream commit 253696ccd613fbdaa5aba1de44c461a058e0a114 ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
curtisy1 pushed a commit to curtisy1/android_kernel_nubia_nx606j that referenced this issue Mar 30, 2019
[ Upstream commit 253696ccd613fbdaa5aba1de44c461a058e0a114 ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
curtisy1 pushed a commit to curtisy1/android_kernel_nubia_nx606j that referenced this issue May 19, 2019
[ Upstream commit 253696ccd613fbdaa5aba1de44c461a058e0a114 ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
TheNotOnly pushed a commit to TheNotOnly/android_kernel_lge_sdm845-archived that referenced this issue Jun 20, 2019
[ Upstream commit 253696c ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
TheNotOnly pushed a commit to TheNotOnly/android_kernel_lge_sdm845-archived that referenced this issue Jun 23, 2019
[ Upstream commit 253696c ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78 ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
JamesQuilay pushed a commit to JamesQuilay/A5S-8.1-kernel-source that referenced this issue Sep 17, 2022
[ Upstream commit 253696ccd613fbdaa5aba1de44c461a058e0a114 ]

Synchronously disable the IRQ to make the following cancel_work_sync
invocation effective.

An interrupt in flight could enqueue further overflow mem work. As we
free the binner BO immediately following vc4_irq_uninstall this caused
a NULL pointer dereference in the work callback vc4_overflow_mem_work.

Link: anholt/linux#114
Signed-off-by: Stefan Schake <stschake@gmail.com>
Fixes: d5b1a78a772f ("drm/vc4: Add support for drawing 3D frames.")
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/1510275907-993-2-git-send-email-stschake@gmail.com
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants