Many thanks, Walt,
your patches work just fine for me.
Helmut.
On 04/16/2012 08:45:14 PM, walt wrote:
On 04/16/2012 06:09 AM, Helmut Jarausch wrote:
>
> Hi,
>
> does anybody know about patches for the ATI-drivers 12.3 to work
with git-sources 3.4_rc3 ?
Well, "patch" is too formal for the ugly hack I use :)
After building your new kernel you should patch one kernel header file
before building ati-drivers (taken from lkml):
--- arch/x86/include/asm/compat.h.orig 2012-04-08 11:51:29.569528342
-0700
+++ arch/x86/include/asm/compat.h 2012-04-08 14:33:58.309972502
-0700
@@ -221,6 +221,7 @@
return (u32)(unsigned long)uptr;
}
+#ifdef CONFIG_x86_64
static inline void __user *arch_compat_alloc_user_space(long len)
{
compat_uptr_t sp;
@@ -234,6 +235,15 @@
return (void __user *)round_down(sp - len, 16);
}
+#else
+
+static inline void __user *arch_compat_alloc_user_space(long len)
+{
+ struct pt_regs *regs = task_pt_regs(current);
+ return (void __user *)regs->sp -len;
+}
+
+#endif
static inline bool is_x32_task(void)
{
Here's the ugly part: some names in compat.h were changed recently,
and
I can't be bothered to do a proper fix, so I hacked this together
instead:
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2012-03-23
13:38:48.000000000 -0700
+++ /tmp/firegl_public.c 2012-04-16 10:45:41.426582953 -0700
@@ -4181,7 +4181,7 @@
{
unsigned int p;
KCL_DEBUG5(FN_FIREGL_KAS, "%d\n", level_init);
- for_each_cpu_mask(p, cpu_possible_map)
+ for (p=0; p<4; p++)
{
KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level
for CPU # %d\n", p);
preempt_disable();
NOTE: my new machine has 4 cpus, numbered 0 through 3, and I
hardcoded that
number into the ati code, above, instead of deciphering the new
kernel headers.
Ugly, ugly, ugly. But it works perfectly :)
If you have two cpus you should change the p<4 to p<2, etc. And then
wait
for a professional fix from ati :p