1. 25 5月, 2010 4 次提交
    • G
      x86, setup: Phoenix BIOS fixup is needed on Dell Inspiron Mini 1012 · 3d6e77a3
      Gabor Gombas 提交于
      The low-memory corruption checker triggers during suspend/resume, so we
      need to reserve the low 64k.  Don't be fooled that the BIOS identifies
      itself as "Dell Inc.", it's still Phoenix BIOS.
      
      [ hpa: I think we blacklist almost every BIOS in existence.  We should
      either change this to a whitelist or just make it unconditional. ]
      Signed-off-by: NGabor Gombas <gombasg@digikabel.hu>
      LKML-Reference: <201005241913.o4OJDIMM010877@imap1.linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      Cc: <stable@kernel.org>
      3d6e77a3
    • J
      x86: "nosmp" command line option should force the system into UP mode · 5f2eb550
      Jan Beulich 提交于
      Bits set in cpu_possible_mask prior to the execution of
      prefill_possible_map() (i.e.  when parsing ACPI or MPS tables) would
      prevent the SMP alternatives logic from switching to UP mode, plus
      unnecessary setup of per-CPU data for CPUs that can never come online.
      
      Additionally, without CONFIG_HOTPLUG_CPU disabled CPUs can never come
      online, and hence setting cpu_possible_mask bits for them is again a
      simple waste of resources.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      LKML-Reference: <201005241913.o4OJDH3Z010874@imap1.linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      5f2eb550
    • J
      arch/x86/pci: use kasprintf · b46fc5f2
      Julia Lawall 提交于
      kasprintf combines kmalloc and sprintf, and takes care of the size
      calculation itself.
      
      The semantic patch that makes this change is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @@
      expression a,flag;
      expression list args;
      statement S;
      @@
      
        a =
      -  \(kmalloc\|kzalloc\)(...,flag)
      +  kasprintf(flag,args)
        <... when != a
        if (a == NULL || ...) S
        ...>
      - sprintf(a,args);
      // </smpl>
      Signed-off-by: NJulia Lawall <julia@diku.dk>
      LKML-Reference: <201005241913.o4OJDG3R010871@imap1.linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      b46fc5f2
    • K
      x86, apic: ack all pending irqs when crashed/on kexec · 8c3ba8d0
      Kerstin Jonsson 提交于
      When the SMP kernel decides to crash_kexec() the local APICs may have
      pending interrupts in their vector tables.
      
      The setup routine for the local APIC has a deficient mechanism for
      clearing these interrupts, it only handles interrupts that has already
      been dispatched to the local core for servicing (the ISR register) safely,
      it doesn't consider lower prioritized queued interrupts stored in the IRR
      register.
      
      If you have more than one pending interrupt within the same 32 bit word in
      the LAPIC vector table registers you may find yourself entering the IO
      APIC setup with pending interrupts left in the LAPIC.  This is a situation
      for wich the IO APIC setup is not prepared.  Depending of what/which
      interrupt vector/vectors are stuck in the APIC tables your system may show
      various degrees of malfunctioning.  That was the reason why the
      check_timer() failed in our system, the timer interrupts was blocked by
      pending interrupts from the old kernel when routed trough the IO APIC.
      
      Additional comment from Jiri Bohac:
      ==============
      If this should go into stable release,
      I'd add some kind of limit on the number of iterations, just to be safe from
      hard to debug lock-ups:
      
      +if (loops++  > MAX_LOOPS) {
      +        printk("LAPIC pending clean-up")
      +        break;
      +}
       while (queued);
      
      with MAX_LOOPS something like 1E9 this would leave plenty of time for the
      pending IRQs to be cleared and would and still cause at most a second of delay
      if the loop were to lock-up for whatever reason.
      
      [trenn@suse.de:
      
      V2: Use tsc if avail to bail out after 1 sec due to possible virtual
          apic_read calls which may take rather long (suggested by: Avi Kivity
          <avi@redhat.com>) If no tsc is available bail out quickly after
          cpu_khz, if we broke out too early and still have irqs pending (which
          should never happen?) we still get a WARN_ON...
      
      V3: - Fixed indentation -> checkpatch clean
          - max_loops must be signed
      
      V4: - Fix typo, mixed up tsc and ntsc in first rdtscll() call
      
      V5: Adjust WARN_ON() condition to also catch error in cpu_has_tsc case]
      
      Cc: <jbohac@novell.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Kerstin Jonsson <kerstin.jonsson@ericsson.com>
      Cc: Avi Kivity <avi@redhat.com>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      Tested-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      LKML-Reference: <201005241913.o4OJDGWM010865@imap1.linux-foundation.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      8c3ba8d0
  2. 24 5月, 2010 25 次提交
  3. 23 5月, 2010 11 次提交