13 Oct, 2009

1 commit


10 Oct, 2009

2 commits

  • A race shouldn't happen since all workqueues or handlers are canceled
    or flushed before the event buffer is freed. A warning is triggered
    now if the buffer is freed too early.

    Also, this patch adds some comments about event buffer protection,
    reworks some code and adds code to clear buffer_pos during alloc and
    free of the event buffer.

    Cc: David Rientjes
    Cc: Stephane Eranian
    Signed-off-by: Robert Richter

    Robert Richter
     
  • Looking at the 2.6.31-rc9 code, it appears there is a race condition
    in the event_buffer cleanup code path (shutdown). This could lead to
    kernel panic as some CPUs may be operating on the event buffer AFTER
    it has been freed. The attached patch solves the problem and makes
    sure CPUs check if the buffer is not NULL before they access it as
    some may have been spinning on the mutex while the buffer was being
    freed.

    The race may happen if the buffer is freed during pending reads. But
    it is not clear why there are races in add_event_entry() since all
    workqueues or handlers are canceled or flushed before the event buffer
    is freed.

    Signed-off-by: David Rientjes
    Signed-off-by: Stephane Eranian
    Signed-off-by: Robert Richter

    David Rientjes
     

09 Oct, 2009

7 commits

  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    pata_atp867x: add Power Management support
    pata_atp867x: PIO support fixes
    pata_atp867x: clarifications in timings calculations and cable detection
    pata_atp867x: fix it to not claim MWDMA support
    libata: fix incorrect link online check during probe
    ahci: filter FPDMA non-zero offset enable for Aspire 3810T
    libata: make gtf_filter per-dev
    libata: implement more acpi filtering options
    libata: cosmetic updates
    ahci: display all AHCI 1.3 HBA capability flags (v2)
    pata_ali: trivial fix of a very frequent spelling mistake
    ahci: disable 64bit DMA by default on SB600s

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, pci: Correct spelling in a comment
    x86: Simplify bound checks in the MTRR code
    x86: EDAC: carve out AMD MCE decoding logic
    initcalls: Add early_initcall() for modules
    x86: EDAC: MCE: Fix MCE decoding callback logic

    Linus Torvalds
     
  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (24 commits)
    drm/radeon/kms: fix vline register for second head.
    drm/r600: avoid assigning vb twice in blit code
    drm/radeon: use list_for_each_entry instead of list_for_each
    drm/radeon/kms: Fix AGP support for R600/RV770 family (v2)
    drm/radeon/kms: Fallback to non AGP when acceleration fails to initialize (v2)
    drm/radeon/kms: Fix RS600/RV515/R520/RS690 IRQ
    drm/radeon: Fix setting of bits
    drm/ttm: fix refcounting in ttm global code.
    drm/fb: add more correct 8/16/24/32 bpp fb support.
    drm/fb: add setcmap and fix 8-bit support.
    drm/radeon/kms: respect single crtc cards, only create one crtc. (v2)
    drm: Delete the DRM_DEBUG_KMS in drm_mode_cursor_ioctl
    drm/radeon/kms: add support for "Surround View"
    drm/radeon/kms: Fix irq handling on AVIVO hw
    drm/radeon/kms: R600/RV770 remove dead code and print message for wrong BIOS
    drm/radeon/kms: Fix R600/RV770 disable acceleration path
    drm/radeon/kms: Fix R600/RV770 startup path & reset
    drm/radeon/kms: Fix R600 write back buffer
    drm/radeon/kms: Remove old init path as no hw use it anymore
    drm/radeon/kms: Convert RS600 to new init path
    ...

    Linus Torvalds
     
  • …/git/tmlind/linux-omap-2.6

    * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
    omapfb: Blizzard: constify register address tables
    omapfb: Blizzard: fix pointer to be const
    omapfb: Condition mutex acquisition
    omap: iovmm: Add missing mutex_unlock
    omap: iovmm: Fix incorrect spelling
    omap: SRAM: flush the right address after memcpy in omap_sram_push
    omap: Lock DPLL5 at boot
    omap: Fix incorrect 730 vs 850 detection
    OMAP3: PM: introduce a new powerdomain walk helper
    OMAP3: PM: Enable GPIO module-level wakeups
    OMAP3: PM: USBHOST: clear wakeup events on both hosts
    OMAP3: PM: PRCM interrupt: only handle selected PRCM interrupts
    OMAP3: PM: PRCM interrupt: check MPUGRPSEL register
    OMAP3: PM: Prevent hang in prcm_interrupt_handler

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    amd64_edac: beef up DRAM error injection
    amd64_edac: fix DRAM base and limit extraction
    amd64_edac: fix chip select handling
    amd64_edac: simple fix to allow reporting of CECC errors
    amd64_edac: fix K8 intlv_sel check
    amd64_edac: fix interleave enable tests
    amd64_edac: fix DRAM base and limit address extraction
    amd64_edac: fix driver instance lookup table allocation

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (40 commits)
    ethoc: limit the number of buffers to 128
    ethoc: use system memory as buffer
    ethoc: align received packet to make IP header at word boundary
    ethoc: fix buffer address mapping
    ethoc: fix typo to compute number of tx descriptors
    au1000_eth: Duplicate test of RX_OVERLEN bit in update_rx_stats()
    netxen: Fix Unlikely(x) > y
    pasemi_mac: ethtool get settings fix
    add maintainer for network drop monitor kernel service
    tg3: Fix phylib locking strategy
    rndis_host: support ETHTOOL_GPERMADDR
    ipv4: arp_notify address list bug
    gigaset: add kerneldoc comments
    gigaset: correct debugging output selection
    gigaset: improve error recovery
    gigaset: fix device ERROR response handling
    gigaset: announce if built with debugging
    gigaset: handle isoc frame errors more gracefully
    gigaset: linearize skb
    gigaset: fix reject/hangup handling
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6:
    Revert "Revert "ide: try to use PIO Mode 0 during probe if possible""
    sis5513: fix PIO setup for ATAPI devices

    Linus Torvalds
     

