05 May, 2012

3 commits

  • The calling conventions for __d_lookup_rcu() and dentry_cmp() are
    annoying in different ways, and there is actually one single underlying
    reason for both of the annoyances.

    The fundamental reason is that we do the returned dentry sequence number
    check inside __d_lookup_rcu() instead of doing it in the caller. This
    results in two annoyances:

    - __d_lookup_rcu() now not only needs to return the dentry and the
    sequence number that goes along with the lookup, it also needs to
    return the inode pointer that was validated by that sequence number
    check.

    - and because we did the sequence number check early (to validate the
    name pointer and length) we also couldn't just pass the dentry itself
    to dentry_cmp(), we had to pass the counted string that contained the
    name.

    So that sequence number decision caused two separate ugly calling
    conventions.

    Both of these problems would be solved if we just did the sequence
    number check in the caller instead. There's only one caller, and that
    caller already has to do the sequence number check for the parent
    anyway, so just do that.

    That allows us to stop returning the dentry->d_inode in that in-out
    argument (pointer-to-pointer-to-inode), so we can make the inode
    argument just a regular input inode pointer. The caller can just load
    the inode from dentry->d_inode, and then do the sequence number check
    after that to make sure that it's synchronized with the name we looked
    up.

    And it allows us to just pass in the dentry to dentry_cmp(), which is
    what all the callers really wanted. Sure, dentry_cmp() has to be a bit
    careful about the dentry (which is not stable during RCU lookup), but
    that's actually very simple.

    And now that dentry_cmp() can clearly see that the first string argument
    is a dentry, we can use the direct word access for that, instead of the
    careful unaligned zero-padding. The dentry name is always properly
    aligned, since it is a single path component that is either embedded
    into the dentry itself, or was allocated with kmalloc() (see __d_alloc).

    Finally, this also uninlines the nasty slow-case for dentry comparisons:
    that one *does* need to do a sequence number check, since it will call
    in to the low-level filesystems, and we want to give those a stable
    inode pointer and path component length/start arguments. Doing an extra
    sequence check for that slow case is not a problem, though.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The normal read_seqcount_begin() function will wait for any current
    writers to exit their critical region by looping until the sequence
    count is even.

    That "wait for sequence count to stabilize" is the right thing to do if
    the read-locker will just retry the whole operation on contention: no
    point in doing a potentially expensive reader sequence if we know at the
    beginning that we'll just end up re-doing it all.

    HOWEVER. Some users don't actually retry the operation, but instead
    will abort and do the operation with proper locking. So the sequence
    count case may be the optimistic quick case, but in the presense of
    writers you may want to do full locking in order to guarantee forward
    progress. The prime example of this would be the RCU name lookup.

    And in that case, you may well be better off without the "retry early",
    and are in a rush to instead get to the failure handling. Thus this
    "raw" interface that just returns the sequence number without testing it
    - it just forces the low bit to zero so that read_seqcount_retry() will
    always fail such a "active concurrent writer" scenario.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • We really need to use a ACCESS_ONCE() on the sequence value read in
    __read_seqcount_begin(), because otherwise the compiler might end up
    reloading the value in between the test and the return of it. As a
    result, it might end up returning an odd value (which means that a write
    is in progress).

    If the reader is then fast enough that that odd value is still the
    current one when the read_seqcount_retry() is done, we might end up with
    a "successful" read sequence, even despite the concurrent write being
    active.

    In practice this probably never really happens - there just isn't
    anything else going on around the read of the sequence count, and the
    common case is that we end up having a read barrier immediately
    afterwards.

    So the code sequence in which gcc might decide to reaload from memory is
    small, and there's no reason to believe it would ever actually do the
    reload. But if the compiler ever were to decide to do so, it would be
    incredibly annoying to debug. Let's just make sure.

    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

04 May, 2012

