diff mbox series

VLC doesn't play videos anymore since the PowerPC fixes 5.1-3

Message ID 0f0403a0-476a-6129-8dc6-866d894c9adc@xenosoft.de (mailing list archive)
State Not Applicable
Headers show
Series VLC doesn't play videos anymore since the PowerPC fixes 5.1-3 | expand

Commit Message

Christian Zigotzky April 4, 2019, 12:58 a.m. UTC
On 03 April 2019 at 07:05AM, Christophe Leroy wrote:
> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit :
>> Please test VLC with the RC3 of kernel 5.1.
>>
>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. 
>> Another user has already confirmed that [1]. This isn’t an April 
>> Fool‘s. ;-)
>
> Could you bisect to identify the guilty commit ?
>
> Thanks
> Christophe
>
>>
>> Thanks
>>
>> [1] 
>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561
>>
>
Hello Christophe,

I have found the problematic patch. The following patch from the PowerPC 
fixes 5.1-3 is responsible for the VLC issue.


-----

Link: 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/arch/powerpc/include/asm/vdso_datapage.h?h=v5.1-rc2&id=a5ed1e96cafde5ba48638f486bfca0685dc6ddc9

I created a patch for solving the VLC issue today.

vdso_datapage_vlc.patch:

diff -rupN a/arch/powerpc/include/asm/vdso_datapage.h 
b/arch/powerpc/include/asm/vdso_datapage.h
--- a/arch/powerpc/include/asm/vdso_datapage.h  2019-04-03 
22:56:44.560645936 +0200
+++ b/arch/powerpc/include/asm/vdso_datapage.h  2019-04-04 
02:20:09.479361827 +0200
@@ -82,10 +82,10 @@ struct vdso_data {
         __u32 icache_block_size;                /* L1 i-cache block 
size     */
         __u32 dcache_log_block_size;            /* L1 d-cache log block 
size */
         __u32 icache_log_block_size;            /* L1 i-cache log block 
size */
-       __u32 stamp_sec_fraction;               /* fractional seconds of 
stamp_xtime */
-       __s32 wtom_clock_nsec;                  /* Wall to monotonic 
clock nsec */
-       __s64 wtom_clock_sec;                   /* Wall to monotonic 
clock sec */
-       struct timespec stamp_xtime;            /* xtime as at 
tb_orig_stamp */
+       __s32 wtom_clock_sec;                   /* Wall to monotonic 
clock */
+       __s32 wtom_clock_nsec;
+       struct timespec stamp_xtime;    /* xtime as at tb_orig_stamp */
+       __u32 stamp_sec_fraction;       /* fractional seconds of 
stamp_xtime */
         __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
         __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
  };

-----

Cheers,
Christian

Comments

Christophe Leroy April 4, 2019, 4 a.m. UTC | #1
Le 04/04/2019 à 02:58, Christian Zigotzky a écrit :
> On 03 April 2019 at 07:05AM, Christophe Leroy wrote:
>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit :
>>> Please test VLC with the RC3 of kernel 5.1.
>>>
>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. 
>>> Another user has already confirmed that [1]. This isn’t an April 
>>> Fool‘s. ;-)
>>
>> Could you bisect to identify the guilty commit ?
>>
>> Thanks
>> Christophe
>>
>>>
>>> Thanks
>>>
>>> [1] 
>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 
>>>
>>>
>>
> Hello Christophe,
> 
> I have found the problematic patch. The following patch from the PowerPC 
> fixes 5.1-3 is responsible for the VLC issue.

That change is part of the following commit:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c

Just changing back the type of wtom_clock_sec to 32 bits without 
changing back the loading instruction is likely to give unexpected 
results on PPC64.

Are you using 32 bits or 64 bits powerpc ?

Christophe

