Bug 11054

Summary: Divide by zero in ATI driver
Product: xorg Reporter: Sergey Svishchev <svs>
Component: Driver/otherAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: alexdeucher
Version: 6.9.0   
Hardware: Other   
OS: NetBSD   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
a workaround
none
new workaround, with DstH<16 and no check on DstW none

Description Sergey Svishchev 2007-05-24 11:27:13 UTC
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=320828 is very similar, if not the same bug.  As seen in the backtraces, DstH is 0 on entry to ATIMach64PutImage().  I can trigger this very consistently with mplayer and xine.
Comment 1 Sergey Svishchev 2007-05-24 11:27:38 UTC
Created attachment 10084 [details] [review]
a workaround
Comment 2 Michel Dänzer 2007-06-25 00:23:52 UTC
As the problem only seems related to DstH, why test DstW as well? Also, somebody followed up to the Debian bug report saying that it already occurs with DstH < 16. If the rest of the code can't be fixed to work with DstH < 16, you should probably return Success instead of an error to avoid breaking clients.
Comment 3 Sergey Svishchev 2007-06-25 14:23:04 UTC
I didn't have to resize mplayer window -- just ran it, and there was roughly 1/10 chance that X would crash.  As for DstW check, I added it just to be sure.
Comment 4 Brice Goglin 2007-07-18 14:24:15 UTC
Created attachment 10793 [details] [review]
new workaround, with DstH<16 and no check on DstW

This patch summarizes what has been discussed here and in the Debian bug so far. I talked to George Sapountzis about it, he didn't have a better idea at that time (and no hardware at home to look any deeper).

FWIW, a Debian user reported that this patch worked fine, so we'll probably include it in the next Debian package.
Comment 5 Alex Deucher 2007-07-19 15:47:37 UTC
committed:
882fe7631586b0a7919f808588a2ea4fb555f7e8

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.