Module Name:    src
Committed By:   riastradh
Date:           Mon Aug 27 14:48:21 UTC 2018

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/nouveau: nouveau_chan.c
            nouveau_nv50_display.c
        src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04:
            nouveau_dispnv04_disp.c
        src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif: object.h

Log Message:
Mark nvif_object_map __must_check and fix fallout noisily.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c
cvs rdiff -u -r1.9 -r1.10 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c
cvs rdiff -u -r1.3 -r1.4 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c
cvs rdiff -u -r1.7 -r1.8 \
    src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c:1.4 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c:1.4	Mon Aug 27 07:31:51 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_chan.c	Mon Aug 27 14:48:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_chan.c,v 1.4 2018/08/27 07:31:51 riastradh Exp $	*/
+/*	$NetBSD: nouveau_chan.c,v 1.5 2018/08/27 14:48:21 riastradh Exp $	*/
 
 /*
  * Copyright 2012 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_chan.c,v 1.4 2018/08/27 07:31:51 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_chan.c,v 1.5 2018/08/27 14:48:21 riastradh Exp $");
 
 #include <nvif/os.h>
 #include <nvif/class.h>
@@ -305,7 +305,11 @@ nouveau_channel_init(struct nouveau_chan
 	struct nv_dma_v0 args = zero_args;
 	int ret, i;
 
-	nvif_object_map(&chan->user);
+	ret = nvif_object_map(&chan->user);
+	if (ret) {
+		NV_PRINTK(err, cli, "nvif_object_map, %d\n", ret);
+		return ret;
+	}
 
 	/* allocate dma objects to cover all allowed vram, and gart */
 	if (device->info.family < NV_DEVICE_INFO_V0_FERMI) {

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.9 src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.10
--- src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c:1.9	Mon Aug 27 07:38:26 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/nouveau_nv50_display.c	Mon Aug 27 14:48:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_nv50_display.c,v 1.9 2018/08/27 07:38:26 riastradh Exp $	*/
+/*	$NetBSD: nouveau_nv50_display.c,v 1.10 2018/08/27 14:48:21 riastradh Exp $	*/
 
 /*
  * Copyright 2011 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.9 2018/08/27 07:38:26 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_nv50_display.c,v 1.10 2018/08/27 14:48:21 riastradh Exp $");
 
 #include <linux/dma-mapping.h>
 #include <linux/err.h>
@@ -107,8 +107,15 @@ nv50_chan_create(struct nvif_device *dev
 			if (sclass[i].oclass == oclass[0]) {
 				ret = nvif_object_init(disp, 0, oclass[0],
 						       data, size, &chan->user);
-				if (ret == 0)
-					nvif_object_map(&chan->user);
+				if (ret == 0) {
+					ret = nvif_object_map(&chan->user);
+					if (ret) {
+						printk(KERN_ERR "%s:%d"
+						    ": nvif_object_map, %d\n",
+						    __func__, __LINE__, ret);
+						nvif_object_fini(&chan->user);
+					}
+				}
 				nvif_object_sclass_put(&sclass);
 				return ret;
 			}

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c:1.3 src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c:1.4
--- src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c:1.3	Mon Aug 27 04:58:29 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/dispnv04/nouveau_dispnv04_disp.c	Mon Aug 27 14:48:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: nouveau_dispnv04_disp.c,v 1.3 2018/08/27 04:58:29 riastradh Exp $	*/
+/*	$NetBSD: nouveau_dispnv04_disp.c,v 1.4 2018/08/27 14:48:21 riastradh Exp $	*/
 
 /*
  * Copyright 2009 Red Hat Inc.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv04_disp.c,v 1.3 2018/08/27 04:58:29 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nouveau_dispnv04_disp.c,v 1.4 2018/08/27 14:48:21 riastradh Exp $");
 
 #include <linux/err.h>
 
@@ -54,7 +54,11 @@ nv04_display_create(struct drm_device *d
 	if (!disp)
 		return -ENOMEM;
 
-	nvif_object_map(&drm->device.object);
+	ret = nvif_object_map(&drm->device.object);
+	if (ret) {
+		NV_ERROR(drm, "nvif_object_map, %d\n", ret);
+		return ret;
+	}
 
 	nouveau_display(dev)->priv = disp;
 	nouveau_display(dev)->dtor = nv04_display_destroy;

Index: src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h
diff -u src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.7 src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.8
--- src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h:1.7	Mon Aug 27 14:47:53 2018
+++ src/sys/external/bsd/drm2/dist/drm/nouveau/include/nvif/object.h	Mon Aug 27 14:48:21 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: object.h,v 1.7 2018/08/27 14:47:53 riastradh Exp $	*/
+/*	$NetBSD: object.h,v 1.8 2018/08/27 14:48:21 riastradh Exp $	*/
 
 #ifndef __NVIF_OBJECT_H__
 #define __NVIF_OBJECT_H__
@@ -45,7 +45,7 @@ void nvif_object_sclass_put(struct nvif_
 u32  nvif_object_rd(struct nvif_object *, int, u64);
 void nvif_object_wr(struct nvif_object *, int, u64, u32);
 int  nvif_object_mthd(struct nvif_object *, u32, void *, u32);
-int  nvif_object_map(struct nvif_object *);
+int  nvif_object_map(struct nvif_object *) __must_check;
 void nvif_object_unmap(struct nvif_object *);
 
 #define nvif_handle(a) (unsigned long)(void *)(a)

Reply via email to