client.c (a01ca78c8f118e5a24f1527ecf078ab56ddd4805) | client.c (bf81df9be28657eea4aca8c6ab4ed3e69f8a051c) |
---|---|
1/* 2 * Copyright 2013 Red Hat Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the --- 36 unchanged lines hidden (view full) --- 45} 46 47void 48nvif_client_fini(struct nvif_client *client) 49{ 50 if (client->driver) { 51 client->driver->fini(client->object.priv); 52 client->driver = NULL; | 1/* 2 * Copyright 2013 Red Hat Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the --- 36 unchanged lines hidden (view full) --- 45} 46 47void 48nvif_client_fini(struct nvif_client *client) 49{ 50 if (client->driver) { 51 client->driver->fini(client->object.priv); 52 client->driver = NULL; |
53 client->object.parent = NULL; | |
54 client->object.client = NULL; 55 nvif_object_fini(&client->object); 56 } 57} 58 59const struct nvif_driver * 60nvif_drivers[] = { 61#ifdef __KERNEL__ --- 12 unchanged lines hidden (view full) --- 74{ 75 int ret, i; 76 77 ret = nvif_object_init(NULL, 0, 0, NULL, 0, &client->object); 78 if (ret) 79 return ret; 80 81 client->object.client = client; | 53 client->object.client = NULL; 54 nvif_object_fini(&client->object); 55 } 56} 57 58const struct nvif_driver * 59nvif_drivers[] = { 60#ifdef __KERNEL__ --- 12 unchanged lines hidden (view full) --- 73{ 74 int ret, i; 75 76 ret = nvif_object_init(NULL, 0, 0, NULL, 0, &client->object); 77 if (ret) 78 return ret; 79 80 client->object.client = client; |
82 client->object.parent = &client->object; | |
83 client->object.handle = ~0; 84 client->route = NVIF_IOCTL_V0_ROUTE_NVIF; 85 client->super = true; 86 87 for (i = 0, ret = -EINVAL; (client->driver = nvif_drivers[i]); i++) { 88 if (!driver || !strcmp(client->driver->name, driver)) { 89 ret = client->driver->init(name, device, cfg, dbg, 90 &client->object.priv); 91 if (!ret || driver) 92 break; 93 } 94 } 95 96 if (ret) 97 nvif_client_fini(client); 98 return ret; 99} | 81 client->object.handle = ~0; 82 client->route = NVIF_IOCTL_V0_ROUTE_NVIF; 83 client->super = true; 84 85 for (i = 0, ret = -EINVAL; (client->driver = nvif_drivers[i]); i++) { 86 if (!driver || !strcmp(client->driver->name, driver)) { 87 ret = client->driver->init(name, device, cfg, dbg, 88 &client->object.priv); 89 if (!ret || driver) 90 break; 91 } 92 } 93 94 if (ret) 95 nvif_client_fini(client); 96 return ret; 97} |