Lines Matching refs:dr

54 	struct devres *dr;  in lkpi_devres_alloc()  local
60 total = sizeof(*dr) + size; in lkpi_devres_alloc()
61 dr = kmalloc(total, gfp); in lkpi_devres_alloc()
62 if (dr == NULL) in lkpi_devres_alloc()
65 INIT_LIST_HEAD(&dr->entry); in lkpi_devres_alloc()
66 dr->release = release; in lkpi_devres_alloc()
67 p = (void *)(dr+1); in lkpi_devres_alloc()
73 lkpi_devres_free_dr(struct devres *dr) in lkpi_devres_free_dr() argument
80 KASSERT(list_empty_careful(&dr->entry), in lkpi_devres_free_dr()
81 ("%s: dr %p still on devres_head\n", __func__, dr)); in lkpi_devres_free_dr()
82 kfree(dr); in lkpi_devres_free_dr()
88 struct devres *dr; in lkpi_devres_free() local
93 dr = container_of(p, struct devres, __drdata); in lkpi_devres_free()
94 lkpi_devres_free_dr(dr); in lkpi_devres_free()
100 struct devres *dr; in lkpi_devres_add() local
105 dr = container_of(p, struct devres, __drdata); in lkpi_devres_add()
107 list_add(&dr->entry, &dev->devres_head); in lkpi_devres_add()
115 struct devres *dr, *next; in lkpi_devres_find_dr() local
121 list_for_each_entry_safe(dr, next, &dev->devres_head, entry) { in lkpi_devres_find_dr()
122 if (dr->release != release) in lkpi_devres_find_dr()
124 p = (void *)(dr+1); in lkpi_devres_find_dr()
127 return (dr); in lkpi_devres_find_dr()
137 struct devres *dr; in lkpi_devres_find() local
142 dr = lkpi_devres_find_dr(dev, release, match, mp); in lkpi_devres_find()
145 if (dr == NULL) in lkpi_devres_find()
148 return ((void *)(dr + 1)); in lkpi_devres_find()
152 lkpi_devres_unlink_locked(struct device *dev, struct devres *dr) in lkpi_devres_unlink_locked() argument
155 KASSERT(dr != NULL, ("%s: dr %p\n", __func__, dr)); in lkpi_devres_unlink_locked()
158 list_del_init(&dr->entry); in lkpi_devres_unlink_locked()
164 struct devres *dr; in lkpi_devres_unlink() local
169 dr = container_of(p, struct devres, __drdata); in lkpi_devres_unlink()
171 lkpi_devres_unlink_locked(dev, dr); in lkpi_devres_unlink()
179 struct devres *dr, *next; in lkpi_devres_release_free_list() local
184 list_for_each_entry_safe(dr, next, &dev->devres_head, entry) { in lkpi_devres_release_free_list()
185 p = (void *)(dr+1); in lkpi_devres_release_free_list()
186 if (dr->release != NULL) in lkpi_devres_release_free_list()
187 dr->release(dev, p); in lkpi_devres_release_free_list()
189 list_del_init(&dr->entry); in lkpi_devres_release_free_list()
198 struct devres *dr; in lkpi_devres_destroy() local
201 dr = lkpi_devres_find_dr(dev, release, match, mp); in lkpi_devres_destroy()
202 if (dr != NULL) in lkpi_devres_destroy()
203 lkpi_devres_unlink_locked(dev, dr); in lkpi_devres_destroy()
206 if (dr == NULL) in lkpi_devres_destroy()
208 lkpi_devres_free_dr(dr); in lkpi_devres_destroy()