1. 02 Nov, 2009 5 commits
    • Suresh Siddha's avatar
      x86: Use EOI register in io-apic on intel platforms · b3ec0a37
      Suresh Siddha authored
      IO-APIC's in intel chipsets support EOI register starting from
      IO-APIC version 2. Use that when ever we need to clear the
      IO-APIC RTE's RemoteIRR bit explicitly.
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Acked-by: default avatarGary Hade <garyhade@us.ibm.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      LKML-Reference: <20091026230001.947855317@sbs-t61.sc.intel.com>
      [ Marked use_eio_reg as __read_mostly, fixed small details ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      b3ec0a37
    • Suresh Siddha's avatar
      x86: Force irq complete move during cpu offline · a5e74b84
      Suresh Siddha authored
      When a cpu goes offline, fixup_irqs() try to move irq's
      currently destined to the offline cpu to a new cpu. But this
      attempt will fail if the irq is recently moved to this cpu and
      the irq still hasn't arrived at this cpu (for non intr-remapping
      platforms this is when we free the vector allocation at the
      previous destination) that is about to go offline.
      
      This will endup with the interrupt subsystem still pointing the
      irq to the offline cpu, causing that irq to not work any more.
      
      Fix this by forcing the irq to complete its move (its been a
      long time we moved the irq to this cpu which we are offlining
      now) and then move this irq to a new cpu before this cpu goes
      offline.
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Acked-by: default avatarGary Hade <garyhade@us.ibm.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      LKML-Reference: <20091026230001.848830905@sbs-t61.sc.intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      a5e74b84
    • Suresh Siddha's avatar
      x86: Remove move_cleanup_count from irq_cfg · 23359a88
      Suresh Siddha authored
      move_cleanup_count for each irq in irq_cfg is keeping track of
      the total number of cpus that need to free the corresponding
      vectors associated with the irq which has now been migrated to
      new destination. As long as this move_cleanup_count is non-zero
      (i.e., as long as we have n't freed the vector allocations on
      the old destinations) we were preventing the irq's further
      migration.
      
      This cleanup count is unnecessary and it is enough to not allow
      the irq migration till we send the cleanup vector to the
      previous irq destination, for which we already have irq_cfg's
      move_in_progress.  All we need to make sure is that we free the
      vector at the old desintation but we don't need to wait till
      that gets freed.
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Acked-by: default avatarGary Hade <garyhade@us.ibm.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      LKML-Reference: <20091026230001.752968906@sbs-t61.sc.intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      23359a88
    • Suresh Siddha's avatar
      x86, intr-remap: Avoid irq_chip mask/unmask in fixup_irqs() for intr-remapping · 84e21493
      Suresh Siddha authored
      In the presence of interrupt-remapping, irqs will be migrated in
      the process context and we don't do (and there is no need to)
      irq_chip mask/unmask while migrating the interrupt.
      
      Similarly fix the fixup_irqs() that get called during cpu
      offline and avoid calling irq_chip mask/unmask for irqs that are
      ok to be migrated in the process context.
      
      While we didn't observe any race condition with the existing
      code, this change takes complete advantage of
      interrupt-remapping in the newer generation platforms and avoids
      any potential HW lockup's (that often worry Eric :)
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Acked-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Cc: garyhade@us.ibm.com
      LKML-Reference: <20091026230001.661423939@sbs-t61.sc.intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      84e21493
    • Suresh Siddha's avatar
      x86: Unify fixup_irqs() for 32-bit and 64-bit kernels · 7a7732bc
      Suresh Siddha authored
      There is no reason to have different fixup_irqs() for 32-bit and
      64-bit kernels. Unify by using the superior 64-bit version for
      both the kernels.
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: default avatarGary Hade <garyhade@us.ibm.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      LKML-Reference: <20091026230001.562512739@sbs-t61.sc.intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      7a7732bc
  2. 27 Oct, 2009 1 commit
  3. 15 Oct, 2009 1 commit
    • Cyrill Gorcunov's avatar
      x86: apic: Allow noop operations to be called almost at any time · f88f2b4f
      Cyrill Gorcunov authored
      As only apic noop is used we allow to use almost any operation
      caller wants (and which of them noop driver supports of
      course).
      
      Initially it was reported by Ingo Molnar that apic noop
      issue a warning for pkg id (which is actually false positive
      and should be eliminated).
      
      So we save checking (and warning issue) for read/write
      operations while allow any other ops to be freely used.
      
      Also:
       - fix noop_cpu_to_logical_apicid, it should be 0.
       - rename noop_default_phys_pkg_id to noop_phys_pkg_id
         (we use default_ prefix for more general routines
          in apic subsystem).
      Reported-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarCyrill Gorcunov <gorcunov@openvz.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Maciej W. Rozycki <macro@linux-mips.org>
      LKML-Reference: <20091015150416.GC5331@lenovo>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f88f2b4f
  4. 14 Oct, 2009 7 commits
  5. 13 Oct, 2009 18 commits
  6. 12 Oct, 2009 8 commits
    • Jan Kara's avatar
      6dbce521
    • Theodore Ts'o's avatar
      ext3: Don't update superblock write time when filesystem is read-only · 96ec2e0a
      Theodore Ts'o authored
      This avoids updating the superblock write time when we are mounting
      the root file system read/only but we need to replay the journal; at
      that point, for people who are east of GMT and who make their clock
      tick in localtime for Windows bug-for-bug compatibility, and this will
      cause e2fsck to complain and force a full file system check.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      96ec2e0a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · 2caa7318
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI: Prevent AER driver from being loaded on non-root port PCIE devices
        PCI: get larger bridge ranges when space is available
        PCI: pci.c: fix kernel-doc notation
        PCI quirk: TI XIO200a erroneously reports support for fast b2b transfers
        PCI PM: Read device power state from register after updating it
        PCI: remove pci_assign_resource_fixed()
        PCI: PCIe portdrv: remove "-driver" from driver name
      2caa7318
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 589bf8d5
      Linus Torvalds authored
      * master.kernel.org:/home/rmk/linux-2.6-arm: (24 commits)
        ARM: force dcache flush if dcache_dirty bit set
        [ARM] pxa: workaround errata #37 by not using half turbo switching
        [ARM] pxamci: fix printing gpio numbers in pxamci_probe
        [ARM] pxa/csb726: adjust duplicate structure field initialization
        ARM: Add kmap_atomic type debugging
        ARM: boolean bit testing
        ARM: update die() output
        ARM: Dump code/mem oops lines with the appropriate log level
        ARM: Dump memory and backtrace as one printk per line
        ARM: 5756/1: ep93xx: introduce clk parent
        ARM: 5754/1: ep93xx: update i2c support
        ARM: 5753/1: ep93xx: remove old EP93XX_GPIO_* defines
        ARM: 5729/1: ep93xx: define EP93XX_*_PHYS_BASE with macros
        ARM: 5751/1: ep93xx/micro9: Add Micro9-Slim
        ARM: 5750/1: ep93xx/micro9: Update platform code
        ARM: 5749/1: ep93xx/micro9: Update maintainer
        ARM: 5752/1: SA1100: fix building of h3100
        ARM: 5748/1: bcmring: fix build warning messages
        ARM: 5747/1: Fix the start_pg value in free_memmap()
        ARM: 5746/1: Handle possible translation errors in ARMv6/v7 coherent_user_range
        ...
      589bf8d5
    • Mike Frysinger's avatar
      USB: musb: invert arch depend string · e3c6f15f
      Mike Frysinger authored
      The MUSB code relies on platform implementations that currently only
      exists for Arm and Blackfin processors, so have the MUSB Kconfig depend
      upon those arches.
      
      This should prevent other arches from building MUSB via randconfig.
      Reported-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e3c6f15f
    • Stefan Richter's avatar
      NFS: suppress a build warning · a1be9eee
      Stefan Richter authored
      struct sockaddr_storage * can safely be used as struct sockaddr *.
      Suppress an "incompatible pointer type" warning.
      Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a1be9eee
    • Linus Torvalds's avatar
      tty, serial: Fix race and NULL check in uart_close() · eea7e17e
      Linus Torvalds authored
      Commit 46d57a44 ("serial: use tty_port pointers in the core code")
      contained two bugs that causes (rare) crashes:
      
       - the rename typoed one site
      
       - a NULL check was missed
      Reported-and-tested-by: default avatarIngo Molnar <mingo@elte.hu>
      Cc: Greg KH <gregkh@suse.de>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eea7e17e
    • Nitin Gupta's avatar
      ARM: force dcache flush if dcache_dirty bit set · 787b2faa
      Nitin Gupta authored
      On ARM, update_mmu_cache() does dcache flush for a page only if
      it has a kernel mapping (page_mapping(page) != NULL). The correct
      behavior would be to force the flush based on dcache_dirty bit only.
      
      One of the cases where present logic would be a problem is when
      a RAM based block device[1] is used as a swap disk. In this case,
      we would have in-memory data corruption as shown in steps below:
      
      do_swap_page()
      {
          - Allocate a new page (if not already in swap cache)
          - Issue read from swap disk
              - Block driver issues flush_dcache_page()
              - flush_dcache_page() simply sets PG_dcache_dirty bit and does not
                actually issue a flush since this page has no user space mapping yet.
          - Now, if swap disk is almost full, this newly read page is removed
            from swap cache and corrsponding swap slot is freed.
          - Map this page anonymously in user space.
          - update_mmu_cache()
              - Since this page does not have kernel mapping (its not in page/swap
                cache and is mapped anonymously), it does not issue dcache flush
                even if dcache_dirty bit is set by flush_dcache_page() above.
      
          <user now gets stale data since dcache was never flushed>
      }
      
      Same problem exists on mips too.
      
      [1] example:
       - brd (RAM based block device)
       - ramzswap (RAM based compressed swap device)
      Signed-off-by: default avatarNitin Gupta <ngupta@vflare.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      787b2faa