1 commit

  • Pull networking fixes from David Miller:

    1) Transfer padding was wrong for full-speed USB in ASIX driver, fix
    from Ingo van Lil.

    2) Propagate the negative packet offset fix into the PowerPC BPF JIT.
    From Jan Seiffert.

    3) dl2k driver's private ioctls were letting unprivileged tasks make
    MII writes and other ugly bits like that. Fix from Jeff Mahoney.

    4) Fix TX VLAN and RX packet drops in ucc_geth, from Joakim Tjernlund.

    5) OOPS and network namespace fixes in IPVS from Hans Schillstrom and
    Julian Anastasov.

    6) Fix races and sleeping in locked context bugs in drop_monitor, from
    Neil Horman.

    7) Fix link status indication in smsc95xx driver, from Paolo Pisati.

    8) Fix bridge netfilter OOPS, from Peter Huang.

    9) L2TP sendmsg can return on error conditions with the socket lock
    held, oops. Fix from Sasha Levin.

    10) udp_diag should return meaningful values for socket memory usage,
    from Shan Wei.

    11) Eric Dumazet is so awesome he gets his own section:

    Socket memory cgroup code (I never should have applied those
    patches, grumble...) made erroneous changes to
    sk_sockets_allocated_read_positive(). It was changed to
    use percpu_counter_sum_positive (which requires BH disabling)
    instead of percpu_counter_read_positive (which does not).
    Revert back to avoid crashes and lockdep warnings.

    Adjust the default tcp_adv_win_scale and tcp_rmem[2] values
    to fix throughput regressions. This is necessary as a result
    of our more precise skb->truesize tracking.

    Fix SKB leak in netem packet scheduler.

    12) New device IDs for various bluetooth devices, from Manoj Iyer,
    AceLan Kao, and Steven Harms.

    13) Fix command completion race in ipw2200, from Stanislav Yakovlev.

    14) Fix rtlwifi oops on unload, from Larry Finger.

    15) Fix hard_mtu when adjusting hard_header_len in smsc95xx driver.
    From Stephane Fillod.

    16) ehea driver registers it's IRQ before all the necessary state is
    setup, resulting in crashes. Fix from Thadeu Lima de Souza
    Cascardo.

    17) Fix PHY connection failures in davinci_emac driver, from Anatolij
    Gustschin.

    18) Missing break; in switch statement in bluetooth's
    hci_cmd_complete_evt(). Fix from Szymon Janc.

    19) Fix queue programming in iwlwifi, from Johannes Berg.

    20) Interrupt throttling defaults not being actually programmed into the
    hardware, fix from Jeff Kirsher and Ying Cai.

    21) TLAN driver SKB encoding in descriptor busted on 64-bit, fix from
    Benjamin Poirier.

    22) Fix blind status block RX producer pointer deref in TG3 driver, from
    Matt Carlson.

    23) Promisc and multicast are busted on ehea, fixes from Thadeu Lima de
    Souza Cascardo.

    24) Fix crashes in 6lowpan, from Alexander Smirnov.

    25) tcp_complete_cwr() needs to be careful to not rewind the CWND to
    ssthresh if ssthresh has the "infinite" value. Fix from Yuchung
    Cheng.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (81 commits)
    sungem: Fix WakeOnLan
    tcp: change tcp_adv_win_scale and tcp_rmem[2]
    net: l2tp: unlock socket lock before returning from l2tp_ip_sendmsg
    drop_monitor: prevent init path from scheduling on the wrong cpu
    usbnet: fix failure handling in usbnet_probe
    usbnet: fix leak of transfer buffer of dev->interrupt
    ucc_geth: Add 16 bytes to max TX frame for VLANs
    net: ucc_geth, increase no. of HW RX descriptors
    netem: fix possible skb leak
    sky2: fix receive length error in mixed non-VLAN/VLAN traffic
    sky2: propogate rx hash when packet is copied
    net: fix two typos in skbuff.h
    cxgb3: Don't call cxgb_vlan_mode until q locks are initialized
    ixgbe: fix calling skb_put on nonlinear skb assertion bug
    ixgbe: Fix a memory leak in IEEE DCB
    igbvf: fix the bug when initializing the igbvf
    smsc75xx: enable mac to detect speed/duplex from phy
    smsc75xx: declare smsc75xx's MII as GMII capable
    smsc75xx: fix phy interrupt acknowledge
    smsc75xx: fix phy init reset loop
    ...

    Linus Torvalds
     

01 May, 2012

3 commits

  • fix kernel doc typos in function names

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

    Eric Dumazet
     
  • Pull SCSI fixes from James Bottomley:
    "This is a set of SAS and SATA fixes; there are one or two longstanding
    bug fixes, but most of this is regression fixes."

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    [SCSI] libfc: update mfs boundry checking
    [SCSI] Revert "[SCSI] libsas: fix sas port naming"
    [SCSI] libsas: fix false positive 'device attached' conditions
    [SCSI] libsas, libata: fix start of life for a sas ata_port
    [SCSI] libsas: fix ata_eh clobbering ex_phys via smp_ata_check_ready
    [SCSI] libsas: unify domain_device sas_rphy lifetimes
    [SCSI] libsas: fix sas_get_port_device regression
    [SCSI] libsas: fix sas_find_bcast_phy() in the presence of 'vacant' phys
    [SCSI] libsas: introduce sas_work to fix sas_drain_work vs sas_queue_work
    [SCSI] libata: Pass correct DMA device to scsi host
    [SCSI] scsi_lib: use correct DMA device in __scsi_alloc_queue

    Linus Torvalds
     
  • More recent versions of the UEFI spec have added new attributes for
    variables. Add them.

    Signed-off-by: Matthew Garrett
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Matthew Garrett
     

