1. 16 3月, 2013 7 次提交
    • F
      timekeeping: utilize the suspend-nonstop clocksource to count suspended time · e445cf1c
      Feng Tang 提交于
      There are some new processors whose TSC clocksource won't stop during
      suspend. Currently, after system resumes, kernel will use persistent
      clock or RTC to compensate the sleep time, but with these nonstop
      clocksources, we could skip the special compensation from external
      sources, and just use current clocksource for time recounting.
      
      This can solve some time drift bugs caused by some not-so-accurate or
      error-prone RTC devices.
      
      The current way to count suspended time is first try to use the persistent
      clock, and then try the RTC if persistent clock can't be used. This
      patch will change the trying order to:
      	suspend-nonstop clocksource -> persistent clock -> RTC
      
      When counting the sleep time with nonstop clocksource, use an accurate way
      suggested by Jason Gunthorpe to cover very large delta cycles.
      Signed-off-by: NFeng Tang <feng.tang@intel.com>
      [jstultz: Small optimization, avoiding re-reading the clocksource]
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      e445cf1c
    • F
      x86: tsc: Add support for new S3_NONSTOP feature · 82f9c080
      Feng Tang 提交于
      Add support for new S3_NONSTOP feature
      Signed-off-by: NFeng Tang <feng.tang@intel.com>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      82f9c080
    • F
      clocksource: Add new feature flag CLOCK_SOURCE_SUSPEND_NONSTOP · 5caf4636
      Feng Tang 提交于
      Some x86 processors have a TSC clocksource, which continues to run
      even when system is suspended. Also most OMAP platforms have a
      32 KHz timer which has similar capability. Add a feature flag so that
      it could be utilized.
      Signed-off-by: NFeng Tang <feng.tang@intel.com>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      5caf4636
    • F
      x86: Add cpu capability flag X86_FEATURE_NONSTOP_TSC_S3 · c54fdbb2
      Feng Tang 提交于
      On some new Intel Atom processors (Penwell and Cloverview), there is
      a feature that the TSC won't stop in S3 state, say the TSC value
      won't be reset to 0 after resume. This feature makes TSC a more reliable
      clocksource and could benefit the timekeeping code during system
      suspend/resume cycle, so add a flag for it.
      Signed-off-by: NFeng Tang <feng.tang@intel.com>
      [jstultz: Fix checkpatch warning]
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      c54fdbb2
    • P
      x86: Do full rtc synchronization with ntp · 3195ef59
      Prarit Bhargava 提交于
      Every 11 minutes ntp attempts to update the x86 rtc with the current
      system time.  Currently, the x86 code only updates the rtc if the system
      time is within +/-15 minutes of the current value of the rtc. This
      was done originally to avoid setting the RTC if the RTC was in localtime
      mode (common with Windows dualbooting).  Other architectures do a full
      synchronization and now that we have better infrastructure to detect
      when the RTC is in localtime, there is no reason that x86 should be
      software limited to a 30 minute window.
      
      This patch changes the behavior of the kernel to do a full synchronization
      (year, month, day, hour, minute, and second) of the rtc when ntp requests
      a synchronization between the system time and the rtc.
      
      I've used the RTC library functions in this patchset as they do all the
      required bounds checking.
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: John Stultz <john.stultz@linaro.org>
      Cc: x86@kernel.org
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: David Vrabel <david.vrabel@citrix.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: linux-efi@vger.kernel.org
      Signed-off-by: NPrarit Bhargava <prarit@redhat.com>
      [jstultz: Tweak commit message, fold in build fix found by fengguang
      Also add select RTC_LIB to X86, per new dependency, as found by prarit]
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      3195ef59
    • J
      timekeeping: Use inject_offset in warp_clock · 7859e404
      John Stultz 提交于
      When warping the clock (from a local time RTC), use
      timekeeping_inject_offset() to atomically add the offset.
      
      This avoids any minor time error caused by the delay between
      reading the time, and then setting the adjusted time.
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      7859e404
    • D
      timekeeping: Avoid adjust kernel time once hwclock kept in UTC time · c30bd099
      Dong Zhu 提交于
      If the Hardware Clock kept in local time,kernel will adjust the time
      to be UTC time.But if Hardware Clock kept in UTC time,system will make
      a dummy settimeofday call first (sys_tz.tz_minuteswest = 0) to make sure
      the time is not shifted,so at this point I think maybe it is not necessary
      to set the kernel time once the sys_tz.tz_minuteswest is zero.
      Signed-off-by: NDong Zhu <bluezhudong@gmail.com>
      [jstultz: Updated to merge with conflicting changes ]
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      c30bd099
  2. 11 3月, 2013 17 次提交
  3. 10 3月, 2013 6 次提交
  4. 09 3月, 2013 10 次提交
    • E
      proc: Use nd_jump_link in proc_ns_follow_link · db04dc67
      Eric W. Biederman 提交于
      Update proc_ns_follow_link to use nd_jump_link instead of just
      manually updating nd.path.dentry.
      
      This fixes the BUG_ON(nd->inode != parent->d_inode) reported by Dave
      Jones and reproduced trivially with mkdir /proc/self/ns/uts/a.
      
      Sigh it looks like the VFS change to require use of nd_jump_link
      happend while proc_ns_follow_link was baking and since the common case
      of proc_ns_follow_link continued to work without problems the need for
      making this change was overlooked.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: N"Eric W. Biederman" <ebiederm@xmission.com>
      db04dc67
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 0aefda3e
      Linus Torvalds 提交于
      Pull btrfs fixes from Chris Mason:
       "These are scattered fixes and one performance improvement.  The
        biggest functional change is in how we throttle metadata changes.  The
        new code bumps our average file creation rate up by ~13% in fs_mark,
        and lowers CPU usage.
      
        Stefan bisected out a regression in our allocation code that made
        balance loop on extents larger than 256MB."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: improve the delayed inode throttling
        Btrfs: fix a mismerge in btrfs_balance()
        Btrfs: enforce min_bytes parameter during extent allocation
        Btrfs: allow running defrag in parallel to administrative tasks
        Btrfs: avoid deadlock on transaction waiting list
        Btrfs: do not BUG_ON on aborted situation
        Btrfs: do not BUG_ON in prepare_to_reloc
        Btrfs: free all recorded tree blocks on error
        Btrfs: build up error handling for merge_reloc_roots
        Btrfs: check for NULL pointer in updating reloc roots
        Btrfs: fix unclosed transaction handler when the async transaction commitment fails
        Btrfs: fix wrong handle at error path of create_snapshot() when the commit fails
        Btrfs: use set_nlink if our i_nlink is 0
      0aefda3e
    • B
      Platform: x86: chromeos_laptop : Add basic platform data for atmel devices · 2ef39204
      Benson Leung 提交于
      Add basic platform data to get the current upstream driver working
      with the 224s touchpad and 1664s touchscreen.
      We will be using NULL config so we will use the settings from the
      devices' NVRAMs.
      Signed-off-by: NBenson Leung <bleung@chromium.org>
      Tested-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2ef39204
    • D
      Input: atmel_mxt_ts - Support for touchpad variant · 22dfab7f
      Daniel Kurtz 提交于
      This same driver can be used by atmel based touchscreens and touchpads
      (buttonpads). Platform data may specify a device is a touchpad
      using the is_tp flag.
      
      This will cause the driver to perform some touchpad specific
      initializations, such as:
        * register input device name "Atmel maXTouch Touchpad" instead of
        Touchscreen.
        * register BTN_LEFT & BTN_TOOL_* event types.
        * register axis resolution (as a fixed constant, for now)
        * register BUTTONPAD property
        * process GPIO buttons using reportid T19
      
      Input event GPIO mapping is done by the platform data key_map array.
      
      key_map[x] should contain the KEY or BTN code to send when processing
      GPIOx from T19. To specify a GPIO as not an input source, populate
      with KEY_RESERVED, or 0.
      Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org>
      Signed-off-by: NBenson Leung <bleung@chromium.org>
      Signed-off-by: NNick Dyer <nick.dyer@itdev.co.uk>
      Tested-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      22dfab7f
    • L
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 67a865a4
      Linus Torvalds 提交于
      Pull CIFS fixes from Steve French:
       "A small set of cifs fixes which includes one for a recent regression
        in the write path (pointed out by Anton), some fixes for rename
        problems and as promised for 3.9 removing the obsolete sockopt mount
        option (and the accompanying deprecation warning)."
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: Fix missing of oplock_read value in smb30_values structure
        cifs: don't try to unlock pagecache page after releasing it
        cifs: remove the sockopt= mount option
        cifs: Check server capability before attempting silly rename
        cifs: Fix bug when checking error condition in cifs_rename_pending_delete()
      67a865a4
    • L
      Merge branch 'akpm' (fixes from Andrew) · 59d8e5eb
      Linus Torvalds 提交于
      Merge misc fixes from Andrew Morton.
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        alpha: boot: fix build breakage introduced by system.h disintegration
        memcg: initialize kmem-cache destroying work earlier
        Randy has moved
        ksm: fix m68k build: only NUMA needs pfn_to_nid
        dmi_scan: fix missing check for _DMI_ signature in smbios_present()
        Revert parts of "hlist: drop the node parameter from iterators"
        idr: remove WARN_ON_ONCE() on negative IDs
        mm/mempolicy.c: fix sp_node_init() argument ordering
        mm/mempolicy.c: fix wrong sp_node insertion
        ipc: don't allocate a copy larger than max
        ipc: fix potential oops when src msg > 4k w/ MSG_COPY
      59d8e5eb
    • W
      alpha: boot: fix build breakage introduced by system.h disintegration · c3d6b628
      Will Deacon 提交于
      Commit ec221208 ("Disintegrate asm/system.h for Alpha") removed the
      system.h include from boot/head.S, which puts the PAL_* asm constants
      out of scope.
      
      Include <asm/pal.h> so we can get building again.
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Cc: David Rusling <david.rusling@linaro.org>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c3d6b628
    • K
      memcg: initialize kmem-cache destroying work earlier · 15cf17d2
      Konstantin Khlebnikov 提交于
      Fix a warning from lockdep caused by calling cancel_work_sync() for
      uninitialized struct work.  This path has been triggered by destructon
      kmem-cache hierarchy via destroying its root kmem-cache.
      
        cache ffff88003c072d80
        obj ffff88003b410000 cache ffff88003c072d80
        obj ffff88003b924000 cache ffff88003c20bd40
        INFO: trying to register non-static key.
        the code is fine but needs lockdep annotation.
        turning off the locking correctness validator.
        Pid: 2825, comm: insmod Tainted: G           O 3.9.0-rc1-next-20130307+ #611
        Call Trace:
          __lock_acquire+0x16a2/0x1cb0
          lock_acquire+0x8a/0x120
          flush_work+0x38/0x2a0
          __cancel_work_timer+0x89/0xf0
          cancel_work_sync+0xb/0x10
          kmem_cache_destroy_memcg_children+0x81/0xb0
          kmem_cache_destroy+0xf/0xe0
          init_module+0xcb/0x1000 [kmem_test]
          do_one_initcall+0x11a/0x170
          load_module+0x19b0/0x2320
          SyS_init_module+0xc6/0xf0
          system_call_fastpath+0x16/0x1b
      
      Example module to demonstrate:
      
        #include <linux/module.h>
        #include <linux/slab.h>
        #include <linux/mm.h>
        #include <linux/workqueue.h>
      
        int __init mod_init(void)
        {
        	int size = 256;
        	struct kmem_cache *cache;
        	void *obj;
        	struct page *page;
      
        	cache = kmem_cache_create("kmem_cache_test", size, size, 0, NULL);
        	if (!cache)
        		return -ENOMEM;
      
        	printk("cache %p\n", cache);
      
        	obj = kmem_cache_alloc(cache, GFP_KERNEL);
        	if (obj) {
        		page = virt_to_head_page(obj);
        		printk("obj %p cache %p\n", obj, page->slab_cache);
        		kmem_cache_free(cache, obj);
        	}
      
        	flush_scheduled_work();
      
        	obj = kmem_cache_alloc(cache, GFP_KERNEL);
        	if (obj) {
        		page = virt_to_head_page(obj);
        		printk("obj %p cache %p\n", obj, page->slab_cache);
        		kmem_cache_free(cache, obj);
        	}
      
        	kmem_cache_destroy(cache);
      
        	return -EBUSY;
        }
      
        module_init(mod_init);
        MODULE_LICENSE("GPL");
      Signed-off-by: NKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Glauber Costa <glommer@parallels.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      15cf17d2
    • R
      Randy has moved · 755727b7
      Randy Dunlap 提交于
      Update email address and CREDITS info.  xenotime.net is defunct.
      Signed-off-by: NRandy Dunlap <rdunlap@infradead.org>
      Cc: Harry Wei <harryxiyou@gmail.com>
      Cc: Keiichi KII <k-keiichi@bx.jp.nec.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      755727b7
    • H
      ksm: fix m68k build: only NUMA needs pfn_to_nid · d8fc16a8
      Hugh Dickins 提交于
      A CONFIG_DISCONTIGMEM=y m68k config gave
      
        mm/ksm.c: In function `get_kpfn_nid':
        mm/ksm.c:492: error: implicit declaration of function `pfn_to_nid'
      
      linux/mmzone.h declares it for CONFIG_SPARSEMEM and CONFIG_FLATMEM, but
      expects the arch's asm/mmzone.h to declare it for CONFIG_DISCONTIGMEM
      (see arch/mips/include/asm/mmzone.h for example).
      
      Or perhaps it is only expected when CONFIG_NUMA=y: too much of a maze,
      and m68k got away without it so far, so fix the build in mm/ksm.c.
      Signed-off-by: NHugh Dickins <hughd@google.com>
      Reported-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Cc: Petr Holasek <pholasek@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d8fc16a8