Skip to content

Commit 786a57e

Browse files
author
Ben Skeggs
committed
drm/nouveau/abi16: introduce locked variant of nouveau_abi16_get()
USIF already takes the client mutex, but will need access to ABI16 data in order to provide some limited interoperability. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
1 parent 09433f2 commit 786a57e

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

drivers/gpu/drm/nouveau/nouveau_abi16.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,10 @@
3232
#include "nouveau_chan.h"
3333
#include "nouveau_abi16.h"
3434

35-
struct nouveau_abi16 *
36-
nouveau_abi16_get(struct drm_file *file_priv)
35+
static struct nouveau_abi16 *
36+
nouveau_abi16(struct drm_file *file_priv)
3737
{
3838
struct nouveau_cli *cli = nouveau_cli(file_priv);
39-
mutex_lock(&cli->mutex);
4039
if (!cli->abi16) {
4140
struct nouveau_abi16 *abi16;
4241
cli->abi16 = abi16 = kzalloc(sizeof(*abi16), GFP_KERNEL);
@@ -59,12 +58,21 @@ nouveau_abi16_get(struct drm_file *file_priv)
5958
kfree(cli->abi16);
6059
cli->abi16 = NULL;
6160
}
62-
63-
mutex_unlock(&cli->mutex);
6461
}
6562
return cli->abi16;
6663
}
6764

65+
struct nouveau_abi16 *
66+
nouveau_abi16_get(struct drm_file *file_priv)
67+
{
68+
struct nouveau_cli *cli = nouveau_cli(file_priv);
69+
mutex_lock(&cli->mutex);
70+
if (nouveau_abi16(file_priv))
71+
return cli->abi16;
72+
mutex_unlock(&cli->mutex);
73+
return NULL;
74+
}
75+
6876
int
6977
nouveau_abi16_put(struct nouveau_abi16 *abi16, int ret)
7078
{

0 commit comments

Comments
 (0)