11 Jul, 2011

8 commits


10 Jul, 2011

6 commits

  • It is possible that a PMBus device supports the READ_TEMPERATURE2 and/or
    READ_TEMPERATURE3 registers but does not support READ_TEMPERATURE1.
    Improve temperature status register detection to address this condition.

    Reported-by: Jean Delvare
    Signed-off-by: Guenter Roeck
    Acked-by: Jean Delvare
    Cc: stable@kernel.org # 2.6.39+

    Guenter Roeck
     
  • Negative temperatures were returned in degrees C instead of milli-Degrees C.
    Also, negative temperatures were reported for remote temperature sensors even
    if the chip was configured for positive-only results.

    Fix by detecting temperature modes, and by treating negative temperatures
    similar to positive temperatures, with appropriate sign extension.

    Signed-off-by: Guenter Roeck
    Acked-by: Jean Delvare
    Cc: stable@kernel.org # 2.6.30+

    Guenter Roeck
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: hda - Fix a copmile warning
    ASoC: ak4642: fixup snd_soc_update_bits mask for PW_MGMT2
    ALSA: hda - Change all ADCs for dual-adc switching mode for Realtek
    ASoC: Manage WM8731 ACTIVE bit as a supply widget
    ASoC: Don't set invalid name string to snd_card->driver field
    ASoC: Ensure we delay long enough for WM8994 FLL to lock when starting
    ASoC: Tegra: I2S: Ensure clock is enabled when writing regs
    ASoC: Fix Blackfin I2S _pointer() implementation return in bounds values
    ASoC: tlv320aic3x: Do soft reset to codec when going to bias off state
    ASoC: tlv320aic3x: Don't sync first two registers from register cache
    audio: tlv320aic26: fix PLL register configuration

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI: conditional resource-reallocation through kernel parameter pci=realloc

    Linus Torvalds
     
  • * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 6994/1: smp_twd: Fix typo in 'twd_timer_rate' printing
    ARM: 6987/1: l2x0: fix disabling function to avoid deadlock
    ARM: 6966/1: ep93xx: fix inverted RTS/DTR signals on uart1
    ARM: 6980/1: mmci: use StartBitErr to detect bad connections
    ARM: 6979/1: mach-vt8500: add forgotten irq_data conversion
    ARM: move memory layout sanity checking before meminfo initialization
    ARM: 6990/1: MAINTAINERS: add entry for ARM PMU profiling and debugging
    ARM: 6989/1: perf: do not start the PMU when no events are present
    ARM: dmabounce: fix map_single() error return value

    Linus Torvalds
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/radeon/kms: clean up multiple crtc handling for evergreen+ (v2)

    Linus Torvalds
     

09 Jul, 2011

