Lines Matching refs:cur
157 struct bsr_dev *cur, *n;
159 list_for_each_entry_safe(cur, n, &bsr_devs, bsr_list) {
160 if (cur->bsr_device) {
161 cdev_del(&cur->bsr_cdev);
162 device_del(cur->bsr_device);
164 list_del(&cur->bsr_list);
165 kfree(cur);
189 struct bsr_dev *cur = kzalloc(sizeof(struct bsr_dev),
194 if (!cur) {
203 kfree(cur);
207 cur->bsr_minor = i + total_bsr_devs;
208 cur->bsr_addr = res.start;
209 cur->bsr_len = resource_size(&res);
210 cur->bsr_bytes = bsr_bytes[i];
211 cur->bsr_stride = bsr_stride[i];
212 cur->bsr_dev = MKDEV(bsr_major, i + total_bsr_devs);
216 if (cur->bsr_len > 4096 && cur->bsr_len < PAGE_SIZE)
217 cur->bsr_len = 4096;
219 switch(cur->bsr_bytes) {
221 cur->bsr_type = BSR_8;
224 cur->bsr_type = BSR_16;
227 cur->bsr_type = BSR_64;
230 cur->bsr_type = BSR_128;
233 cur->bsr_type = BSR_4096;
236 cur->bsr_type = BSR_UNKNOWN;
239 cur->bsr_num = bsr_types[cur->bsr_type];
240 snprintf(cur->bsr_name, 32, "bsr%d_%d",
241 cur->bsr_bytes, cur->bsr_num);
243 cdev_init(&cur->bsr_cdev, &bsr_fops);
244 result = cdev_add(&cur->bsr_cdev, cur->bsr_dev, 1);
246 kfree(cur);
250 cur->bsr_device = device_create(&bsr_class, NULL, cur->bsr_dev,
251 cur, "%s", cur->bsr_name);
252 if (IS_ERR(cur->bsr_device)) {
254 cur->bsr_name);
255 cdev_del(&cur->bsr_cdev);
256 kfree(cur);
260 bsr_types[cur->bsr_type] = cur->bsr_num + 1;
261 list_add_tail(&cur->bsr_list, &bsr_devs);