drm/nouveau: replace some open-coded mm_initialised checks
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
6d338081a6
commit
7e0f992b79
|
@ -234,15 +234,18 @@ nouveau_mm_init(struct nouveau_mm *mm, u32 offset, u32 length, u32 block)
|
||||||
int
|
int
|
||||||
nouveau_mm_fini(struct nouveau_mm *mm)
|
nouveau_mm_fini(struct nouveau_mm *mm)
|
||||||
{
|
{
|
||||||
struct nouveau_mm_node *node, *heap =
|
if (nouveau_mm_initialised(mm)) {
|
||||||
list_first_entry(&mm->nodes, struct nouveau_mm_node, nl_entry);
|
struct nouveau_mm_node *node, *heap =
|
||||||
int nodes = 0;
|
list_first_entry(&mm->nodes, typeof(*heap), nl_entry);
|
||||||
|
int nodes = 0;
|
||||||
|
|
||||||
list_for_each_entry(node, &mm->nodes, nl_entry) {
|
list_for_each_entry(node, &mm->nodes, nl_entry) {
|
||||||
if (WARN_ON(nodes++ == mm->heap_nodes))
|
if (WARN_ON(nodes++ == mm->heap_nodes))
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
}
|
||||||
|
|
||||||
|
kfree(heap);
|
||||||
}
|
}
|
||||||
|
|
||||||
kfree(heap);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,12 @@ struct nouveau_mm {
|
||||||
int heap_nodes;
|
int heap_nodes;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline bool
|
||||||
|
nouveau_mm_initialised(struct nouveau_mm *mm)
|
||||||
|
{
|
||||||
|
return mm->block_size != 0;
|
||||||
|
}
|
||||||
|
|
||||||
int nouveau_mm_init(struct nouveau_mm *, u32 offset, u32 length, u32 block);
|
int nouveau_mm_init(struct nouveau_mm *, u32 offset, u32 length, u32 block);
|
||||||
int nouveau_mm_fini(struct nouveau_mm *);
|
int nouveau_mm_fini(struct nouveau_mm *);
|
||||||
int nouveau_mm_head(struct nouveau_mm *, u8 type, u32 size_max, u32 size_min,
|
int nouveau_mm_head(struct nouveau_mm *, u8 type, u32 size_max, u32 size_min,
|
||||||
|
|
|
@ -85,12 +85,8 @@ nouveau_fb_destroy(struct nouveau_fb *pfb)
|
||||||
|
|
||||||
for (i = 0; i < pfb->tile.regions; i++)
|
for (i = 0; i < pfb->tile.regions; i++)
|
||||||
pfb->tile.fini(pfb, i, &pfb->tile.region[i]);
|
pfb->tile.fini(pfb, i, &pfb->tile.region[i]);
|
||||||
|
nouveau_mm_fini(&pfb->tags);
|
||||||
if (pfb->tags.block_size)
|
nouveau_mm_fini(&pfb->vram);
|
||||||
nouveau_mm_fini(&pfb->tags);
|
|
||||||
|
|
||||||
if (pfb->vram.block_size)
|
|
||||||
nouveau_mm_fini(&pfb->vram);
|
|
||||||
|
|
||||||
nouveau_subdev_destroy(&pfb->base);
|
nouveau_subdev_destroy(&pfb->base);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue