atomic changes break drm-next-kmod?
Jung-uk Kim
jkim at FreeBSD.org
Tue Jul 3 19:32:05 UTC 2018
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On 07/03/2018 15:23, Jung-uk Kim wrote:
> On 07/03/2018 15:02, John Baldwin wrote:
>> 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
>>>> <imb at 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/gp
lv2/include/linux/acpi.h:26:
>>>>>
>>>>>
>>>>>
In file included from
>>>>> /usr/ports/graphics/drm-next-kmod/work/kms-drm-a753215/linuxkpi/gp
lv2/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 at freebsd.org mailing list
>>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-current
>>>>> To unsubscribe, send any mail to
>>>>> "freebsd-current-unsubscribe at 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); \
>
> Isn't "Z" better than "e" in this case?
Never mind, brain fart. These instructions are sign-extended.
Sorry for the noise.
Jung-uk Kim
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEl1bqgKaRyqfWXu/CfJ+WJvzb8UYFAls7zy8ACgkQfJ+WJvzb
8UYiOgf+PSb+Mv7UGCTUlftCiRmYYOW6ElMZSdr4tPinMocn4b/V9KJDqKOgO1SX
B2KCQHgSYt4Y+STiSrcCdhIkqCeIxdqJGHdTNpnpiUm7C+B50MrKgZo6n1xnlcCM
d4thqf0T/ZMaVaVEkZ42FTnmdXFo0L3jHNCHHYrpnXXXfRLJF6j5Q5Uetr1GEUJX
rpV2NIXMdk308qy4EvagLd0DEtT85QAjuG124nKh5FoSFD+5wBGFVrQWk4v4LVyd
rzBNM55JbTlEIFASlFjpiWJVhGvDzNVwN9XRxacYVgfEv23AMEibqhK12V48Lto/
X1/qHA0T9HC+gu/Eol+53AtU/P8ZyQ==
=cHxX
-----END PGP SIGNATURE-----
More information about the freebsd-current
mailing list