08 Oct, 2009

12 commits


07 Oct, 2009

18 commits

  • When injecting DRAM ECC errors (F3xBC_x8), EccVector[15:0] is a bitmask
    of which bits should be error injected when written to and holds the
    payload of 16-bit DRAM word when read, respectively.

    Add /sysfs members to show the DRAM ECC section/word/vector.

    Fail wrong injection values entered over /sysfs instead of truncating
    them.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • On Fam10h and above, F1x[1, 0][7C:40] are DRAM Base/Limit registers
    which specify the destination node of a DRAM address. Those address
    boundaries are being extracted into ->dram_base[] and ->dram_limit[].
    Correct the extraction masks to match the respective address bits.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • Different processor families support a different number of chip selects.
    Handle this in a family-dependent way with the proper values assigned at
    init time (see amd64_set_dct_base_and_mask).

    Remove _DCSM_COUNT defines since they're used at one place and originate
    from public documentation.

    CC: Keith Mannthey
    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • This allows the errors to be further decoded and mapped to csrows.
    Tested with ECC debug dimms and an Rev F cpu based system.

    Signed-off-by: Keith Mannthey
    Signed-off-by: Borislav Petkov

    Keith Mannthey
     
  • The check when DRAM interleaving is enabled should be done against the
    pvt->dram_IntlvSel field and not against the ->dram_limit.

    Simplify first loop and fixup printk formatting while at it.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • The pvt->dram_IntlvEn saves the 3 "Interleave Enable" bits already
    right-shifted by 8 so the check in find_mc_by_sys_addr() by shifting the
    values to the left 8 bits is wrong.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • K8 DRAM base and limit addresses from F1x40 +8*i and F1x44 + 8*i, where
    i in (0..7) are both bits 39-24 and therefore the shifting should be
    done by 24 and not by 8.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • Allocate memory statically for 8-node machines max for simplicity
    instead of relying on MAX_NUMNODES which is 0 on !CONFIG_NUMA builds.

    Spotted by Jan Beulich.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • This reverts commit 24df31acaff8465d797f0006437b45ad0f2a5cb1.

    The root cause of reported system hangs was (now fixed) sis5513 bug
    and not "ide: try to use PIO Mode 0 during probe if possible" change
    (commit 6029336426a2b43e4bc6f4a84be8789a047d139e) so the revert was
    incorrect (it simply replaced one regression with the other one).

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: David S. Miller

    Bartlomiej Zolnierkiewicz
     
  • Clear prefetch setting before potentially (re-)enabling it in
    config_drive_art_rwp() so the transition of the device type on
    the port from ATA to ATAPI (i.e. during warm-plug operation)
    is handled correctly.

    This is a really old bug (it probably goes back to very early
    days of the driver) but it was only affecting warm-plug operation
    until the recent "ide: try to use PIO Mode 0 during probe if
    possible" change (commit 6029336426a2b43e4bc6f4a84be8789a047d139e).

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Tested-by: David Fries
    Signed-off-by: David S. Miller

    Bartlomiej Zolnierkiewicz
     
  • Only 128 buffer descriptors are supported in the core. Limit the
    number in case we have more memory.

    Signed-off-by: Thomas Chou
    Signed-off-by: David S. Miller

    Thomas Chou
     
  • This patch enabled the ethoc to allocate system memory as buffer
    when there is no dedicated buffer memory.

    Some hardware designs may not have dedicated buffer memory such as
    on chip or off chip SRAM. In this case, only one memory resource is
    supplied in the platform data instead of two. Then a DMA buffer can
    be allocated from system memory and used for the transfer.

    Signed-off-by: Thomas Chou
    Signed-off-by: David S. Miller

    Thomas Chou
     
  • The packet buffer is allocated at 4 bytes boundary, but the IP header
    length and version bits is located at byte 14. These bit fields access
    as 32 bits word and caused exception on processors that do not support
    unaligned access.

    The patch adds 2 bytes offset to make the bit fields word aligned.

    Signed-off-by: Thomas Chou
    Signed-off-by: David S. Miller

    Thomas Chou
     
  • The pointer address in buffer descriptors is physical address. The
    pointer that processor used to access packet is virtual address.

    Though the higher bits of pointer address used by the MAC may be
    truncated to zero in special case, it is not always true in larger
    designs.

    Signed-off-by: Thomas Chou
    Signed-off-by: David S. Miller

    Thomas Chou
     
  • It should be max() instead of min(). Use 1/4 of available
    descriptors for tx, and there should be at least 2 tx
    descriptors.

    Signed-off-by: Thomas Chou
    Signed-off-by: David S. Miller

    Thomas Chou
     
  • in update_rx_stats() the RX_OVERLEN bit is set twice, replace it by RX_RUNT.
    in au1000_rx() the RX_MISSED_FRAME bit was tested a few lines earlier already

    Signed-off-by: Roel Kluin
    Acked-by: Manuel Lauss
    Signed-off-by: David S. Miller

    roel kluin
     
  • The closing parenthesis was not on the right location.

    Signed-off-by: Roel Kluin
    Acked-by: Dhananjay Phadke
    Signed-off-by: David S. Miller

    Roel Kluin
     
  • Not all pasemi mac interfaces can have a phy attached.
    For example, XAUI has no phy and phydev is NULL for it.
    In this case ethtool get settings causes kernel crash.
    Fix it by returning -EOPNOTSUPP if there's no PHY attached.

    Signed-off-by: Valentine Barshak
    Acked-by: Olof Johansson
    Signed-off-by: David S. Miller

    Valentine Barshak