Lines Matching defs:dr

58 static void free_dr(struct drmres *dr)
60 kfree_const(dr->node.name);
61 kfree(dr);
66 struct drmres *dr, *tmp;
69 list_for_each_entry_safe(dr, tmp, &dev->managed.resources, node.entry) {
71 dr, dr->node.name, dr->node.size);
73 if (dr->node.release)
74 dr->node.release(dev, dr->node.size ? *(void **)&dr->data : NULL);
76 list_del(&dr->node.entry);
77 free_dr(dr);
90 struct drmres *dr;
93 if (unlikely(check_add_overflow(sizeof(*dr), size, &tot_size)))
96 dr = kmalloc_node_track_caller(tot_size, gfp, nid);
97 if (unlikely(!dr))
100 memset(dr, 0, offsetof(struct drmres, data));
102 INIT_LIST_HEAD(&dr->node.entry);
103 dr->node.release = release;
104 dr->node.size = size;
106 return dr;
109 static void del_dr(struct drm_device *dev, struct drmres *dr)
111 list_del_init(&dr->node.entry);
114 dr, dr->node.name, (unsigned long) dr->node.size);
117 static void add_dr(struct drm_device *dev, struct drmres *dr)
122 list_add(&dr->node.entry, &dev->managed.resources);
126 dr, dr->node.name, (unsigned long) dr->node.size);
141 struct drmres *dr;
144 dr = alloc_dr(action, data ? sizeof(void*) : 0,
147 if (!dr) {
153 dr->node.name = kstrdup_const(name, GFP_KERNEL);
155 void_ptr = (void **)&dr->data;
159 add_dr(dev, dr);
194 struct drmres *dr_match = NULL, *dr;
198 list_for_each_entry_reverse(dr, &dev->managed.resources, node.entry) {
199 if (dr->node.release == action) {
200 if (!data || (data && *(void **)dr->data == data)) {
201 dr_match = dr;
230 struct drmres *dr;
232 dr = alloc_dr(NULL, size, gfp, dev_to_node(dev->dev));
233 if (!dr) {
238 dr->node.name = kstrdup_const("kmalloc", gfp);
240 add_dr(dev, dr);
242 return dr->data;
283 struct drmres *dr_match = NULL, *dr;
290 list_for_each_entry(dr, &dev->managed.resources, node.entry) {
291 if (dr->data == data) {
292 dr_match = dr;