Displaying 10 results from an estimated 10 matches for "nouveau_mm_fini".
2012 Oct 11
4
[PATCH] drm/nouveau: fix nouveau_mm/nouveau_mm_node leak
.../gpuobj.c
+++ b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
@@ -39,8 +39,11 @@ nouveau_gpuobj_destroy(struct nouveau_gpuobj *gpuobj)
nv_wo32(gpuobj, i, 0x00000000);
}
+ if (gpuobj->node)
+ nouveau_mm_free(gpuobj->node_heap, &gpuobj->node);
+
if (gpuobj->heap.block_size)
- nouveau_mm_fini(&gpuobj->heap);
+ WARN_ON(nouveau_mm_fini(&gpuobj->heap));
nouveau_object_destroy(&gpuobj->base);
}
@@ -114,6 +117,7 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
max(align, (u32)1), &gpuobj->node);
if (ret)
return ret;
+ gpuobj->no...
2012 Oct 07
2
[PATCH] drm/nouveau: fix error handling in core/core object creation functions
...re/gpuobj.c b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
index c2a7608..6254d52 100644
--- a/drivers/gpu/drm/nouveau/core/core/gpuobj.c
+++ b/drivers/gpu/drm/nouveau/core/core/gpuobj.c
@@ -40,7 +40,7 @@ nouveau_gpuobj_destroy(struct nouveau_gpuobj *gpuobj)
}
if (gpuobj->heap.block_size)
- nouveau_mm_fini(&gpuobj->heap);
+ WARN_ON(nouveau_mm_fini(&gpuobj->heap));
nouveau_object_destroy(&gpuobj->base);
}
@@ -113,7 +113,7 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
ret = nouveau_mm_head(heap, 1, size, size,
max(align, (u32)1), &gpuobj->node)...
2013 Mar 05
4
[RFC PATCH] drm/nouveau: use vmalloc for pgt allocation
...mm, u64 offset, u64 length,
ret = nouveau_mm_init(&vm->mm, mm_offset >> 12, mm_length >> 12,
block >> 12);
if (ret) {
- kfree(vm->pgt);
+ vfree(vm->pgt);
kfree(vm);
return ret;
}
@@ -446,7 +446,7 @@ nouveau_vm_del(struct nouveau_vm *vm)
}
nouveau_mm_fini(&vm->mm);
- kfree(vm->pgt);
+ vfree(vm->pgt);
kfree(vm);
}
--
1.8.1.4
2013 Jul 29
0
[PATCH] drm/nouveau: protect vm refcount with mutex
The refcount was not protected by the vm lock, fix this..
------------[ cut here ]------------
WARNING: CPU: 2 PID: 2008 at drivers/gpu/drm/nouveau/core/core/mm.c:242 nouveau_mm_fini+0x4f/0x56 [nouveau]()
Modules linked in: adt7475 ebtable_nat ebtables nouveau ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat xt_CHECKSUM iptable_mangle bridge stp llc snd_hda_codec_hdmi kvm_intel ttm kvm drm_kms_helper drm mxm_wmi snd_hda_codec_realtek snd_hda_intel e1000e snd_hda_codec snd_hwdep sn...
2013 Mar 27
2
system death under oom - 3.7.9
...ing is that this is not
required. The full log is at: http://pastebin.com/YCYUXWvV. It was in
my messages, so I guess the system took a bit to die completely.
nouveau is somewhat implicated, as it is the first thing that hits an
allocation failure in nouveau_vm_create, and has a subsequent warn in
nouveau_mm_fini, but then there's a GPF in
__alloc_skb/__kmalloc_track_caller (and I'm using SLUB). Here is a
partial disassembly for __kmalloc_track_caller:
0xffffffff811325b1 <+138>: e8 a0 60 56 00 callq
0xffffffff81698656 <__slab_alloc.constprop.68>
0xffffffff811325b6 <+143>:...
2013 Jan 29
22
[Bug 60007] New: BUG: nouveau crashes in various ways in 32-bits Fedora 18
https://bugs.freedesktop.org/show_bug.cgi?id=60007
Priority: medium
Bug ID: 60007
Assignee: nouveau at lists.freedesktop.org
Summary: BUG: nouveau crashes in various ways in 32-bits Fedora
18
QA Contact: xorg-team at lists.x.org
Severity: critical
Classification: Unclassified
OS: Linux (All)
2013 Jun 11
0
[RFC PATCH] drm/nouveau: use vmalloc for pgt allocation
...p;vm->mm, mm_offset >> 12, mm_length >> 12,
> block >> 12);
> if (ret) {
> - kfree(vm->pgt);
> + vfree(vm->pgt);
> kfree(vm);
> return ret;
> }
> @@ -446,7 +446,7 @@ nouveau_vm_del(struct nouveau_vm *vm)
> }
>
> nouveau_mm_fini(&vm->mm);
> - kfree(vm->pgt);
> + vfree(vm->pgt);
> kfree(vm);
> }
Could this patch be upstreamed?
I was hitting the same allocation failure on my fermi after keeping my system running for a
a week, and doing plenty of suspend/resume cycles (16+) in between it was faili...
2014 May 16
2
Machine freeze on latest Linus kernel, seems related to nouveau
...ay 16 08:32:14 brouette kernel: CR2: ffffc90015907000
May 16 08:32:14 brouette kernel: ---[ end trace 3669ad1ce815b6ce ]---
May 16 08:32:14 brouette kernel: ------------[ cut here ]------------
May 16 08:32:14 brouette kernel: WARNING: CPU: 7 PID: 31452 at drivers/gpu/drm/nouveau/core/core/mm.c:246 nouveau_mm_fini+0x59/0x60 [nouveau]()
May 16 08:32:14 brouette kernel: Modules linked in: nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 xt_dscp xt_mark cls_flow cls_fw sch_sfq sch_htb xt_helper xt_length nf_conntrack_ftp nf_conntrack ip6table_mangle ip6_tables iptable_mangle ip_tables x_tables...
2012 Feb 03
3
[PATCH 1/4] nouveau: Allow allocating BOs at specific offsets
...ouveau/nouveau_mm.h b/drivers/gpu/drm/nouveau/nouveau_mm.h
index 57a600c..d6e8f6a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_mm.h
+++ b/drivers/gpu/drm/nouveau/nouveau_mm.h
@@ -48,20 +48,20 @@ struct nouveau_mm {
int nouveau_mm_init(struct nouveau_mm *, u32 offset, u32 length, u32 block);
int nouveau_mm_fini(struct nouveau_mm *);
int nouveau_mm_pre(struct nouveau_mm *);
-int nouveau_mm_get(struct nouveau_mm *, int type, u32 size, u32 size_nc,
- u32 align, struct nouveau_mm_node **);
+int nouveau_mm_get(struct nouveau_mm *, int type, u32 base, u32 size,
+ u32 size_nc, u32 align, struct nou...
2013 Mar 27
3
[PATCH 1/4] drm/nvc0: implement VRAM compression
...gt;intr = nvc0_ltcg_intr;
return 0;
}
+static void
+nvc0_ltcg_dtor(struct nouveau_object *object)
+{
+ struct nouveau_ltcg *ltcg = (struct nouveau_ltcg *)object;
+ struct nvc0_ltcg_priv *priv = (struct nvc0_ltcg_priv *)ltcg;
+ struct nouveau_fb *pfb = nouveau_fb(ltcg->base.base.parent);
+
+ nouveau_mm_fini(&priv->tags);
+ nouveau_mm_free(&pfb->vram, &priv->tag_ram);
+
+ nouveau_ltcg_destroy(ltcg);
+}
+
struct nouveau_oclass
nvc0_ltcg_oclass = {
.handle = NV_SUBDEV(LTCG, 0xc0),
.ofuncs = &(struct nouveau_ofuncs) {
.ctor = nvc0_ltcg_ctor,
- .dtor = _nouveau_ltcg_dtor,...