04 Sep, 2012

1 commit


03 Sep, 2012

1 commit

  • Pull networking fixes from David Miller:

    1) NLA_PUT* --> nla_put_* conversion got one case wrong in
    nfnetlink_log, fix from Patrick McHardy.

    2) Missed error return check in ipw2100 driver, from Julia Lawall.

    3) PMTU updates in ipv4 were setting the expiry time incorrectly, fix
    from Eric Dumazet.

    4) SFC driver erroneously reversed src and dst when reporting filters
    via ethtool.

    5) Memory leak in CAN protocol and wrong setting of IRQF_SHARED in
    sja1000 can platform driver, from Alexey Khoroshilov and Sven
    Schmitt.

    6) Fix multicast traffic scaling regression in ipv4_dst_destroy, only
    take the lock when we really need to. From Eric Dumazet.

    7) Fix non-root process spoofing in netlink, from Pablo Neira Ayuso.

    8) CWND reduction in TCP is done incorrectly during non-SACK recovery,
    fix from Yuchung Cheng.

    9) Revert netpoll change, and fix what was actually a driver specific
    problem. From Amerigo Wang. This should cure bootup hangs with
    netconsole some people reported.

    10) Fix xen-netfront invoking __skb_fill_page_desc() with a NULL page
    pointer. From Ian Campbell.

    11) SIP NAT fix for expectiontation creation, from Pablo Neira Ayuso.

    12) __ip_rt_update_pmtu() needs RCU locking, from Eric Dumazet.

    13) Fix usbnet deadlock on resume, can't use GFP_KERNEL in this
    situation. From Oliver Neukum.

    14) The davinci ethernet driver triggers an OOPS on removal because it
    frees an MDIO object before unregistering it. Fix from Bin Liu.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (41 commits)
    net: qmi_wwan: add several new Gobi devices
    fddi: 64 bit bug in smt_add_para()
    net: ethernet: fix kernel OOPS when remove davinci_mdio module
    net/xfrm/xfrm_state.c: fix error return code
    net: ipv6: fix error return code
    net: qmi_wwan: new device: Foxconn/Novatel E396
    usbnet: fix deadlock in resume
    cs89x0 : packet reception not working
    netfilter: nf_conntrack: fix racy timer handling with reliable events
    bnx2x: Correct the ndo_poll_controller call
    bnx2x: Move netif_napi_add to the open call
    ipv4: must use rcu protection while calling fib_lookup
    bnx2x: fix 57840_MF pci id
    net: ipv4: ipmr_expire_timer causes crash when removing net namespace
    e1000e: DoS while TSO enabled caused by link partner with small MSS
    l2tp: avoid to use synchronize_rcu in tunnel free function
    gianfar: fix default tx vlan offload feature flag
    netfilter: nf_nat_sip: fix incorrect handling of EBUSY for RTCP expectation
    xen-netfront: use __pskb_pull_tail to ensure linear area is big enough on RX
    netfilter: nfnetlink_log: fix error return code in init path
    ...

    Linus Torvalds
     

02 Sep, 2012

