22 Sep, 2011

10 commits

  • Linus Torvalds
     
  • xz_dec_run() could incorrectly return XZ_BUF_ERROR if all of the
    following was true:

    - The caller knows how many bytes of output to expect and only provides
    that much output space.

    - When the last output bytes are decoded, the caller-provided input
    buffer ends right before the LZMA2 end of payload marker. So LZMA2
    won't provide more output anymore, but it won't know it yet and thus
    won't return XZ_STREAM_END yet.

    - A BCJ filter is in use and it hasn't left any unfiltered bytes in the
    temp buffer. This can happen with any BCJ filter, but in practice
    it's more likely with filters other than the x86 BCJ.

    This fixes where
    Squashfs thinks that a valid file system is corrupt.

    This also fixes a similar bug in single-call mode where the uncompressed
    size of a block using BCJ + LZMA2 was 0 bytes and caller provided no
    output space. Many empty .xz files don't contain any blocks and thus
    don't trigger this bug.

    This also tweaks a closely related detail: xz_dec_bcj_run() could call
    xz_dec_lzma2_run() to decode into temp buffer when it was known to be
    useless. This was harmless although it wasted a minuscule number of CPU
    cycles.

    Signed-off-by: Lasse Collin
    Cc: stable
    Signed-off-by: Linus Torvalds

    Lasse Collin
     
  • * git://github.com/davem330/net: (27 commits)
    xfrm: Perform a replay check after return from async codepaths
    fib:fix BUG_ON in fib_nl_newrule when add new fib rule
    ixgbe: fix possible null buffer error
    tg3: fix VLAN tagging regression
    net: pxa168: Fix build errors by including interrupt.h
    netconsole: switch init_netconsole() to late_initcall
    gianfar: Fix overflow check and return value for gfar_get_cls_all()
    ppp_generic: fix multilink fragment MTU calculation (again)
    GRETH: avoid overwrite IP-stack's IP-frags checksum
    GRETH: RX/TX bytes were never increased
    ipv6: fix a possible double free
    b43: Fix beacon problem in ad-hoc mode
    Bluetooth: add support for 2011 mac mini
    Bluetooth: Add MacBookAir4,1 support
    Bluetooth: Fixed BT ST Channel reg order
    r8169: do not enable the TBI for anything but the original 8169.
    r8169: remove erroneous processing of always set bit.
    r8169: fix WOL setting for 8105 and 8111evl
    r8169: add MODULE_FIRMWARE for the firmware of 8111evl
    r8169: fix the reset setting for 8111evl
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-block:
    floppy: use del_timer_sync() in init cleanup
    blk-cgroup: be able to remove the record of unplugged device
    block: Don't check QUEUE_FLAG_SAME_COMP in __blk_complete_request
    mm: Add comment explaining task state setting in bdi_forker_thread()
    mm: Cleanup clearing of BDI_pending bit in bdi_forker_thread()
    block: simplify force plug flush code a little bit
    block: change force plug flush call order
    block: Fix queue_flag update when rq_affinity goes from 2 to 1
    block: separate priority boosting from REQ_META
    block: remove READ_META and WRITE_META
    xen-blkback: fixed indentation and comments
    xen-blkback: Don't disconnect backend until state switched to XenbusStateClosed.

    Linus Torvalds
     
  • When a malformed loglevel value (for example "${abc}") is passed on the
    kernel cmdline, the loglevel itself is being set to 0.

    That then suppresses all following messages, including all the errors
    and crashes caused by other malformed cmdline options. This could make
    debugging process quite tricky.

    This patch leaves the previous value of loglevel if the new value is
    incorrect and reports an error code in this case.

    Signed-off-by: Alexander Sverdlin
    Signed-off-by: Linus Torvalds

    Alexander Sverdlin
     
  • This is modeled after the smaps code.

    It detects transparent hugepages and then does a single gather_stats()
    for the page as a whole. This has two benifits:
    1. It is more efficient since it does many pages in a single shot.
    2. It does not have to break down the huge page.

    Signed-off-by: Dave Hansen
    Acked-by: Hugh Dickins
    Acked-by: David Rientjes
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • gather_pte_stats() does a number of checks on a target page
    to see whether it should even be considered for statistics.
    This breaks that code out in to a separate function so that
    we can use it in the transparent hugepage case in the next
    patch.

    Signed-off-by: Dave Hansen
    Acked-by: Hugh Dickins
    Reviewed-by: Christoph Lameter
    Acked-by: David Rientjes
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • We need to teach the numa_maps code about transparent huge pages. The
    first step is to teach gather_stats() that the pte it is dealing with
    might represent more than one page.

    Note that will we use this in a moment for transparent huge pages since
    they have use a single pmd_t which _acts_ as a "surrogate" for a bunch
    of smaller pte_t's.

    I'm a _bit_ unhappy that this interface counts in hugetlbfs page sizes
    for hugetlbfs pages and PAGE_SIZE for normal pages. That means that to
    figure out how many _bytes_ "dirty=1" means, you must first know the
    hugetlbfs page size. That's easier said than done especially if you
    don't have visibility in to the mount.

    But, that's probably a discussion for another day especially since it
    would change behavior to fix it. But, just in case anyone wonders why
    this patch only passes a '1' in the hugetlb case...

    Signed-off-by: Dave Hansen
    Acked-by: Hugh Dickins
    Acked-by: David Rientjes
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • When asyncronous crypto algorithms are used, there might be many
    packets that passed the xfrm replay check, but the replay advance
    function is not called yet for these packets. So the replay check
    function would accept a replay of all of these packets. Also the
    system might crash if there are more packets in async processing
    than the size of the anti replay window, because the replay advance
    function would try to update the replay window beyond the bounds.

    This pach adds a second replay check after resuming from the async
    processing to fix these issues.

    Signed-off-by: Steffen Klassert
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Steffen Klassert
     
  • add new fib rule can cause BUG_ON happen
    the reproduce shell is
    ip rule add pref 38
    ip rule add pref 38
    ip rule add to 192.168.3.0/24 goto 38
    ip rule del pref 38
    ip rule add to 192.168.3.0/24 goto 38
    ip rule add pref 38

    then the BUG_ON will happen
    del BUG_ON and use (ctarget == NULL) identify whether this rule is unresolved

    Signed-off-by: Gao feng
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Gao feng
     

