Bug 24244 - xf86Rotate.c has broken dynamic wrapping
Summary: xf86Rotate.c has broken dynamic wrapping
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Server/General (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
: 24245 (view as bug list)
Depends on:
Blocks: xserver-1.7
  Show dependency treegraph
 
Reported: 2009-09-30 18:24 UTC by Dave Airlie
Modified: 2009-10-01 19:19 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Dave Airlie 2009-09-30 18:24:00 UTC
The code to do dynamic wrap/unwrap makes some assumption about all the other wrappees that isn't true.

a) assumes on return from wrapped function they rewrite their stored version,
so that lower layers can remove themselves.

b) drivers don't need to wrap since they are the bottom of the food chain,

From what I can see (a) can be fixed with code audit of all server/drivers (technically an ABI breakage, since its an assumption on how it works)

(b) is lies since if I dnyamically wrap at runtime I'm after the driver, so it
better do things right.
Comment 1 Peter Hutterer 2009-09-30 22:34:53 UTC
*** Bug 24245 has been marked as a duplicate of this bug. ***
Comment 2 Peter Hutterer 2009-10-01 19:19:31 UTC
commit 3ebb82d61c2b56e8f7145443a552a4e913bbfc80
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Oct 1 15:25:55 2009 +1000

    rotate: drop unwrapping inside block handler.
    
    Keith has shown half the block handlers wrappers are wrong, also
    dynamic wrapping/unwrapping from what I can see will happen after
    the drivers, so its really accidental ABI, that we can't change
    now without modifing drivers. So be safe for 1.7.
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Declared-as-sane-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.