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(-)
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; }
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=89c815ef07a1db0ac2cc09d06cb2...
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/?i... [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
dri-devel@lists.freedesktop.org