Showing error 746

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: arch/x86/kernel/genx2apic_uv_x.c
Line in file: 455
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Smatch (1.59)
Entered: 2011-11-07 22:22:22 UTC


Source:

425        node_id.v = uv_read_local_mmr(UVH_NODE_ID);
426        gnode_upper = (((unsigned long)node_id.s.node_id) &
427                       ~((1 << n_val) - 1)) << m_val;
428
429        uv_bios_init();
430        uv_bios_get_sn_info(0, &uv_type, &sn_partition_id,
431                            &uv_coherency_id, &uv_region_size);
432        uv_rtc_init();
433
434        for_each_present_cpu(cpu) {
435                nid = cpu_to_node(cpu);
436                pnode = uv_apicid_to_pnode(per_cpu(x86_cpu_to_apicid, cpu));
437                blade = boot_pnode_to_blade(pnode);
438                lcpu = uv_blade_info[blade].nr_possible_cpus;
439                uv_blade_info[blade].nr_possible_cpus++;
440
441                uv_cpu_hub_info(cpu)->lowmem_remap_base = lowmem_redir_base;
442                uv_cpu_hub_info(cpu)->lowmem_remap_top =
443                                        lowmem_redir_base + lowmem_redir_size;
444                uv_cpu_hub_info(cpu)->m_val = m_val;
445                uv_cpu_hub_info(cpu)->n_val = m_val;
446                uv_cpu_hub_info(cpu)->numa_blade_id = blade;
447                uv_cpu_hub_info(cpu)->blade_processor_id = lcpu;
448                uv_cpu_hub_info(cpu)->pnode = pnode;
449                uv_cpu_hub_info(cpu)->pnode_mask = (1 << n_val) - 1;
450                uv_cpu_hub_info(cpu)->gpa_mask = (1 << (m_val + n_val)) - 1;
451                uv_cpu_hub_info(cpu)->gnode_upper = gnode_upper;
452                uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base;
453                uv_cpu_hub_info(cpu)->coherency_domain_number = uv_coherency_id;
454                uv_node_to_blade[nid] = blade;
455                uv_cpu_to_blade[cpu] = blade;
456                max_pnode = max(pnode, max_pnode);
457
458                printk(KERN_DEBUG "UV: cpu %d, apicid 0x%x, pnode %d, nid %d, "
459                        "lcpu %d, blade %d\n",
460                        cpu, per_cpu(x86_cpu_to_apicid, cpu), pnode, nid,
461                        lcpu, blade);
462        }
463
464        map_gru_high(max_pnode);
465        map_mmr_high(max_pnode);
Show full sources