1 commit

  • Andreas Bombe reported that the added ktime_t overflow checking added to
    timespec_valid in commit 4e8b14526ca7 ("time: Improve sanity checking of
    timekeeping inputs") was causing problems with X.org because it caused
    timeouts larger then KTIME_T to be invalid.

    Previously, these large timeouts would be clamped to KTIME_MAX and would
    never expire, which is valid.

    This patch splits the ktime_t overflow checking into a new
    timespec_valid_strict function, and converts the timekeeping codes
    internal checking to use this more strict function.

    Reported-and-tested-by: Andreas Bombe
    Cc: Zhouping Liu
    Cc: Ingo Molnar
    Cc: Prarit Bhargava
    Cc: Thomas Gleixner
    Cc: stable@vger.kernel.org
    Signed-off-by: John Stultz
    Signed-off-by: Linus Torvalds

    John Stultz
     

01 Sep, 2012

1 commit


31 Aug, 2012

3 commits

  • Existing code assumes that del_timer returns true for alive conntrack
    entries. However, this is not true if reliable events are enabled.
    In that case, del_timer may return true for entries that were
    just inserted in the dying list. Note that packets / ctnetlink may
    hold references to conntrack entries that were just inserted to such
    list.

    This patch fixes the issue by adding an independent timer for
    event delivery. This increases the size of the ecache extension.
    Still we can revisit this later and use variable size extensions
    to allocate this area on demand.

    Tested-by: Oliver Smith
    Signed-off-by: Pablo Neira Ayuso

    Pablo Neira Ayuso
     
  • Commit c3def943c7117d42caaed3478731ea7c3c87190e have added support for
    new pci ids of the 57840 board, while failing to change the obsolete value
    in 'pci_ids.h'.
    This patch does so, allowing the probe of such devices.

    Signed-off-by: Yuval Mintz
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yuval Mintz
     
  • Pull drm fixes from Dave Airlie:
    "A bunch of scattered fixes ati/intel/nouveau, couple of core ones,
    nothing too shocking or different."

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S
    gma500: Consider CRTC initially active.
    drm/radeon: fix dig encoder selection on DCE61
    drm/radeon: fix double free in radeon_gpu_reset
    drm/radeon: force dma32 to fix regression rs4xx,rs6xx,rs740
    drm/radeon: rework panel mode setup
    drm/radeon/atom: powergating fixes for DCE6
    drm/radeon/atom: rework DIG modesetting on DCE3+
    drm/radeon: don't disable plls that are in use by other crtcs
    drm/radeon: add proper checking of RESOLVE_BOX command for r600-r700
    drm/radeon: initialize tracked CS state
    drm/radeon: fix reading CB_COLORn_MASK from the CS
    drm/nvc0/copy: check PUNITS to determine which copy engines are disabled
    i915: Quirk no_lvds on Gigabyte GA-D525TUD ITX motherboard
    drm/i915: Use the correct size of the GTT for placing the per-process entries
    drm: Check for invalid cursor flags
    drm: Initialize object type when using DRM_MODE() macro
    drm/i915: fix color order for BGR formats on IVB
    drm/i915: fix wrong order of parameters in port checking functions

    Linus Torvalds
     

26 Aug, 2012

3 commits

  • Pull arm-soc fixes from Arnd Bergmann:
    "Bug fixes for various ARM platforms. About half of these are for OMAP
    and submitted before but did not make it into v3.6-rc2."

    * tag 'fixes-3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
    ARM: ux500: don't select LEDS_GPIO for snowball
    ARM: imx: build i.MX6 functions only when needed
    ARM: imx: select CPU_FREQ_TABLE when needed
    ARM: imx: fix ksz9021rn_phy_fixup
    ARM: imx: build pm-imx5 code only when PM is enabled
    ARM: omap: allow building omap44xx without SMP
    ARM: dts: imx51-babbage: fix esdhc cd/wp properties
    ARM: imx6: spin the cpu until hardware takes it down
    ARM: ux500: Ensure probing of Audio devices when Device Tree is enabled
    ARM: ux500: Fix merge error, no matching driver name for 'snd_soc_u8500'
    ARM i.MX6q: Add virtual 1/3.5 dividers in the LDB clock path
    ARM: Kirkwood: fix Makefile.boot
    ARM: Kirkwood: Fix iconnect leds
    ARM: Orion: Set eth packet size csum offload limit
    ARM: mv78xx0: fix win_cfg_base prototype
    ARM: OMAP: dmtimers: Fix locking issue in omap_dm_timer_request*()
    ARM: mmp: fix potential NULL dereference
    ARM: OMAP4: Register the OPP table only for 4430 device
    cpufreq: OMAP: Handle missing frequency table on SMP systems
    ARM: OMAP4: sleep: Save the complete used register stack frame
    ...

    Linus Torvalds
     
  • Pull three xen bug-fixes from Konrad Rzeszutek Wilk:
    - Revert the kexec fix which caused on non-kexec shutdowns a race.
    - Reuse existing P2M leafs - instead of requiring to allocate a large
    area of bootup virtual address estate.
    - Fix a one-off error when adding PFNs for balloon pages.

    * tag 'stable/for-linus-3.6-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/setup: Fix one-off error when adding for-balloon PFNs to the P2M.
    xen/p2m: Reuse existing P2M leafs if they are filled with 1:1 PFNs or INVALID.
    Revert "xen PVonHVM: move shared_info to MMIO before kexec"

    Linus Torvalds
     
  • Pull block-related fixes from Jens Axboe:

    - Improvements to the buffered and direct write IO plugging from
    Fengguang.

    - Abstract out the mapping of a bio in a request, and use that to
    provide a blk_bio_map_sg() helper. Useful for mapping just a bio
    instead of a full request.

    - Regression fix from Hugh, fixing up a patch that went into the
    previous release cycle (and marked stable, too) attempting to prevent
    a loop in __getblk_slow().

    - Updates to discard requests, fixing up the sizing and how we align
    them. Also a change to disallow merging of discard requests, since
    that doesn't really work properly yet.

    - A few drbd fixes.

    - Documentation updates.

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: replace __getblk_slow misfix by grow_dev_page fix
    drbd: Write all pages of the bitmap after an online resize
    drbd: Finish requests that completed while IO was frozen
    drbd: fix drbd wire compatibility for empty flushes
    Documentation: update tunable options in block/cfq-iosched.txt
    Documentation: update tunable options in block/cfq-iosched.txt
    Documentation: update missing index files in block/00-INDEX
    block: move down direct IO plugging
    block: remove plugging at buffered write time
    block: disable discard request merge temporarily
    bio: Fix potential memory leak in bio_find_or_create_slab()
    block: Don't use static to define "void *p" in show_partition_start()
    block: Add blk_bio_map_sg() helper
    block: Introduce __blk_segment_map_sg() helper
    fs/block-dev.c:fix performance regression in O_DIRECT writes to md block devices
    block: split discard into aligned requests
    block: reorganize rounding of max_discard_sectors

    Linus Torvalds
     

24 Aug, 2012

3 commits


23 Aug, 2012

7 commits

  • Small platform specific bug fixes for problems found in randconfig builds.

    * randconfig/mach:
    ARM: ux500: don't select LEDS_GPIO for snowball
    ARM: imx: build i.MX6 functions only when needed
    ARM: imx: select CPU_FREQ_TABLE when needed
    ARM: imx: fix ksz9021rn_phy_fixup
    ARM: imx: build pm-imx5 code only when PM is enabled
    ARM: omap: allow building omap44xx without SMP

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • The new omap4 cpuidle implementation currently requires
    ARCH_NEEDS_CPU_IDLE_COUPLED, which only works on SMP.

    This patch makes it possible to build a non-SMP kernel
    for that platform. This is not normally desired for
    end-users but can be useful for testing.

    Without this patch, building rand-0y2jSKT results in:

    drivers/cpuidle/coupled.c: In function 'cpuidle_coupled_poke':
    drivers/cpuidle/coupled.c:317:3: error: implicit declaration of function '__smp_call_function_single' [-Werror=implicit-function-declaration]

    It's not clear if this patch is the best solution for
    the problem at hand. I have made sure that we can now
    build the kernel in all configurations, but that does
    not mean it will actually work on an OMAP44xx.

    Signed-off-by: Arnd Bergmann
    Acked-by: Santosh Shilimkar
    Tested-by: Santosh Shilimkar
    Cc: Kevin Hilman
    Cc: Tony Lindgren

    Arnd Bergmann
     
  • * 'imx/fixes-for-3.6' of git://git.linaro.org/people/shawnguo/linux-2.6:
    ARM: dts: imx51-babbage: fix esdhc cd/wp properties
    ARM: imx6: spin the cpu until hardware takes it down
    ARM i.MX6q: Add virtual 1/3.5 dividers in the LDB clock path

    Also updates to Linux 3.6-rc2

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Pull drm fixes from Dave Airlie:
    "Intel: edid fixes, power consumption fix, s/r fix, haswell fix

    Radeon: BIOS loading fixes for UEFI and Thunderbolt machines, better
    MSAA validation, lockup timeout fixes, modesetting fixes

    One udl dpms fix, one vmwgfx fix, a couple of trivial core changes.

    There is an export added to ACPI as part of the radeon bios fixes.

    I've also included the fbcon flashing cursor vs deinit race fix, that
    seems the simplest place to start"

    Trivial conflict in drivers/video/console/fbcon.c due to me having
    already applied the fbcon flashing cursor vs deinit race fix, and Dave
    had added a comment in there too.

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (22 commits)
    fbcon: fix race condition between console lock and cursor timer (v1.1)
    drm: Add missing static storage class specifiers in drm_proc.c file
    drm/udl: dpms off the crtc when disabled.
    drm: Remove two unused fields from struct drm_display_mode
    drm: stop vmgfx driver explosion
    drm/radeon/ss: use num_crtc rather than hardcoded 6
    Revert "drm/radeon: fix bo creation retry path"
    drm/i915: use hsw rps tuning values everywhere on gen6+
    drm/radeon: split ATRM support out from the ATPX handler (v3)
    drm/radeon: convert radeon vfct code to use acpi_get_table_with_size
    ACPI: export symbol acpi_get_table_with_size
    drm/radeon: implement ACPI VFCT vbios fetch (v3)
    drm/radeon/kms: extend the Fujitsu D3003-S2 board connector quirk to cover later silicon stepping
    drm/radeon: fix checking of MSAA renderbuffers on r600-r700
    drm/radeon: allow CMASK and FMASK in the CS checker on r600-r700
    drm/radeon: init lockup timeout on ring init
    drm/radeon: avoid turning off spread spectrum for used pll
    drm/i915: fall back to bit-banging if GMBUS fails in CRT EDID reads
    drm/i915: extract connector update from intel_ddc_get_modes() for reuse
    drm/i915: fix hsw uncached pte
    ...

    Linus Torvalds
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "The executive summary includes:

    - Post-merge review comments for tcm_vhost (MST + nab)
    - Avoid debugging overhead when not debugging for tcm-fc(FCoE) (MDR)
    - Fix NULL pointer dereference bug on alloc_page failulre (Yi Zou)
    - Fix REPORT_LUNs regression bug with pSCSI export (AlexE + nab)
    - Fix regression bug with handling of zero-length data CDBs (nab)
    - Fix vhost_scsi_target structure alignment (MST)

    Thanks again to everyone who contributed a bugfix patch, gave review
    feedback on tcm_vhost code, and/or reported a bug during their own
    testing over the last weeks.

    There is one other outstanding bug reported by Roland recently related
    to SCSI transfer length overflow handling, for which the current
    proposed bugfix has been left in queue pending further testing with
    other non iscsi-target based fabric drivers.

    As the patch is verified with loopback (local SGL memory from SCSI
    LLD) + tcm_qla2xxx (TCM allocated SGL memory mapped to PCI HW) fabric
    ports, it will be included into the next 3.6-rc-fixes PULL request."

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: Remove unused se_cmd.cmd_spdtl
    tcm_fc: rcu_deref outside rcu lock/unlock section
    tcm_vhost: Fix vhost_scsi_target structure alignment
    target: Fix regression bug with handling of zero-length data CDBs
    target/pscsi: Fix bug with REPORT_LUNs handling for SCSI passthrough
    tcm_vhost: Change vhost_scsi_target->vhost_wwpn to char *
    target: fix NULL pointer dereference bug alloc_page() fails to get memory
    tcm_fc: Avoid debug overhead when not debugging
    tcm_vhost: Post-merge review changes requested by MST
    tcm_vhost: Fix incorrect IS_ERR() usage in vhost_scsi_map_iov_to_sgl

    Linus Torvalds
     
  • Pull NFS client bugfixes from Trond Myklebust:
    - NFSv3 mounts need to fail if the FSINFO rpc call fails
    - Ensure that the NFS commit cache gets torn down when we unload the
    NFS module.
    - Fix memory scribble issues when interrupting a LAYOUTGET rpc call
    - Fix NFSv4 legacy idmapper regressions
    - Fix issues with the NFSv4 getacl command
    - Fix a regression when using the legacy "mount -t nfs4"

    * tag 'nfs-for-3.6-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFSv3: Ensure that do_proc_get_root() reports errors correctly
    NFSv4: Ensure that nfs4_alloc_client cleans up on error.
    NFS: return -ENOKEY when the upcall fails to map the name
    NFS: Clear key construction data if the idmap upcall fails
    NFSv4: Don't use private xdr_stream fields in decode_getacl
    NFSv4: Fix the acl cache size calculation
    NFSv4: Fix pointer arithmetic in decode_getacl
    NFS: Alias the nfs module to nfs4
    NFS: Fix a regression when loading the NFS v4 module
    NFSv4.1: Remove a bogus BUG_ON() in nfs4_layoutreturn_done
    pnfs-obj: Better IO pattern in case of unaligned offset
    NFS41: add pg_layout_private to nfs_pageio_descriptor
    pnfs: nfs4_proc_layoutget returns void
    pnfs: defer release of pages in layoutget
    nfs: tear down caches in nfs_init_writepagecache when allocation fails

    Linus Torvalds
     
  • Pull assorted fixes - mostly vfs - from Al Viro:
    "Assorted fixes, with an unexpected detour into vfio refcounting logics
    (fell out when digging in an analog of eventpoll race in there)."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    task_work: add a scheduling point in task_work_run()
    fs: fix fs/namei.c kernel-doc warnings
    eventpoll: use-after-possible-free in epoll_create1()
    vfio: grab vfio_device reference *before* exposing the sucker via fd_install()
    vfio: get rid of vfio_device_put()/vfio_group_get_device* races
    vfio: get rid of open-coding kref_put_mutex
    introduce kref_put_mutex()
    vfio: don't dereference after kfree...
    mqueue: lift mnt_want_write() outside ->i_mutex, clean up a bit

    Linus Torvalds
     

22 Aug, 2012

10 commits

  • equivalent of
    mutex_lock(mutex);
    if (!kref_put(kref, release))
    mutex_unlock(mutex);

    Signed-off-by: Al Viro

    Al Viro
     
  • Merge fixes from Andrew Morton.

    Random drivers and some VM fixes.

    * emailed patches from Andrew Morton : (17 commits)
    mm: compaction: Abort async compaction if locks are contended or taking too long
    mm: have order > 0 compaction start near a pageblock with free pages
    rapidio/tsi721: fix unused variable compiler warning
    rapidio/tsi721: fix inbound doorbell interrupt handling
    drivers/rtc/rtc-rs5c348.c: fix hour decoding in 12-hour mode
    mm: correct page->pfmemalloc to fix deactivate_slab regression
    drivers/rtc/rtc-pcf2123.c: initialize dynamic sysfs attributes
    mm/compaction.c: fix deferring compaction mistake
    drivers/misc/sgi-xp/xpc_uv.c: SGI XPC fails to load when cpu 0 is out of IRQ resources
    string: do not export memweight() to userspace
    hugetlb: update hugetlbpage.txt
    checkpatch: add control statement test to SINGLE_STATEMENT_DO_WHILE_MACRO
    mm: hugetlbfs: correctly populate shared pmd
    cciss: fix incorrect scsi status reporting
    Documentation: update mount option in filesystem/vfat.txt
    mm: change nr_ptes BUG_ON to WARN_ON
    cs5535-clockevt: typo, it's MFGPT, not MFPGT

    Linus Torvalds
     
  • Pull networking update from David Miller:
    "A couple weeks of bug fixing in there. The largest chunk is all the
    broken crap Amerigo Wang found in the netpoll layer."

    1) netpoll and it's users has several serious bugs:
    a) uses GFP_KERNEL with locks held
    b) interfaces requiring interrupts disabled are called with them
    enabled
    c) and vice versa
    d) VLAN tag demuxing, as per all other RX packet input paths, is not
    applied

    All from Amerigo Wang.

    2) Hopefully cure the ipv4 mapped ipv6 address TCP early demux bugs for
    good, from Neal Cardwell.

    3) Unlike AF_UNIX, AF_PACKET sockets don't set a default credentials
    when the user doesn't specify one explicitly during sendmsg().
    Instead we attach an empty (zero) SCM credential block which is
    definitely not what we want. Fix from Eric Dumazet.

    4) IPv6 illegally invokes netdevice notifiers with RCU lock held, fix
    from Ben Hutchings.

    5) inet_csk_route_child_sock() checks wrong inet options pointer, fix
    from Christoph Paasch.

    6) When AF_PACKET is used for transmit, packet loopback doesn't behave
    properly when a socket fanout is enabled, from Eric Leblond.

    7) On bluetooth l2cap channel create failure, we leak the socket, from
    Jaganath Kanakkassery.

    8) Fix all the netprio file handling bugs found by Al Viro, from John
    Fastabend.

    9) Several error return and NULL deref bug fixes in networking drivers
    from Julia Lawall.

    10) A large smattering of struct padding et al. kernel memory leaks to
    userspace found of Mathias Krause.

    11) Conntrack expections in netfilter can access an uninitialized timer,
    fix from Pablo Neira Ayuso.

    12) Several netfilter SIP tracker bug fixes from Patrick McHardy.

    13) IPSEC ipv6 routes are not initialized correctly all the time,
    resulting in an OOPS in inet_putpeer(). Also from Patrick McHardy.

    14) Bridging does rcu_dereference() outside of RCU protected area, from
    Stephen Hemminger.

    15) Fix routing cache removal performance regression when looking up
    output routes that have a local destination. From Zheng Yan.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (87 commits)
    af_netlink: force credentials passing [CVE-2012-3520]
    ipv4: fix ip header ident selection in __ip_make_skb()
    ipv4: Use newinet->inet_opt in inet_csk_route_child_sock()
    tcp: fix possible socket refcount problem
    net: tcp: move sk_rx_dst_set call after tcp_create_openreq_child()
    net/core/dev.c: fix kernel-doc warning
    netconsole: remove a redundant netconsole_target_put()
    net: ipv6: fix oops in inet_putpeer()
    net/stmmac: fix issue of clk_get for Loongson1B.
    caif: Do not dereference NULL in chnl_recv_cb()
    af_packet: don't emit packet on orig fanout group
    drivers/net/irda: fix error return code
    drivers/net/wan/dscc4.c: fix error return code
    drivers/net/wimax/i2400m/fw.c: fix error return code
    smsc75xx: add missing entry to MAINTAINERS
    net: qmi_wwan: new devices: UML290 and K5006-Z
    net: sh_eth: Add eth support for R8A7779 device
    netdev/phy: skip disabled mdio-mux nodes
    dt: introduce for_each_available_child_of_node, of_get_next_available_child
    net: netprio: fix cgrp create and write priomap race
    ...

    Linus Torvalds
     
  • Jim Schutt reported a problem that pointed at compaction contending
    heavily on locks. The workload is straight-forward and in his own words;

    The systems in question have 24 SAS drives spread across 3 HBAs,
    running 24 Ceph OSD instances, one per drive. FWIW these servers
    are dual-socket Intel 5675 Xeons w/48 GB memory. I've got ~160
    Ceph Linux clients doing dd simultaneously to a Ceph file system
    backed by 12 of these servers.

    Early in the test everything looks fine

    procs -------------------memory------------------ ---swap-- -----io---- --system-- -----cpu-------
    r b swpd free buff cache si so bi bo in cs us sy id wa st
    31 15 0 287216 576 38606628 0 0 2 1158 2 14 1 3 95 0 0
    27 15 0 225288 576 38583384 0 0 18 2222016 203357 134876 11 56 17 15 0
    28 17 0 219256 576 38544736 0 0 11 2305932 203141 146296 11 49 23 17 0
    6 18 0 215596 576 38552872 0 0 7 2363207 215264 166502 12 45 22 20 0
    22 18 0 226984 576 38596404 0 0 3 2445741 223114 179527 12 43 23 22 0

    and then it goes to pot

    procs -------------------memory------------------ ---swap-- -----io---- --system-- -----cpu-------
    r b swpd free buff cache si so bi bo in cs us sy id wa st
    163 8 0 464308 576 36791368 0 0 11 22210 866 536 3 13 79 4 0
    207 14 0 917752 576 36181928 0 0 712 1345376 134598 47367 7 90 1 2 0
    123 12 0 685516 576 36296148 0 0 429 1386615 158494 60077 8 84 5 3 0
    123 12 0 598572 576 36333728 0 0 1107 1233281 147542 62351 7 84 5 4 0
    622 7 0 660768 576 36118264 0 0 557 1345548 151394 59353 7 85 4 3 0
    223 11 0 283960 576 36463868 0 0 46 1107160 121846 33006 6 93 1 1 0

    Note that system CPU usage is very high blocks being written out has
    dropped by 42%. He analysed this with perf and found

    perf record -g -a sleep 10
    perf report --sort symbol --call-graph fractal,5
    34.63% [k] _raw_spin_lock_irqsave
    |
    |--97.30%-- isolate_freepages
    | compaction_alloc
    | unmap_and_move
    | migrate_pages
    | compact_zone
    | compact_zone_order
    | try_to_compact_pages
    | __alloc_pages_direct_compact
    | __alloc_pages_slowpath
    | __alloc_pages_nodemask
    | alloc_pages_vma
    | do_huge_pmd_anonymous_page
    | handle_mm_fault
    | do_page_fault
    | page_fault
    | |
    | |--87.39%-- skb_copy_datagram_iovec
    | | tcp_recvmsg
    | | inet_recvmsg
    | | sock_recvmsg
    | | sys_recvfrom
    | | system_call
    | | __recv
    | | |
    | | --100.00%-- (nil)
    | |
    | --12.61%-- memcpy
    --2.70%-- [...]

    There was other data but primarily it is all showing that compaction is
    contended heavily on the zone->lock and zone->lru_lock.

    commit [b2eef8c0: mm: compaction: minimise the time IRQs are disabled
    while isolating pages for migration] noted that it was possible for
    migration to hold the lru_lock for an excessive amount of time. Very
    broadly speaking this patch expands the concept.

    This patch introduces compact_checklock_irqsave() to check if a lock
    is contended or the process needs to be scheduled. If either condition
    is true then async compaction is aborted and the caller is informed.
    The page allocator will fail a THP allocation if compaction failed due
    to contention. This patch also introduces compact_trylock_irqsave()
    which will acquire the lock only if it is not contended and the process
    does not need to schedule.

    Reported-by: Jim Schutt
    Tested-by: Jim Schutt
    Signed-off-by: Mel Gorman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Fix the following warning:

    usr/include/linux/string.h:8: userspace cannot reference function or variable defined in the kernel

    Signed-off-by: WANG Cong
    Acked-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    WANG Cong
     
  • Signed-off-by: Damien Lespiau
    Reviewed-by: Jani Nikula
    Signed-off-by: Dave Airlie

    Damien Lespiau
     
  • Pablo Neira Ayuso discovered that avahi and
    potentially NetworkManager accept spoofed Netlink messages because of a
    kernel bug. The kernel passes all-zero SCM_CREDENTIALS ancillary data
    to the receiver if the sender did not provide such data, instead of not
    including any such data at all or including the correct data from the
    peer (as it is the case with AF_UNIX).

    This bug was introduced in commit 16e572626961
    (af_unix: dont send SCM_CREDENTIALS by default)

    This patch forces passing credentials for netlink, as
    before the regression.

    Another fix would be to not add SCM_CREDENTIALS in
    netlink messages if not provided by the sender, but it
    might break some programs.

    With help from Florian Weimer & Petr Matousek

    This issue is designated as CVE-2012-3520

    Signed-off-by: Eric Dumazet
    Cc: Petr Matousek
    Cc: Florian Weimer
    Cc: Pablo Neira Ayuso
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • This was originally for helping fabrics to determine overflow/underflow
    status, and has been superceeded by SCF_OVERFLOW_BIT + SCF_UNDERFLOW_BIT.

    Signed-off-by: Roland Dreier
    Signed-off-by: Nicholas Bellinger

    Roland Dreier
     
  • …git/linusw/linux-pinctrl

    Pull pin control fixes from Linus Walleij:
    - Fixed Nomadik errorpath
    - Fixed documentation spelling errors
    - Forward-declare struct device in a header file
    - Remove some extraneous code lines when getting pinctrl states
    - Correct the i.MX51 configure register number
    - Fix the Nomadik keypad function group list

    * tag 'pinctrl-fixes-v3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl/nomadik: add kp_b_2 keyboard function group list
    pinctrl: imx51: fix .conf_reg of MX51_PAD_SD2_CMD__CSPI_MOSI
    trivial: pinctrl core: remove extraneous code lines
    pinctrl: header: trivial: declare struct device
    Documentation/pinctrl.txt: Fix some misspelled macros
    pinctrl/nomadik: fix null in irqdomain errorpath

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "This update became slightly bigger than usual for rc3, but most of the
    commits are small and trivial. A large chunk is found for HD-audio
    ca0132 codec, which is mostly a clean up of the specific code, to make
    SPDIF working properly, and also in the new ASoC Arizona driver.

    One important fix is for usb-audio Oops fix since 3.5. We still see
    some EHCI related bandwidth problem, but usb-audio should be more
    stabilized now.

    Other than that, a Kconfig fix is spread over files, and various
    HD-audio and ASoC fixes as usual, in addition to Julia's error path
    fixes."

    * tag 'sound-3.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (42 commits)
    ALSA: snd-als100: fix suspend/resume
    ALSA: hda - Fix leftover codec->power_transition
    ALSA: hda - don't create dysfunctional mixer controls for ca0132
    ALSA: sound/ppc/snd_ps3.c: fix error return code
    ALSA: sound/pci/rme9652/hdspm.c: fix error return code
    ALSA: sound/pci/sis7019.c: fix error return code
    ALSA: sound/pci/ctxfi/ctatc.c: fix error return code
    ALSA: sound/atmel/ac97c.c: fix error return code
    ALSA: sound/atmel/abdac.c: fix error return code
    ALSA: fix pcm.h kernel-doc warning and notation
    sound: oss/sb_audio: prevent divide by zero bug
    ASoC: wm9712: Fix inverted capture volume
    ASoC: wm9712: Fix microphone source selection
    ASoC: wm5102: Remove DRC2
    ALSA: hda - Don't send invalid volume knob command on IDT 92hd75bxx
    ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream
    ALSA: lx6464es: Add a missing error check
    ALSA: hda - Fix 'Beep Playback Switch' with no underlying mute switch
    ASoC: jack: Always notify full jack status
    ASoC: wm5110: Add missing input PGA routes
    ...

    Linus Torvalds
     

