Luca Barbieri
d051bbb22e
drm/nouveau: Acknowledge DMA_VTX_PROTECTION PGRAPH interrupts
...
Currently Nouveau is unable to dismiss DMA_VTX_PROTECTION errors,
which results in an infinite loop in the interrupt handler.
These errors are caused both by bugs in the Gallium driver and by
user-specified index buffers with out of bounds indices.
By mmio-tracing the nVidia drivers, I found out how this is done.
On DMA_VTX_PROTECTION, The nVidia driver reads the register 0x402000,
always getting the value 4, and then writes 4 back to 0x402000.
This patch adds that logic by reading 0x402000 and writing the same
value back.
It's unclear what should happen if the value read is not 4, and
the current approach might not be the correct one.
To test this, modify mesa/progs/trivial/vbo-drawrange.c, defining
ELTOBJ to 1 and replacing indices with huge out of bounds integers.
Without this patch, the GPU and/or kernel should lock up.
With this patch, it should misrender as expected but not lock up.
The errors are still logged since they are useful for development.
This has been tested on NV49 and may not work on other cards.
To find out how things work on other cards, run the aforementioned
test using the blob with mmiotrace and grep for a read of the PGRAPH
source register.
Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2010-01-18 09:56:03 +10:00
..
accessibility
acpi
Merge branch 'thinkpad-2.6.32' into release
2009-11-25 00:43:08 -05:00
amba
ata
sata_fsl: Split hard and soft reset
2009-11-19 18:18:17 -05:00
atm
auxdisplay
base
PM: fix irq enable/disable in runtime PM code
2009-11-29 16:51:27 +01:00
block
aoe: prevent cache aliases
2009-12-01 16:32:20 -08:00
bluetooth
fix memory leak in fixed btusb_close
2009-11-14 12:57:08 -08:00
cdrom
char
Merge remote branch 'anholt/drm-intel-next' into drm-linus
2009-12-10 15:44:19 +10:00
clocksource
connector
cpufreq
[CPUFREQ] Fix stale cpufreq_cpu_governor pointer
2009-11-17 23:15:04 -05:00
cpuidle
cpuidle: always return with interrupts enabled
2009-10-29 07:39:31 -07:00
crypto
crypto: padlock-aes - Use the correct mask when checking whether copying is required
2009-11-03 10:32:03 -05:00
dca
dio
dma
shdma: fix initialization error handling
2009-11-22 12:10:10 -07:00
edac
amd64_edac: fix CECCs reporting
2009-11-04 14:04:06 +01:00
eisa
firewire
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
2009-11-30 13:58:23 -08:00
firmware
gpio
gpio: Langwell GPIO driver bugfixes
2009-12-01 16:32:19 -08:00
gpu
drm/nouveau: Acknowledge DMA_VTX_PROTECTION PGRAPH interrupts
2010-01-18 09:56:03 +10:00
hid
hwmon
hwmon: (adt7475) Fix sysfs file names
2009-11-16 12:45:40 +01:00
i2c
Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
2009-11-30 14:50:44 -08:00
ide
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6
2009-11-30 14:02:34 -08:00
idle
ieee1394
ieee802154
ieee802154: dont leak skbs in ieee802154_fake_xmit()
2009-11-19 13:16:21 -08:00
infiniband
input
Input: i8042 - add Dell Vostro 1320, 1520 and 1720 to the reset list
2009-12-02 15:41:33 -08:00
isdn
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2009-11-18 14:54:45 -08:00
leds
leds-gpio: fix possible crash on OF device unbinding
2009-11-16 11:50:42 +00:00
lguest
macintosh
mca
md
md: revert incorrect fix for read error handling in raid1.
2009-12-01 17:30:59 +11:00
media
drivers/media/dvb/dvb-core/dvb_frontend.c: needs semaphore.h
2009-12-01 16:32:19 -08:00
memstick
message
mfd
mfd: Correct WM831X_MAX_ISEL_VALUE
2009-12-01 11:24:19 +01:00
misc
at24: Use timeout also for read
2009-11-26 09:22:33 +01:00
mmc
[ARM] pxamci: call mmc_remove_host() before freeing resources
2009-12-02 22:58:19 +08:00
mtd
ARM: Fix warning in sa1100-flash.c
2009-11-16 16:13:35 +00:00
net
Merge branch 'security' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
2009-11-30 16:47:16 -08:00
nubus
of
of: Remove nested function
2009-10-15 09:58:27 -06:00
oprofile
parisc
parport
pci
Fix handling of the HP/Acer 'DMAR at zero' BIOS error for machines with <4GiB RAM.
2009-11-19 13:42:02 -08:00
pcmcia
PM / yenta: Split resume into early and late parts (rev. 4)
2009-11-03 10:54:58 +01:00
platform
Merge branch 'misc-2.6.32' into release
2009-11-25 01:01:29 -05:00
pnp
power
pps
pps: events reporting fix up
2009-11-12 07:26:01 -08:00
ps3
rapidio
regulator
regulator: Initialise wm831x structure pointor for ISINK driver
2009-12-02 19:37:16 +00:00
rtc
rtc-x1205: reset clock to sane state after power failure
2009-12-01 16:32:20 -08:00
s390
[S390] sclp: undo quiesce handler override on resume
2009-11-13 15:45:03 +01:00
sbus
scsi
[SCSI] fix crash when disconnecting usb storage
2009-11-26 10:04:22 -06:00
serial
tty/of_serial: add missing ns16550a id
2009-11-30 16:38:44 -08:00
sfi
sh
sn
spi
SPI: spi_txx9: Fix bit rate calculation
2009-12-02 23:58:32 +00:00
ssb
ssb-pcmcia: Fix 32bit register access in early bus scanning
2009-11-10 16:21:12 -05:00
staging
Merge remote branch 'korg/drm-vmware-staging' into drm-core-next
2009-12-18 09:53:50 +10:00
tc
telephony
thermal
acpi: thermal: Add EOL to the trip_point_N_type strings
2009-11-05 17:33:24 -05:00
uio
uio: pm_runtime_disable is needed if failed
2009-11-13 11:36:00 +09:00
usb
USB: Add support for Mobilcom Debitel USB UMTS Surf-Stick to option driver
2009-11-30 16:43:17 -08:00
uwb
video
VIDEO: Correct use of request_region/request_mem_region
2009-12-02 23:58:32 +00:00
virtio
virtio: order used ring after used index read
2009-10-29 08:50:37 +10:30
vlynq
w1
watchdog
[PATCH] rc32434_wdt: fix compilation failure
2009-12-02 12:47:24 +00:00
xen
zorro
Kconfig
Makefile