06 Jul, 2011

5 commits


04 Jul, 2011

1 commit


02 Jul, 2011

2 commits

  • 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
     
  • This patch adds a change sequence counter to each net namespace
    which is bumped whenever a netdevice is added or removed from
    the list. If such a change occurred while a link dump took place,
    the dump will have the NLM_F_DUMP_INTR flag set in the first
    message which has been interrupted and in all subsequent messages
    of the same dump.

    Note that links may still be modified or renamed while a dump is
    taking place but we can guarantee for userspace to receive a
    complete list of links and not miss any.

    Testing:
    I have added 500 VLAN netdevices to make sure the dump is split
    over multiple messages. Then while continuously dumping links in
    one process I also continuously deleted and re-added a dummy
    netdevice in another process. Multiple dumps per seconds have
    had the NLM_F_DUMP_INTR flag set.

    I guess we can wait for Johannes patch to hit net-next via the
    wireless tree. I just wanted to give this some testing right away.

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

    Thomas Graf
     

01 Jul, 2011

3 commits


30 Jun, 2011

2 commits


29 Jun, 2011

3 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
     
  • Conflicts:
    drivers/net/wireless/iwlwifi/iwl-tx.c

    John W. Linville
     

28 Jun, 2011

10 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
     
  • Move all that mac80211 has into the generic
    ieee80211.h header file and use them. At the
    same time move them from mask+shift to just
    bits and rename them for consistent names.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • 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

3 commits


24 Jun, 2011

3 commits


23 Jun, 2011

5 commits

  • * '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
     
  • The patch adds a callback to ath9k_platform_data. If the
    callback is provided by the platform code, then it can be
    used to hard reset the WMAC device.

    The callback is required for doing a hard reset of the AR9330
    chips to get them working again after a hang.

    Signed-off-by: Gabor Juhos
    Signed-off-by: John W. Linville

    Gabor Juhos
     
  • The AR9330 1.0 and 1.1 are using the same revision,
    thus it is not possible to distinguish the two chips.
    The platform setup code can distinguish the chips based
    on the SoC revision.

    Add a callback function to ath9k_platform_data in order
    to allow getting the revision number from the platform code.

    Signed-off-by: Gabor Juhos
    Signed-off-by: John W. Linville

    Gabor Juhos
     
  • Consider the following situation:
    * a dump that would show 8 entries, four in the first
    round, and four in the second
    * between the first and second rounds, 6 entries are
    removed
    * now the second round will not show any entry, and
    even if there is a sequence/generation counter the
    application will not know

    To solve this problem, add a new flag NLM_F_DUMP_INTR
    to the netlink header that indicates the dump wasn't
    consistent, this flag can also be set on the MSG_DONE
    message that terminates the dump, and as such above
    situation can be detected.

    To achieve this, add a sequence counter to the netlink
    callback struct. Of course, netlink code still needs
    to use this new functionality. The correct way to do
    that is to always set cb->seq when a dumpit callback
    is invoked and call nl_dump_check_consistent() for
    each new message. The core code will also call this
    function for the final MSG_DONE message.

    To make it usable with generic netlink, a new function
    genlmsg_nlhdr() is needed to obtain the netlink header
    from the genetlink user header.

    Signed-off-by: Johannes Berg
    Acked-by: David S. Miller
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • John W. Linville
     

22 Jun, 2011

3 commits

  • There are enough instances of this:

    iph->frag_off & htons(IP_MF | IP_OFFSET)

    that a helper function is probably warranted.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Paul Gortmaker
     
  • Remove linux/mm.h inclusion from netdevice.h -- it's unused (I've checked manually).

    To prevent mm.h inclusion via other channels also extract "enum dma_data_direction"
    definition into separate header. This tiny piece is what gluing netdevice.h with mm.h
    via "netdevice.h => dmaengine.h => dma-mapping.h => scatterlist.h => mm.h".
    Removal of mm.h from scatterlist.h was tried and was found not feasible
    on most archs, so the link was cutoff earlier.

    Hope people are OK with tiny include file.

    Note, that mm_types.h is still dragged in, but it is a separate story.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan
     
  • * '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