On 7/3/18 11:28 AM, Niclas Zeising wrote:
> On 07/03/18 17:02, O. Hartmann wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA512
>>
>> Am Tue, 3 Jul 2018 10:19:57 -0400
>> Michael Butler <i...@protected-networks.net> schrieb:
>>
>>> It seems recent changes (SVN r335873?) may have broken drm-next-kmod ..
>>>
>>> --- i915_drv.o ---
>>> In file included from i915_drv.c:30:
>>> In file included from
>>> /usr/ports/graphics/drm-next-kmod/work/kms-drm-a753215/linuxkpi/gplv2/include/linux/acpi.h:26:
>>> In file included from
>>> /usr/ports/graphics/drm-next-kmod/work/kms-drm-a753215/linuxkpi/gplv2/include/linux/device.h:4:
>>> In file included from
>>> /usr/src/sys/compat/linuxkpi/common/include/linux/device.h:35:
>>> In file included from
>>> /usr/src/sys/compat/linuxkpi/common/include/linux/types.h:37:
>>> In file included from /usr/src/sys/sys/systm.h:44:
>>> ./machine/atomic.h:450:29: error: invalid operand for instruction
>>> ATOMIC_ASM(clear,    long,  "andq %1,%0",  "ir", ~v);
>>>                              ^
>>> <inline asm>:1:7: note: instantiated into assembly here
>>>          andq $9223372036854775807,40672(%r14)
>>>               ^~~~~~~~~~~~~~~~~~~~~
>>> 1 error generated.
>>> *** [i915_drv.o] Error code 1
>>>
>>> make[3]: stopped in
>>> /usr/ports/graphics/drm-next-kmod/work/kms-drm-a753215/i915
>>> --- i915_gem.o ---
>>> In file included from i915_gem.c:28:
>>> In file included from
>>> /usr/ports/graphics/drm-next-kmod/work/kms-drm-a753215/include/drm/drmP.h:38:
>>> In file included from /usr/src/sys/sys/malloc.h:42:
>>> In file included from /usr/src/sys/sys/systm.h:44:
>>> ./machine/atomic.h:449:29: error: invalid operand for instruction
>>> ATOMIC_ASM(set,      long,  "orq %1,%0",   "ir",  v);
>>>                              ^
>>> <inline asm>:1:6: note: instantiated into assembly here
>>>          orq $-9223372036854775808,40672(%r14)
>>>              ^~~~~~~~~~~~~~~~~~~~~~
>>> 1 error generated.
>>> *** [i915_gem.o] Error code 1
>>>
>>> _______________________________________________
>>> freebsd-current@freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>> To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
>>
>>
>> It breaks also graphics/drm-stable-kmod (see PR 229484,
>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229484, same error as you 
>> described
>> above) and also emulators/virtualbox-ose-kmod. As long as CURRENT revision 
>> is < r335873,
>> those kmod compile well.
> 
> We are looking into why both the drm ports fail.
> Regards
> 

I haven't yet tested an amd64 kernel with this, but I think this change to 
sys/amd64/include/atomic.h
might fix it:

Index: atomic.h
===================================================================
--- atomic.h    (revision 335896)
+++ atomic.h    (working copy)
@@ -446,10 +446,10 @@ ATOMIC_ASM(clear,    int,   "andl %1,%0",  "ir", ~
 ATOMIC_ASM(add,             int,   "addl %1,%0",  "ir",  v);
 ATOMIC_ASM(subtract, int,   "subl %1,%0",  "ir",  v);
 
-ATOMIC_ASM(set,             long,  "orq %1,%0",   "ir",  v);
-ATOMIC_ASM(clear,    long,  "andq %1,%0",  "ir", ~v);
-ATOMIC_ASM(add,             long,  "addq %1,%0",  "ir",  v);
-ATOMIC_ASM(subtract, long,  "subq %1,%0",  "ir",  v);
+ATOMIC_ASM(set,             long,  "orq %1,%0",   "er",  v);
+ATOMIC_ASM(clear,    long,  "andq %1,%0",  "er", ~v);
+ATOMIC_ASM(add,             long,  "addq %1,%0",  "er",  v);
+ATOMIC_ASM(subtract, long,  "subq %1,%0",  "er",  v);
 
 #define        ATOMIC_LOADSTORE(TYPE)                                  \
        ATOMIC_LOAD(TYPE);                                      \


-- 
John Baldwin
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to