30 Apr, 2012

2 commits

  • The actual internal pipe implementation is already really about
    individual packets (called "pipe buffers"), and this simply exposes that
    as a special packetized mode.

    When we are in the packetized mode (marked by O_DIRECT as suggested by
    Alan Cox), a write() on a pipe will not merge the new data with previous
    writes, so each write will get a pipe buffer of its own. The pipe
    buffer is then marked with the PIPE_BUF_FLAG_PACKET flag, which in turn
    will tell the reader side to break the read at that boundary (and throw
    away any partial packet contents that do not fit in the read buffer).

    End result: as long as you do writes less than PIPE_BUF in size (so that
    the pipe doesn't have to split them up), you can now treat the pipe as a
    packet interface, where each read() system call will read one packet at
    a time. You can just use a sufficiently big read buffer (PIPE_BUF is
    sufficient, since bigger than that doesn't guarantee atomicity anyway),
    and the return value of the read() will naturally give you the size of
    the packet.

    NOTE! We do not support zero-sized packets, and zero-sized reads and
    writes to a pipe continue to be no-ops. Also note that big packets will
    currently be split at write time, but that the size at which that
    happens is not really specified (except that it's bigger than PIPE_BUF).
    Currently that limit is the system page size, but we might want to
    explicitly support bigger packets some day.

    The main user for this is going to be the autofs packet interface,
    allowing us to stop having to care so deeply about exact packet sizes
    (which have had bugs with 32/64-bit compatibility modes). But user
    space can create packetized pipes with "pipe2(fd, O_DIRECT)", which will
    fail with an EINVAL on kernels that do not support this interface.

    Tested-by: Michael Tokarev
    Cc: Alan Cox
    Cc: David Miller
    Cc: Ian Kent
    Cc: Thomas Meyer
    Cc: stable@kernel.org # needed for systemd/autofs interaction fix
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull USB fixes from Greg Kroah-Hartman:
    "Here are a number of small USB fixes for 3.4-rc5.

    Nothing major, as before, some USB gadget fixes. There's a crash fix
    for a number of ASUS laptops on resume that had been reported by a
    number of different people. We think the fix might also pertain to
    other machines, as this was a BIOS bug, and they seem to travel to
    different models and manufacturers quite easily. Other than that,
    some other reported problems fixed as well."

    * tag 'usb-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: gadget: udc-core: fix incompatibility with dummy-hcd
    usb: gadget: udc-core: fix wrong call order
    USB: cdc-wdm: fix race leading leading to memory corruption
    USB: EHCI: fix crash during suspend on ASUS computers
    usb gadget: uvc: uvc_request_data::length field must be signed
    usb: gadget: dummy: do not call pullup() on udc_stop()
    usb: musb: davinci.c: add missing unregister
    usb: musb: drop __deprecated flag
    USB: gadget: storage gadgets send wrong error code for unknown commands
    usb: otg: gpio_vbus: Add otg transceiver events and notifiers

    Linus Torvalds
     

29 Apr, 2012

1 commit

  • Pull ARM SoC fixes from Olof Johansson:
    "Nothing controversial, just another batch of fixes:

    - Samsung/exynos fixes for more merge window fallout: build errors
    and warnings mostly, but also some clock/device setup issues on
    exynos4/5
    - PXA bug and warning fixes related to gpio and pinmux
    - IRQ domain conversion bugfixes for U300 and MSM
    - A regulator setup fix for U300"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: PXA2xx: MFP: fix potential direction bug
    ARM: PXA2xx: MFP: fix bug with MFP_LPM_KEEP_OUTPUT
    arm/sa1100: fix sa1100-rtc memory resource
    ARM: pxa: fix gpio wakeup setting
    ARM: SAMSUNG: add missing MMC_CAP2_BROKEN_VOLTAGE capability
    ARM: EXYNOS: Fix compilation error when CONFIG_OF is not defined
    ARM: EXYNOS: Fix resource on dev-dwmci.c
    ARM: S3C24XX: Fix build warning for S3C2410_PM
    ARM: mini2440_defconfig: Fix build error
    ARM: msm: Fix gic irqdomain support
    ARM: EXYNOS: Fix incorrect initialization of GIC
    ARM: EXYNOS: use 'exynos4-sdhci' as device name for sdhci controllers
    ARM: u300: bump all IRQ numbers by one
    ARM: ux300: Fix unimplementable regulation constraints

    Linus Torvalds
     

28 Apr, 2012

2 commits

  • Pull misc SPI device driver bug fixes from Grant Likely.

    * tag 'spi-for-linus' of git://git.secretlab.ca/git/linux-2.6:
    spi/spi-bfin5xx: Fix flush of last bit after each spi transfer
    spi/spi-bfin5xx: fix reversed if condition in interrupt mode
    spi/spi_bfin_sport: drop bits_per_word from client data
    spi/bfin_spi: drop bits_per_word from client data
    spi/spi-bfin-sport: move word length setup to transfer handler
    spi/bfin5xx: rename config macro name for bfin5xx spi controller driver
    spi/pl022: Allow request for higher frequency than maximum possible
    spi/bcm63xx: set master driver mode_bits.
    spi/bcm63xx: don't use the stopping state
    spi/bcm63xx: convert to the pump message infrastructure
    spi/spi-ep93xx.c: use dma_transfer_direction instead of dma_data_direction
    spi: fix spi.h kernel-doc warning
    spi/pl022: Fix calculate_effective_freq()
    spi/pl022: Fix range checking for bits per word

    Linus Torvalds
     
  • Fix kernel-doc warning in spi.h (copy/paste):

    Warning(include/linux/spi/spi.h:365): No description found for parameter 'unprepare_transfer_hardware'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Grant Likely

    Randy Dunlap
     

27 Apr, 2012

2 commits

  • In 3.3, gpio wakeup setting was broken. The call
    enable_irq_wake() didn't set up the PXA gpio registers
    (PWER, ...) anymore.

    Fix it at least for pxa27x. The driver doesn't seem to be
    used in pxa25x (weird ...), and the fix doesn't extend to
    pxa3xx and pxa95x (which don't have a gpio_set_wake()
    available).

    Signed-off-by: Robert Jarzmik
    Signed-off-by: Haojian Zhuang

    Robert Jarzmik
     
  • Merge fixes from Andrew Morton:
    "13 fixes. The acerhdf patches aren't (really) fixes. But they've
    been stuck in my tree for up to two years, sent to Matthew multiple
    times and the developers are unhappy."

    * emailed from Andrew Morton : (13 patches)
    mm: fix NULL ptr dereference in move_pages
    mm: fix NULL ptr dereference in migrate_pages
    revert "proc: clear_refs: do not clear reserved pages"
    drivers/rtc/rtc-ds1307.c: fix BUG shown with lock debugging enabled
    arch/arm/mach-ux500/mbox-db5500.c: world-writable sysfs fifo file
    hugetlbfs: lockdep annotate root inode properly
    acerhdf: lowered default temp fanon/fanoff values
    acerhdf: add support for new hardware
    acerhdf: add support for Aspire 1410 BIOS v1.3314
    fs/buffer.c: remove BUG() in possible but rare condition
    mm: fix up the vmscan stat in vmstat
    epoll: clear the tfile_check_list on -ELOOP
    mm/hugetlb: fix warning in alloc_huge_page/dequeue_huge_page_vma

    Linus Torvalds
     

26 Apr, 2012

2 commits

  • Pull NFS client bugfixes from Trond Myklebust:
    - Fix NFSv4 infinite loops on open(O_TRUNC)
    - Fix an Oops and an infinite loop in the NFSv4 flock code
    - Don't register the PipeFS filesystem until it has been set up
    - Fix an Oops in nfs_try_to_update_request
    - Don't reuse NFSv4 open owners: fixes a bad sequence id storm.

    * tag 'nfs-for-3.4-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFSv4: Keep dropped state owners on the LRU list for a while
    NFSv4: Ensure that we don't drop a state owner more than once
    NFSv4: Ensure we do not reuse open owner names
    nfs: Enclose hostname in brackets when needed in nfs_do_root_mount
    NFS: put open context on error in nfs_flush_multi
    NFS: put open context on error in nfs_pagein_multi
    NFSv4: Fix open(O_TRUNC) and ftruncate() error handling
    NFSv4: Ensure that we check lock exclusive/shared type against open modes
    NFSv4: Ensure that the LOCK code sets exception->inode
    NFS: check for req==NULL in nfs_try_to_update_request cleanup
    SUNRPC: register PipeFS file system after pernet sybsystem

    Linus Torvalds
     
  • The "pgsteal" stat is confusing because it counts both direct reclaim as
    well as background reclaim. However, we have "kswapd_steal" which also
    counts background reclaim value.

    This patch fixes it and also makes it match the existng "pgscan_" stats.

    Test:
    pgsteal_kswapd_dma32 447623
    pgsteal_kswapd_normal 42272677
    pgsteal_kswapd_movable 0
    pgsteal_direct_dma32 2801
    pgsteal_direct_normal 44353270
    pgsteal_direct_movable 0

    Signed-off-by: Ying Han
    Reviewed-by: Rik van Riel
    Acked-by: Christoph Lameter
    Cc: Johannes Weiner
    Cc: Michal Hocko
    Cc: Mel Gorman
    Acked-by: KAMEZAWA Hiroyuki
    Cc: Hillf Danton
    Cc: Hugh Dickins
    Cc: Dan Magenheimer
    Reviewed-by: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ying Han
     

25 Apr, 2012

1 commit

  • This patch (as1545) fixes a problem affecting several ASUS computers:
    The machine crashes or corrupts memory when going into suspend if the
    ehci-hcd driver is bound to any controllers. Users have been forced
    to unbind or unload ehci-hcd before putting their systems to sleep.

    After extensive testing, it was determined that the machines don't
    like going into suspend when any EHCI controllers are in the PCI D3
    power state. Presumably this is a firmware bug, but there's nothing
    we can do about it except to avoid putting the controllers in D3
    during system sleep.

    The patch adds a new flag to indicate whether the problem is present,
    and avoids changing the controller's power state if the flag is set.
    Runtime suspend is unaffected; this matters only for system suspend.
    However as a side effect, the controller will not respond to remote
    wakeup requests while the system is asleep. Hence USB wakeup is not
    functional -- but of course, this is already true in the current state
    of affairs.

    This fixes Bugzilla #42728.

    Signed-off-by: Alan Stern
    Tested-by: Steven Rostedt
    Tested-by: Andrey Rahmatullin
    Tested-by: Oleksij Rempel (fishor)
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

24 Apr, 2012

2 commits

  • Pull HSI fixes and ABI documentation from Carlos Chinea

    * tag 'hsi_fixes_for_3.4' of git://gitorious.org/kernel-hsi/kernel-hsi:
    HSI: Add HSI ABI documentation
    HSI: hsi_char: Remove max_data_size from sysfs
    HSI: hsi: Rework hsi_event interface
    HSI: hsi: Remove controllers and ports from the bus
    HSI: hsi: Fix error path cleanup on client registration
    HSI: hsi: Rework hsi_controller release

    Linus Torvalds
     
  • bridge: set fake_rtable's dst to NULL to avoid kernel Oops

    when bridge is deleted before tap/vif device's delete, kernel may
    encounter an oops because of NULL reference to fake_rtable's dst.
    Set fake_rtable's dst to NULL before sending packets out can solve
    this problem.

    v4 reformat, change br_drop_fake_rtable(skb) to {}

    v3 enrich commit header

    v2 introducing new flag DST_FAKE_RTABLE to dst_entry struct.

    [ Use "do { } while (0)" for nop br_drop_fake_rtable()
    implementation -DaveM ]

    Acked-by: Eric Dumazet
    Signed-off-by: Peter Huang
    Signed-off-by: David S. Miller

    Peter Huang (Peng)
     

23 Apr, 2012

6 commits

  • Remove custom hack and make use of the notifier chain interfaces for
    delivering events from the ports to their associated clients.
    Clients that want to receive port events need to register their callbacks
    using hsi_register_port_event(). The callbacks can be called in interrupt
    context. Use hsi_unregestier_port_event() to undo the registration.

    Signed-off-by: Carlos Chinea
    Acked-by: Greg Kroah-Hartman
    Acked-by: Linus Walleij

    Carlos Chinea
     
  • Use the proper release mechanism for hsi_controller and
    hsi_ports structures. Free the structures through their
    associated device release callbacks.

    Signed-off-by: Carlos Chinea
    Acked-by: Greg Kroah-Hartman
    Acked-by: Linus Walleij

    Carlos Chinea
     
  • This changes the ordering of initialization and probing events from:
    1/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
    2/ allocate ata_port and schedule port probe in DISCE_PROBE
    ...to:
    1/ allocate ata_port in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
    2/ allocate rphy in PORTE_BYTES_DMAED, DISCE_REVALIDATE_DOMAIN
    3/ schedule port probe in DISCE_PROBE

    This ordering prevents PHYE_SIGNAL_LOSS_EVENTS from sneaking in to
    destrory ata devices before they have been fully initialized:

    BUG: unable to handle kernel paging request at 0000000000003b10
    IP: [] sas_ata_end_eh+0x12/0x5e [libsas]
    ...
    [] sas_unregister_common_dev+0x78/0xc9 [libsas]
    [] sas_unregister_dev+0x4f/0xad [libsas]
    [] sas_unregister_domain_devices+0x7f/0xbf [libsas]
    [] sas_deform_port+0x61/0x1b8 [libsas]
    [] sas_phye_loss_of_signal+0x29/0x2b [libsas]

    ...and kills the awkward "sata domain_device briefly existing in the
    domain without an ata_port" state.

    Reported-by: Michal Kosciowski
    Signed-off-by: Dan Williams
    Acked-by: Jeff Garzik
    Signed-off-by: James Bottomley

    Dan Williams
     
  • Pull powerpc fixes from Benjamin Herrenschmidt:
    "Here are a few fixes for powerpc. Note the addition to the generic
    irq.h. This is part of a 3-patches regression fix for mpic due to
    changes in how IRQ_TYPE_NONE is being handled. Thomas agreed to the
    addition of the new IRQ_TYPE_DEFAULT contant, however he hasn't
    replied with an Ack to the actual patch yet. I don't to wait much
    longer with these patches tho."

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc/mpic: Properly set default triggers
    irq: Add IRQ_TYPE_DEFAULT for use by PIC drivers
    powerpc/mpic: Fix confusion between hw_irq and virq
    powerpc/pmac: Don't add_timer() twice
    powerpc/eeh: Fix crash caused by null eeh_dev
    powerpc/mpc85xx: add MPIC message dts node
    powerpc/mpic_msgr: fix offset error when setting mer register
    powerpc/mpic_msgr: add lock for MPIC message global variable
    powerpc/mpic_msgr: fix compile error when SMP disabled
    powerpc: fix build when CONFIG_BOOKE_WDT is enabled
    powerpc/85xx: don't call of_platform_bus_probe() twice

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix namespace init and cleanup in phonet to fix some oopses, from
    Eric W. Biederman.

    2) Missing kfree_skb() in AF_KEY, from Julia Lawall.

    3) Refcount leak and source address handling fix in l2tp from James
    Chapman.

    4) Memory leak fix in CAIF from Tomasz Gregorek.

    5) When routes are cloned from ipv6 addrconf routes, we don't process
    expirations properly. Fix from Gao Feng.

    6) Fix panic on DMA errors in atl1 driver, from Tony Zelenoff.

    7) Only enable interrupts in 8139cp driver after we've registered the
    IRQ handler. From Jason Wang.

    8) Fix too many reads of KS_CIDER register in ks8851 during probe,
    fixing crashes on spurious interrupts. From Matt Renzelmann.

    9) Missing include in ath5k driver and missing iounmap on probe
    failure, from Jonathan Bither.

    10) Fix RX packet handling in smsc911x driver, from Will Deacon.

    11) Fix ixgbe WoL on fiber by leaving the laser on during shutdown.

    12) ks8851 needs MAX_RECV_FRAMES increased otherwise the internal MAC
    buffers are easily overflown. Fix from Davide Cimingahi.

    13) Fix memory leaks in peak_usb CAN driver, from Jesper Juhl.

    14) gred packet scheduler can dump in WRED more when doing a netlink
    dump. Fix from David Ward.

    15) Fix MTU in USB smsc75xx driver, from Stephane Fillod.

    16) Dummy device needs ->ndo_uninit handler to properly handle
    ->ndo_init failures. From Hiroaki SHIMODA.

    17) Fix TX fragmentation in ath9k driver, from Sujith Manoharan.

    18) Missing RTNL lock in ixgbe PM resume, from Benjamin Poirier.

    19) Missing iounmap in farsync WAN driver, from Julia Lawall.

    20) With LRO/GRO, tcp_grow_window() is easily tricked into not growing
    the receive window properly, and this hurts performance. Fix from
    Eric Dumazet.

    21) Network namespace init failure can leak net_generic data, fix from
    Julian Anastasov.

    22) Fix skb_over_panic due to mis-accounting in TCP for partially ACK'd
    SKBs. From Eric Dumazet.

    23) New IDs for qmi_wwan driver, from Bjørn Mork.

    24) Fix races in ax25_exit(), from Eric W. Biederman.

    25) IPV6 TCP doesn't handle TCP_MAXSEG socket option properly, copy over
    logic from the IPV4 side. From Neal Cardwell.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (59 commits)
    tcp: fix TCP_MAXSEG for established IPv6 passive sockets
    drivers/net: Do not free an IRQ if its request failed
    drop_monitor: allow more events per second
    ks8851: Fix request_irq/free_irq mismatch
    net/hyperv: Adding cancellation to ensure rndis filter is closed
    ks8851: Fix mutex deadlock in ks8851_net_stop()
    net ax25: Reorder ax25_exit to remove races.
    icplus: fix interrupt for IC+ 101A/G and 1001LF
    net: qmi_wwan: support Sierra Wireless MC77xx devices in QMI mode
    bnx2x: off by one in bnx2x_ets_e3b0_sp_pri_to_cos_set()
    ksz884x: don't copy too much in netdev_set_mac_address()
    tcp: fix retransmit of partially acked frames
    netns: do not leak net_generic data on failed init
    net/sock.h: fix sk_peek_off kernel-doc warning
    tcp: fix tcp_grow_window() for large incoming frames
    drivers/net/wan/farsync.c: add missing iounmap
    davinci_mdio: Fix MDIO timeout check
    ipv6: clean up rt6_clean_expires
    ipv6: fix rt6_update_expires
    arcnet: rimi: Fix device name in debug output
    ...

    Linus Torvalds
     
  • This is meant typically to allow a PIC driver's irq domain map() callback
    to establish sane defaults for the interrupt (and make sure that the HW
    and the irq_desc are in sync as far as the trigger is concerned).

    The irq core may not call the set_trigger callback if it thinks the
    trigger is already set to the right setting, so we need to ensure new
    descriptors are properly synchronized with the hardware.

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     

