08 Jul, 2011

5 commits

  • When initiating a graceful shutdown while having data chunks
    on the retransmission queue with a peer which is in zero
    window mode the shutdown is never completed because the
    retransmission error count is reset periodically by the
    following two rules:

    - Do not timeout association while doing zero window probe.
    - Reset overall error count when a heartbeat request has
    been acknowledged.

    The graceful shutdown will wait for all outstanding TSN to
    be acknowledged before sending the SHUTDOWN request. This
    never happens due to the peer's zero window not acknowledging
    the continuously retransmitted data chunks. Although the
    error counter is incremented for each failed retransmission,
    the receiving of the SACK announcing the zero window clears
    the error count again immediately. Also heartbeat requests
    continue to be sent periodically. The peer acknowledges these
    requests causing the error counter to be reset as well.

    This patch changes behaviour to only reset the overall error
    counter for the above rules while not in shutdown. After
    reaching the maximum number of retransmission attempts, the
    T5 shutdown guard timer is scheduled to give the receiver
    some additional time to recover. The timer is stopped as soon
    as the receiver acknowledges any data.

    The issue can be easily reproduced by establishing a sctp
    association over the loopback device, constantly queueing
    data at the sender while not reading any at the receiver.
    Wait for the window to reach zero, then initiate a shutdown
    by killing both processes simultaneously. The association
    will never be freed and the chunks on the retransmission
    queue will be retransmitted indefinitely.

    Signed-off-by: Thomas Graf
    Acked-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Thomas Graf
     
  • * 'for-linus' of git://git.kernel.dk/linux-block:
    drbd: we should write meta data updates with FLUSH FUA
    drbd: fix limit define, we support 1 PiByte now
    drbd: when receive times out on meta socket, also check last receive time on data socket
    drbd: account bitmap IO during resync as resync-(related-)-io
    drbd: don't cond_resched_lock with IRQs disabled
    drbd: add missing spinlock to bitmap receive
    drbd: Use the correct max_bio_size when creating resync requests
    cfq-iosched: make code consistent
    cfq-iosched: fix a rcu warning

    Linus Torvalds
     
  • Add an FS-Cache helper to bulk uncache pages on an inode. This will
    only work for the circumstance where the pages in the cache correspond
    1:1 with the pages attached to an inode's page cache.

    This is required for CIFS and NFS: When disabling inode cookie, we were
    returning the cookie and setting cifsi->fscache to NULL but failed to
    invalidate any previously mapped pages. This resulted in "Bad page
    state" errors and manifested in other kind of errors when running
    fsstress. Fix it by uncaching mapped pages when we disable the inode
    cookie.

    This patch should fix the following oops and "Bad page state" errors
    seen during fsstress testing.

    ------------[ cut here ]------------
    kernel BUG at fs/cachefiles/namei.c:201!
    invalid opcode: 0000 [#1] SMP
    Pid: 5, comm: kworker/u:0 Not tainted 2.6.38.7-30.fc15.x86_64 #1 Bochs Bochs
    RIP: 0010: cachefiles_walk_to_object+0x436/0x745 [cachefiles]
    RSP: 0018:ffff88002ce6dd00 EFLAGS: 00010282
    RAX: ffff88002ef165f0 RBX: ffff88001811f500 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: 0000000000000100 RDI: 0000000000000282
    RBP: ffff88002ce6dda0 R08: 0000000000000100 R09: ffffffff81b3a300
    R10: 0000ffff00066c0a R11: 0000000000000003 R12: ffff88002ae54840
    R13: ffff88002ae54840 R14: ffff880029c29c00 R15: ffff88001811f4b0
    FS: 00007f394dd32720(0000) GS:ffff88002ef00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 00007fffcb62ddf8 CR3: 000000001825f000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process kworker/u:0 (pid: 5, threadinfo ffff88002ce6c000, task ffff88002ce55cc0)
    Stack:
    0000000000000246 ffff88002ce55cc0 ffff88002ce6dd58 ffff88001815dc00
    ffff8800185246c0 ffff88001811f618 ffff880029c29d18 ffff88001811f380
    ffff88002ce6dd50 ffffffff814757e4 ffff88002ce6dda0 ffffffff8106ac56
    Call Trace:
    cachefiles_lookup_object+0x78/0xd4 [cachefiles]
    fscache_lookup_object+0x131/0x16d [fscache]
    fscache_object_work_func+0x1bc/0x669 [fscache]
    process_one_work+0x186/0x298
    worker_thread+0xda/0x15d
    kthread+0x84/0x8c
    kernel_thread_helper+0x4/0x10
    RIP cachefiles_walk_to_object+0x436/0x745 [cachefiles]
    ---[ end trace 1d481c9af1804caa ]---

    I tested the uncaching by the following means:

    (1) Create a big file on my NFS server (104857600 bytes).

    (2) Read the file into the cache with md5sum on the NFS client. Look in
    /proc/fs/fscache/stats:

    Pages : mrk=25601 unc=0

    (3) Open the file for read/write ("bash 5<>/warthog/bigfile"). Look in proc
    again:

    Pages : mrk=25601 unc=25601

    Reported-by: Jeff Layton
    Signed-off-by: David Howells
    Reviewed-and-Tested-by: Suresh Jayaraman
    cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    David Howells
     
  • …t-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    debugobjects: Fix boot crash when kmemleak and debugobjects enabled

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    jump_label: Fix jump_label update for modules
    oprofile, x86: Fix race in nmi handler while starting counters

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched: Disable (revert) SCHED_LOAD_SCALE increase
    sched, cgroups: Fix MIN_SHARES on 64-bit boxen

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (31 commits)
    sctp: fix missing send up SCTP_SENDER_DRY_EVENT when subscribe it
    net: refine {udp|tcp|sctp}_mem limits
    vmxnet3: round down # of queues to power of two
    net: sh_eth: fix the parameter for the ETHER of SH7757
    net: sh_eth: fix cannot work half-duplex mode
    net: vlan: enable soft features regardless of underlying device
    vmxnet3: fix starving rx ring whenoc_skb kb fails
    bridge: Always flood broadcast packets
    greth: greth_set_mac_add would corrupt the MAC address.
    net: bind() fix error return on wrong address family
    natsemi: silence dma-debug warnings
    net: 8139too: Initial necessary vlan_features to support vlan
    Fix call trace when interrupts are disabled while sleeping function kzalloc is called
    qlge:Version change to v1.00.00.29
    qlge: Fix printk priority so chip fatal errors are always reported.
    qlge:Fix crash caused by mailbox execution on wedged chip.
    xfrm4: Don't call icmp_send on local error
    ipv4: Don't use ufo handling on later transformed packets
    xfrm: Remove family arg from xfrm_bundle_ok
    ipv6: Don't put artificial limit on routing table size.
    ...

    Linus Torvalds
     

07 Jul, 2011

1 commit

  • * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (46 commits)
    [media] rc: call input_sync after scancode reports
    [media] imon: allow either proto on unknown 0xffdc
    [media] imon: auto-config ffdc 7e device
    [media] saa7134: fix raw IR timeout value
    [media] rc: fix ghost keypresses with certain hw
    [media] [staging] lirc_serial: allocate irq at init time
    [media] lirc_zilog: fix spinning rx thread
    [media] keymaps: fix table for pinnacle pctv hd devices
    [media] ite-cir: 8709 needs to use pnp resource 2
    [media] V4L: mx1-camera: fix uninitialized variable
    [media] omap_vout: Added check in reqbuf & mmap for buf_size allocation
    [media] OMAP_VOUT: Change hardcoded device node number to -1
    [media] OMAP_VOUTLIB: Fix wrong resizer calculation
    [media] uvcvideo: Disable the queue when failing to start
    [media] uvcvideo: Remove buffers from the queues when freeing
    [media] uvcvideo: Ignore entities for terminals with no supported format
    [media] v4l: Don't access media entity after is has been destroyed
    [media] media: omap3isp: fix a potential NULL deref
    [media] media: vb2: fix allocation failure check
    [media] media: vb2: reset queued_count value during queue reinitialization
    ...

    Fix up trivial conflict in MAINTAINERS as per Mauro

    Linus Torvalds
     

05 Jul, 2011

2 commits

  • Alex reported that commit c8b281161df ("sched: Increase
    SCHED_LOAD_SCALE resolution") caused a power usage regression
    under light load as it increases the number of load-balance
    operations and keeps idle cpus from staying idle.

    Time has run out to find the root cause for this release so
    disable the feature for v3.0 until we can figure out what
    causes the problem.

    Reported-by: "Alex, Shi"
    Signed-off-by: Peter Zijlstra
    Cc: Nikhil Rao
    Cc: Ming Lei
    Cc: Mike Galbraith
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Link: http://lkml.kernel.org/n/tip-m4onxn0sxnyn5iz9o88eskc3@git.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • …l/git/lethal/fbdev-3.x

    * 'fbdev-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-3.x:
    vesafb: fix memory leak
    fbdev: amba: Link fb device to its parent
    fsl-diu-fb: remove check for pixel clock ranges
    udlfb: Correct sub-optimal resolution selection.
    hecubafb: add module_put on error path in hecubafb_probe()
    sm501fb: fix section mismatch warning
    gx1fb: Fix section mismatch warnings
    fbdev: sh_mobile_meram: Correct pointer check for YCbCr chroma plane

    Linus Torvalds
     

03 Jul, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: sb16 - Fix build errors on MIPS and others with 13bit ioctl size
    ALSA: hdspm - Fix compile warnings with PPC
    ALSA: cs5535 - Fix invalid big-endian conversions
    ALSA: HDMI - fix ELD monitor name length
    ALSA: atmel - update author email for ABDAC, AC97C and AT73C213
    ALSA: HDA: Add model=auto quirk for Acer Aspire 3830TG
    ALSA: HDA: Add a new Conexant codec ID (506c)

    Linus Torvalds
     

02 Jul, 2011

1 commit

  • IPV6, unlike IPV4, doesn't have a routing cache.

    Routing table entries, as well as clones made in response
    to route lookup requests, all live in the same table. And
    all of these things are together collected in the destination
    cache table for ipv6.

    This means that routing table entries count against the garbage
    collection limits, even though such entries cannot ever be reclaimed
    and are added explicitly by the administrator (rather than being
    created in response to lookups).

    Therefore it makes no sense to count ipv6 routing table entries
    against the GC limits.

    Add a DST_NOCOUNT destination cache entry flag, and skip the counting
    if it is set. Use this flag bit in ipv6 when adding routing table
    entries.

    Signed-off-by: David S. Miller

    David S. Miller
     

01 Jul, 2011

1 commit


30 Jun, 2011

4 commits


29 Jun, 2011

2 commits

  • …t/gregkh/driver-core-2.6

    * 'driver-core-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
    Connector: Correctly set the error code in case of success when dispatching receive callbacks
    Connector: Set the CN_NETLINK_USERS correctly
    pti: PTI semantics fix in pti_tty_cleanup.
    pti: ENXIO error case memory leak PTI fix.
    pti: double-free security PTI fix
    drivers:misc: ti-st: fix skipping of change remote baud
    drivers/base/platform.c: don't mark platform_device_register_resndata() as __init_or_module
    st_kim: Handle case of no device found for ID 0
    firmware: fix GOOGLE_SMI kconfig dependency warning

    Linus Torvalds
     
  • * 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    serial: bcm63xx_uart: fix irq storm after rx fifo overrun.
    amba pl011: platform data for reg lockup and glitch v2
    amba pl011: workaround for uart registers lockup
    tty: n_gsm: improper skb_pull() use was leaking framed data
    tty: n_gsm: Fixed logic to decode break signal from modem status
    TTY: ntty, add one more sanity check
    TTY: ldisc, do not close until there are readers
    8250: Fix capabilities when changing the port type
    8250_pci: Fix missing const from merges
    ARM: SAMSUNG: serial: Fix on handling of one clock source for UART
    serial: ioremap warning fix for jsm driver.
    8250_pci: add -ENODEV code for Intel EG20T PCH

    Linus Torvalds
     

28 Jun, 2011

9 commits

  • Under heavy memory and filesystem load, users observe the assertion
    mapping->nrpages == 0 in end_writeback() trigger. This can be caused by
    page reclaim reclaiming the last page from a mapping in the following
    race:

    CPU0 CPU1
    ...
    shrink_page_list()
    __remove_mapping()
    __delete_from_page_cache()
    radix_tree_delete()
    evict_inode()
    truncate_inode_pages()
    truncate_inode_pages_range()
    pagevec_lookup() - finds nothing
    end_writeback()
    mapping->nrpages != 0 -> BUG
    page->mapping = NULL
    mapping->nrpages--

    Fix the problem by doing a reliable check of mapping->nrpages under
    mapping->tree_lock in end_writeback().

    Analyzed by Jay , lost in LKML, and dug out
    by Miklos Szeredi .

    Cc: Jay
    Cc: Miklos Szeredi
    Signed-off-by: Jan Kara
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kara
     
  • This is required for tilegx to be able to use the compat unistd.h header
    where compat_sys_sendmmsg() is now mentioned.

    Signed-off-by: Chris Metcalf
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Metcalf
     
  • Although it is used (by i915) on nothing but tmpfs, read_cache_page_gfp()
    is unsuited to tmpfs, because it inserts a page into pagecache before
    calling the filesystem's ->readpage: tmpfs may have pages in swapcache
    which only it knows how to locate and switch to filecache.

    At present tmpfs provides a ->readpage method, and copes with this by
    copying pages; but soon we can simplify it by removing its ->readpage.
    Provide shmem_read_mapping_page_gfp() now, ready for that transition,

    Export shmem_read_mapping_page_gfp() and add it to list in shmem_fs.h,
    with shmem_read_mapping_page() inline for the common mapping_gfp case.

    (shmem_read_mapping_page_gfp or shmem_read_cache_page_gfp? Generally the
    read_mapping_page functions use the mapping's ->readpage, and the
    read_cache_page functions use the supplied filler, so I think
    read_cache_page_gfp was slightly misnamed.)

    Signed-off-by: Hugh Dickins
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • 2.6.35's new truncate convention gave tmpfs the opportunity to control
    its file truncation, no longer enforced from outside by vmtruncate().
    We shall want to build upon that, to handle pagecache and swap together.

    Slightly redefine the ->truncate_range interface: let it now be called
    between the unmap_mapping_range()s, with the filesystem responsible for
    doing the truncate_inode_pages_range() from it - just as the filesystem
    is nowadays responsible for doing that from its ->setattr.

    Let's rename shmem_notify_change() to shmem_setattr(). Instead of
    calling the generic truncate_setsize(), bring that code in so we can
    call shmem_truncate_range() - which will later be updated to perform its
    own variant of truncate_inode_pages_range().

    Remove the punch_hole unmap_mapping_range() from shmem_truncate_range():
    now that the COW's unmap_mapping_range() comes after ->truncate_range,
    there is no need to call it a third time.

    Export shmem_truncate_range() and add it to the list in shmem_fs.h, so
    that i915_gem_object_truncate() can call it explicitly in future; get
    this patch in first, then update drm/i915 once this is available (until
    then, i915 will just be doing the truncate_inode_pages() twice).

    Though introduced five years ago, no other filesystem is implementing
    ->truncate_range, and its only other user is madvise(,,MADV_REMOVE): we
    expect to convert it to fallocate(,FALLOC_FL_PUNCH_HOLE,,) shortly,
    whereupon ->truncate_range can be removed from inode_operations -
    shmem_truncate_range() will help i915 across that transition too.

    Signed-off-by: Hugh Dickins
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Before adding any more global entry points into shmem.c, gather such
    prototypes into shmem_fs.h. Remove mm's own declarations from swap.h,
    but for now leave the ones in mm.h: because shmem_file_setup() and
    shmem_zero_setup() are called from various places, and we should not
    force other subsystems to update immediately.

    Signed-off-by: Hugh Dickins
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Fix 'make htmldocs' warnings:

    Warning(/include/linux/hrtimer.h:153): No description found for parameter 'clockid'
    Warning(/include/linux/device.h:604): Excess struct/union/enum/typedef member 'of_match' description in 'device'
    Warning(/include/net/sock.h:349): Excess struct/union/enum/typedef member 'sk_rmem_alloc' description in 'sock'

    Signed-off-by: Vitaliy Ivanov
    Acked-by: Grant Likely
    Acked-by: David S. Miller
    Signed-off-by: Linus Torvalds

    Vitaliy Ivanov
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    mmc: queue: bring discard_granularity/alignment into line with SCSI
    mmc: queue: append partition subname to queue thread name
    mmc: core: make erase timeout calculation allow for gated clock
    mmc: block: switch card to User Data Area when removing the block driver
    mmc: sdio: reset card during power_restore
    mmc: cb710: fix #ifdef HAVE_EFFICIENT_UNALIGNED_ACCESS
    mmc: sdhi: DMA slave ID 0 is invalid
    mmc: tmio: fix regression in TMIO_MMC_WRPROTECT_DISABLE handling
    mmc: omap_hsmmc: use original sg_len for dma_unmap_sg
    mmc: omap_hsmmc: fix ocr mask usage
    mmc: sdio: fix runtime PM path during driver removal
    mmc: Add PCI fixup quirks for Ricoh 1180:e823 reader
    mmc: sdhi: fix module unloading
    mmc: of_mmc_spi: add NO_IRQ define to of_mmc_spi.c
    mmc: vub300: fix null dereferences in error handling

    Linus Torvalds
     
  • commit 21a3c96 uses node_start/end_pfn(nid) for detection start/end
    of nodes. But, it's not defined in linux/mmzone.h but defined in
    /arch/???/include/mmzone.h which is included only under
    CONFIG_NEED_MULTIPLE_NODES=y.

    Then, we see
    mm/page_cgroup.c: In function 'page_cgroup_init':
    mm/page_cgroup.c:308: error: implicit declaration of function 'node_start_pfn'
    mm/page_cgroup.c:309: error: implicit declaration of function 'node_end_pfn'

    So, fixiing page_cgroup.c is an idea...

    But node_start_pfn()/node_end_pfn() is a very generic macro and
    should be implemented in the same manner for all archs.
    (m32r has different implementation...)

    This patch removes definitions of node_start/end_pfn() in each archs
    and defines a unified one in linux/mmzone.h. It's not under
    CONFIG_NEED_MULTIPLE_NODES, now.

    A result of macro expansion is here (mm/page_cgroup.c)

    for !NUMA
    start_pfn = ((&contig_page_data)->node_start_pfn);
    end_pfn = ({ pg_data_t *__pgdat = (&contig_page_data); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;});

    for NUMA (x86-64)
    start_pfn = ((node_data[nid])->node_start_pfn);
    end_pfn = ({ pg_data_t *__pgdat = (node_data[nid]); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;});

    Changelog:
    - fixed to avoid using "nid" twice in node_end_pfn() macro.

    Reported-and-acked-by: Randy Dunlap
    Reported-and-tested-by: Ingo Molnar
    Acked-by: Mel Gorman
    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Sometimes when reporting a MIC failure rx->key may be unset. This
    code path is hit when receiving a packet meant for a multicast
    address, and decryption is performed in HW.

    Fortunately, the failing key_idx is not used for anything up to
    (and including) usermode, so we allow ourselves to drop it on the
    way up when a key cannot be retrieved.

    Signed-off-by: Arik Nemtsov
    Cc: stable@kernel.org
    Signed-off-by: John W. Linville

    Arik Nemtsov
     

25 Jun, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: Remove unneeded version.h includes from sound/
    ASoC: pxa-ssp: Correct check for stream presence
    ASoC: imx: add missing module informations
    ASoC: imx: Remove unused Kconfig SND_MXC_SOC_SSI entry
    ALSA: HDA: Pinfix quirk for HP Z200 Workstation
    ALSA: VIA HDA: Create a master amplifier control for VT1718S.
    ALSA: VIA HDA: Mute/unmute mixer conncted to Headphone for VT1718S.
    ALSA: VIA HDA: Modify initial verbs list for VT1718S.
    ALSA: hda - Remove ALC268 model override for CPR2000
    ALSA: HDA: Remove quirk for an HP device
    ASoC: Remove unused and about to be broken SND_SOC_CUSTOM I/O bus

    Linus Torvalds
     

24 Jun, 2011

3 commits

  • * 'for-linus' of git://git.kernel.dk/linux-block:
    block: add REQ_SECURE to REQ_COMMON_MASK
    block: use the passed in @bdev when claiming if partno is zero
    block: Add __attribute__((format(printf...) and fix fallout
    block: make disk_block_events() properly wait for work cancellation
    block: remove non-syncing __disk_block_events() and fold it into disk_block_events()
    block: don't use non-syncing event blocking in disk_check_events()
    cfq-iosched: fix locking around ioc->ioc_data assignment

    Linus Torvalds
     
  • Takashi Iwai
     
  • The Freescale DIU framebuffer driver defines two constants, MIN_PIX_CLK and
    MAX_PIX_CLK, that are supposed to represent the lower and upper limits of
    the pixel clock. These values, however, are true only for one platform
    clock rate (533MHz) and only for the MPC8610. So the actual range for
    the pixel clock is chip-specific, which means the current values are almost
    always wrong. The chance of an out-of-range pixel clock being used are also
    remote.

    Rather than try to detect an out-of-range clock in the DIU driver, we depend
    on the board-specific pixel clock function (e.g. p1022ds_set_pixel_clock)
    to clamp the pixel clock to a supported value.

    Signed-off-by: Timur Tabi
    Signed-off-by: Paul Mundt

    Timur Tabi
     

23 Jun, 2011

1 commit

  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
    PCI / PM: Block races between runtime PM and system sleep
    PM / Domains: Update documentation
    PM / Runtime: Handle clocks correctly if CONFIG_PM_RUNTIME is unset
    PM: Fix async resume following suspend failure
    PM: Free memory bitmaps if opening /dev/snapshot fails
    PM: Rename dev_pm_info.in_suspend to is_prepared
    PM: Update documentation regarding sysdevs
    PM / Runtime: Update doc: usage count no longer incremented across system PM

    Linus Torvalds
     

22 Jun, 2011

4 commits

  • * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
    NFS: Fix decode_secinfo_maxsz
    NFSv4.1: Fix an off-by-one error in pnfs_generic_pg_test
    NFSv4.1: Fix some issues with pnfs_generic_pg_test
    NFSv4.1: file layout must consider pg_bsize for coalescing
    pnfs-obj: No longer needed to take an extra ref at add_device
    SUNRPC: Ensure the RPC client only quits on fatal signals
    NFSv4: Fix a readdir regression
    nfs4.1: mark layout as bad on error path in _pnfs_return_layout
    nfs4.1: prevent race that allowed use of freed layout in _pnfs_return_layout
    NFSv4.1: need to put_layout_hdr on _pnfs_return_layout error path
    NFS: (d)printks should use %zd for ssize_t arguments
    NFSv4.1: fix break condition in pnfs_find_lseg
    nfs4.1: fix several problems with _pnfs_return_layout
    NFSv4.1: allow zero fh array in filelayout decode layout
    NFSv4.1: allow nfs_fhget to succeed with mounted on fileid
    NFSv4.1: Fix a refcounting issue in the pNFS device id cache
    NFSv4.1: deprecate headerpadsz in CREATE_SESSION
    NFS41: do not update isize if inode needs layoutcommit
    NLM: Don't hang forever on NLM unlock requests
    NFS: fix umount of pnfs filesystems

    Linus Torvalds
     
  • The PM core doesn't handle suspend failures correctly when it comes to
    asynchronously suspended devices. These devices are moved onto the
    dpm_suspended_list as soon as the corresponding async thread is
    started up, and they remain on the list even if they fail to suspend
    or the sleep transition is cancelled before they get suspended. As a
    result, when the PM core unwinds the transition, it tries to resume
    the devices even though they were never suspended.

    This patch (as1474) fixes the problem by adding a new "is_suspended"
    flag to dev_pm_info. Devices are resumed only if the flag is set.

    [rjw:
    * Moved the dev->power.is_suspended check into device_resume(),
    because we need to complete dev->power.completion and clear
    dev->power.is_prepared too for devices whose
    dev->power.is_suspended flags are unset.
    * Fixed __device_suspend() to avoid setting dev->power.is_suspended
    if async_error is different from zero.]

    Signed-off-by: Alan Stern
    Signed-off-by: Rafael J. Wysocki
    Cc: stable@kernel.org

    Alan Stern
     
  • This patch (as1473) renames the "in_suspend" field in struct
    dev_pm_info to "is_prepared", in preparation for an upcoming change.
    The new name is more descriptive of what the field really means.

    Signed-off-by: Alan Stern
    Signed-off-by: Rafael J. Wysocki
    Cc: stable@kernel.org

    Alan Stern
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    jbd2: Fix oops in jbd2_journal_remove_journal_head()
    jbd2: Remove obsolete parameters in the comments for some jbd2 functions
    ext4: fixed tracepoints cleanup
    ext4: use FIEMAP_EXTENT_LAST flag for last extent in fiemap
    ext4: Fix max file size and logical block counting of extent format file
    ext4: correct comments for ext4_free_blocks()

    Linus Torvalds
     

21 Jun, 2011

5 commits

  • Commit 13e12d14e2dc ("vfs: reorganize 'struct inode' layout a bit")
    moved things around a bit changed i_state to be unsigned int instead of
    unsigned long. That was to help structure layout for the 64-bit case,
    and shrink 'struct inode' a bit (admittedly that only happened when
    spinlock debugging was on and i_flags didn't pack with i_lock).

    However, Meelis Roos reports that this results in unaligned exceptions
    on sprc, and it turns out that the bit-locking primitives that we use
    for the I_NEW bit want to use the bitops. Which want 'unsigned long',
    not 'unsigned int'.

    We really should fix the bit locking code to not have that kind of
    requirement, but that's a much bigger change. So for now, revert that
    field back to 'unsigned long' (but keep the other re-ordering changes
    from the commit that caused this).

    Andi points out that we have played games with this in 'struct page', so
    it's solvable with other hacks too, but since right now the struct inode
    size advantage only happens with some rare config options, it's not
    worth fighting.

    It _would_ be worth fixing the bitlocking code, though. Especially
    since there is no type safety in the bitlocking code (this never caused
    any warnings, and worked fine on x86-64, because the bitlocks take a
    'void *' and x86-64 doesn't care that deeply about alignment). So it's
    currently a very easy problem to trigger by mistake and never notice.

    Reported-by: Meelis Roos
    Cc: Andi Kleen
    Cc: David Miller
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'for-2.6.40' of git://linux-nfs.org/~bfields/linux:
    nfsd4: fix break_lease flags on nfsd open
    nfsd: link returns nfserr_delay when breaking lease
    nfsd: v4 support requires CRYPTO
    nfsd: fix dependency of nfsd on auth_rpcgss

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (40 commits)
    pxa168_eth: fix race in transmit path.
    ipv4, ping: Remove duplicate icmp.h include
    netxen: fix race in skb->len access
    sgi-xp: fix a use after free
    hp100: fix an skb->len race
    netpoll: copy dev name of slaves to struct netpoll
    ipv4: fix multicast losses
    r8169: fix static initializers.
    inet_diag: fix inet_diag_bc_audit()
    gigaset: call module_put before restart of if_open()
    farsync: add module_put to error path in fst_open()
    net: rfs: enable RFS before first data packet is received
    fs_enet: fix freescale FCC ethernet dp buffer alignment
    netdev: bfin_mac: fix memory leak when freeing dma descriptors
    vlan: don't call ndo_vlan_rx_register on hardware that doesn't have vlan support
    caif: Bugfix - XOFF removed channel from caif-mux
    tun: teach the tun/tap driver to support netpoll
    dp83640: drop PHY status frames in the driver.
    dp83640: fix phy status frame event parsing
    phylib: Allow BCM63XX PHY to be selected only on BCM63XX.
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
    devcgroup_inode_permission: take "is it a device node" checks to inlined wrapper
    fix comment in generic_permission()
    kill obsolete comment for follow_down()
    proc_sys_permission() is OK in RCU mode
    reiserfs_permission() doesn't need to bail out in RCU mode
    proc_fd_permission() is doesn't need to bail out in RCU mode
    nilfs2_permission() doesn't need to bail out in RCU mode
    logfs doesn't need ->permission() at all
    coda_ioctl_permission() is safe in RCU mode
    cifs_permission() doesn't need to bail out in RCU mode
    bad_inode_permission() is safe from RCU mode
    ubifs: dereferencing an ERR_PTR in ubifs_mount()

    Linus Torvalds
     
  • Otherwise we end up overflowing the rpc buffer size on the receive end.

    Signed-off-by: Benny Halevy
    Signed-off-by: Trond Myklebust

    Benny Halevy