Lines Matching refs:prdev

29 __page_reporting_request(struct page_reporting_dev_info *prdev)  in __page_reporting_request()  argument
34 state = atomic_read(&prdev->state); in __page_reporting_request()
42 state = atomic_xchg(&prdev->state, PAGE_REPORTING_REQUESTED); in __page_reporting_request()
51 schedule_delayed_work(&prdev->work, PAGE_REPORTING_DELAY); in __page_reporting_request()
57 struct page_reporting_dev_info *prdev; in __page_reporting_notify() local
65 prdev = rcu_dereference(pr_dev_info); in __page_reporting_notify()
66 if (likely(prdev)) in __page_reporting_notify()
67 __page_reporting_request(prdev); in __page_reporting_notify()
73 page_reporting_drain(struct page_reporting_dev_info *prdev, in page_reporting_drain() argument
114 page_reporting_cycle(struct page_reporting_dev_info *prdev, struct zone *zone, in page_reporting_cycle() argument
162 atomic_set(&prdev->state, PAGE_REPORTING_REQUESTED); in page_reporting_cycle()
193 err = prdev->report(prdev, sgl, PAGE_REPORTING_CAPACITY); in page_reporting_cycle()
205 page_reporting_drain(prdev, sgl, PAGE_REPORTING_CAPACITY, !err); in page_reporting_cycle()
228 page_reporting_process_zone(struct page_reporting_dev_info *prdev, in page_reporting_process_zone() argument
253 err = page_reporting_cycle(prdev, zone, order, mt, in page_reporting_process_zone()
264 err = prdev->report(prdev, sgl, leftover); in page_reporting_process_zone()
268 page_reporting_drain(prdev, sgl, leftover, !err); in page_reporting_process_zone()
278 struct page_reporting_dev_info *prdev = in page_reporting_process() local
290 atomic_set(&prdev->state, state); in page_reporting_process()
300 err = page_reporting_process_zone(prdev, sgl, zone); in page_reporting_process()
312 state = atomic_cmpxchg(&prdev->state, state, PAGE_REPORTING_IDLE); in page_reporting_process()
314 schedule_delayed_work(&prdev->work, PAGE_REPORTING_DELAY); in page_reporting_process()
320 int page_reporting_register(struct page_reporting_dev_info *prdev) in page_reporting_register() argument
336 page_reporting_order = prdev->order ? : pageblock_order; in page_reporting_register()
339 atomic_set(&prdev->state, PAGE_REPORTING_IDLE); in page_reporting_register()
340 INIT_DELAYED_WORK(&prdev->work, &page_reporting_process); in page_reporting_register()
343 __page_reporting_request(prdev); in page_reporting_register()
346 rcu_assign_pointer(pr_dev_info, prdev); in page_reporting_register()
360 void page_reporting_unregister(struct page_reporting_dev_info *prdev) in page_reporting_unregister() argument
364 if (rcu_access_pointer(pr_dev_info) == prdev) { in page_reporting_unregister()
370 cancel_delayed_work_sync(&prdev->work); in page_reporting_unregister()