> 
> diff --git a/arch/powerpc/include/asm/vdso_datapage.h 
> b/arch/powerpc/include/asm/vdso_datapage.h
> index 1afe90ade595..bbc06bd72b1f 100644
> --- a/arch/powerpc/include/asm/vdso_datapage.h
> +++ b/arch/powerpc/include/asm/vdso_datapage.h
> @@ -82,10 +82,10 @@ struct vdso_data {
>      __u32 icache_block_size;      /* L1 i-cache block size     */
>      __u32 dcache_log_block_size;      /* L1 d-cache log block size */
>      __u32 icache_log_block_size;      /* L1 i-cache log block size */
> -   __s32 wtom_clock_sec;         /* Wall to monotonic clock */
> -   __s32 wtom_clock_nsec;
> -   struct timespec stamp_xtime;   /* xtime as at tb_orig_stamp */
> -   __u32 stamp_sec_fraction;   /* fractional seconds of stamp_xtime */
> +   __u32 stamp_sec_fraction;      /* fractional seconds of stamp_xtime */
> +   __s32 wtom_clock_nsec;         /* Wall to monotonic clock nsec */
> +   __s64 wtom_clock_sec;         /* Wall to monotonic clock sec */
> +   struct timespec stamp_xtime;      /* xtime as at tb_orig_stamp */
>         __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
>         __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
>   };
> 
> -----
> 
> Link: 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/arch/powerpc/include/asm/vdso_datapage.h?h=v5.1-rc2&id=a5ed1e96cafde5ba48638f486bfca0685dc6ddc9 
> 
> 
> I created a patch for solving the VLC issue today.
> 
> vdso_datapage_vlc.patch:
> 
> diff -rupN a/arch/powerpc/include/asm/vdso_datapage.h 
> b/arch/powerpc/include/asm/vdso_datapage.h
> --- a/arch/powerpc/include/asm/vdso_datapage.h  2019-04-03 
> 22:56:44.560645936 +0200
> +++ b/arch/powerpc/include/asm/vdso_datapage.h  2019-04-04 
> 02:20:09.479361827 +0200
> @@ -82,10 +82,10 @@ struct vdso_data {
>          __u32 icache_block_size;                /* L1 i-cache block 
> size     */
>          __u32 dcache_log_block_size;            /* L1 d-cache log block 
> size */
>          __u32 icache_log_block_size;            /* L1 i-cache log block 
> size */
> -       __u32 stamp_sec_fraction;               /* fractional seconds of 
> stamp_xtime */
> -       __s32 wtom_clock_nsec;                  /* Wall to monotonic 
> clock nsec */
> -       __s64 wtom_clock_sec;                   /* Wall to monotonic 
> clock sec */
> -       struct timespec stamp_xtime;            /* xtime as at 
> tb_orig_stamp */
> +       __s32 wtom_clock_sec;                   /* Wall to monotonic 
> clock */
> +       __s32 wtom_clock_nsec;
> +       struct timespec stamp_xtime;    /* xtime as at tb_orig_stamp */
> +       __u32 stamp_sec_fraction;       /* fractional seconds of 
> stamp_xtime */
>          __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
>          __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
>   };
> 
> -----
> 
> Cheers,
> Christian
Christian Zigotzky April 4, 2019, 8:44 a.m. UTC | #2
On 04 April 2019 at 06:00AM, Christophe Leroy wrote:
>
>
> Le 04/04/2019 à 02:58, Christian Zigotzky a écrit :
>> On 03 April 2019 at 07:05AM, Christophe Leroy wrote:
>>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit :
>>>> Please test VLC with the RC3 of kernel 5.1.
>>>>
>>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. 
>>>> Another user has already confirmed that [1]. This isn’t an April 
>>>> Fool‘s. ;-)
>>>
>>> Could you bisect to identify the guilty commit ?
>>>
>>> Thanks
>>> Christophe
>>>
>>>>
>>>> Thanks
>>>>
>>>> [1] 
>>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 
>>>>
>>>>
>>>
>> Hello Christophe,
>>
>> I have found the problematic patch. The following patch from the 
>> PowerPC fixes 5.1-3 is responsible for the VLC issue.
>
> That change is part of the following commit:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c 
>
>
> Just changing back the type of wtom_clock_sec to 32 bits without 
> changing back the loading instruction is likely to give unexpected 
> results on PPC64.
>
> Are you using 32 bits or 64 bits powerpc ?
>
> Christophe
64-bit kernel + 32-bit userland for example:

- ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel
- Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel
- MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a 64-bit kernel

