On Thu, Oct 25, 2012 at 11:10 AM, Thomas Hellström <thellstrom@xxxxxxxxxx> wrote: > On 10/25/12 4:41 PM, Jerome Glisse wrote: >> >> On Thu, Oct 25, 2012 at 04:02:25PM +0200, Thomas Hellstrom wrote: >>> >>> Hi, >>> >>> This commit >>> >>> From 949c4a34afacfe800fc442afac117aba15284962 Mon Sep 17 00:00:00 2001 >>> From: Ilija Hadzic <ihadzic@xxxxxxxxxxxxxxxxxxxxxx> >>> Date: Tue, 15 May 2012 16:40:10 -0400 >>> Subject: [PATCH] drm: track dev_mapping in more robust and flexible way >>> >>> Setting dev_mapping (pointer to the address_space structure >>> used for memory mappings) to the address_space of the first >>> opener's inode and then failing if other openers come in >>> through a different inode has a few restrictions that are >>> eliminated by this patch. >>> >>> If we already have valid dev_mapping and we spot an opener >>> with different i_node, we force its i_mapping pointer to the >>> already established address_space structure (first opener's >>> inode). This will make all mappings from drm device hang off >>> the same address_space object. >>> ... >>> >>> Breaks drivers using TTM, since when the X server calls into the >>> driver open, drm's dev_mapping has not >>> yet been setup. The setup needs to be moved before the driver's open >>> hook is called. >>> >>> Typically, if a TTM-aware driver is provoked by the Xorg server to >>> move a buffer from system to VRAM or AGP, >>> before any other drm client is started, The user-space page table >>> entries are not killed before the move, and left pointing >>> into freed pages, causing system crashes and / or user-space access >>> to arbitrary memory. >> >> Doesn't handle move invalidate the drm file mapping before scheduling >> the move ? > > Yes, but to do that it needs a correct value of bdev::dev_mapping, which is > now incorrectly set on the > *second* open instead of the first open. > So you are implying that in the first open the assignment of dev->dev_mapping is somehow skipped (which could happen if drm_setup returns an error) or that the driver on which you are having problems with (nouveau I presume) needs dev_mapping in the firstopen hook ? It's been a while since I did it, but if my memory serves me well I thought I explicitly verified that dev_mapping was correctly set in the first open (though GPUs I use are primarily AMD). -- Ilija > /Thomas > > > >> Cheers, >> Jerome > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel