Bug#725747: xserver-xorg-core: Using PRIME providers when discreet card is set to be primary leads to xserver crash

2017-01-11 Thread Andreas Boll
Control: tag -1 moreinfo

On Tue, Oct 08, 2013 at 02:16:10AM +0300, Pauli wrote:
> Package: xserver-xorg-core
> Version: 2:1.14.3-3
> Severity: normal
> Tags: upstream patch
> 
> Dear Maintainer,
> 
> With hydrid graphics laptop I had started X with discreet radein set as
> primary card using vgaswitcheroo. During that run I ended up trying to
> enable PRIME offloading to radeon:
> 
> xrandr --setprovideroutputsource radeon Intel
> 
> That led to following crash:
> #0  0x7ff44fd431e5 in __GI_raise (sig=sig@entry=6) at 
> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> #1  0x7ff44fd46398 in __GI_abort () at abort.c:90
> #2  0x7ff44fd3c272 in __assert_fail_base (fmt=0x7ff44fe799c0 "%s%s%s:%u: 
> %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ff452186ce7 
> "slave->isGPU", 
> file=file@entry=0x7ff452186cb2 "../../dix/dispatch.c", 
> line=line@entry=3937, function=function@entry=0x7ff452186d80 
> <__PRETTY_FUNCTION__.17904> "DetachUnboundGPU")
> at assert.c:92
> #3  0x7ff44fd3c322 in __GI___assert_fail 
> (assertion=assertion@entry=0x7ff452186ce7 "slave->isGPU", 
> file=file@entry=0x7ff452186cb2 "../../dix/dispatch.c", 
> line=line@entry=3937, function=function@entry=0x7ff452186d80 
> <__PRETTY_FUNCTION__.17904> "DetachUnboundGPU") at assert.c:101
> #4  0x7ff45202b2f0 in DetachUnboundGPU (slave=slave@entry=0x7ff45429c0d0) 
> at ../../dix/dispatch.c:3937
> #5  0x7ff4520a77fd in xf86RandR14ProviderSetOffloadSink 
> (pScreen=0x7ff45429c0d0, provider=0x7ff4526ece20, 
> sink_provider=0x7ff45428f970)
> at ../../../../hw/xfree86/modes/xf86RandR12.c:1821
> #6  0x7ff4520ec911 in ProcRRSetProviderOffloadSink (client= out>) at ../../randr/rrprovider.c:338
> #7  0x7ff45202ad6e in Dispatch () at ../../dix/dispatch.c:432
> #8  0x7ff45201a2ca in main (argc=10, argv=0x7fff78e24868, envp= out>) at ../../dix/main.c:298
> 
> Problem is missing check that provider is actually configured as offscreen
> card in protocol request validation.
> 
> Attached patch adds the missing check to the protocol layer to avoid
> server from asserting.
> 

Hi,

is this still an issue with a newer xserver-xorg-core version (e.g.
the version from jessie or stretch/sid)?

Thanks,
Andreas

> diff --git a/randr/rrprovider.c b/randr/rrprovider.c
> index b321e62..53a610a 100644
> --- a/randr/rrprovider.c
> +++ b/randr/rrprovider.c
> @@ -291,6 +291,8 @@ ProcRRSetProviderOutputSource(ClientPtr client)
>  
>  if (!(provider->capabilities & RR_Capability_SinkOutput))
>  return BadValue;
> +if (!provider->pScreen->isGPU)
> +return BadValue;
>  
>  if (stuff->source_provider) {
>  VERIFY_RR_PROVIDER(stuff->source_provider, source_provider, 
> DixReadAccess);
> @@ -322,6 +324,8 @@ ProcRRSetProviderOffloadSink(ClientPtr client)
>  VERIFY_RR_PROVIDER(stuff->provider, provider, DixReadAccess);
>  if (!(provider->capabilities & RR_Capability_SourceOffload))
>  return BadValue;
> +if (!provider->pScreen->isGPU)
> +return BadValue;
>  
>  if (stuff->sink_provider) {
>  VERIFY_RR_PROVIDER(stuff->sink_provider, sink_provider, 
> DixReadAccess);



signature.asc
Description: Digital signature


Processed: Re: Bug#725747: xserver-xorg-core: Using PRIME providers when discreet card is set to be primary leads to xserver crash

2017-01-11 Thread Debian Bug Tracking System
Processing control commands:

> tag -1 moreinfo
Bug #725747 [xserver-xorg-core] xserver-xorg-core: Using PRIME providers when 
discreet card is set to be primary leads to xserver crash
Ignoring request to alter tags of bug #725747 to the same tags previously set

-- 
725747: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725747
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Processed: Re: Bug#725747: xserver-xorg-core: Using PRIME providers when discreet card is set to be primary leads to xserver crash

2017-01-11 Thread Debian Bug Tracking System
Processing control commands:

> tag -1 moreinfo
Bug #725747 [xserver-xorg-core] xserver-xorg-core: Using PRIME providers when 
discreet card is set to be primary leads to xserver crash
Added tag(s) moreinfo.

-- 
725747: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=725747
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems