1. 20 Sep, 2010 34 commits
  2. 26 Aug, 2010 6 commits
    • Greg Kroah-Hartman's avatar
      Linux 2.6.32.21 · 671e83b9
      Greg Kroah-Hartman authored
      671e83b9
    • Kerstin Jonsson's avatar
      x86, apic: ack all pending irqs when crashed/on kexec · 82c09de9
      Kerstin Jonsson authored
      commit 8c3ba8d0 upstream.
      
      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: default avatarEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
      LKML-Reference: <201005241913.o4OJDGWM010865@imap1.linux-foundation.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      Cc: Thomas Renninger <trenn@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      82c09de9
    • Galen Seitz's avatar
      USB: ftdi_sio: add product ID for Lenz LI-USB · 6d92b8b4
      Galen Seitz authored
      commit ea233f80 upstream.
      
      Add ftdi product ID for Lenz LI-USB, a model train interface.  This
      was NOT tested against 2.6.35, but a similar patch was tested with the
      CentOS 2.6.18-194.11.1.el5 kernel.  It wasn't clear to me what
      ordering is being used in ftdi_sio.c, so I inserted the ID after another
      model train entry(SPROG_II).
      Signed-off-by: default avatarGalen Seitz <galens@seitzassoc.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6d92b8b4
    • Martin Michlmayr's avatar
      USB: ftdi_sio: Add ID for Ionics PlugComputer · 9368b48c
      Martin Michlmayr authored
      commit 666cc076 upstream.
      
      Add the ID for the Ionics PlugComputer (<http://ionicsplug.com/>).
      Signed-off-by: default avatarMartin Michlmayr <tbm@cyrius.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      9368b48c
    • John Youn's avatar
      USB: xhci: Remove buggy assignment in next_trb() · 79a31466
      John Youn authored
      commit a1669b2c upstream.
      
      The code to increment the TRB pointer has a slight ambiguity that could
      lead to a bug on different compilers.  The ANSI C specification does not
      specify the precedence of the assignment operator over the postfix
      operator.  gcc 4.4 produced the correct code (increment the pointer and
      assign the value), but a MIPS compiler that one of John's clients used
      assigned the old (unincremented) value.
      
      Remove the unnecessary assignment to make all compilers produce the
      correct assembly.
      Signed-off-by: default avatarJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      79a31466
    • Greg Kroah-Hartman's avatar
      USB: io_ti: check firmware version before updating · fecc5667
      Greg Kroah-Hartman authored
      commit 0827a9ff upstream.
      
      If we can't read the firmware for a device from the disk, and yet the
      device already has a valid firmware image in it, we don't want to
      replace the firmware with something invalid.  So check the version
      number to be less than the current one to verify this is the correct
      thing to do.
      Reported-by: default avatarChris Beauchamp <chris@chillibean.tv>
      Tested-by: default avatarChris Beauchamp <chris@chillibean.tv>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      fecc5667