22 Apr, 2012

2 commits

  • Pull MMC fixes from Chris Ball:
    - Build fix for omap_hsmmc with OF against 3.4-rc1.
    - Fix CONFIG_MMC_UNSAFE_RESUME semantics regression against 3.3, which
    broke hotplug card detection when UNSAFE_RESUME is set.
    - Fix a race condition in omap_hsmmc with runtime PM.
    - Fix two libertas SDIO-powered-resume regressions.
    - Small fixes for discard/sanitize, dw_mmc, cd-gpio and esdhc-imx.

    * tag 'mmc-fixes-for-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    mmc: core: Do not pre-claim host in suspend
    mmc: dw_mmc: prevent NULL dereference for dma_ops
    mmc: unbreak sdhci-esdhc-imx on i.MX25
    mmc: cd-gpio: Include header to pickup exported symbol prototypes
    mmc: sdhci: refine non-removable card checking for card detection
    mmc: dw_mmc: Fix switch from DMA to PIO
    mmc: remove MMC bus legacy suspend/resume method
    mmc: omap_hsmmc: Get rid of of_have_populated_dt() usage
    mmc: omap_hsmmc: build fix for CONFIG_OF=y and CONFIG_MMC_OMAP_HS=m
    mmc: fixes for eMMC v4.5 sanitize operation
    mmc: fixes for eMMC v4.5 discard operation

    Linus Torvalds
     
  • Pull MFD fixes from Samuel Ortiz:
    "We have 3 build fixes, a OMAP USB host PHY reset fix and the twl6040
    conversion to an i2c driver. The latter may not sound like a fix but
    the twl6040 MFD driver won't probe without it, triggering an OMAP4
    audio regression."

    * tag 'mfd-for-linus-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
    mfd: Fix modular builds of rc5t583 regulator support
    mfd: Fix asic3_gpio_to_irq
    ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset issue
    mfd: Convert twl6040 to i2c driver, and separate it from twl core
    mfd : Fix dbx500 compilation error

    Linus Torvalds
     

