Hello Bryce,

> I'm updating to the latest fglrx and see that this patch no longer applies in 
> linux-restricted-modules-2.6.22, so am dropping it. 
> Thanks for your bug report - it confirmed that this patch is obsolete.

That's not quite what I meant to say. Sure, the latest fglrx (and 8.36.5
as well, iirc) supports the new 2.6.20 (or higher) APIs. But I guess you
are not going to provide 2.6.22 for Feisty.

My point is that the patch Ubuntu applied to fglrx-8.34.8 to make it work with 
kernel 2.6.20 (both of which are used in Feisty) is broken:
- The patch provides old (== obsolete) #defines for the __syscall API to fglrx 
in firegl-public.c.
- These #defines are taken from kernel 2.6.17 or 2.6.18. 
- The macro __syscall_return is one of these #defines.
- __syscall_return checks whether an error condition is present by comparing 
the return value of the syscall to the maximum error value of the kernel
- In the Ubuntu patch, the maximum error value is hard coded into the macro 
instead of using the kernel defined MAX_ERRNO.
- This hard coded value the Ubuntu patch is using is the maximum error value 
for kernel 2.6.18 
- But kernel 2.6.20 defines some more error conditions than kernel 2.6.18
- So the Ubuntu patch version of __syscall_return misses some error conditions 
(3 on my platform - X86_64)

You might want to take a look at how 2.6.19 does it. The kernel #define
MAX_ERRNO is used instead of plain values which does things just Right
(TM) for every platform.

As long as Feisty does not upgrade to fglrx 8.36.5 or higher, or as long
as Ubuntu is not going to change its patch, this problem will still
exist in Feisty.

-- 
firegl_public.c: Ubuntu modification uses obsolete __syscall_return 
https://bugs.launchpad.net/bugs/101984
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to