1. 03 11月, 2006 16 次提交
  2. 02 11月, 2006 15 次提交
  3. 01 11月, 2006 9 次提交
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · 4b1c46a3
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        [POWERPC] Make alignment exception always check exception table
        [POWERPC] Disallow kprobes on emulate_step and branch_taken
        [POWERPC] Make mmiowb's io_sync preempt safe
        [POWERPC] Make high hugepage areas preempt safe
        [POWERPC] Make current preempt-safe
        [POWERPC] qe_lib: qe_issue_cmd writes wrong value to CECDR
        [POWERPC] Use 4kB iommu pages even on 64kB-page systems
        [POWERPC] Fix oprofile support for e500 in arch/powerpc
        [POWERPC] Fix rmb() for e500-based machines it
        [POWERPC] Fix various offb issues
      4b1c46a3
    • P
      [libata] sata_nv: Add PCI IDs · 8fc2d9ca
      Peer Chen 提交于
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      8fc2d9ca
    • T
      [PATCH] ahci: fix status register check in ahci_softreset · 1244a19c
      Tejun Heo 提交于
      ahci_softreset() used to use ahci_tf_read() which reads D2H_REG area
      to check for the Status register.  However, this area is zeroed on
      initialization and not set by initial signature FIS.  Replace it with
      ahci_check_status().
      
      This bug prevented CLO code from being activated whenever BSY and/or
      DRQ is set prior to softreset.  This fix makes
      AHCI_FLAG_RESET_NEEDS_CLO flag redundant.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      1244a19c
    • L
      Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev · 30574b61
      Linus Torvalds 提交于
      * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        [PATCH] ata_piix: allow 01b MAP for both ICH6M and ICH7M
        [PATCH] libata: unexport ata_dev_revalidate()
        [PATCH] Add 0x7110 piix to ata_piix.c
        [PATCH] sata_sis: fix flags handling for the secondary port
      30574b61
    • B
      [POWERPC] Make alignment exception always check exception table · 4393c4f6
      Benjamin Herrenschmidt 提交于
      The alignment exception used to only check the exception table for
      -EFAULT, not for other errors. That opens an oops window if we can
      coerce the kernel into getting an alignment exception for other reasons
      in what would normally be a user-protected accessor, which can be done
      via some of the futex ops. This fixes it by always checking the
      exception tables.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      4393c4f6
    • G
      [POWERPC] Disallow kprobes on emulate_step and branch_taken · 0d69a052
      Gui,Jian 提交于
      On powerpc, probing on emulate_step function will crash 2.6.18.1 when
      it is triggered.
      
      When kprobe is triggered, emulate_step() is on its kernel path and
      will cause recursive kprobe fault.  And branch_taken() is called
      in emulate_step().  This disallows kprobes on both of them.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0d69a052
    • H
      [POWERPC] Make mmiowb's io_sync preempt safe · 292f86f0
      Hugh Dickins 提交于
      If mmiowb() is always used prior to releasing spinlock as Doc suggests,
      then it's safe against preemption; but I'm not convinced that's always
      the case.  If preemption occurs between sync and get_paca()->io_sync = 0,
      I believe there's no problem.  But in the unlikely event that gcc does
      the store relative to another register than r13 (as it did with current),
      then there's a small danger of setting another cpu's io_sync to 0, after
      it had just set it to 1.  Rewrite ppc64 mmiowb to prevent that.
      
      The remaining io_sync assignments in io.h all get_paca()->io_sync = 1,
      which is harmless even if preempted to the wrong cpu (the context switch
      itself syncs); and those in spinlock.h are while preemption is disabled.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      292f86f0
    • H
      [POWERPC] Make high hugepage areas preempt safe · 96268889
      Hugh Dickins 提交于
      Checking source for other get_paca()->field preemption dangers found that
      open_high_hpage_areas does a structure copy into its paca while preemption
      is enabled: unsafe however gcc accomplishes it.  Just remove that copy:
      it's done safely afterwards by on_each_cpu, as in open_low_hpage_areas.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Acked-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      96268889
    • H
      [POWERPC] Make current preempt-safe · 5fe8e8b8
      Hugh Dickins 提交于
      Repeated -j20 kernel builds on a G5 Quad running an SMP PREEMPT kernel
      would often collapse within a day, some exec failing with "Bad address".
      In each case examined, load_elf_binary was doing a kernel_read, but
      generic_file_aio_read's access_ok saw current->thread.fs.seg as USER_DS
      instead of KERNEL_DS.
      
      objdump of filemap.o shows gcc 4.1.0 emitting "mr r5,r13 ... ld r9,416(r5)"
      here for get_paca()->__current, instead of the expected and much more usual
      "ld r9,416(r13)"; I've seen other gcc4s do the same, but perhaps not gcc3s.
      
      So, if the task is preempted and rescheduled on a different cpu in between
      the mr and the ld, r5 will be looking at a different paca_struct from the
      one it's now on, pick up the wrong __current, and perhaps the wrong seg.
      Presumably much worse could happen elsewhere, though that split is rare.
      
      Other architectures appear to be safe (x86_64's read_pda is more limiting
      than get_paca), but ppc64 needs to force "current" into one instruction.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5fe8e8b8