On arches that do not support this_cpu_cmpxchg_double() slab_lock is usedto do atomic cmpxchg() on double word which contains page->_count. Thepage count can be changed from get_page() or put_page() without takingslab_lock. That corrupts page counter.

Fix it by moving page->_count out of cmpxchg_double data. So that slubdoes no change it while updating slub meta-data in struct page.