diff options
author | Olof Johansson | 2013-08-29 19:44:42 +0200 |
---|---|---|
committer | Olof Johansson | 2013-08-29 19:44:42 +0200 |
commit | 293d0e3bf0818f3f7307a56d3ac31f41b5078aa1 (patch) | |
tree | aab2e5026c66d52581c39b5c21aca6e3fd8d0357 /drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c | |
parent | Merge tag 'tegra-for-3.12-defconfig' of git://git.kernel.org/pub/scm/linux/ke... (diff) | |
parent | ARM: bcm: Make secure API call optional (diff) | |
download | kernel-qcow2-linux-293d0e3bf0818f3f7307a56d3ac31f41b5078aa1.tar.gz kernel-qcow2-linux-293d0e3bf0818f3f7307a56d3ac31f41b5078aa1.tar.xz kernel-qcow2-linux-293d0e3bf0818f3f7307a56d3ac31f41b5078aa1.zip |
Merge branch 'armsoc/for-3.12/soc' of git://github.com/broadcom/bcm11351 into next/boards
From Christian Daudt, SoC changes for Broadcom.
* 'armsoc/for-3.12/soc' of git://github.com/broadcom/bcm11351: (673 commits)
ARM: bcm: Make secure API call optional
ARM: DT: binding fixup to align with vendor-prefixes.txt (drivers)
ARM: mmc: fix NONREMOVABLE test in sdhci-bcm-kona
ARM: bcm: Rename board_bcm
mmc: sdhci-bcm-kona: make linker-section warning go away
ARM: configs: disable DEBUG_LL in bcm_defconfig
ARM: bcm281xx: Board specific reboot code
ARM bcm281xx: Turn on socket & network support.
ARM: bcm281xx: Turn on L2 cache.
+ Linux 3.11-rc4
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c b/drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c index 9c3634acbb9d..cf97c4de4a6b 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c +++ b/drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c @@ -33,11 +33,19 @@ void nvc0_ram_put(struct nouveau_fb *pfb, struct nouveau_mem **pmem) { struct nouveau_ltcg *ltcg = nouveau_ltcg(pfb); + struct nouveau_mem *mem = *pmem; - if ((*pmem)->tag) - ltcg->tags_free(ltcg, &(*pmem)->tag); + *pmem = NULL; + if (unlikely(mem == NULL)) + return; - nv50_ram_put(pfb, pmem); + mutex_lock(&pfb->base.mutex); + if (mem->tag) + ltcg->tags_free(ltcg, &mem->tag); + __nv50_ram_put(pfb, mem); + mutex_unlock(&pfb->base.mutex); + + kfree(mem); } int |