26 commits

  • Takashi Iwai
     
  • It's harmless but annyoing.
    sound/pci/hda/patch_realtek.c: In function ‘alc_cap_getput_caller’:
    sound/pci/hda/patch_realtek.c:2722:9: warning: ‘err’ may be used uninitialized in this function

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • …sound-2.6 into fix/asoc

    Takashi Iwai
     
  • …git/kgene/linux-samsung

    * 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
    ARM: S3C2440: fix section mismatch on mini2440
    ARM: S3C24XX: drop return codes in void function of dma.c
    ARM: S3C24XX: don't use uninitialized variable in dma.c
    ARM: EXYNOS4: Set appropriate I2C device variant
    ARM: S5PC100: Fix for compilation error
    spi/s3c64xx: Bug fix for SPI with different FIFO level
    ARM: SAMSUNG: Add tx_st_done variable
    ARM: EXYNOS4: Address a section mismatch w/ suspend issue.
    ARM: S5P: Fix bug on init of PWMTimers for HRTimer
    ARM: SAMSUNG: header file revised to prevent declaring duplicated
    ARM: EXYNOS4: fix improper gpio configuration
    ARM: EXYNOS4: Fix card detection for sdhci 0 and 2

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
    regulator: max8997: Fix setting inappropriate value for ramp_delay variable
    regulator: db8500-prcmu: small fixes
    regulator: max8997: remove dependency on platform_data pointer
    regulator: MAX8997: Fix for divide by zero error
    regulator: max8952 - fix wrong gpio valid check

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
    btrfs: fix oops when doing space balance
    Btrfs: don't panic if we get an error while balancing V2
    btrfs: add missing options displayed in mount output

    Linus Torvalds
     
  • Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • This driver handles the variants pca9530-pca9533, so it chose the name
    "pca953x". However, there is a gpio driver which decided on the same
    name. As a result, those two can't be loaded at the same time. Add a
    subsystem prefix to make the driver name unique. Device matching will not
    suffer, because both are I2C drivers which match using a
    i2c_device_id-table which is not altered.

    Signed-off-by: Wolfram Sang
    Acked-by: Jean Delvare
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wolfram Sang
     
  • remap_pfn_range() means map physical address pfn<vm_start = pfn << PAGE_SHIFT which
    is wrong acroding the original meaning of this function. And some driver
    developer using remap_pfn_range() with correct parameter will get
    unexpected result because vm_start is changed. It should be implementd
    like addr = pfn << PAGE_SHIFT but which is meanless on nommu arch, this
    patch just make it simply return.

    Parameter name and setting of vma->vm_flags also be fixed.

    Signed-off-by: Bob Liu
    Cc: Geert Uytterhoeven
    Cc: David Howells
    Acked-by: Greg Ungerer
    Cc: Mike Frysinger
    Cc: Bob Liu
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bob Liu
     
  • This fixes a regression in 3.0 reported by Paul Parsons regarding the
    removal of the msleep(1) in the ds1wm_reset() function:

    : The linux-3.0-rc4 DS1WM 1-wire driver is logging "bus error, retrying"
    : error messages on an HP iPAQ hx4700 PDA (XScale-PXA270):
    :
    :
    : Driver for 1-wire Dallas network protocol.
    : DS1WM w1 busmaster driver - (c) 2004 Szabolcs Gyurko
    : 1-Wire driver for the DS2760 battery monitor chip - (c) 2004-2005, Szabolcs Gyurko
    : ds1wm ds1wm: pass: 1 bus error, retrying
    : ds1wm ds1wm: pass: 2 bus error, retrying
    : ds1wm ds1wm: pass: 3 bus error, retrying
    : ds1wm ds1wm: pass: 4 bus error, retrying
    : ds1wm ds1wm: pass: 5 bus error, retrying
    : ...
    :
    : The visible result is that the battery charging LED is erratic; sometimes
    : it works, mostly it doesn't.
    :
    : The linux-2.6.39 DS1WM 1-wire driver worked OK. I haven't tried 3.0-rc1,
    : 3.0-rc2, or 3.0-rc3.

    This sleep should not be required on normal circuitry provided the
    pull-ups on the bus are correctly adapted to the slaves. Unfortunately,
    this is not always the case. The sleep is restored but as a parameter to
    the probe function in the pdata.

    [akpm@linux-foundation.org: coding-style fixes]
    Reported-by: Paul Parsons
    Tested-by: Paul Parsons
    Signed-off-by: Jean-François Dagenais
    Cc: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean-François Dagenais
     
  • commit 889976dbcb12 ("memcg: reclaim memory from nodes in round-robin
    order") adds an numa node round-robin for memcg. But the information is
    updated once per 10sec.

    This patch changes the update trigger from jiffies to memcg's event count.
    After this patch, numa scan information will be updated when we see 1024
    events of pagein/pageout under a memcg.

    [akpm@linux-foundation.org: attempt to repair code layout]
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Michal Hocko
    Cc: Ying Han
    Cc: Johannes Weiner
    Cc: Daisuke Nishimura
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Now, in mem_cgroup_hierarchical_reclaim(), mem_cgroup_local_usage() is
    used for checking whether the memcg contains reclaimable pages or not. If
    no pages in it, the routine skips it.

    But, mem_cgroup_local_usage() contains Unevictable pages and cannot handle
    "noswap" condition correctly. This doesn't work on a swapless system.

    This patch adds test_mem_cgroup_reclaimable() and replaces
    mem_cgroup_local_usage(). test_mem_cgroup_reclaimable() see LRU counter
    and returns correct answer to the caller. And this new function has
    "noswap" argument and can see only FILE LRU if necessary.

    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: fix kerneldoc layout]
    Signed-off-by: KAMEZAWA Hiroyuki
    Cc: Michal Hocko
    Cc: Ying Han
    Cc: Johannes Weiner
    Cc: Daisuke Nishimura
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • __tlb_remove_page() switches to a new batch page, but still checks space
    in the old batch. This check always fails, and causes a forced tlb flush.

    Signed-off-by: Shaohua Li
    Acked-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shaohua Li
     
  • During allocator-intensive workloads, kswapd will be woken frequently
    causing free memory to oscillate between the high and min watermark. This
    is expected behaviour. Unfortunately, if the highest zone is small, a
    problem occurs.

    When balance_pgdat() returns, it may be at a lower classzone_idx than it
    started because the highest zone was unreclaimable. Before checking if it
    should go to sleep though, it checks pgdat->classzone_idx which when there
    is no other activity will be MAX_NR_ZONES-1. It interprets this as it has
    been woken up while reclaiming, skips scheduling and reclaims again. As
    there is no useful reclaim work to do, it enters into a loop of shrinking
    slab consuming loads of CPU until the highest zone becomes reclaimable for
    a long period of time.

    There are two problems here. 1) If the returned classzone or order is
    lower, it'll continue reclaiming without scheduling. 2) if the highest
    zone was marked unreclaimable but balance_pgdat() returns immediately at
    DEF_PRIORITY, the new lower classzone is not communicated back to kswapd()
    for sleeping.

    This patch does two things that are related. If the end_zone is
    unreclaimable, this information is communicated back. Second, if the
    classzone or order was reduced due to failing to reclaim, new information
    is not read from pgdat and instead an attempt is made to go to sleep. Due
    to this, it is also necessary that pgdat->classzone_idx be initialised
    each time to pgdat->nr_zones - 1 to avoid re-reads being interpreted as
    wakeups.

    Signed-off-by: Mel Gorman
    Reported-by: Pádraig Brady
    Tested-by: Pádraig Brady
    Tested-by: Andrew Lutomirski
    Acked-by: Rik van Riel
    Cc: Minchan Kim
    Cc: KOSAKI Motohiro
    Cc: Johannes Weiner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • When deciding if kswapd is sleeping prematurely, the classzone is taken
    into account but this is different to what balance_pgdat() and the
    allocator are doing. Specifically, the DMA zone will be checked based on
    the classzone used when waking kswapd which could be for a GFP_KERNEL or
    GFP_HIGHMEM request. The lowmem reserve limit kicks in, the watermark is
    not met and kswapd thinks it's sleeping prematurely keeping kswapd awake in
    error.

    Signed-off-by: Mel Gorman
    Reported-by: Pádraig Brady
    Tested-by: Pádraig Brady
    Tested-by: Andrew Lutomirski
    Acked-by: Rik van Riel
    Reviewed-by: Minchan Kim
    Cc: KOSAKI Motohiro
    Cc: Johannes Weiner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • During allocator-intensive workloads, kswapd will be woken frequently
    causing free memory to oscillate between the high and min watermark. This
    is expected behaviour.

    When kswapd applies pressure to zones during node balancing, it checks if
    the zone is above a high+balance_gap threshold. If it is, it does not
    apply pressure but it unconditionally shrinks slab on a global basis which
    is excessive. In the event kswapd is being kept awake due to a high small
    unreclaimable zone, it skips zone shrinking but still calls shrink_slab().

    Once pressure has been applied, the check for zone being unreclaimable is
    being made before the check is made if all_unreclaimable should be set.
    This miss of unreclaimable can cause has_under_min_watermark_zone to be
    set due to an unreclaimable zone preventing kswapd backing off on
    congestion_wait().

    Signed-off-by: Mel Gorman
    Reported-by: Pádraig Brady
    Tested-by: Pádraig Brady
    Tested-by: Andrew Lutomirski
    Acked-by: Rik van Riel
    Reviewed-by: Minchan Kim
    Reviewed-by: KOSAKI Motohiro
    Cc: Johannes Weiner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • During allocator-intensive workloads, kswapd will be woken frequently
    causing free memory to oscillate between the high and min watermark. This
    is expected behaviour. Unfortunately, if the highest zone is small, a
    problem occurs.

    This seems to happen most with recent sandybridge laptops but it's
    probably a co-incidence as some of these laptops just happen to have a
    small Normal zone. The reproduction case is almost always during copying
    large files that kswapd pegs at 100% CPU until the file is deleted or
    cache is dropped.

    The problem is mostly down to sleeping_prematurely() keeping kswapd awake
    when the highest zone is small and unreclaimable and compounded by the
    fact we shrink slabs even when not shrinking zones causing a lot of time
    to be spent in shrinkers and a lot of memory to be reclaimed.

    Patch 1 corrects sleeping_prematurely to check the zones matching
    the classzone_idx instead of all zones.

    Patch 2 avoids shrinking slab when we are not shrinking a zone.

    Patch 3 notes that sleeping_prematurely is checking lower zones against
    a high classzone which is not what allocators or balance_pgdat()
    is doing leading to an artifical belief that kswapd should be
    still awake.

    Patch 4 notes that when balance_pgdat() gives up on a high zone that the
    decision is not communicated to sleeping_prematurely()

    This problem affects 2.6.38.8 for certain and is expected to affect 2.6.39
    and 3.0-rc4 as well. If accepted, they need to go to -stable to be picked
    up by distros and this series is against 3.0-rc4. I've cc'd people that
    reported similar problems recently to see if they still suffer from the
    problem and if this fixes it.

    This patch: correct the check for kswapd sleeping in sleeping_prematurely()

    During allocator-intensive workloads, kswapd will be woken frequently
    causing free memory to oscillate between the high and min watermark. This
    is expected behaviour.

    A problem occurs if the highest zone is small. balance_pgdat() only
    considers unreclaimable zones when priority is DEF_PRIORITY but
    sleeping_prematurely considers all zones. It's possible for this sequence
    to occur

    1. kswapd wakes up and enters balance_pgdat()
    2. At DEF_PRIORITY, marks highest zone unreclaimable
    3. At DEF_PRIORITY-1, ignores highest zone setting end_zone
    4. At DEF_PRIORITY-1, calls shrink_slab freeing memory from
    highest zone, clearing all_unreclaimable. Highest zone
    is still unbalanced
    5. kswapd returns and calls sleeping_prematurely
    6. sleeping_prematurely looks at *all* zones, not just the ones
    being considered by balance_pgdat. The highest small zone
    has all_unreclaimable cleared but the zone is not
    balanced. all_zones_ok is false so kswapd stays awake

    This patch corrects the behaviour of sleeping_prematurely to check the
    zones balance_pgdat() checked.

    Signed-off-by: Mel Gorman
    Reported-by: Pádraig Brady
    Tested-by: Pádraig Brady
    Tested-by: Andrew Lutomirski
    Acked-by: Rik van Riel
    Reviewed-by: Minchan Kim
    Reviewed-by: KOSAKI Motohiro
    Cc: Johannes Weiner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • The LM95241 driver accepts every chip ID equal to or larger than 0xA4 as its
    own, and other chips such as LM95245 use chip IDs in the accepted ID range.
    This results in false chip detection.

    Fix problem by accepting only the known LM95241 chip ID.

    Signed-off-by: Guenter Roeck
    Acked-by: Jean Delvare
    Cc: stable@kernel.org # 2.6.30+

    Guenter Roeck
     
  • Multiple attempts to dynamically reallocate pci resources have
    unfortunately lead to regressions. Though we continue to fix the
    regressions and fine tune the dynamic-reallocation behavior, we have not
    reached a acceptable state yet.

    This patch provides a interim solution. It disables dynamic reallocation
    by default, but adds the ability to enable it through pci=realloc kernel
    command line parameter.

    Tested-by: Oliver Hartkopp
    Signed-off-by: Ram Pai
    Signed-off-by: Jesse Barnes

    Ram Pai
     
  • Since ca5ecddf (rcu: define __rcu address space modifier for sparse)
    rcu_dereference_check use rcu_read_lock_held as a part of condition
    automatically so callers do not have to do that as well.

    Signed-off-by: Michal Hocko
    Acked-by: Paul E. McKenney
    Signed-off-by: Jiri Kosina

    Michal Hocko
     
  • The ramp_delay variable can be set lower than the desired value.
    This patch fixes it.

    Signed-off-by: Donggeun Kim
    Signed-off-by: MyungJoo Ham
    Signed-off-by: KyungMin Park
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Donggeun Kim
     
  • Small cleanups for better readability.

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • The platform_data (pdata) may be pointing to __initdata section, which
    may be free'd from the memory. The dependency on pdata in non-init
    functions is removed in this patch to allow platform to declare
    __initdata for platform data.

    Signed-off-by: MyungJoo Ham
    Signed-off-by: Kyungmin Park
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    MyungJoo Ham
     
  • Currently, ramp_delay variable is used uninitialzed in
    max8997_set_voltage_ldobuck which gets called through
    regulator_register calls.

    To fix the problem, in max8997_pmic_probe, ramp_delay initialization
    code is moved before calls to regulator_register.

    Cc: Liam Girdwood
    Cc: Mark Brown
    Cc: MyungJoo Ham
    Cc: Kyungmin Park
    Cc: Samuel Ortiz
    Signed-off-by: Tushar Behera
    Acked-by: MyungJoo Ham
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Tushar Behera
     
  • Signed-off-by: Jonghwan Choi
    Acked-by: MyungJoo Ham
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Jonghwan Choi
     
  • evergreen+ asics have 2-6 crtcs. Don't access crtc registers
    for crtc regs that don't exist as they have very high latency
    and may cause problems on some asics. The previous code missed
    a few cases and was not fine grained enough (missed the 4 crtc
    case for example).

    Fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=38800

    v2: fix typo noticed by Chris Bandy

    Signed-off-by: Alex Deucher
    Reviewed-by: Michel Dänzer
    Tested-by: Simon Farnsworth
    Signed-off-by: Dave Airlie

    Alex Deucher