21 Aug, 2012

3 commits


20 Aug, 2012

6 commits

  • The archs that implement virtual cputime accounting all
    flush the cputime of a task when it gets descheduled
    and sometimes set up some ground initialization for the
    next task to account its cputime.

    These archs all put their own hooks in their context
    switch callbacks and handle the off-case themselves.

    Consolidate this by creating a new account_switch_vtime()
    callback called in generic code right after a context switch
    and that these archs must implement to flush the prev task
    cputime and initialize the next task cputime related state.

    Signed-off-by: Frederic Weisbecker
    Acked-by: Martin Schwidefsky
    Cc: Tony Luck
    Cc: Fenghua Yu
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Heiko Carstens
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: Peter Zijlstra

    Frederic Weisbecker
     
  • Commit 97bab73f (inet: Hide route peer accesses behind helpers.) introduced
    a bug in xfrm6_policy_destroy(). The xfrm_dst's _rt6i_peer member is not
    initialized, causing a false positive result from inetpeer_ptr_is_peer(),
    which in turn causes a NULL pointer dereference in inet_putpeer().

    Pid: 314, comm: kworker/0:1 Not tainted 3.6.0-rc1+ #17 To Be Filled By O.E.M. To Be Filled By O.E.M./P4S800D-X
    EIP: 0060:[] EFLAGS: 00010246 CPU: 0
    EIP is at inet_putpeer+0xe/0x16
    EAX: 00000000 EBX: f3481700 ECX: 00000000 EDX: 000dd641
    ESI: f3481700 EDI: c05e949c EBP: f551def4 ESP: f551def4
    DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
    CR0: 8005003b CR2: 00000070 CR3: 3243d000 CR4: 00000750
    DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
    DR6: ffff0ff0 DR7: 00000400
    f551df04 c0423de1 00000000 f3481700 f551df18 c038d5f7 f254b9f8 f551df28
    f34f85d8 f551df20 c03ef48d f551df3c c0396870 f30697e8 f24e1738 c05e98f4
    f5509540 c05cd2b4 f551df7c c0142d2b c043feb5 f5509540 00000000 c05cd2e8
    [] xfrm6_dst_destroy+0x42/0xdb
    [] dst_destroy+0x1d/0xa4
    [] xfrm_bundle_flo_delete+0x2b/0x36
    [] flow_cache_gc_task+0x85/0x9f
    [] process_one_work+0x122/0x441
    [] ? apic_timer_interrupt+0x31/0x38
    [] ? flow_cache_new_hashrnd+0x2b/0x2b
    [] worker_thread+0x113/0x3cc

    Fix by adding a init_dst() callback to struct xfrm_policy_afinfo to
    properly initialize the dst's peer pointer.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • Pable Neira Ayuso says:

    ====================
    The following five patches contain fixes for 3.6-rc, they are:

    * Two fixes for message parsing in the SIP conntrack helper, from
    Patrick McHardy.

    * One fix for the SIP helper introduced in the user-space cthelper
    infrastructure, from Patrick McHardy.

    * fix missing appropriate locking while modifying one conntrack entry
    from the nfqueue integration code, from myself.

    * fix possible access to uninitiliazed timer in the nf_conntrack
    expectation infrastructure, from myself.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • If a packet is emitted on one socket in one group of fanout sockets,
    it is transmitted again. It is thus read again on one of the sockets
    of the fanout group. This result in a loop for software which
    generate packets when receiving one.
    This retransmission is not the intended behavior: a fanout group
    must behave like a single socket. The packet should not be
    transmitted on a socket if it originates from a socket belonging
    to the same fanout group.

    This patch fixes the issue by changing the transmission check to
    take fanout group info account.

    Reported-by: Aleksandr Kotov
    Signed-off-by: Eric Leblond
    Signed-off-by: David S. Miller

    Eric Leblond
     
  • Macro for_each_child_of_node() makes it easy to iterate over all of the
    children for a given device tree node, including those nodes that are
    marked as unavailable (i.e. status = "disabled").

    Introduce for_each_available_child_of_node(), which is like
    for_each_child_of_node(), but it automatically skips unavailable nodes.
    This also requires the introduction of helper function
    of_get_next_available_child(), which returns the next available child
    node.

    Signed-off-by: Timur Tabi
    Signed-off-by: David S. Miller

    Timur Tabi
     
  • Fix kernel-doc warning in and add function name to make
    the kernel-doc notation complete.

    Warning(include/sound/pcm.h:1081): No description found for parameter 'substream'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Takashi Iwai

    Randy Dunlap
     