21 Sep, 2011

22 commits

  • When no floppy is found the module code can be released while a timer
    function is pending or about to be executed.

    CPU0 CPU1
    floppy_init()
    timer_softirq()
    spin_lock_irq(&base->lock);
    detach_timer();
    spin_unlock_irq(&base->lock);
    -> Interrupt
    del_timer();
    return -ENODEV;
    module_cleanup();

    Signed-off-by: Thomas Gleixner
    Cc: Jens Axboe
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Carsten Emde
     
  • The bug is we're not able to remove the device from blkio cgroup's
    per-device control files if it gets unplugged.

    To reproduce the bug:

    # mount -t cgroup -o blkio xxx /cgroup
    # cd /cgroup
    # echo "8:0 1000" > blkio.throttle.read_bps_device
    # unplug the device
    # cat blkio.throttle.read_bps_device
    8:0 1000
    # echo "8:0 0" > blkio.throttle.read_bps_device
    -bash: echo: write error: No such device

    After patching, the device removal will succeed.

    Thanks for the comments of Paul, Zefan, and Vivek.

    Signed-off-by: Wanlong Gao
    Cc: Li Zefan
    Cc: Paul Menage
    Acked-by: Vivek Goyal
    Cc: Jens Axboe
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Wanlong Gao
     
  • It seems that at least one PPC machine would occasionally give a (valid) 0 as
    the return value from dma_map, this caused the ixgbe code to not work
    correctly. A fix is pending in the PPC tree to not return 0 from dma map, but
    we can also fix the driver to make sure we don't mess up in other arches as
    well.

    This patch is applicable to all current stable kernels.

    Ref: https://bugzilla.redhat.com/show_bug.cgi?id=683611

    Reported-by: Neil Horman
    Signed-off-by: Jesse Brandeburg
    CC: Alexander Duyck
    CC: stable@kernel.org
    Tested-by: Thadeu Lima de Souza Cascardo
    Tested-by: Phil Schmitt
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jesse Brandeburg
     
  • commit 92cd3a17ce9c719abb4c28dee3438e0c641f8de4
    tg3: Simplify tx bd assignments

    broke VLAN tagging on outbound packets.
    It ifdef'ed BCM_KERNEL_SUPPORTS_8021Q, but this
    is not set anywhere. So vlan never gets set, and
    all packets are sent with vlan=0.

    v2: We can just remove the test. vlan_tx_tag_present
    is valid regardless of whether the 802.1q module
    is built.

    Tested on BCM5721 rev 11.

    Signed-off-by: Kasper Pedersen
    Signed-off-by: David S. Miller

    Kasper Pedersen
     
  • * 'fixes' of git://git.linaro.org/people/arnd/arm-soc:
    mach-integrator: fix VGA base regression
    arm/dt: Tegra: Update SDHCI nodes to match bindings
    ARM: EXYNOS4: fix incorrect pad configuration for keypad row lines
    ARM: SAMSUNG: fix to prevent declaring duplicated
    ARM: SAMSUNG: fix watchdog reset issue with clk_get()
    ARM: S3C64XX: Remove un-used code backlight code on SMDK6410
    ARM: EXYNOS4: restart clocksource while system resumes
    ARM: EXYNOS4: Fix routing timer interrupt to offline CPU
    ARM: EXYNOS4: Fix return type of local_timer_setup()
    ARM: EXYNOS4: Fix wrong pll type for vpll
    ARM: Dove: fix second SPI initialization call

    Linus Torvalds
     
  • * 'for-linus' of git://github.com/chrismason/linux:
    Btrfs: reserve sufficient space for ioctl clone

    Linus Torvalds
     
  • After commit c5f5c4db3938 ("staging: zcache: fix crash on high memory
    swap") cleancache crashes on the first successful get. This was caused
    by a remaining virt_to_page() call in zcache_pampd_get_data_and_free()
    that only gets run in the cleancache path.

    The patch converts the virt_to_page() to struct page casting like was
    done for other instances in c5f5c4db3938.

    Signed-off-by: Seth Jennings
    Tested-By: Valdis Kletnieks
    Acked-by: Dan Magenheimer
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Linus Torvalds

    Seth Jennings
     
  • The changes introduced in commit
    cc22b4c18540e5e8bf55c7d124044f9317527d3c
    "ARM: set vga memory base at run-time"

    Makes the Integrator/AP freeze completely. I appears that
    this is due to the VGA base address being assigned at PCI
    init time, while this base is needed earlier than that.
    Moving the initialization of the base address to the
    .map_io function solves this problem.

    Cc: Rob Herring
    Cc: Nicolas Pitre
    Cc: Arnd Bergmann
    Signed-off-by: Linus Walleij
    Acked-by: Rob Herring
    Signed-off-by: Arnd Bergmann

    Linus Walleij
     
  • The bindings were recently updated to have separate properties for each
    type of GPIO. Update the Device Tree source to match that.

    Signed-off-by: Stephen Warren
    Acked-by: Olof Johansson
    Signed-off-by: Arnd Bergmann

    Stephen Warren
     
  • Commit a6b7a407865aab9f849dd99a71072b7cd1175116 removed
    linux/interrupt.h from netdevice.h. This fixes below build failure

    drivers/net/pxa168_eth.c: In function 'pxa168_eth_collect_events':
    drivers/net/pxa168_eth.c:866: error: 'IRQ_NONE' undeclared (first use in this function)
    drivers/net/pxa168_eth.c:866: error: (Each undeclared identifier is reported only once
    drivers/net/pxa168_eth.c:866: error: for each function it appears in.)
    drivers/net/pxa168_eth.c: At top level:
    drivers/net/pxa168_eth.c:913: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'pxa168_eth_int_handler'
    drivers/net/pxa168_eth.c: In function 'pxa168_eth_open':
    drivers/net/pxa168_eth.c:1133: error: implicit declaration of function 'request_irq'
    drivers/net/pxa168_eth.c:1133: error: 'pxa168_eth_int_handler' undeclared (first use in this function)
    drivers/net/pxa168_eth.c:1134: error: 'IRQF_DISABLED' undeclared (first use in this function)
    drivers/net/pxa168_eth.c:1160: error: implicit declaration of function 'free_irq'

    Signed-off-by: Tanmay Upadhyay
    Signed-off-by: David S. Miller

    Tanmay Upadhyay
     
  • Commit 88491d8(drivers/net: Kconfig & Makefile cleanup) causes a
    regression that netconsole does not work if netconsole and network
    device driver are build into kernel, because netconsole is linked
    before network device driver.

    Andrew Morton suggested to fix this with initcall ordering.
    Fixes it by switching init_netconsole() to late_initcall.

    Signed-off-by: Lin Ming
    Signed-off-by: David S. Miller

    Lin Ming
     
  • This function may currently fill one entry beyond the end of the
    array it is given. It also doesn't return an error code in case
    it does detect overflow.

    Signed-off-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • When using MLPPP, the maximum size of a fragment is incorrectly
    calculated with an offset of -2.
    This patch reverses the changes in the patch found here:
    http://marc.info/?l=linux-netdev&m=123541324010539&w=2

    The value of hdrlen includes the size of both the 2-byte PPP protocol
    field and the 2- or 4-byte multilink header (2+4=6 for long sequence
    numbers, 2+2=4 for short sequence numbers). Section 2 of RFC1661 says
    that the MRU that is negotiated (i.e., the MTU of the sending system)
    includes only the PPP payload but not the protocol field, thus the
    correct MTU should be the link's MTU minus the multilink header (mtu -
    (hdrlen-2)).

    The incorrect calculation causes Linux to fragment packets to a size two
    bytes smaller than the allowed MTU. While not technically illegal, this
    behaviour confounds MRU-tuning to avoid PPP-layer fragmentation.

    Signed-off-by: Henry Wong
    Signed-off-by: David S. Miller

    Henry Wong
     
  • The GRETH GBIT core does not do checksum offloading for IP
    segmentation. This patch adds a check in the xmit function to
    determine if the stack has calculated the checksum for us.

    Signed-off-by: Daniel Hellstrom
    Signed-off-by: David S. Miller

    Daniel Hellstrom
     
  • Signed-off-by: Daniel Hellstrom
    Signed-off-by: David S. Miller

    Daniel Hellstrom
     
  • When calling snmp6_alloc_dev fails, the snmp6 relevant memory
    are freed by snmp6_alloc_dev. Calling in6_dev_finish_destroy
    will free these memory twice.

    Double free will lead that undefined behavior occurs.

    Signed-off-by: Roy Li
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Roy Li
     
  • Chris Mason
     
  • Fix a crash/BUG_ON in the clone ioctl due to insufficient reservation. We
    need to reserve space for:

    - adjusting the old extent (possibly splitting it)
    - adding the new extent
    - updating the inode

    Signed-off-by: Sage Weil
    Signed-off-by: Chris Mason

    Sage Weil
     
  • David S. Miller
     
  • * git://git.samba.org/sfrench/cifs-2.6:
    cifs: Fix broken sec=ntlmv2/i sec option (try #2)
    Fix the conflict between rwpidforward and rw mount options
    CIFS: Fix ERR_PTR dereference in cifs_get_root
    cifs: fix possible memory corruption in CIFSFindNext

    Linus Torvalds
     
  • * git://www.linux-watchdog.org/linux-watchdog:
    watchdog: Initconst section fixes for watchdog
    watchdog: lantiq: fix watchdogs timeout handling
    watchdog: hpwdt: prevent multiple "NMI occurred" messages
    watchdog: WatchDog Timer Driver Core - use passed watchdog_device

    Linus Torvalds
     
  • * 'for-linus' of git://github.com/tiwai/sound:
    ALSA: HDA: Add support for IDT 92HD93
    ALSA: hda/realtek - Fix auto-mute with HP+LO configuration

    Linus Torvalds
     

20 Sep, 2011

8 commits