module_t *module_add_node(moduleid_t id, cnodeid_t n) { module_t *m; int i; DPRINTF("module_add_node: id=%x node=%d\n", id, n); if ((m = module_lookup(id)) == 0) { #ifndef CONFIG_IA64_SGI_IO m = kmem_zalloc_node(sizeof (module_t), KM_NOSLEEP, n); #else m = kmalloc(sizeof (module_t), GFP_KERNEL); memset(m, 0 , sizeof(module_t)); printk("Module nodecnt = %d\n", m->nodecnt); #endif ASSERT_ALWAYS(m); DPRINTF("module_add_node: m=0x%p\n", m); m->id = id; spin_lock_init(&m->lock); init_MUTEX_LOCKED(&m->thdcnt); printk("Set elsc to 0x%p on node %d\n", &m->elsc, get_nasid()); set_elsc(&m->elsc); elsc_init(&m->elsc, COMPACT_TO_NASID_NODEID(n)); spin_lock_init(&m->elsclock); /* Insert in sorted order by module number */ for (i = nummodules; i > 0 && modules[i - 1]->id > id; i--) modules[i] = modules[i - 1]; modules[i] = m; nummodules++; } m->nodes[m->nodecnt++] = n; printk("module_add_node: module %x now has %d nodes\n", id, m->nodecnt); DPRINTF("module_add_node: module %x now has %d nodes\n", id, m->nodecnt); return m; }
module_t *module_add_node(moduleid_t id, cnodeid_t n) { module_t *m; int i; char buffer[16]; #ifdef __ia64 memset(buffer, 0, 16); format_module_id(buffer, id, MODULE_FORMAT_BRIEF); DPRINTF("module_add_node: id=%s node=%d\n", buffer, n); #endif if ((m = module_lookup(id)) == 0) { #ifdef LATER m = kmem_zalloc_node(sizeof (module_t), KM_NOSLEEP, n); #else m = kmalloc(sizeof (module_t), GFP_KERNEL); memset(m, 0 , sizeof(module_t)); #endif ASSERT_ALWAYS(m); m->id = id; spin_lock_init(&m->lock); mutex_init_locked(&m->thdcnt); // set_elsc(&m->elsc); elsc_init(&m->elsc, COMPACT_TO_NASID_NODEID(n)); spin_lock_init(&m->elsclock); /* Insert in sorted order by module number */ for (i = nummodules; i > 0 && modules[i - 1]->id > id; i--) modules[i] = modules[i - 1]; modules[i] = m; nummodules++; } m->nodes[m->nodecnt++] = n; DPRINTF("module_add_node: module %s now has %d nodes\n", buffer, m->nodecnt); return m; }