Lines Matching refs:badrange

19 void badrange_init(struct badrange *badrange)  in badrange_init()  argument
21 INIT_LIST_HEAD(&badrange->list); in badrange_init()
22 spin_lock_init(&badrange->lock); in badrange_init()
26 static void append_badrange_entry(struct badrange *badrange, in append_badrange_entry() argument
29 lockdep_assert_held(&badrange->lock); in append_badrange_entry()
32 list_add_tail(&bre->list, &badrange->list); in append_badrange_entry()
35 static int alloc_and_append_badrange_entry(struct badrange *badrange, in alloc_and_append_badrange_entry() argument
44 append_badrange_entry(badrange, bre, addr, length); in alloc_and_append_badrange_entry()
48 static int add_badrange(struct badrange *badrange, u64 addr, u64 length) in add_badrange() argument
52 spin_unlock(&badrange->lock); in add_badrange()
54 spin_lock(&badrange->lock); in add_badrange()
56 if (list_empty(&badrange->list)) { in add_badrange()
59 append_badrange_entry(badrange, bre_new, addr, length); in add_badrange()
68 list_for_each_entry(bre, &badrange->list, list) in add_badrange()
84 append_badrange_entry(badrange, bre_new, addr, length); in add_badrange()
89 int badrange_add(struct badrange *badrange, u64 addr, u64 length) in badrange_add() argument
93 spin_lock(&badrange->lock); in badrange_add()
94 rc = add_badrange(badrange, addr, length); in badrange_add()
95 spin_unlock(&badrange->lock); in badrange_add()
101 void badrange_forget(struct badrange *badrange, phys_addr_t start, in badrange_forget() argument
104 struct list_head *badrange_list = &badrange->list; in badrange_forget()
108 spin_lock(&badrange->lock); in badrange_forget()
154 alloc_and_append_badrange_entry(badrange, new_start, in badrange_forget()
161 spin_unlock(&badrange->lock); in badrange_forget()
213 static void badblocks_populate(struct badrange *badrange, in badblocks_populate() argument
218 if (list_empty(&badrange->list)) in badblocks_populate()
221 list_for_each_entry(bre, &badrange->list, list) { in badblocks_populate()
282 badblocks_populate(&nvdimm_bus->badrange, bb, range); in nvdimm_badblocks_populate()