18 Aug, 2012

1 commit

  • Pull staging fixes from Greg Kroah-Hartman:
    "Here are some staging driver fixes (and iio driver fixes, they get
    lumped in with the staging stuff due to dependancies) for your 3.6-rc3
    tree.

    Nothing major, just a bunch of fixes that people have reported.

    Signed-off-by: Greg Kroah-Hartman "

    * tag 'staging-3.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (26 commits)
    iio: lm3533-als: Fix build warnings
    staging:iio:ad7780: Mark channels as unsigned
    staging:iio:ad7192: Report offset and scale for temperature channel
    staging:iio:ad7192: Report channel offset
    staging:iio:ad7192: Mark channels as unsigned
    staging:iio:ad7192: Fix setting ACX
    staging:iio:ad7192: Add missing break in switch statement
    staging:iio:ad7793: Fix internal reference value
    staging:iio:ad7793: Follow new IIO naming spec
    staging:iio:ad7793: Fix temperature scale and offset
    staging:iio:ad7793: Report channel offset
    staging:iio:ad7793: Mark channels as unsigned
    staging:iio:ad7793: Add missing break in switch statement
    iio/adjd_s311: Fix potential memory leak in adjd_s311_update_scan_mode()
    iio: frequency: ADF4350: Fix potential reference div factor overflow.
    iio: staging: ad7298_ring: Fix maybe-uninitialized warning
    staging: comedi: usbduxfast: Declare MODULE_FIRMWARE usage
    staging: comedi: usbdux: Declare MODULE_FIRMWARE usage
    staging: comedi: usbduxsigma: Declare MODULE_FIRMWARE usage
    staging: csr: add INET dependancy
    ...

    Linus Torvalds