21 Apr, 2012

8 commits

  • it's always current->mm

    Signed-off-by: Al Viro

    Al Viro
     
  • The NFSv4 spec is ambiguous about whether or not it is permissible
    to reuse open owner names, so play it safe. This patch adds a timestamp
    to the state_owner structure, and combines that with the IDA based
    uniquifier.
    Fixes a regression whereby the Linux server returns NFS4ERR_BAD_SEQID.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • MMC bus is using legacy suspend/resume method, which is not compatible if
    runtime pm callbacks are used. In this scenario, MMC bus suspend/resume
    callbacks cannot be called when system entering S3. So change to use the
    new defined dev_pm_ops for system sleeping mode.

    Tested on AM335x Platform. Solves major issue/crash reported at
    http://www.mail-archive.com/linux-omap@vger.kernel.org/msg65425.html

    Signed-off-by: Chuanxiao Dong
    Tested-by: Hebbar, Gururaja
    Acked-by: Linus Walleij
    Acked-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Chuanxiao Dong
     
  • This continues the theme started with vm_brk() and vm_munmap():
    vm_mmap() does the same thing as do_mmap(), but additionally does the
    required VM locking.

    This uninlines (and rewrites it to be clearer) do_mmap(), which sadly
    duplicates it in mm/mmap.c and mm/nommu.c. But that way we don't have
    to export our internal do_mmap_pgoff() function.

    Some day we hopefully don't have to export do_mmap() either, if all
    modular users can become the simpler vm_mmap() instead. We're actually
    very close to that already, with the notable exception of the (broken)
    use in i810, and a couple of stragglers in binfmt_elf.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Like the vm_brk() function, this is the same as "do_munmap()", except it
    does the VM locking for the caller.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • It does the same thing as "do_brk()", except it handles the VM locking
    too.

    It turns out that all external callers want that anyway, so we can make
    do_brk() static to just mm/mmap.c while at it.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • …it/linusw/linux-pinctrl

    Pull pinctrl fixes from Linus Walleij:
    - Fixed compilation errors and warnings
    - Stricter checks on the ops vtable

    * tag 'for-torvalds-20120418' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl: implement pinctrl_check_ops
    pinctrl: include <linux/bug.h> to prevent compile errors
    pinctrl: fix compile error if not select PINMUX support

    Linus Torvalds
     
  • Pull USB fixes from Greg Kroah-Hartman:
    "Here are a number of tiny USB fixes for 3.4-rc4.

    Most of them are in the USB gadget area, but a few other minor USB
    driver and core fixes are here as well.

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'usb-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (36 commits)
    USB: serial: cp210x: Fixed usb_control_msg timeout values
    USB: ehci-tegra: don't call set_irq_flags(IRQF_VALID)
    USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag in urb
    USB: yurex: Remove allocation of coherent buffer for setup-packet buffer
    drivers/usb/misc/usbtest.c: add kfrees
    USB: ehci-fsl: Fix kernel crash on mpc5121e
    uwb: fix error handling
    uwb: fix use of del_timer_sync() in interrupt
    EHCI: always clear the STS_FLR status bit
    EHCI: fix criterion for resuming the root hub
    USB: sierra: avoid QMI/wwan interface on MC77xx
    usb: usbtest: avoid integer overflow in alloc_sglist()
    usb: usbtest: avoid integer overflow in test_ctrl_queue()
    USB: fix deadlock in bConfigurationValue attribute method
    usb: gadget: eliminate NULL pointer dereference (bugfix)
    usb: gadget: uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine
    usb: gadget: rndis: fix Missing req->context assignment
    usb: musb: omap: fix the error check for pm_runtime_get_sync
    usb: gadget: udc-core: fix asymmetric calls in remove_driver
    usb: musb: omap: fix crash when musb glue (omap) gets initialized
    ...

    Linus Torvalds
     

