1. 08 11月, 2006 1 次提交
  2. 04 11月, 2006 6 次提交
  3. 03 11月, 2006 3 次提交
  4. 02 11月, 2006 10 次提交
  5. 01 11月, 2006 20 次提交
    • 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
    • T
      [POWERPC] qe_lib: qe_issue_cmd writes wrong value to CECDR · 302439d2
      Timur Tabi 提交于
      Changed qe_issue_cmd() to write cmd_input to the CECDR unmodified.  It
      was treating cmd_input as a virtual address and tried to convert it to
      a physical address.
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      302439d2
    • L
      [POWERPC] Use 4kB iommu pages even on 64kB-page systems · 5d2efba6
      Linas Vepstas 提交于
      The 10Gigabit ethernet device drivers appear to be able to chew
      up all 256MB of TCE mappings on pSeries systems, as evidenced by
      numerous error messages:
      
       iommu_alloc failed, tbl c0000000010d5c48 vaddr c0000000d875eff0 npages 1
      
      Some experimentation indicates that this is essentially because
      one 1500 byte ethernet MTU gets mapped as a 64K DMA region when
      the large 64K pages are enabled. Thus, it doesn't take much to
      exhaust all of the available DMA mappings for a high-speed card.
      
      This patch changes the iommu allocator to work with its own
      unique, distinct page size. Although the patch is long, its
      actually quite simple: it just #defines a distinct IOMMU_PAGE_SIZE
      and then uses this in all the places that matter.
      
      As a side effect, it also dramatically improves network performance
      on platforms with H-calls on iommu translation inserts/removes (since
      we no longer call it 16 times for a 1500 bytes packet when the iommu HW
      is still 4k).
      
      In the future, we might want to make the IOMMU_PAGE_SIZE a variable
      in the iommu_table instance, thus allowing support for different HW
      page sizes in the iommu itself.
      Signed-off-by: NLinas Vepstas <linas@austin.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Acked-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      5d2efba6
    • A
      [POWERPC] Fix oprofile support for e500 in arch/powerpc · dd6c89f6
      Andy Fleming 提交于
      Fixed a compile error in building the 85xx support with oprofile, and in
      the process cleaned up some issues with the fsl_booke performance monitor
      code.
      
      * Reorganized FSL Book-E performance monitoring code so that the 7450
        wouldn't be built if the e500 was, and cleaned it up so it was more
        self-contained.
      
      * Added a cpu_setup function for FSL Book-E.  The original
        cpu_setup function prototype had no arguments, assuming that
        the reg_setup function would copy the required information into
        variables which represented the registers.  This was silly for
        e500, since it has 1 register per counter (rather than 3 for
        all counters), so the code has been restructured to have
        cpu_setup take the current counter config array as an argument,
        with op_powerpc_setup() invoking op_powerpc_cpu_setup() through
        on_each_cpu(), and op_powerpc_cpu_setup() invoking the
        model-specific cpu_setup function with an argument.  The
        argument is ignored on all other platforms at present.
      
      * Fixed a confusing line where a trinary operator only had two
        arguments
      Signed-off-by: NAndrew Fleming <afleming@freescale.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      dd6c89f6
    • A
      [POWERPC] Fix rmb() for e500-based machines it · e0da0dae
      Andy Fleming 提交于
      The e500 core generates an illegal instruction exception when it tries
      to execute the lwsync instruction, which we currently use for rmb().
      This fixes it by using the LWSYNC macro, which turns into a plain sync
      on 32-bit machines.
      Signed-off-by: NAndrew Fleming <afleming@freescale.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e0da0dae
    • B
      [POWERPC] Fix various offb issues · 441cbd8d
      Benjamin Herrenschmidt 提交于
      This patch fixes a few issues in offb:
      
       - A test was inverted causing the palette hack to never work
      (no device node was passed down to the init function)
      
       - Some cards seem to have their assigned-addresses property in a random
      order, thus we need to try using of_get_pci_address() first, which will
      fail if it's not a PCI device, and fallback to of_get_address() in that
      case. of_get_pci_address() properly parsees assigned-addresses to test
      the BAR number and thus will get it right whatever the order is.
      
       - Some cards (like GXT4500) provide a linebytes of 0xffffffff in the
      device-tree which does no good. This patch handles that by using the
      screen width when that happens. (Also fixes btext.c while at it).
      
       - Add detection of the GXT4500 in addition to the GXT2000 for the
      palette hacks (we use the same hack, palette is linear in register space
      at offset 0x6000).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      441cbd8d
    • T
      [PATCH] ata_piix: allow 01b MAP for both ICH6M and ICH7M · c6446a4c
      Tejun Heo 提交于
      ICH7M was separated from ICH6M to allow undocumented MAP value 01b
      which was spotted on an ASUS notebook.  However, there is also
      notebooks with MAP value 01b on ICH6M.  This patch re-merges ICH6M and
      ICH7M entries and allows MAP value 01b for both.
      
      This problem has been reported and initial patch provided by Jonathan
      Dieter.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: Jonathan Dieter <jdieter@gmail.com>
      Cc: Tom Deblauwe <tom.deblauwe@telenet.be>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      c6446a4c
    • T
      [PATCH] libata: unexport ata_dev_revalidate() · 6e42acc4
      Tejun Heo 提交于
      ata_dev_revalidate() isn't used outside of libata core.  Unexport it.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      6e42acc4
    • J
      [PATCH] Add 0x7110 piix to ata_piix.c · f833229c
      Jens Axboe 提交于
      Hi Jeff,
      
      I tested the PATA support on my old VAIO notebook, and it failed to find
      my piix device:
      
      00:07.1 Class 0101: 8086:7111 (rev 01) (prog-if 80 [Master])
              Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop-
      ParErr- Stepping- SERR- FastB2B-
              Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
      <TAbort- <MAbort- >SERR- <PERR-
              Latency: 64
              Region 4: I/O ports at fc90 [size=16]
      
      This patch adds the pci id to ata_piix.c and things then work as
      expected.
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      f833229c
    • T
      [PATCH] sata_sis: fix flags handling for the secondary port · cf0e812f
      Tejun Heo 提交于
      sis_init_one() modifies probe_ent->port_flags after allocating and
      initializing it using ata_pci_init_native_mode().  This makes port_flags
      for the secondary port (probe_ent->pinfo2->flags) go out of sync resulting
      in misdetection of device due to incorrectly initialized SCR access flag.
      
      This patch make probe_ent alloc/init happen after the final port flags
      value is determined.  This is fragile but probe_ent and all the related
      mess are scheduled to go away soon for exactly this reason.  We just need
      to hold everything together till then.
      
      This has been spotted and diagnosed and tested by Patrick McHardy.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Cc: Patric McHardy <kaber@trash.net>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      cf0e812f
    • S
      [PATCH] sky2: netpoll on dual port cards · 0ca43235
      Stephen Hemminger 提交于
      The sky2 driver uses a single NAPI poll routine for both ports on dual ported
      cards (because there is a single IRQ and status ring). Netpoll makes assumptions
      about the relationship between network device and NAPI that aren't correct
      on the second port, this will cause the port to never clear work.
      
      Most systems, just have single port, so not a big issue.
      The easy fix is just make the second port, not netpoll capable.
      Signed-off-by: NStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      0ca43235
    • S
      [PATCH] skge, sky2, et all. gplv2 only · 798b6b19
      Stephen Hemminger 提交于
      I don't want my code to downgraded to GPLv3 because of
      cut-n-pasted the comments. These files which I hold copyright
      on were started before it was clear what GPLv3 was going to be.
      Signed-off-by: NStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      798b6b19