1. 18 Dec, 2008 3 commits
    • Mike Travis's avatar
      x86: fix cpu_mask_to_apicid_and to include cpu_online_mask · a775a38b
      Mike Travis authored
      Impact: fix potential APIC crash
      
      In determining the destination apicid, there are usually three cpumasks
      that are considered: the incoming cpumask arg, cfg->domain and the
      cpu_online_mask.  Since we are just introducing the cpu_mask_to_apicid_and
      function, make sure it includes the cpu_online_mask in it's evaluation.
      [Added with this patch.]
      
      There are two io_apic.c functions that did not previously use the
      cpu_online_mask:  setup_IO_APIC_irq and msi_compose_msg.  Both of these
      simply used cpu_mask_to_apicid(cfg->domain & TARGET_CPUS), and all but
      one arch (NUMAQ[*]) returns only online cpus in the TARGET_CPUS mask,
      so the behavior is identical for all cases.
      
      [*: NUMAQ bug?]
      
      Note that alloc_cpumask_var is only used for the 32-bit cases where
      it's highly likely that the cpumask set size will be small and therefore
      CPUMASK_OFFSTACK=n.  But if that's not the case, failing the allocate
      will cause the same return value as the default.
      Signed-off-by: default avatarMike Travis <travis@sgi.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a775a38b
    • Ingo Molnar's avatar
      Merge branch 'x86/apic' into cpus4096 · 9a3d8f73
      Ingo Molnar authored
      This done for conflict prevention: we merge it into the cpus4096 tree
      because upcoming cpumask changes will touch apic.c that would collide
      with x86/apic otherwise.
      9a3d8f73
    • Ingo Molnar's avatar
      Merge branch 'linus' into cpus4096 · b9974dc6
      Ingo Molnar authored
      b9974dc6
  2. 17 Dec, 2008 37 commits