1. 17 Jan, 2008 17 commits
  2. 16 Jan, 2008 7 commits
  3. 15 Jan, 2008 16 commits
    • Luck, Tony's avatar
      [IA64] Fix unaligned handler for floating point instructions with base update · 1a499150
      Luck, Tony authored
      The compiler team did the hard work for this distilling a problem in
      large fortran application which showed up when applied to a 290MB input
      data set down to this instruction:
      
      	ldfd f34=[r17],-8
      
      Which they noticed incremented r17 by 0x10 rather than decrementing it
      by 8 when the value in r17 caused an unaligned data fault.  I tracked
      it down to some bad instruction decoding in unaligned.c. The code
      assumes that the 'x' bit can determine whether the instruction is
      an "ldf" or "ldfp" ... which it is for opcode=6 (see table 4-29 on
      page 3:302 of the SDM).  But for opcode=7 the 'x' bit is irrelevent,
      all variants are "ldf" instructions (see table 4-36 on page 3:306).
      
      Note also that interpreting the instruction as "ldfp" means that the
      "paired" floating point register (f35 in the example here) will also
      be corrupted.
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      1a499150
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 0938e758
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        libata: correct handling of TSS DVD
        [libata] core checkpatch fix
        [libata] pata_bf54x: checkpatch fixes
        libata fixes for sparse-found problems
      0938e758
    • Alan Cox's avatar
      libata: correct handling of TSS DVD · 121a09e5
      Alan Cox authored
      Devices that misreport the validity bit for word 93 look like SATA.  If
      they are on the blacklist then we must not test for SATA but assume 40 wire
      in the 40 wire case (The TSSCorp reports 80 wire on SATA it seems!)
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      121a09e5
    • Andrew Morton's avatar
      [libata] core checkpatch fix · 0f757743
      Andrew Morton authored
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Tejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      0f757743
    • Andrew Morton's avatar
      [libata] pata_bf54x: checkpatch fixes · ed722d3d
      Andrew Morton authored
      WARNING: line over 80 characters
      #36: FILE: drivers/ata/pata_bf54x.c:1512:
      +	while (bfin_port_info[board_idx].udma_mask>0 && udma_fsclk[udma_mode] > fsclk) {
      
      ERROR: need spaces around that '>' (ctx:VxV)
      #36: FILE: drivers/ata/pata_bf54x.c:1512:
      +	while (bfin_port_info[board_idx].udma_mask>0 && udma_fsclk[udma_mode] > fsclk) {
       	                                          ^
      
      total: 1 errors, 1 warnings, 19 lines checked
      
      Your patch has style problems, please review.  If any of these errors
      are false positives report them to the maintainer, see
      CHECKPATCH in MAINTAINERS.
      
      Please run checkpatch prior to sending patches
      
      Cc: Jeff Garzik <jeff@garzik.org>
      Cc: Sonic Zhang <sonic.zhang@analog.com>
      Cc: Tejun Heo <htejun@gmail.com>
      Cc: sonic zhang <sonic.adi@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      ed722d3d
    • Al Viro's avatar
      libata fixes for sparse-found problems · b50e56d8
      Al Viro authored
      In pata_legacy and pata_winbond we've got bugs - cpu_to_le16() instead
      of cpu_to_le32().  Fortunately, both affected suckers are VLB, thus
      l-e-only, so we might get away with that unless we hit it with slop == 3
      (hadn't checked if playing with badly aligned sg could trigger that).
      Still buggy...  Moreover, pata_legacy, pata_winbond and pata_qdi forgot to
      initialize pad on the write side of 32bit case in their ->data_xfer().
      Hopefully the hardware does't care, but still, sending uninitialized
      data to it...
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
      b50e56d8
    • Mathieu Desnoyers's avatar
      Fix Blackfin HARDWARE_PM support · 7d2284b0
      Mathieu Desnoyers authored
      This patch restores the blackfin Hardware Performance Monitor Profiling
      support that was killed by the combining of instrumentation menus in
      commit 09cadedb.
      
      Since there seems to be no good reason to behave differently from other
      architectures, it now automatically selects the hardware performance
      counters whenever the profiling is activated.
      
      mach-common/irqpanic.c: pm_overflow calls pm_overflow_handler which is
      in oprofile/op_model_bf533.c.  I doubt that setting HARDWARE_PM as "m"
      will work at all, since the pm_overflow_handler should be in the core
      kernel image because it is called by irqpanic.c.
      
      Therefore, I change HARDWARE_PM from a tristate to a bool.
      
      The whole arch/$(ARCH)/oprofile/ is built depending on CONFIG_OPROFILE. Since
      part of the HARDWARE_PM support files sits in this directory, it makes sense to
      also depend on OPROFILE, not only PROFILING. Since OPROFILE already depends on
      PROFILING, it is correct to only depend on OPROFILE only.
      
      Thanks to Adrian Bunk for finding this bug and providing an initial
      patch.
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      CC: Adrian Bunk <adrian.bunk@movial.fi>
      CC: Randy Dunlap <randy.dunlap@oracle.com>
      CC: bryan.wu@analog.com
      Acked-by: default avatarRobin Getz <rgetz@blackfin.uclinux.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7d2284b0
    • Linus Torvalds's avatar
      Fix ARM profiling/instrumentation configuration · 38ad9aeb
      Linus Torvalds authored
      Commit 09cadedb ("Combine
      instrumentation menus in kernel/Kconfig.instrumentation") broke ARM
      profiling support, since ARM has some extra Kconfig options and doesn't
      just use the common OPROFILE/KPROBES config options.
      
      Rather than just revert the thing outright, or add ARM-specific
      knowledge to the generic Kconfig.instrumentation file (where the only
      and whole point was to be generic, not too architecture-specific), this
      just makes ARM not use the generic version, since it doesn't suit it.
      
      So create an arm-specific version of Kconfig.instrumentation instead,
      and use that.
      Acked-by: default avatarIngo Molnar <mingo@elte.hu>
      Acked-by: default avatarRussell King <rmk+lkml@arm.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      38ad9aeb
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 · 3568834e
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
        x86: fix RTC_AIE with CONFIG_HPET_EMULATE_RTC
        x86: asm-x86/msr.h: pull in linux/types.h
        x86: fix boot crash on HIGHMEM4G && SPARSEMEM
      3568834e
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · 8234b65a
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        [SPARC64]: Fix build with SPARSEMEM_VMEMMAP disabled.
        [SPARC]: Make gettimeofday() monotonic again.
      8234b65a
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 612166c7
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
        [TOKENRING]: rif_timer not initialized properly
        [NETFILTER]: bridge: fix double POST_ROUTING invocation
        [NETFILTER]: xt_helper: Do not bypass RCU
        [NETFILTER]: ip6t_eui64: Fixes calculation of Universal/Local bit
        [MACVLAN]: Prevent nesting macvlan devices
        [VLAN]: nested VLAN: fix lockdep's recursive locking warning
        [DECNET] ROUTE: fix rcu_dereference() uses in /proc/net/decnet_cache
        [BLUETOOTH]: Always send explicit hci_ll wake-up acks.
        [BLUETOOTH]: rfcomm tty BUG_ON() code fix
        [AX25] af_ax25: Possible circular locking.
        [AX25]: Kill user triggable printks.
        [IPV4] ROUTE: fix rcu_dereference() uses in /proc/net/rt_cache
        [NEIGH]: Fix race between neigh_parms_release and neightbl_fill_parms
        [NIU]: Support for Marvell PHY
      612166c7
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · f885b519
      Linus Torvalds authored
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        [POWERPC] Fix boot failure on POWER6
        [POWERPC] Workaround for iommu page alignment
      f885b519
    • Bernhard Walle's avatar
      x86: fix RTC_AIE with CONFIG_HPET_EMULATE_RTC · 8ee291f8
      Bernhard Walle authored
      In the current code, RTC_AIE doesn't work if the RTC relies on
      CONFIG_HPET_EMULATE_RTC because the code sets the RTC_AIE flag in
      hpet_set_rtc_irq_bit().  The interrupt handles does accidentally check
      for RTC_PIE and not RTC_AIE when comparing the time which was set in
      hpet_set_alarm_time().
      
      I now verified on a test system here that without the patch applied,
      the attached test program fails on a system that has HPET with
      2.6.24-rc7-default. That's not critical since I guess the problem has
      been there for several kernel releases, but as the fix is quite
      obvious.
      
      Configuration is CONFIG_RTC=y and CONFIG_HPET_EMULATE_RTC=y.
      Signed-off-by: default avatarBernhard Walle <bwalle@suse.de>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8ee291f8
    • Mike Frysinger's avatar
      x86: asm-x86/msr.h: pull in linux/types.h · d43a3312
      Mike Frysinger authored
      Since the msr.h header uses types like __u32, it should pull in linux/types.h.
      
      [ mingo@elte.hu: affects user-space that includes this header. We dont
        actually like user-space including raw kernel headers but it's a
        longstanding practice and it's easy for the kernel to be nice about
        this. ]
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d43a3312
    • Ingo Molnar's avatar
      x86: fix boot crash on HIGHMEM4G && SPARSEMEM · 23be8c7d
      Ingo Molnar authored
      Denys Fedoryshchenko reported a bootup crash when he upgraded
      his system from 3GB to 4GB RAM:
      
         http://lkml.org/lkml/2008/1/7/9
      
      the bug is due to HIGHMEM4G && SPARSEMEM kernels making pfn_to_page()
      to return an invalid pointer when the pfn is in a memory hole. The
      256 MB PCI aperture at the end of RAM was not mapped by sparsemem,
      and hence the pfn was not valid. But set_highmem_pages_init() iterated
      this range without checking the pfn's validity first.
      
      this bug was probably present in the sparsemem code ever since sparsemem
      has been introduced in v2.6.13. It was masked due to HIGHMEM64G using
      larger memory regions in sparsemem_32.h:
      
       #ifdef CONFIG_X86_PAE
       #define SECTION_SIZE_BITS       30
       #define MAX_PHYSADDR_BITS       36
       #define MAX_PHYSMEM_BITS        36
       #else
       #define SECTION_SIZE_BITS       26
       #define MAX_PHYSADDR_BITS       32
       #define MAX_PHYSMEM_BITS        32
       #endif
      
      which creates 1GB sparsemem regions instead of 64MB sparsemem regions.
      So in practice we only ever created true sparsemem holes on x86 with
      HIGHMEM4G - but that was rarely used by distros.
      
      ( btw., we could probably save 2MB of mem_map[]s on X86_PAE if we reduced
        the sparsemem region size to 256 MB. )
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      23be8c7d
    • Paul Mackerras's avatar
      [POWERPC] Fix boot failure on POWER6 · dfbe0d3b
      Paul Mackerras authored
      Commit 473980a9 added a call to clear
      the SLB shadow buffer before registering it.  Unfortunately this means
      that we clear out the entries that slb_initialize has previously set in
      there.  On POWER6, the hypervisor uses the SLB shadow buffer when doing
      partition switches, and that means that after the next partition switch,
      each non-boot CPU has no SLB entries to map the kernel text and data,
      which causes it to crash.
      
      This fixes it by reverting most of 473980a9 and instead clearing the
      3rd entry explicitly in slb_initialize.  This fixes the problem that
      473980a9 was trying to solve, but without breaking POWER6.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      dfbe0d3b