-- Christian
>
>
>>
>> diff --git a/arch/powerpc/include/asm/vdso_datapage.h 
>> b/arch/powerpc/include/asm/vdso_datapage.h
>> index 1afe90ade595..bbc06bd72b1f 100644
>> --- a/arch/powerpc/include/asm/vdso_datapage.h
>> +++ b/arch/powerpc/include/asm/vdso_datapage.h
>> @@ -82,10 +82,10 @@ struct vdso_data {
>>      __u32 icache_block_size;      /* L1 i-cache block size */
>>      __u32 dcache_log_block_size;      /* L1 d-cache log block size */
>>      __u32 icache_log_block_size;      /* L1 i-cache log block size */
>> -   __s32 wtom_clock_sec;         /* Wall to monotonic clock */
>> -   __s32 wtom_clock_nsec;
>> -   struct timespec stamp_xtime;   /* xtime as at tb_orig_stamp */
>> -   __u32 stamp_sec_fraction;   /* fractional seconds of stamp_xtime */
>> +   __u32 stamp_sec_fraction;      /* fractional seconds of 
>> stamp_xtime */
>> +   __s32 wtom_clock_nsec;         /* Wall to monotonic clock nsec */
>> +   __s64 wtom_clock_sec;         /* Wall to monotonic clock sec */
>> +   struct timespec stamp_xtime;      /* xtime as at tb_orig_stamp */
>>         __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>         __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>   };
>>
>> -----
>>
>> Link: 
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/arch/powerpc/include/asm/vdso_datapage.h?h=v5.1-rc2&id=a5ed1e96cafde5ba48638f486bfca0685dc6ddc9 
>>
>>
>> I created a patch for solving the VLC issue today.
>>
>> vdso_datapage_vlc.patch:
>>
>> diff -rupN a/arch/powerpc/include/asm/vdso_datapage.h 
>> b/arch/powerpc/include/asm/vdso_datapage.h
>> --- a/arch/powerpc/include/asm/vdso_datapage.h  2019-04-03 
>> 22:56:44.560645936 +0200
>> +++ b/arch/powerpc/include/asm/vdso_datapage.h  2019-04-04 
>> 02:20:09.479361827 +0200
>> @@ -82,10 +82,10 @@ struct vdso_data {
>>          __u32 icache_block_size;                /* L1 i-cache block 
>> size     */
>>          __u32 dcache_log_block_size;            /* L1 d-cache log 
>> block size */
>>          __u32 icache_log_block_size;            /* L1 i-cache log 
>> block size */
>> -       __u32 stamp_sec_fraction;               /* fractional seconds 
>> of stamp_xtime */
>> -       __s32 wtom_clock_nsec;                  /* Wall to monotonic 
>> clock nsec */
>> -       __s64 wtom_clock_sec;                   /* Wall to monotonic 
>> clock sec */
>> -       struct timespec stamp_xtime;            /* xtime as at 
>> tb_orig_stamp */
>> +       __s32 wtom_clock_sec;                   /* Wall to monotonic 
>> clock */
>> +       __s32 wtom_clock_nsec;
>> +       struct timespec stamp_xtime;    /* xtime as at tb_orig_stamp */
>> +       __u32 stamp_sec_fraction;       /* fractional seconds of 
>> stamp_xtime */
>>          __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>          __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>   };
>>
>> -----
>>
>> Cheers,
>> Christian
>
Christophe Leroy April 4, 2019, 9:07 a.m. UTC | #3
On 04/04/2019 08:44 AM, Christian Zigotzky wrote:
> On 04 April 2019 at 06:00AM, Christophe Leroy wrote:
>>
>>
>> Le 04/04/2019 à 02:58, Christian Zigotzky a écrit :
>>> On 03 April 2019 at 07:05AM, Christophe Leroy wrote:
>>>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit :
>>>>> Please test VLC with the RC3 of kernel 5.1.
>>>>>
>>>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. 
>>>>> Another user has already confirmed that [1]. This isn’t an April 
>>>>> Fool‘s. ;-)
>>>>
>>>> Could you bisect to identify the guilty commit ?
>>>>
>>>> Thanks
>>>> Christophe
>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>> [1] 
>>>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 
>>>>>
>>>>>
>>>>
>>> Hello Christophe,
>>>
>>> I have found the problematic patch. The following patch from the 
>>> PowerPC fixes 5.1-3 is responsible for the VLC issue.
>>
>> That change is part of the following commit:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c 
>>
>>
>> Just changing back the type of wtom_clock_sec to 32 bits without 
>> changing back the loading instruction is likely to give unexpected 
>> results on PPC64.
>>
>> Are you using 32 bits or 64 bits powerpc ?
>>
>> Christophe
> 64-bit kernel + 32-bit userland for example:
> 
> - ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel
> - Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel
> - MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a 64-bit 
> kernel

