11 Jan, 2012

6 commits

  • Rename mm_page_free_direct into mm_page_free and mm_pagevec_free into
    mm_page_free_batched

    Since v2.6.33-5426-gc475dab the kernel triggers mm_page_free_direct for
    all freed pages, not only for directly freed. So, let's name it properly.
    For pages freed via page-list we also trigger mm_page_free_batched event.

    Signed-off-by: Konstantin Khlebnikov
    Cc: Mel Gorman
    Cc: KOSAKI Motohiro
    Reviewed-by: Minchan Kim
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • It not exported and now nobody uses it.

    Signed-off-by: Konstantin Khlebnikov
    Cc: Mel Gorman
    Cc: KOSAKI Motohiro
    Reviewed-by: Minchan Kim
    Acked-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • This patch adds helper free_hot_cold_page_list() to free list of 0-order
    pages. It frees pages directly from list without temporary page-vector.
    It also calls trace_mm_pagevec_free() to simulate pagevec_free()
    behaviour.

    bloat-o-meter:

    add/remove: 1/1 grow/shrink: 1/3 up/down: 267/-295 (-28)
    function old new delta
    free_hot_cold_page_list - 264 +264
    get_page_from_freelist 2129 2132 +3
    __pagevec_free 243 239 -4
    split_free_page 380 373 -7
    release_pages 606 510 -96
    free_page_list 188 - -188

    Signed-off-by: Konstantin Khlebnikov
    Cc: Mel Gorman
    Cc: KOSAKI Motohiro
    Acked-by: Minchan Kim
    Acked-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • Logic added in commit 8cab4754d24a0 ("vmscan: make mapped executable pages
    the first class citizen") was noticeably weakened in commit
    645747462435d84 ("vmscan: detect mapped file pages used only once").

    Currently these pages can become "first class citizens" only after second
    usage. After this patch page_check_references() will activate they after
    first usage, and executable code gets yet better chance to stay in memory.

    Signed-off-by: Konstantin Khlebnikov
    Cc: Pekka Enberg
    Cc: Minchan Kim
    Cc: KAMEZAWA Hiroyuki
    Cc: Wu Fengguang
    Cc: Johannes Weiner
    Cc: Nick Piggin
    Cc: Mel Gorman
    Cc: Shaohua Li
    Cc: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • Commit 645747462435 ("vmscan: detect mapped file pages used only once")
    greatly decreases lifetime of single-used mapped file pages.
    Unfortunately it also decreases life time of all shared mapped file
    pages. Because after commit bf3f3bc5e7347 ("mm: don't mark_page_accessed
    in fault path") page-fault handler does not mark page active or even
    referenced.

    Thus page_check_references() activates file page only if it was used twice
    while it stays in inactive list, meanwhile it activates anon pages after
    first access. Inactive list can be small enough, this way reclaimer can
    accidentally throw away any widely used page if it wasn't used twice in
    short period.

    After this patch page_check_references() also activate file mapped page at
    first inactive list scan if this page is already used multiple times via
    several ptes.

    I found this while trying to fix degragation in rhel6 (~2.6.32) from rhel5
    (~2.6.18). There a complete mess with >100 web/mail/spam/ftp containers,
    they share all their files but there a lot of anonymous pages: ~500mb
    shared file mapped memory and 15-20Gb non-shared anonymous memory. In
    this situation major-pagefaults are very costly, because all containers
    share the same page. In my load kernel created a disproportionate
    pressure on the file memory, compared with the anonymous, they equaled
    only if I raise swappiness up to 150 =)

    These patches actually wasn't helped a lot in my problem, but I saw
    noticable (10-20 times) reduce in count and average time of
    major-pagefault in file-mapped areas.

    Actually both patches are fixes for commit v2.6.33-5448-g6457474, because
    it was aimed at one scenario (singly used pages), but it breaks the logic
    in other scenarios (shared and/or executable pages)

    Signed-off-by: Konstantin Khlebnikov
    Acked-by: Pekka Enberg
    Acked-by: Minchan Kim
    Reviewed-by: KAMEZAWA Hiroyuki
    Cc: Wu Fengguang
    Cc: Johannes Weiner
    Cc: Nick Piggin
    Cc: Mel Gorman
    Cc: Shaohua Li
    Cc: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • The tracing ring-buffer used this function briefly, but not anymore.
    Make it local to the writeback code again.

    Also, move the function so that no forward declaration needs to be
    reintroduced.

    Signed-off-by: Johannes Weiner
    Acked-by: Mel Gorman
    Reviewed-by: Michal Hocko
    Cc: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     

10 Jan, 2012

34 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    vfs: new helper - d_make_root()
    dcache: use a dispose list in select_parent
    ceph: d_alloc_root() may fail
    ext4: fix failure exits
    isofs: inode leak on mount failure

    Linus Torvalds
     
  • d_alloc_root() with iput() in case of allocation failure...

    Signed-off-by: Al Viro

    Al Viro
     
  • select_parent currently abuses the dentry cache LRU to provide
    cleanup features for child dentries that need to be freed. It moves
    them to the tail of the LRU, then tells shrink_dcache_parent() to
    calls __shrink_dcache_sb to unconditionally move them to a dispose
    list (as DCACHE_REFERENCED is ignored). __shrink_dcache_sb() has to
    relock the dentries to move them off the LRU onto the dispose list,
    but otherwise does not touch the dentries that select_parent() moved
    to the tail of the LRU. It then passses the dispose list to
    shrink_dentry_list() which tries to free the dentries.

    IOWs, the use of __shrink_dcache_sb() is superfluous - we can build
    exactly the same list of dentries for disposal directly in
    select_parent() and call shrink_dentry_list() instead of calling
    __shrink_dcache_sb() to do that. This means that we avoid long holds
    on the lru lock walking the LRU moving dentries to the dispose list
    We also avoid the need to relock each dentry just to move it off the
    LRU, reducing the numebr of times we lock each dentry to dispose of
    them in shrink_dcache_parent() from 3 to 2 times.

    Further, we remove one of the two callers of __shrink_dcache_sb().
    This also means that __shrink_dcache_sb can be moved into back into
    prune_dcache_sb() and we no longer have to handle referenced
    dentries conditionally, simplifying the code.

    Signed-off-by: Dave Chinner
    Signed-off-by: Linus Torvalds
    Signed-off-by: Al Viro

    Dave Chinner
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next:
    sparc32: remove unused file: include/asm/pgtsun4.h
    sparc32: fix PAGE_SIZE definition
    sparc32: enable different preemptions models
    sparc32: support atomic64_t
    apbuart: fix section mismatch warning
    sparc32: drop useless preprocessor conditional in atomic_32.h
    sparc32: drop unused atomic24 support

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    igmp: Avoid zero delay when receiving odd mixture of IGMP queries
    netdev: make net_device_ops const
    bcm63xx: make ethtool_ops const
    usbnet: make ethtool_ops const
    net: Fix build with INET disabled.
    net: introduce netif_addr_lock_nested() and call if when appropriate
    net: correct lock name in dev_[uc/mc]_sync documentations.
    net: sk_update_clone is only used in net/core/sock.c
    8139cp: fix missing napi_gro_flush.
    pktgen: set correct max and min in pktgen_setup_inject()
    smsc911x: Unconditionally include linux/smscphy.h in smsc911x.h
    asix: fix infinite loop in rx_fixup()
    net: Default UDP and UNIX diag to 'n'.
    r6040: fix typo in use of MCR0 register bits
    net: fix sock_clone reference mismatch with tcp memcontrol

    Linus Torvalds
     
  • clock management changes for i.MX

    Another simple series related to clock management, this time only for
    imx.

    * tag 'clk' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: mxs: select HAVE_CLK_PREPARE for clock
    clk: add config option HAVE_CLK_PREPARE into Kconfig
    ASoC: mxs-saif: convert to clk_prepare/clk_unprepare
    video: mxsfb: convert to clk_prepare/clk_unprepare
    serial: mxs-auart: convert to clk_prepare/clk_unprepare
    net: flexcan: convert to clk_prepare/clk_unprepare
    mtd: gpmi-lib: convert to clk_prepare/clk_unprepare
    mmc: mxs-mmc: convert to clk_prepare/clk_unprepare
    dma: mxs-dma: convert to clk_prepare/clk_unprepare
    net: fec: add clk_prepare/clk_unprepare
    ARM: mxs: convert platform code to clk_prepare/clk_unprepare
    clk: add helper functions clk_prepare_enable and clk_disable_unprepare

    Fix up trivial conflicts in drivers/net/ethernet/freescale/fec.c due to
    commit 0ebafefcaa7a ("net: fec: add clk_prepare/clk_unprepare") clashing
    trivially with commit e163cc97f9ac ("net/fec: fix the .remove code").

    Linus Torvalds
     
  • timer changes for msm

    A very simple series. We used to have more churn in the timer
    area, so this is kept separate. Will probably put this into the
    drivers series next time.

    * tag 'timer' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    msm: timer: Use clockevents_config_and_register()
    msm: timer: Setup interrupt after registering clockevent
    msm: timer: Remove SoC specific #ifdefs
    msm: timer: Remove msm_clocks[] and simplify code
    msm: timer: Fix ONESHOT mode interrupts
    msm: timer: Use GPT for clockevents and DGT for clocksource
    msm: timer: Cleanup #includes and #defines
    msm: timer: Tighten #ifdef for local timer support

    Linus Torvalds
     
  • power management changes for omap and imx

    A significant part of the changes for these two platforms went into
    power management, so they are split out into a separate branch.

    * tag 'pm' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (65 commits)
    ARM: imx6: remove __CPUINIT annotation from v7_invalidate_l1
    ARM: imx6: fix v7_invalidate_l1 by adding I-Cache invalidation
    ARM: imx6q: resume PL310 only when CACHE_L2X0 defined
    ARM: imx6q: build pm code only when CONFIG_PM selected
    ARM: mx5: use generic irq chip pm interface for pm functions on
    ARM: omap: pass minimal SoC/board data for UART from dt
    arm/dts: Add minimal device tree support for omap2420 and omap2430
    omap-serial: Add minimal device tree support
    omap-serial: Use default clock speed (48Mhz) if not specified
    omap-serial: Get rid of all pdev->id usage
    ARM: OMAP2+: hwmod: Add a new flag to handle hwmods left enabled at init
    ARM: OMAP4: PRM: use PRCM interrupt handler
    ARM: OMAP3: pm: use prcm chain handler
    ARM: OMAP: hwmod: add support for selecting mpu_irq for each wakeup pad
    ARM: OMAP2+: mux: add support for PAD wakeup interrupts
    ARM: OMAP: PRCM: add suspend prepare / finish support
    ARM: OMAP: PRCM: add support for chain interrupt handler
    ARM: OMAP3/4: PRM: add functions to read pending IRQs, PRM barrier
    ARM: OMAP2+: hwmod: Add API to enable IO ring wakeup
    ARM: OMAP2+: mux: add wakeup-capable hwmod mux entries to dynamic list
    ...

    Linus Torvalds
     
  • Driver specific changes

    Again, a lot of platforms have changes in here: pxa, samsung, omap,
    at91, imx, ...

    * tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)
    ARM: sa1100: clean up of the clock support
    ARM: pxa: add dummy clock for sa1100-rtc
    RTC: sa1100: support sa1100, pxa and mmp soc families
    RTC: sa1100: remove redundant code of setting alarm
    RTC: sa1100: Clean out ost register
    Input: zylonite-wm97xx - replace IRQ_GPIO() with gpio_to_irq()
    pcmcia: pxa: replace IRQ_GPIO() with gpio_to_irq()
    ARM: EXYNOS: Modified files for SPI consolidation work
    ARM: S5P64X0: Enable SDHCI support
    ARM: S5P64X0: Add lookup of sdhci-s3c clocks using generic names
    ARM: S5P64X0: Add HSMMC setup for host Controller
    ARM: EXYNOS: Add USB OHCI support to ORIGEN board
    USB: Add Samsung Exynos OHCI diver
    ARM: EXYNOS: Add USB OHCI support to SMDKV310 board
    ARM: EXYNOS: Add USB OHCI device
    net: macb: fix build break with !CONFIG_OF
    i2c: tegra: Support DVC controller in device tree
    i2c: tegra: Add __devinit/exit to probe/remove
    net/at91_ether: use gpio_is_valid for phy IRQ line
    ARM: at91/net: add macb ethernet controller in 9g45/9g20 DT
    ...

    Linus Torvalds
     
  • New feature development

    This adds support for new features, and contains stuff from most
    platforms. A number of these patches could have fit into other
    branches, too, but were small enough not to cause too much
    confusion here.

    * tag 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
    mfd/db8500-prcmu: remove support for early silicon revisions
    ARM: ux500: fix the smp_twd clock calculation
    ARM: ux500: remove support for early silicon revisions
    ARM: ux500: update register files
    ARM: ux500: register DB5500 PMU dynamically
    ARM: ux500: update ASIC detection for U5500
    ARM: ux500: support DB8520
    ARM: picoxcell: implement watchdog restart
    ARM: OMAP3+: hwmod data: Add the default clockactivity for I2C
    ARM: OMAP3: hwmod data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1
    ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP4
    ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3
    ARM: OMAP: hwmod data: Add support for AM35xx UART4/ttyO3
    ARM: Orion: Remove address map info from all platform data structures
    ARM: Orion: Get address map from plat-orion instead of via platform_data
    ARM: Orion: mbus_dram_info consolidation
    ARM: Orion: Consolidate the address map setup
    ARM: Kirkwood: Add configuration for MPP12 as GPIO
    ARM: Kirkwood: Recognize A1 revision of 6282 chip
    ARM: ux500: update the MOP500 GPIO assignments
    ...

    Linus Torvalds
     
  • Board-level changes

    This adds and extends support for specific boards on a number of
    ARM platforms: omap, imx, samsung, tegra, ...

    * tag 'boards' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (49 commits)
    Enable 32 bit flash support for iMX21ADS board
    ARM: mx31pdk: Add MC13783 RTC support
    iomux-mx25: configuration to support CSPI3 on CSI pins
    MX1:apf9328: Add i2c support
    mioa701: add newly available DoC G3 chip
    arm/tegra: remove __initdata annotation from pinmux tables
    arm/tegra: Use bus notifiers to trigger pinmux setup
    arm/tegra: Refactor board-*-pinmux.c to share code
    arm/tegra: Fix mistake in Trimslice's pinmux
    arm/tegra: Rework Seaboard-vs-Ventana pinmux table
    arm/tegra: Remove useless entries from ventana_pinmux[]
    arm/tegra: PCIe: Remove include of mach/pinmux.h
    arm/tegra: Harmony PCIe: Don't touch pinmux
    arm/tegra: Add AUXDATA for tegra-pinmux and tegra-gpio
    arm/tegra: Split Seaboard GPIO table to allow for Ventana
    ARM: imx6q: generate imx6q dtb files
    arm/imx6q: Rename Sabreauto to Armadillo2
    arm/imx6q-sabrelite: add enet phy ksz9021rn fixup
    arm/imx6: add imx6q sabrelite board support
    dts/imx: rename uart labels to consistent with hw spec
    ...

    Linus Torvalds
     
  • SoC-level changes for tegra and omap

    This adds support for the new tegra30 SoC, as well as small
    changes to support minor variations of existing omap SoCs.

    * tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (26 commits)
    arm/tegra: Compile tegra_dt_init_irq only when CONFIG_OF
    arm/tegra: Make MACH_TEGRA_DT depend on ARCH_TEGRA_2x_SOC
    arm/tegra: Delete tegra_init_clock()
    arm/tegra: Fix section mismatch errors in tegra30 pinmux
    arm/tegra: Fix section mismatch errors in tegra20 pinmux
    arm/tegra: refresh defconfig for tegra30
    arm/tegra: add support for tegra30 based board cardhu
    arm/tegra: implement support for tegra30
    arm/tegra: pinmux tables and definitions for tegra30
    arm/tegra: add new fields to struct tegra_pingroup_desc
    arm/tegra: prepare pinmux code for multiple tegra variants
    arm/tegra: rename tegra20 pinmux files
    arm/tegra: generalize L2 cache initialization
    arm/tegra: use PMC reset
    arm/tegra: rename board-dt.c to board-dt-tegra20.c
    arm/tegra: prepare early init for multiple tegra variants
    arm/tegra: don't export clk_measure_input_freq
    arm/tegra: prepare clock code for multiple tegra variants
    arm/tegra: cleanup tegra20 support
    arm/tegra: clk_get should not be fatal
    ...

    Fix up trivial conflict in arch/arm/mach-tegra/board-dt-tegra20.c

    Linus Torvalds
     
  • Cleanups for the Samsung platforms

    Various cleanup changes that the device driver changes are built upon.
    Since the samsung cleanups depend on the device tree series, which
    depends on the first set of cleanups for tegra.

    * tag 'cleanup2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: EXYNOS: Use gpio_request_one
    ARM: S5PV210: Use gpio_request_one
    ARM: S3C64XX: Modified according to SPI consolidation work
    ARM: S5PV210: Modified files for SPI consolidation work
    ARM: S5P64X0: Modified files for SPI consolidation work
    ARM: S5PC100: Modified files for SPI consolidation work
    ARM: S3C64XX: Modified files for SPI consolidation work
    ARM: SAMSUNG: Consolidation of SPI platform devices to plat-samsung
    ARM: SAMSUNG: Remove SPI bus clocks from platform data
    ARM: S5PV210: Add SPI clkdev support
    ARM: S5P64X0: Add SPI clkdev support
    ARM: S5PC100: Add SPI clkdev support
    ARM: S3C64XX: Add SPI clkdev support
    spi/s3c64xx: Use bus clocks created using clkdev
    mmc: sdhci-s3c: Use generic clock names for sdhci bus clock options
    ARM: SAMSUNG: Add lookup of sdhci-s3c clocks using generic names
    ARM: SAMSUNG: Remove SDHCI bus clocks from platform data
    ARM: SAMSUNG: Use kmemdup rather than duplicating its implementation
    ARM: EXYNOS: remove exynos4_scu_enable()

    Linus Torvalds
     
  • Device tree conversions for samsung and tegra

    Both platforms had some initial device tree support, but this adds
    much more to actually make it usable.

    * tag 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)
    ARM: dts: Add intial dts file for EXYNOS4210 SoC, SMDKV310 and ORIGEN
    ARM: EXYNOS: Add Exynos4 device tree enabled board file
    rtc: rtc-s3c: Add device tree support
    input: samsung-keypad: Add device tree support
    ARM: S5PV210: Modify platform data for pl330 driver
    ARM: S5PC100: Modify platform data for pl330 driver
    ARM: S5P64x0: Modify platform data for pl330 driver
    ARM: EXYNOS: Add a alias for pdma clocks
    ARM: EXYNOS: Limit usage of pl330 device instance to non-dt build
    ARM: SAMSUNG: Add device tree support for pl330 dma engine wrappers
    DMA: PL330: Add device tree support
    ARM: EXYNOS: Modify platform data for pl330 driver
    DMA: PL330: Infer transfer direction from transfer request instead of platform data
    DMA: PL330: move filter function into driver
    serial: samsung: Fix build for non-Exynos4210 devices
    serial: samsung: add device tree support
    serial: samsung: merge probe() function from all SoC specific extensions
    serial: samsung: merge all SoC specific port reset functions
    ARM: SAMSUNG: register uart clocks to clock lookup list
    serial: samsung: remove all uses of get_clksrc and set_clksrc
    ...

    Fix up fairly trivial conflicts in arch/arm/mach-s3c2440/clock.c and
    drivers/tty/serial/Kconfig both due to just adding code close to
    changes.

    Linus Torvalds
     
  • Cleanups on various subarchitectures

    Cleanup patches for various ARM platforms and some of their associated
    drivers, the bulk of these is for mach-91.

    Arnd ended up pulling in the restart branch from Russell in order to
    fix up some simple but annoying merge conflicts.

    * tag 'cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (44 commits)
    arm/at91: fix build of stamp9g20
    ARM: u300: delete memory.h
    MAINTAINERS: add maintainer entry for Picochip picoxcell
    ARM: picoxcell: move io mappings to common.c
    ARM: picoxcell: don't reserve irq_descs
    ARM: picoxcell: remove mach/memory.h
    ARM: at91: delete the pcontrol_g20_defconfig
    arm/tegra: Remove code that's ifndef CONFIG_ARM_GIC
    arm/tegra: remove unused defines
    arm/tegra: fix variable formatting in makefile
    ARM: davinci: vpif: move code to driver core header from platform
    ARM: at91/gpio: fix display of number of irq setuped
    ARM: at91/gpio: drop PIN_BASE
    ARM: at91/udc: use gpio_is_valid to check the gpio
    ARM: at91/ohci: use gpio_is_valid to check the gpio
    ARM: at91/nand: use gpio_is_valid to check the gpio
    ARM: at91/mmc: use gpio_is_valid to check the gpio
    ARM: at91/ide: use gpio_is_valid to check the gpio
    ARM: at91/pata: use gpio_is_valid to check the gpio
    ARM: at91/soc: use gpio_is_valid to check the gpio
    ...

    Linus Torvalds
     
  • Non-critical bug fixes

    Simple bug fixes that were not considered important enough for inclusion
    into 3.2.

    * tag 'fixes-non-critical' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    MAINTAINERS: update pxa and mmp
    ARM: pxa: Include linux/export.h in balloon3.c
    ARM: OMAP4: clock: Add CPU local timer clock node
    ARM: OMAP4: hwmod: Don't wait for the idle status if modulemode is not supported
    ARM: OMAP: AM3517/3505: fix crash on boot due to incorrect voltagedomain data
    ARM: OMAP: hwmod data: fix the panic on Nokia RM-680 during boot
    ARM: OMAP2+: DMA: Workaround for invalid destination position
    ARM: OMAP2+: DMA: Workaround for invalid source position

    Linus Torvalds
     
  • Including trace/events/*.h TRACE_EVENT() macro headers in other headers
    can cause strange side effects if another trace/event/*.h header
    includes that header. Having trace/events/kmem.h inside slab_def.h
    caused a compile error in sparc64 when changes were done to some header
    files. Moving the kmem.h trace header out of slab.h and into slab.c
    fixes the problem.

    Note, both slub.c and slob.c already include the trace/events/kmem.h
    file. Only slab.c had it missing.

    Link: http://lkml.kernel.org/r/20120105190405.1e3191fb5a43b2a0f1655e1f@canb.auug.org.au

    Reported-by: Stephen Rothwell
    Signed-off-by: Steven Rostedt
    Signed-off-by: Linus Torvalds

    Steven Rostedt
     
  • Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
    behavior on v3 query during v2-compatibility mode') added yet another
    case for query parsing, which can result in max_delay = 0. Substitute
    a value of 1, as in the usual v3 case.

    Reported-by: Simon McVittie
    References: http://bugs.debian.org/654876
    Signed-off-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • More drivers where net_device_ops should be const.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • The ethtool_ops table of function pointers should be const.
    Fix all the usb network drivers.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • > net/core/sock.c: In function 'sk_update_clone':
    > net/core/sock.c:1278:3: error: implicit declaration of function 'sock_update_memcg'

    Reported-by: Randy Dunlap
    Signed-off-by: David S. Miller

    David S. Miller
     
  • ... and ceph_init_dentry(NULL) will oops

    Signed-off-by: Al Viro

    Al Viro
     
  • * 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    percpu: Remove irqsafe_cpu_xxx variants

    Fix up conflict in arch/x86/include/asm/percpu.h due to clash with
    cebef5beed3d ("x86: Fix and improve percpu_cmpxchg{8,16}b_double()")
    which edited the (now removed) irqsafe_cpu_cmpxchg*_double code.

    Linus Torvalds
     
  • * 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits)
    cgroup: fix to allow mounting a hierarchy by name
    cgroup: move assignement out of condition in cgroup_attach_proc()
    cgroup: Remove task_lock() from cgroup_post_fork()
    cgroup: add sparse annotation to cgroup_iter_start() and cgroup_iter_end()
    cgroup: mark cgroup_rmdir_waitq and cgroup_attach_proc() as static
    cgroup: only need to check oldcgrp==newgrp once
    cgroup: remove redundant get/put of task struct
    cgroup: remove redundant get/put of old css_set from migrate
    cgroup: Remove unnecessary task_lock before fetching css_set on migration
    cgroup: Drop task_lock(parent) on cgroup_fork()
    cgroups: remove redundant get/put of css_set from css_set_check_fetched()
    resource cgroups: remove bogus cast
    cgroup: kill subsys->can_attach_task(), pre_attach() and attach_task()
    cgroup, cpuset: don't use ss->pre_attach()
    cgroup: don't use subsys->can_attach_task() or ->attach_task()
    cgroup: introduce cgroup_taskset and use it in subsys->can_attach(), cancel_attach() and attach()
    cgroup: improve old cgroup handling in cgroup_attach_proc()
    cgroup: always lock threadgroup during migration
    threadgroup: extend threadgroup_lock() to cover exit and exec
    threadgroup: rename signal->threadgroup_fork_lock to ->group_rwsem
    ...

    Fix up conflict in kernel/cgroup.c due to commit e0197aae59e5: "cgroups:
    fix a css_set not found bug in cgroup_attach_proc" that already
    mentioned that the bug is fixed (differently) in Tejun's cgroup
    patchset. This one, in other words.

    Linus Torvalds
     
  • a) leaking root dentry is bad
    b) in case of failed ext4_mb_init() we don't want to do ext4_mb_release()
    c) OTOH, in the same case we *do* want ext4_ext_release()

    Signed-off-by: Al Viro

    Al Viro
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    ext2/3/4: delete unneeded includes of module.h
    ext{3,4}: Fix potential race when setversion ioctl updates inode
    udf: Mark LVID buffer as uptodate before marking it dirty
    ext3: Don't warn from writepage when readonly inode is spotted after error
    jbd: Remove j_barrier mutex
    reiserfs: Force inode evictions before umount to avoid crash
    reiserfs: Fix quota mount option parsing
    udf: Treat symlink component of type 2 as /
    udf: Fix deadlock when converting file from in-ICB one to normal one
    udf: Cleanup calling convention of inode_getblk()
    ext2: Fix error handling on inode bitmap corruption
    ext3: Fix error handling on inode bitmap corruption
    ext3: replace ll_rw_block with other functions
    ext3: NULL dereference in ext3_evict_inode()
    jbd: clear revoked flag on buffers before a new transaction started
    ext3: call ext3_mark_recovery_complete() when recovery is really needed

    Linus Torvalds
     
  • * 'for-linus' of git://git.open-osd.org/linux-open-osd:
    ore: Must support none-PAGE-aligned IO
    ore: fix BUG_ON, too few sgs when reading
    ore: Fix crash in case of an IO error.
    ore: FIX breakage when MISC_FILESYSTEMS is not set

    Linus Torvalds
     
  • * 'for-linus' of git://oss.sgi.com/xfs/xfs:
    xfs: fix endian conversion issue in discard code

    Linus Torvalds
     
  • dev_uc_sync() and dev_mc_sync() are acquiring netif_addr_lock for
    destination device of synchronization. Since netif_addr_lock is
    already held at the time for source device, this triggers lockdep
    deadlock warning.

    There's no way this deadlock can happen so use spin_lock_nested() to
    silence the warning.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • * 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (466 commits)
    net/hyperv: Add support for jumbo frame up to 64KB
    net/hyperv: Add NETVSP protocol version negotiation
    net/hyperv: Remove unnecessary kmap_atomic in netvsc driver
    staging/rtl8192e: Register against lib80211
    staging/rtl8192e: Convert to lib80211_crypt_info
    staging/rtl8192e: Convert to lib80211_crypt_data and lib80211_crypt_ops
    staging/rtl8192e: Add lib80211.h to rtllib.h
    staging/mei: add watchdog device registration wrappers
    drm/omap: GEM, deal with cache
    staging: vt6656: int.c, int.h: Change return of function to void
    staging: usbip: removed unused definitions from header
    staging: usbip: removed dead code from receive function
    staging:iio: Drop {mark,unmark}_in_use callbacks
    staging:iio: Drop buffer mark_param_change callback
    staging:iio: Drop the unused buffer enable() and is_enabled() callbacks
    staging:iio: Drop buffer busy flag
    staging:iio: Make sure a device is only opened once at a time
    staging:iio: Disallow modifying buffer size when buffer is enabled
    staging:iio: Disallow changing scan elements in all buffered modes
    staging:iio: Use iio_buffer_enabled instead of open coding it
    ...

    Fix up conflict in drivers/staging/iio/adc/ad799x_core.c (removal of
    module_init due to using module_i2c_driver() helper, next to removal of
    MODULE_ALIAS due to using MODULE_DEVICE_TABLE instead).

    Linus Torvalds
     
  • * 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (232 commits)
    USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c
    xhci: Clean up 32-bit build warnings.
    USB: update documentation for usbmon
    usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops
    drivers/usb/class/cdc-acm.c: clear dangling pointer
    drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree
    drivers/usb/host/isp1760-if.c: introduce missing kfree
    usb: option: add ZD Incorporated HSPA modem
    usb: ch9: fix up MaxStreams helper
    USB: usb-skeleton.c: cleanup open_count
    USB: usb-skeleton.c: fix open/disconnect race
    xhci: Properly handle COMP_2ND_BW_ERR
    USB: remove dead code from suspend/resume path
    USB: add quirk for another camera
    drivers: usb: wusbcore: Fix dependency for USB_WUSB
    xhci: Better debugging for critical host errors.
    xhci: Be less verbose during URB cancellation.
    xhci: Remove debugging about ring structure allocation.
    xhci: Remove debugging about toggling cycle bits.
    xhci: Remove debugging for individual transfers.
    ...

    Linus Torvalds
     
  • * 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (65 commits)
    tty: serial: imx: move del_timer_sync() to avoid potential deadlock
    imx: add polled io uart methods
    imx: Add save/restore functions for UART control regs
    serial/imx: let probing fail for the dt case without a valid alias
    serial/imx: propagate error from of_alias_get_id instead of using -ENODEV
    tty: serial: imx: Allow UART to be a source for wakeup
    serial: driver for m32 arch should not have DEC alpha errata
    serial/documentation: fix documented name of DCD cpp symbol
    atmel_serial: fix spinlock lockup in RS485 code
    tty: Fix memory leak in virtual console when enable unicode translation
    serial: use DIV_ROUND_CLOSEST instead of open coding it
    serial: add support for 400 and 800 v3 series Titan cards
    serial: bfin-uart: Remove ASYNC_CTS_FLOW flag for hardware automatic CTS.
    serial: bfin-uart: Enable hardware automatic CTS only when CTS pin is available.
    serial: make FSL errata depend on 8250_CONSOLE, not just 8250
    serial: add irq handler for Freescale 16550 errata.
    serial: manually inline serial8250_handle_port
    serial: make 8250 timeout use the specified IRQ handler
    serial: export the key functions for an 8250 IRQ handler
    serial: clean up parameter passing for 8250 Rx IRQ handling
    ...

    Linus Torvalds