/* * Write secondary_holding_pen_release in a way that is guaranteed to be * visible to all observers, irrespective of whether they're taking part * in coherency or not. This is necessary for the hotplug code to work * reliably. */ void smp_write_pen_release(unsigned long val) { virtual_addr_t start = (virtual_addr_t)&start_secondary_pen_release; unsigned long size = sizeof(start_secondary_pen_release); start_secondary_pen_release = val; vmm_flush_dcache_range(start, start + size); }
void smp_write_logical_id(unsigned long val) { virtual_addr_t start = (virtual_addr_t)&start_secondary_smp_id; unsigned long size = sizeof(start_secondary_smp_id); start_secondary_smp_id = val; vmm_flush_dcache_range(start, start + size); }