Ok, thanks. Can you please try below change:

diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S 
b/arch/powerpc/kernel/vdso32/gettimeofday.S
index 1e0bc5955a40..afd516b572f8 100644
--- a/arch/powerpc/kernel/vdso32/gettimeofday.S
+++ b/arch/powerpc/kernel/vdso32/gettimeofday.S
@@ -98,7 +98,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
  	 * can be used, r7 contains NSEC_PER_SEC.
  	 */

-	lwz	r5,WTOM_CLOCK_SEC(r9)
+	lwz	r5,(WTOM_CLOCK_SEC+LOPART)(r9)
  	lwz	r6,WTOM_CLOCK_NSEC(r9)

  	/* We now have our offset in r5,r6. We create a fake dependency


Christophe

> 
> -- Christian
>>
>>
>>>
>>> diff --git a/arch/powerpc/include/asm/vdso_datapage.h 
>>> b/arch/powerpc/include/asm/vdso_datapage.h
>>> index 1afe90ade595..bbc06bd72b1f 100644
>>> --- a/arch/powerpc/include/asm/vdso_datapage.h
>>> +++ b/arch/powerpc/include/asm/vdso_datapage.h
>>> @@ -82,10 +82,10 @@ struct vdso_data {
>>>      __u32 icache_block_size;      /* L1 i-cache block size */
>>>      __u32 dcache_log_block_size;      /* L1 d-cache log block size */
>>>      __u32 icache_log_block_size;      /* L1 i-cache log block size */
>>> -   __s32 wtom_clock_sec;         /* Wall to monotonic clock */
>>> -   __s32 wtom_clock_nsec;
>>> -   struct timespec stamp_xtime;   /* xtime as at tb_orig_stamp */
>>> -   __u32 stamp_sec_fraction;   /* fractional seconds of stamp_xtime */
>>> +   __u32 stamp_sec_fraction;      /* fractional seconds of 
>>> stamp_xtime */
>>> +   __s32 wtom_clock_nsec;         /* Wall to monotonic clock nsec */
>>> +   __s64 wtom_clock_sec;         /* Wall to monotonic clock sec */
>>> +   struct timespec stamp_xtime;      /* xtime as at tb_orig_stamp */
>>>         __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>>         __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>>   };
>>>
>>> -----
>>>
>>> Link: 
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/diff/arch/powerpc/include/asm/vdso_datapage.h?h=v5.1-rc2&id=a5ed1e96cafde5ba48638f486bfca0685dc6ddc9 
>>>
>>>
>>> I created a patch for solving the VLC issue today.
>>>
>>> vdso_datapage_vlc.patch:
>>>
>>> diff -rupN a/arch/powerpc/include/asm/vdso_datapage.h 
>>> b/arch/powerpc/include/asm/vdso_datapage.h
>>> --- a/arch/powerpc/include/asm/vdso_datapage.h  2019-04-03 
>>> 22:56:44.560645936 +0200
>>> +++ b/arch/powerpc/include/asm/vdso_datapage.h  2019-04-04 
>>> 02:20:09.479361827 +0200
>>> @@ -82,10 +82,10 @@ struct vdso_data {
>>>          __u32 icache_block_size;                /* L1 i-cache block 
>>> size     */
>>>          __u32 dcache_log_block_size;            /* L1 d-cache log 
>>> block size */
>>>          __u32 icache_log_block_size;            /* L1 i-cache log 
>>> block size */
>>> -       __u32 stamp_sec_fraction;               /* fractional seconds 
>>> of stamp_xtime */
>>> -       __s32 wtom_clock_nsec;                  /* Wall to monotonic 
>>> clock nsec */
>>> -       __s64 wtom_clock_sec;                   /* Wall to monotonic 
>>> clock sec */
>>> -       struct timespec stamp_xtime;            /* xtime as at 
>>> tb_orig_stamp */
>>> +       __s32 wtom_clock_sec;                   /* Wall to monotonic 
>>> clock */
>>> +       __s32 wtom_clock_nsec;
>>> +       struct timespec stamp_xtime;    /* xtime as at tb_orig_stamp */
>>> +       __u32 stamp_sec_fraction;       /* fractional seconds of 
>>> stamp_xtime */
>>>          __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>>          __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
>>>   };
>>>
>>> -----
>>>
>>> Cheers,
>>> Christian
>>
Christian Zigotzky April 4, 2019, 11:23 a.m. UTC | #4
On 04 April 2019 at 11:07AM, Christophe Leroy wrote:
>
>
> On 04/04/2019 08:44 AM, Christian Zigotzky wrote:
>> On 04 April 2019 at 06:00AM, Christophe Leroy wrote:
>>>
>>>
>>> Le 04/04/2019 à 02:58, Christian Zigotzky a écrit :
>>>> On 03 April 2019 at 07:05AM, Christophe Leroy wrote:
>>>>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit :
>>>>>> Please test VLC with the RC3 of kernel 5.1.
>>>>>>
>>>>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC issue. 
>>>>>> Another user has already confirmed that [1]. This isn’t an April 
>>>>>> Fool‘s. ;-)
>>>>>
>>>>> Could you bisect to identify the guilty commit ?
>>>>>
>>>>> Thanks
>>>>> Christophe
>>>>>
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> [1] 
>>>>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 
>>>>>>
>>>>>>
>>>>>
>>>> Hello Christophe,
>>>>
>>>> I have found the problematic patch. The following patch from the 
>>>> PowerPC fixes 5.1-3 is responsible for the VLC issue.
>>>
>>> That change is part of the following commit:
>>>
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c 
>>>
>>>
>>> Just changing back the type of wtom_clock_sec to 32 bits without 
>>> changing back the loading instruction is likely to give unexpected 
>>> results on PPC64.
>>>
>>> Are you using 32 bits or 64 bits powerpc ?
>>>
>>> Christophe
>> 64-bit kernel + 32-bit userland for example:
>>
>> - ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel
>> - Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel
>> - MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a 64-bit 
>> kernel
>
> Ok, thanks. Can you please try below change:
>
> diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S 
> b/arch/powerpc/kernel/vdso32/gettimeofday.S
> index 1e0bc5955a40..afd516b572f8 100644
> --- a/arch/powerpc/kernel/vdso32/gettimeofday.S
> +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S
> @@ -98,7 +98,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
>       * can be used, r7 contains NSEC_PER_SEC.
>       */
>
> -    lwz    r5,WTOM_CLOCK_SEC(r9)
> +    lwz    r5,(WTOM_CLOCK_SEC+LOPART)(r9)
>      lwz    r6,WTOM_CLOCK_NSEC(r9)
>
>      /* We now have our offset in r5,r6. We create a fake dependency
>
>
> Christophe
>
Hello Christophe,

Your patch works! VLC plays videos without any problems! Thank you!

Cheers,
Christian
Christian Zigotzky April 4, 2019, 12:48 p.m. UTC | #5
On 04 April 2019 at 1:23PM, Christian Zigotzky wrote:
> On 04 April 2019 at 11:07AM, Christophe Leroy wrote:
>>
>>
>> On 04/04/2019 08:44 AM, Christian Zigotzky wrote:
>>> On 04 April 2019 at 06:00AM, Christophe Leroy wrote:
>>>>
>>>>
>>>> Le 04/04/2019 à 02:58, Christian Zigotzky a écrit :
>>>>> On 03 April 2019 at 07:05AM, Christophe Leroy wrote:
>>>>>> Le 03/04/2019 à 05:52, Christian Zigotzky a écrit :
>>>>>>> Please test VLC with the RC3 of kernel 5.1.
>>>>>>>
>>>>>>> The removing of the PowerPC fixes 5.1-3 has solved the VLC 
>>>>>>> issue. Another user has already confirmed that [1]. This isn’t 
>>>>>>> an April Fool‘s. ;-)
>>>>>>
>>>>>> Could you bisect to identify the guilty commit ?
>>>>>>
>>>>>> Thanks
>>>>>> Christophe
>>>>>>
>>>>>>>
>>>>>>> Thanks
>>>>>>>
>>>>>>> [1] 
>>>>>>> http://forum.hyperion-entertainment.com/viewtopic.php?f=58&t=4256&start=20#p47561 
>>>>>>>
>>>>>>>
>>>>>>
>>>>> Hello Christophe,
>>>>>
>>>>> I have found the problematic patch. The following patch from the 
>>>>> PowerPC fixes 5.1-3 is responsible for the VLC issue.
>>>>
>>>> That change is part of the following commit:
>>>>
>>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v5.1-rc2&id=b5b4453e7912f056da1ca7572574cada32ecb60c 
>>>>
>>>>
>>>> Just changing back the type of wtom_clock_sec to 32 bits without 
>>>> changing back the loading instruction is likely to give unexpected 
>>>> results on PPC64.
>>>>
>>>> Are you using 32 bits or 64 bits powerpc ?
>>>>
>>>> Christophe
>>> 64-bit kernel + 32-bit userland for example:
>>>
>>> - ubuntu MATE 16.04.6 LTS 32-bit PowerPC with a 64-bit kernel
>>> - Fienix (Debian Sid) 32-bit PowerPC with a 64-bit kernel
>>> - MATE PowerPC Remix (ubuntu MATE 17.04) 32-bit PowerPC with a 
>>> 64-bit kernel
>>
>> Ok, thanks. Can you please try below change:
>>
>> diff --git a/arch/powerpc/kernel/vdso32/gettimeofday.S 
>> b/arch/powerpc/kernel/vdso32/gettimeofday.S
>> index 1e0bc5955a40..afd516b572f8 100644
>> --- a/arch/powerpc/kernel/vdso32/gettimeofday.S
>> +++ b/arch/powerpc/kernel/vdso32/gettimeofday.S
>> @@ -98,7 +98,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
>>       * can be used, r7 contains NSEC_PER_SEC.
>>       */
>>
>> -    lwz    r5,WTOM_CLOCK_SEC(r9)
>> +    lwz    r5,(WTOM_CLOCK_SEC+LOPART)(r9)
>>      lwz    r6,WTOM_CLOCK_NSEC(r9)
>>
>>      /* We now have our offset in r5,r6. We create a fake dependency
>>
>>
>> Christophe
>>
> Hello Christophe,
>
> Your patch works! VLC plays videos without any problems! Thank you!
>
> Cheers,
> Christian

Christophe,

I also successfully tested the VLC with the RC3 of kernel 5.1 with your 
patch on openSUSE Tumbleweed PPC64 (64-bit kernel + 64-bit userland) 
today. VLC works without any problems!

Screenshot: 
https://i.pinimg.com/originals/5e/d4/4b/5ed44b324a7ea2fc541185880e21c165.png

Many thanks for your help! :-)

Cheers,
Christian
diff mbox series

Patch

diff --git a/arch/powerpc/include/asm/vdso_datapage.h 
b/arch/powerpc/include/asm/vdso_datapage.h
index 1afe90ade595..bbc06bd72b1f 100644
--- a/arch/powerpc/include/asm/vdso_datapage.h
+++ b/arch/powerpc/include/asm/vdso_datapage.h
@@ -82,10 +82,10 @@  struct vdso_data {
     __u32 icache_block_size;      /* L1 i-cache block size     */
     __u32 dcache_log_block_size;      /* L1 d-cache log block size */
     __u32 icache_log_block_size;      /* L1 i-cache log block size */
-   __s32 wtom_clock_sec;         /* Wall to monotonic clock */
-   __s32 wtom_clock_nsec;
-   struct timespec stamp_xtime;   /* xtime as at tb_orig_stamp */
-   __u32 stamp_sec_fraction;   /* fractional seconds of stamp_xtime */
+   __u32 stamp_sec_fraction;      /* fractional seconds of stamp_xtime */
+   __s32 wtom_clock_nsec;         /* Wall to monotonic clock nsec */
+   __s64 wtom_clock_sec;         /* Wall to monotonic clock sec */
+   struct timespec stamp_xtime;      /* xtime as at tb_orig_stamp */
        __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */
        __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */
  };