diff options
author | Ilija Hadzic <ihadzic@research.bell-labs.com> | 2013-04-02 15:56:10 +0200 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-04-02 22:44:38 +0200 |
commit | a8ec3a662921220fc058ed6f7f3674697876d218 (patch) | |
tree | e7c35670e35d4e5ace87b01c83652dfee006fdc4 /drivers/gpu/drm/gma500 | |
parent | Merge branch 'drm-nouveau-fixes-3.9' of git://anongit.freedesktop.org/git/nou... (diff) | |
download | linux-a8ec3a662921220fc058ed6f7f3674697876d218.tar.xz linux-a8ec3a662921220fc058ed6f7f3674697876d218.zip |
drm: correctly restore mappings if drm_open fails
If first drm_open fails, the error-handling path will
incorrectly restore inode's mapping to NULL. This can
cause the crash later on. Fix by separately storing
away mapping pointers that drm_open can touch and
restore each from its own respective variable if the
call fails.
Fixes: https://bugzilla.novell.com/show_bug.cgi?id=807850
(thanks to Michal Hocko for investigating investigating and
finding the root cause of the bug)
Reference:
http://lists.freedesktop.org/archives/dri-devel/2013-March/036564.html
v2: Use one variable to store file and inode mapping
since they are the same at the function entry.
Fix spelling mistakes in commit message.
v3: Add reference to the original bug report.
Reported-by: Marco Munderloh <munderl@tnt.uni-hannover.de>
Tested-by: Marco Munderloh <munderl@tnt.uni-hannover.de>
Signed-off-by: Ilija Hadzic <ihadzic@research.bell-labs.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/gma500')
0 files changed, 0 insertions, 0 deletions