1. 15 May, 2012 1 commit
  2. 14 May, 2012 9 commits
    • Hiroshi DOYU's avatar
      memory: tegra{20,30}-mc: Remove empty *_remove() · 7458eab6
      Hiroshi DOYU authored
      Remove unnecessary empty functions.
      Signed-off-by: default avatarHiroshi DOYU <hdoyu@nvidia.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7458eab6
    • Kay Sievers's avatar
      printk() - isolate KERN_CONT users from ordinary complete lines · c313af14
      Kay Sievers authored
      Arrange the continuation printk() buffering to be fully separated from the
      ordinary full line users.
      
      Limit the exposure to races and wrong printk() line merges to users of
      continuation only. Ordinary full line users racing against continuation
      users will no longer affect each other.
      
      Multiple continuation users from different threads, racing against each
      other will not wrongly be merged into a single line, but printed as
      separate lines.
      
      Test output of a kernel module which starts two separate threads which
      race against each other, one of them printing a single full terminated
      line:
        printk("(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)\n");
      
      The other one printing the line, every character separate in a
      continuation loop:
        printk("(C");
        for (i = 0; i < 58; i++)
                printk(KERN_CONT "C");
        printk(KERN_CONT "C)\n");
      
      Behavior of single and non-thread-aware printk() buffer:
        # modprobe printk-race
        printk test init
        (CC(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        C(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        CC(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        C(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        CC(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        C(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        C(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        CC(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        C(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        C(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)
        (CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)
      
      New behavior with separate and thread-aware continuation buffer:
        # modprobe printk-race
        printk test init
        (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        (CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)
        (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        (AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)
        (CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)
        (CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC)
      
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Joe Perches <joe@perches.com>
      Cc: Ted Ts'o <tytso@mit.edu>
      Cc: Ingo Molnar  <mingo@kernel.org>
      Cc: Jonathan Corbet <corbet@lwn.net>
      Cc: Sasha Levin <levinsasha928@gmail.com>
      Signed-off-by: default avatarKay Sievers <kay@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c313af14
    • Alan Stern's avatar
      sysfs: get rid of some lockdep false positives · 356c05d5
      Alan Stern authored
      This patch (as1554) fixes a lockdep false-positive report.  The
      problem arises because lockdep is unable to deal with the
      tree-structured locks created by the device core and sysfs.
      
      This particular problem involves a sysfs attribute method that
      unregisters itself, not from the device it was called for, but from a
      descendant device.  Lockdep doesn't understand the distinction and
      reports a possible deadlock, even though the operation is safe.
      
      This is the sort of thing that would normally be handled by using a
      nested lock annotation; unfortunately it's not feasible to do that
      here.  There's no sensible way to tell sysfs when attribute removal
      occurs in the context of a parent attribute method.
      
      As a workaround, the patch adds a new flag to struct attribute
      telling sysfs not to inform lockdep when it acquires a readlock on a
      sysfs_dirent instance for the attribute.  The readlock is still
      acquired, but lockdep doesn't know about it and hence does not
      complain about impossible deadlock scenarios.
      
      Also added are macros for static initialization of attribute
      structures with the ignore_lockdep flag set.  The three offending
      attributes in the USB subsystem are converted to use the new macros.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      CC: Eric W. Biederman <ebiederm@xmission.com>
      CC: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      356c05d5
    • K. Y. Srinivasan's avatar
      Drivers: hv: util: Properly handle version negotiations. · c836d0ab
      K. Y. Srinivasan authored
      The current version negotiation code is not "future proof". Fix this
      by allowing each service the flexibility to either specify the highest
      version it can support or it can support the highest version number
      the host is offering.
      Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
      Reviewed-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c836d0ab
    • K. Y. Srinivasan's avatar
      Drivers: hv: Get rid of an unnecessary check in vmbus_prep_negotiate_resp() · a3605300
      K. Y. Srinivasan authored
      The vmbus_prep_negotiate_resp() is only invoked when we are negotiating
      the version; so the current check in vmbus_prep_negotiate_resp()
      is unnecessary. Get rid of it.
      Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
      Reviewed-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a3605300
    • Hiroshi DOYU's avatar
      memory: tegra{20,30}-mc: Use dev_err_ratelimited() · 90394482
      Hiroshi DOYU authored
      Introduce a new dev_*_ratelimited() instead of pr_*_ratelimited() for
      better info to print.
      Signed-off-by: default avatarHiroshi DOYU <hdoyu@nvidia.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      90394482
    • Hiroshi DOYU's avatar
      driver core: Add dev_*_ratelimited() family · 6ca04593
      Hiroshi DOYU authored
      Add dev_*_ratelimited() family, dev_* version of pr_*_ratelimited().
      
      Using Joe Perches's proposal/implementation.
      Signed-off-by: default avatarHiroshi DOYU <hdoyu@nvidia.com>
      Cc: Joe Perches <joe@perches.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6ca04593
    • Hiroshi DOYU's avatar
      Driver Core: don't oops with unregistered driver in driver_find_device() · 094e47e9
      Hiroshi DOYU authored
      driver_find_device() can be called with an unregistered driver. Need
      to check driver_private to see if it's populated or not, especially
      under deferrable probe.
      
      In the case that there are 2 drivers, one depends on the other. With
      -EPROBE_DEFER, two drivers can use deferred probe to ensure that their
      relative probe order doesn't matter. If dependee driver is probed
      first, then the dependant's driver_find_device('dependee')
      succeeds. If the dependant is probed first, then the dependant's
      driver_find_device('dependee') should return NULL, and the dependant
      should get -EPROBE_DEFER. driver_find_device() needs to return NULL if
      it's not populated.
      
      In [PATCHv5 2/3] ARM: tegra: Add SMMU enabler in AHB:
        http://article.gmane.org/gmane.linux.ports.tegra/4658
      
      "tegra_ahb_driver" may not be populated when it's called.
      
      For more SMMU/AHB specific discussion, refer to the following thread:
        https://lkml.org/lkml/2012/5/10/21Signed-off-by: default avatarHiroshi DOYU <hdoyu@nvidia.com>
      Cc: Stephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      094e47e9
    • Kay Sievers's avatar
      printk() - restore prefix/timestamp printing for multi-newline strings · 3ce9a7c0
      Kay Sievers authored
      Calls like:
        printk("\n *** DEADLOCK ***\n\n");
      will print 3 properly indented, separated, syslog + timestamp prefixed lines in
      the log output.
      Reported-By: default avatarSasha Levin <levinsasha928@gmail.com>
      Signed-off-by: default avatarKay Sievers <kay@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3ce9a7c0
  3. 11 May, 2012 5 commits
  4. 10 May, 2012 5 commits
  5. 09 May, 2012 3 commits
  6. 08 May, 2012 8 commits
  7. 07 May, 2012 4 commits
    • Kay Sievers's avatar
      printk: convert byte-buffer to variable-length record buffer · 7ff9554b
      Kay Sievers authored
      - Record-based stream instead of the traditional byte stream
        buffer. All records carry a 64 bit timestamp, the syslog facility
        and priority in the record header.
      
      - Records consume almost the same amount, sometimes less memory than
        the traditional byte stream buffer (if printk_time is enabled). The record
        header is 16 bytes long, plus some padding bytes at the end if needed.
        The byte-stream buffer needed 3 chars for the syslog prefix, 15 char for
        the timestamp and a newline.
      
      - Buffer management is based on message sequence numbers. When records
        need to be discarded, the reading heads move on to the next full
        record. Unlike the byte-stream buffer, no old logged lines get
        truncated or partly overwritten by new ones. Sequence numbers also
        allow consumers of the log stream to get notified if any message in
        the stream they are about to read gets discarded during the time
        of reading.
      
      - Better buffered IO support for KERN_CONT continuation lines, when printk()
        is called multiple times for a single line. The use of KERN_CONT is now
        mandatory to use continuation; a few places in the kernel need trivial fixes
        here. The buffering could possibly be extended to per-cpu variables to allow
        better thread-safety for multiple printk() invocations for a single line.
      
      - Full-featured syslog facility value support. Different facilities
        can tag their messages. All userspace-injected messages enforce a
        facility value > 0 now, to be able to reliably distinguish them from
        the kernel-generated messages. Independent subsystems like a
        baseband processor running its own firmware, or a kernel-related
        userspace process can use their own unique facility values. Multiple
        independent log streams can co-exist that way in the same
        buffer. All share the same global sequence number counter to ensure
        proper ordering (and interleaving) and to allow the consumers of the
        log to reliably correlate the events from different facilities.
      Tested-by: default avatarWilliam Douglas <william.douglas@intel.com>
      Signed-off-by: default avatarKay Sievers <kay@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7ff9554b
    • Paul Gortmaker's avatar
      powerpc: fix compile fail in hugetlb cmdline parsing · 89528127
      Paul Gortmaker authored
      Commit 9fb48c74
      
          "params: add 3rd arg to option handler callback signature"
      
      added an extra arg to the function, but didn't catch all the use
      cases needing it, causing this compile fail in mpc85xx_defconfig:
      
       arch/powerpc/mm/hugetlbpage.c:316:4: error: passing argument 7 of
       'parse_args' from incompatible pointer type [-Werror]
      
       include/linux/moduleparam.h:317:12: note: expected
      	 'int (*)(char *, char *, const char *)' but argument is of type
      	 'int (*)(char *, char *)'
      
      This function has no need to printk out the "doing" value, so
      just add the arg as an "unused".
      
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Jim Cromie <jim.cromie@gmail.com>
      Cc: Jason Baron <jbaron@redhat.com>
      Cc: Becky Bruce <beckyb@kernel.crashing.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      89528127
    • Zhi Yong Wu's avatar
      9ff1f838
    • Greg Kroah-Hartman's avatar
      Revert "dynamic_debug: remove unneeded includes" · fef15d2f
      Greg Kroah-Hartman authored
      This reverts commit 04db6e5f.
      
      Odds are, we really don't want to revert all of these, and need to be
      more careful in the future to make sure we don't break the build of
      other arches.
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Jim Cromie <jim.cromie@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fef15d2f
  8. 05 May, 2012 3 commits
  9. 04 May, 2012 2 commits