Message ID | 20180731062851.10812-1-tzimmermann@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/bochs: Replace ttm_bo_unref with ttm_bo_put | expand |
> diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c > index 39cd08416773..c9c7097030ca 100644 > --- a/drivers/gpu/drm/bochs/bochs_mm.c > +++ b/drivers/gpu/drm/bochs/bochs_mm.c > @@ -430,7 +430,7 @@ static void bochs_bo_unref(struct bochs_bo **bo) > return; > > tbo = &((*bo)->bo); > - ttm_bo_unref(&tbo); > + ttm_bo_put(tbo); fails to build: CC [M] drivers/gpu/drm/bochs/bochs_mm.o /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c: In function ‘bochs_bo_unref’: /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c:433:2: error: implicit declaration of function ‘ttm_bo_put’ [-Werror=implicit-function-declaration] ttm_bo_put(tbo); ^ cc1: some warnings being treated as errors cheers, Gerd
Hi Am 09.08.2018 um 17:27 schrieb Gerd Hoffmann: >> diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c >> index 39cd08416773..c9c7097030ca 100644 >> --- a/drivers/gpu/drm/bochs/bochs_mm.c >> +++ b/drivers/gpu/drm/bochs/bochs_mm.c >> @@ -430,7 +430,7 @@ static void bochs_bo_unref(struct bochs_bo **bo) >> return; >> >> tbo = &((*bo)->bo); >> - ttm_bo_unref(&tbo); >> + ttm_bo_put(tbo); > > fails to build: > > CC [M] drivers/gpu/drm/bochs/bochs_mm.o > /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c: In function ‘bochs_bo_unref’: > /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c:433:2: error: implicit declaration of function ‘ttm_bo_put’ [-Werror=implicit-function-declaration] > ttm_bo_put(tbo); > ^ Oh, sorry. These interface are in drm-next, [1] but apparently haven't made it upstream yet. Best regards Thomas [1]https://cgit.freedesktop.org/drm/drm/commit/?id=89c815ef07a1db0ac2cc09d06cb2d5c3d86d6322 > cc1: some warnings being treated as errors > > cheers, > Gerd > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel >
Hi Gerd Am 09.08.2018 um 17:27 schrieb Gerd Hoffmann: >> diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c >> index 39cd08416773..c9c7097030ca 100644 >> --- a/drivers/gpu/drm/bochs/bochs_mm.c >> +++ b/drivers/gpu/drm/bochs/bochs_mm.c >> @@ -430,7 +430,7 @@ static void bochs_bo_unref(struct bochs_bo **bo) >> return; >> >> tbo = &((*bo)->bo); >> - ttm_bo_unref(&tbo); >> + ttm_bo_put(tbo); > > fails to build: > > CC [M] drivers/gpu/drm/bochs/bochs_mm.o > /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c: In function ‘bochs_bo_unref’: > /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c:433:2: error: implicit declaration of function ‘ttm_bo_put’ [-Werror=implicit-function-declaration] > ttm_bo_put(tbo); > ^ > cc1: some warnings being treated as errors The required interfaces are now available in mainline. [1] I rebuilt to make sure it compiles. Besides bochs, [2] the patches for qxl, [3] cirrus, [4] vmwgfx, [5][6] and virtio [7][8] should now build as well. They still apply cleanly AFAICT. Let me know if you prefer a new patch set instead. Best regards Thomas [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=89c815ef07a1db0ac2cc09d06cb2d5c3d86d6322 [2] https://patchwork.freedesktop.org/patch/241728/ [3] https://patchwork.freedesktop.org/patch/241732/ [4] https://patchwork.freedesktop.org/patch/241729/ [5] https://patchwork.freedesktop.org/patch/241726/ [6] https://patchwork.freedesktop.org/patch/241727/ [7] https://patchwork.freedesktop.org/patch/241724/ [8] https://patchwork.freedesktop.org/patch/241725/ > cheers, > Gerd > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel >
On Thu, Aug 30, 2018 at 08:14:02AM +0200, Thomas Zimmermann wrote: > Hi Gerd > > Am 09.08.2018 um 17:27 schrieb Gerd Hoffmann: > >> diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c > >> index 39cd08416773..c9c7097030ca 100644 > >> --- a/drivers/gpu/drm/bochs/bochs_mm.c > >> +++ b/drivers/gpu/drm/bochs/bochs_mm.c > >> @@ -430,7 +430,7 @@ static void bochs_bo_unref(struct bochs_bo **bo) > >> return; > >> > >> tbo = &((*bo)->bo); > >> - ttm_bo_unref(&tbo); > >> + ttm_bo_put(tbo); > > > > fails to build: > > > > CC [M] drivers/gpu/drm/bochs/bochs_mm.o > > /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c: In function ‘bochs_bo_unref’: > > /home/kraxel/projects/linux/drivers/gpu/drm/bochs/bochs_mm.c:433:2: error: implicit declaration of function ‘ttm_bo_put’ [-Werror=implicit-function-declaration] > > ttm_bo_put(tbo); > > ^ > > cc1: some warnings being treated as errors > > The required interfaces are now available in mainline. [1] I rebuilt to > make sure it compiles. > > Besides bochs, [2] the patches for qxl, [3] cirrus, [4] vmwgfx, [5][6] > and virtio [7][8] should now build as well. They still apply cleanly > AFAICT. Let me know if you prefer a new patch set instead. Yes. builds now. vmwgfx is not my cup of tea, but I'll pick up the other ones (and can finally remove them from my patches mailbox) and let you know in case I run into trouble. cheers, Gerd
diff --git a/drivers/gpu/drm/bochs/bochs_mm.c b/drivers/gpu/drm/bochs/bochs_mm.c index 39cd08416773..c9c7097030ca 100644 --- a/drivers/gpu/drm/bochs/bochs_mm.c +++ b/drivers/gpu/drm/bochs/bochs_mm.c @@ -430,7 +430,7 @@ static void bochs_bo_unref(struct bochs_bo **bo) return; tbo = &((*bo)->bo); - ttm_bo_unref(&tbo); + ttm_bo_put(tbo); *bo = NULL; }
The function ttm_bo_put releases a reference to a TTM buffer object. The function's name is more aligned to the Linux kernel convention of naming ref-counting function _get and _put. A call to ttm_bo_unref takes the address of the TTM BO object's pointer and clears the pointer's value to NULL. This is not necessary in most cases and sometimes even worked around by the calling code. A call to ttm_bo_put only releases the reference without clearing the pointer. The current behaviour of cleaning the pointer is kept in the calling code, but should be removed if not required in a later patch. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> --- drivers/gpu/drm/bochs/bochs_mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)