20 Apr, 2012

2 commits


19 Apr, 2012

1 commit


17 Apr, 2012

2 commits

  • The combination of commit 1b1247dd75aa5cf5fae54a3bec7280046e9c7957

    "mfd: Add support for RICOH PMIC RC5T583"

    and commit 6ffc3270210efa2bea526953a142ffc908f5bd86

    "regulator: Add support for RICOH PMIC RC5T583 regulator"

    are causing the i386 allmodconfig builds to fail with this:

    ERROR: "rc5t583_update" [drivers/regulator/rc5t583-regulator.ko] undefined!
    ERROR: "rc5t583_set_bits" [drivers/regulator/rc5t583-regulator.ko] undefined!
    ERROR: "rc5t583_clear_bits" [drivers/regulator/rc5t583-regulator.ko] undefined!
    ERROR: "rc5t583_read" [drivers/regulator/rc5t583-regulator.ko] undefined!

    and this:

    ERROR: "rc5t583_ext_power_req_config" [drivers/regulator/rc5t583-regulator.ko] undefined!

    For the 1st four, make the simple ops static inline, instead of
    polluting the namespace with trivial exports. For the last one,
    add an EXPORT_SYMBOL.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Samuel Ortiz

    Paul Gortmaker
     
  • The cld.h file contains the definition of the upcall format to talk
    with nfsdcld. When I added the file though, I neglected to add it
    to the headers-y target, so make headers_install wasn't installing it.

    Signed-off-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    Jeff Layton