Lines Matching refs:badrange

27 void badrange_init(struct badrange *badrange)  in badrange_init()  argument
29 INIT_LIST_HEAD(&badrange->list); in badrange_init()
30 spin_lock_init(&badrange->lock); in badrange_init()
34 static void append_badrange_entry(struct badrange *badrange, in append_badrange_entry() argument
37 lockdep_assert_held(&badrange->lock); in append_badrange_entry()
40 list_add_tail(&bre->list, &badrange->list); in append_badrange_entry()
43 static int alloc_and_append_badrange_entry(struct badrange *badrange, in alloc_and_append_badrange_entry() argument
52 append_badrange_entry(badrange, bre, addr, length); in alloc_and_append_badrange_entry()
56 static int add_badrange(struct badrange *badrange, u64 addr, u64 length) in add_badrange() argument
60 spin_unlock(&badrange->lock); in add_badrange()
62 spin_lock(&badrange->lock); in add_badrange()
64 if (list_empty(&badrange->list)) { in add_badrange()
67 append_badrange_entry(badrange, bre_new, addr, length); in add_badrange()
76 list_for_each_entry(bre, &badrange->list, list) in add_badrange()
92 append_badrange_entry(badrange, bre_new, addr, length); in add_badrange()
97 int badrange_add(struct badrange *badrange, u64 addr, u64 length) in badrange_add() argument
101 spin_lock(&badrange->lock); in badrange_add()
102 rc = add_badrange(badrange, addr, length); in badrange_add()
103 spin_unlock(&badrange->lock); in badrange_add()
109 void badrange_forget(struct badrange *badrange, phys_addr_t start, in badrange_forget() argument
112 struct list_head *badrange_list = &badrange->list; in badrange_forget()
116 spin_lock(&badrange->lock); in badrange_forget()
162 alloc_and_append_badrange_entry(badrange, new_start, in badrange_forget()
169 spin_unlock(&badrange->lock); in badrange_forget()
221 static void badblocks_populate(struct badrange *badrange, in badblocks_populate() argument
226 if (list_empty(&badrange->list)) in badblocks_populate()
229 list_for_each_entry(bre, &badrange->list, list) { in badblocks_populate()
290 badblocks_populate(&nvdimm_bus->badrange, bb, res); in nvdimm_badblocks_populate()