1. 07 May, 2012 1 commit
  2. 05 May, 2012 3 commits
  3. 04 May, 2012 7 commits
  4. 02 May, 2012 10 commits
  5. 01 May, 2012 1 commit
  6. 30 Apr, 2012 13 commits
    • Jim Cromie's avatar
      dynamic_debug: init with early_initcall, not arch_initcall · 3ec5652a
      Jim Cromie authored
      1- Call dynamic_debug_init() from early_initcall, not arch_initcall.
      2- Call dynamic_debug_init_debugfs() from fs_initcall, not module_init.
      
      RFC: This works for me on a 64 bit desktop and a i586 SBC, but is
      untested on other arches.  I presume there is or was a reason
      original code used arch_initcall, maybe the constraints have changed.
      
      This makes facility available as soon as possible.
      
      2nd change has a downside when dynamic_debug.verbose=1; all the
      vpr_info()s called in the proc-fs code are activated, causing
      voluminous output from dmesg.  TBD: Im unsure of this explanation, but
      the output is there.  This could be fixed by changing those callsites
      to v2pr_info(if verbose > 1).
      
      1st change is still not early enough to enable pr_debugs in
      kernel/params, so parsing of boot-args isnt logged.  The reparse of
      those args is however visible after params.dyndbg="+p" is processed.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3ec5652a
    • Jim Cromie's avatar
      dynamic_debug: update Documentation/*, Kconfig.debug · 29e36c9f
      Jim Cromie authored
      In dynamic-debug-howto.txt:
      
      - add section: Debug Messages at Module Initialization Time
      - update flags indicators in example outputs to include '='
      - make flags descriptions tabular
      - add item on '_' flag-char
      - add dyndbg, boot-args examples
      - rewrap some paragraphs with long lines
      
      In Kconfig.debug, note that compiling with -DDEBUG enables all
      pr_debug()s in that code.
      
      In kernel-parameters.txt, add dyndbg and module.dyndbg items,
      and deprecate ddebug_query.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      29e36c9f
    • Jim Cromie's avatar
      dynamic_debug: add modname arg to exec_query callchain · 8e59b5cf
      Jim Cromie authored
      Pass module name into ddebug_exec_queries(), ddebug_exec_query(), and
      ddebug_parse_query() as separate parameter.  In ddebug_parse_query(),
      the module name is added into the query struct before the query-string
      is parsed.  This allows the query-string to be shorter:
      
      instead of:
         $modname.dyndbg="module $modname +fp"
      do this:
         $modname.dyndbg="+fp"
      
      Omitting "module $modname" from the query string is actually required
      for $modname.dyndbg rules; the set-only-once check added in a previous
      patch will throw an error if its added again.  ddebug_query="..." has
      no $modname associated with it, so the query string may include it.
      
      This also fixes redundant "module $modname" otherwise needed to handle
      multiple queries per string:
      
         $modname.dyndbg="func foo +fp; func bar +fp"
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8e59b5cf
    • Jim Cromie's avatar
      dynamic_debug: print ram usage by ddebug tables if verbose · 41076927
      Jim Cromie authored
      Print ram usage of dynamic-debug tables and verbose section so user
      knows cost of enabling CONFIG_DYNAMIC_DEBUG.  This only counts the
      size of the _ddebug tables for builtins and the __verbose section that
      they refer to, not those used in loadable modules.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      41076927
    • Jim Cromie's avatar
      dynamic_debug: simplify dynamic_debug_init error exit · af442399
      Jim Cromie authored
      We dont want errors while parsing ddebug_query to unload ddebug
      tables, so set success after tables are loaded, and return 0 after
      query parsing is done.
      
      Simplify error handling code since its no longer used for success,
      and change goto label to out_err to clarify this.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      af442399
    • Jim Cromie's avatar
      dynamic_debug: combine parse_args callbacks together · 6ab676e9
      Jim Cromie authored
      Refactor ddebug_dyndbg_boot_param_cb and ddebug_dyndbg_module_param_cb
      into a common helper function, and call it from both.  The handling of
      foo.dyndbg is unneeded by the latter, but harmless.
      
      The 2 callers differ only by pr_info and the return code they pass to
      the helper for when an unknown param is handled.  I could slightly
      reduce dmesg clutter by putting the vpr_info in the common helper,
      after the return on_err, but that loses __func__ context, is overly
      silent on module_cb unknown param errors, and the clutter is only when
      dynamic_debug.verbose=1 anyway.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6ab676e9
    • Jim Cromie's avatar
      dynamic_debug: deprecate ddebug_query, suggest dyndbg instead · f0b919d9
      Jim Cromie authored
      With ddebug_dyndbg_boot_params_cb() handling bare dyndbg params, we
      dont need ddebug_query param anymore.  Add a warning when processing
      ddebug_query= param that it is deprecated, and to change it to dyndbg=
      
      Add a deprecation notice for v3.8 to feature-removal-schedule.txt, and
      add a suggested deprecation period of 3 releases to the header.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f0b919d9
    • Jim Cromie's avatar
      dynamic_debug: make dynamic-debug work for module initialization · b48420c1
      Jim Cromie authored
      This introduces a fake module param $module.dyndbg.  Its based upon
      Thomas Renninger's $module.ddebug boot-time debugging patch from
      https://lkml.org/lkml/2010/9/15/397
      
      The 'fake' module parameter is provided for all modules, whether or
      not they need it.  It is not explicitly added to each module, but is
      implemented in callbacks invoked from parse_args.
      
      For builtin modules, dynamic_debug_init() now directly calls
      parse_args(..., &ddebug_dyndbg_boot_params_cb), to process the params
      undeclared in the modules, just after the ddebug tables are processed.
      
      While its slightly weird to reprocess the boot params, parse_args() is
      already called repeatedly by do_initcall_levels().  More importantly,
      the dyndbg queries (given in ddebug_query or dyndbg params) cannot be
      activated until after the ddebug tables are ready, and reusing
      parse_args is cleaner than doing an ad-hoc parse.  This reparse would
      break options like inc_verbosity, but they probably should be params,
      like verbosity=3.
      
      ddebug_dyndbg_boot_params_cb() handles both bare dyndbg (aka:
      ddebug_query) and module-prefixed dyndbg params, and ignores all other
      parameters.  For example, the following will enable pr_debug()s in 4
      builtin modules, in the order given:
      
        dyndbg="module params +p; module aio +p" module.dyndbg=+p pci.dyndbg
      
      For loadable modules, parse_args() in load_module() calls
      ddebug_dyndbg_module_params_cb().  This handles bare dyndbg params as
      passed from modprobe, and errors on other unknown params.
      
      Note that modprobe reads /proc/cmdline, so "modprobe foo" grabs all
      foo.params, strips the "foo.", and passes these to the kernel.
      ddebug_dyndbg_module_params_cb() is again called for the unknown
      params; it handles dyndbg, and errors on others.  The "doing" arg
      added previously contains the module name.
      
      For non CONFIG_DYNAMIC_DEBUG builds, the stub function accepts
      and ignores $module.dyndbg params, other unknowns get -ENOENT.
      
      If no param value is given (as in pci.dyndbg example above), "+p" is
      assumed, which enables all pr_debug callsites in the module.
      
      The dyndbg fake parameter is not shown in /sys/module/*/parameters,
      thus it does not use any resources.  Changes to it are made via the
      control file.
      
      Also change pr_info in ddebug_exec_queries to vpr_info,
      no need to see it all the time.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      CC: Thomas Renninger <trenn@suse.de>
      CC: Rusty Russell <rusty@rustcorp.com.au>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b48420c1
    • Jim Cromie's avatar
      params: add 3rd arg to option handler callback signature · 9fb48c74
      Jim Cromie authored
      Add a 3rd arg, named "doing", to unknown-options callbacks invoked
      from parse_args(). The arg is passed as:
      
        "Booting kernel" from start_kernel(),
        initcall_level_names[i] from do_initcall_level(),
        mod->name from load_module(), via parse_args(), parse_one()
      
      parse_args() already has the "name" parameter, which is renamed to
      "doing" to better reflect current uses 1,2 above.  parse_args() passes
      it to an altered parse_one(), which now passes it down into the
      unknown option handler callbacks.
      
      The mod->name will be needed to handle dyndbg for loadable modules,
      since params passed by modprobe are not qualified (they do not have a
      "$modname." prefix), and by the time the unknown-param callback is
      called, the module name is not otherwise available.
      
      Minor tweaks:
      
      Add param-name to parse_one's pr_debug(), current message doesnt
      identify the param being handled, add it.
      
      Add a pr_info to print current level and level_name of the initcall,
      and number of registered initcalls at that level.  This adds 7 lines
      to dmesg output, like:
      
         initlevel:6=device, 172 registered initcalls
      
      Drop "parameters" from initcall_level_names[], its unhelpful in the
      pr_info() added above.  This array is passed into parse_args() by
      do_initcall_level().
      
      CC: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9fb48c74
    • Jim Cromie's avatar
      dynamic_debug: fix leading spaces in dynamic_debug.h · 3faa2860
      Jim Cromie authored
      clean up some space-before-tabs problems.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3faa2860
    • Jim Cromie's avatar
      dynamic_debug: replace if (verbose) pr_info with macro vpr_info · b8ccd5de
      Jim Cromie authored
      Use vpr_info to declutter code, reduce indenting, and change one
      additional pr_info call in ddebug_exec_queries.
      Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
      Acked-by: default avatarJason Baron <jbaron@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b8ccd5de
    • Greg Kroah-Hartman's avatar
      Revert "w1: Add 1-wire slave device driver for DS28E04-100" · c0a67209
      Greg Kroah-Hartman authored
      This reverts commit f19420c1.
      
      It contained lots of errors and warnings and shouldn't have ever been
      applied, that was my fault, sorry.
      
      Cc: Markus Franke <markus.franke@s2002.tu-chemnitz.de>
      Cc: Evgeniy Polyakov <zbr@ioremap.net>,
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c0a67209
    • Chanwoo Choi's avatar
      Extcon: Notify changed state for only one cable to notifee · f4cce696
      Chanwoo Choi authored
      This patch inform the state of only one cable instead of previous data
      including the state of 32 cables to notifee which use
      extcon_register_interest()
      function to monitor whether the specific cable is attachd or detached.
      Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
      Signed-off-by: default avatarMyungjoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f4cce696
  7. 29 Apr, 2012 5 commits
    • Linus Torvalds's avatar
      Linux 3.4-rc5 · 69964ea4
      Linus Torvalds authored
      69964ea4
    • Linus Torvalds's avatar
      Merge tag 'pm-for-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6cfdd02b
      Linus Torvalds authored
      Pull power management fixes from Rafael J. Wysocki:
       "Fix for an issue causing hibernation to hang on systems with highmem
        (that practically means i386) due to broken memory management (bug
        introduced in 3.2, so -stable material) and PM documentation update
        making the freezer documentation follow the code again after some
        recent updates."
      
      * tag 'pm-for-3.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM / Freezer / Docs: Update documentation about freezing of tasks
        PM / Hibernate: fix the number of pages used for hibernate/thaw buffering
      6cfdd02b
    • Linus Torvalds's avatar
      autofs: make the autofsv5 packet file descriptor use a packetized pipe · 64f371bc
      Linus Torvalds authored
      The autofs packet size has had a very unfortunate size problem on x86:
      because the alignment of 'u64' differs in 32-bit and 64-bit modes, and
      because the packet data was not 8-byte aligned, the size of the autofsv5
      packet structure differed between 32-bit and 64-bit modes despite
      looking otherwise identical (300 vs 304 bytes respectively).
      
      We first fixed that up by making the 64-bit compat mode know about this
      problem in commit a32744d4 ("autofs: work around unhappy compat
      problem on x86-64"), and that made a 32-bit 'systemd' work happily on a
      64-bit kernel because everything then worked the same way as on a 32-bit
      kernel.
      
      But it turned out that 'automount' had actually known and worked around
      this problem in user space, so fixing the kernel to do the proper 32-bit
      compatibility handling actually *broke* 32-bit automount on a 64-bit
      kernel, because it knew that the packet sizes were wrong and expected
      those incorrect sizes.
      
      As a result, we ended up reverting that compatibility mode fix, and
      thus breaking systemd again, in commit fcbf94b9.
      
      With both automount and systemd doing a single read() system call, and
      verifying that they get *exactly* the size they expect but using
      different sizes, it seemed that fixing one of them inevitably seemed to
      break the other.  At one point, a patch I seriously considered applying
      from Michael Tokarev did a "strcmp()" to see if it was automount that
      was doing the operation.  Ugly, ugly.
      
      However, a prettier solution exists now thanks to the packetized pipe
      mode.  By marking the communication pipe as being packetized (by simply
      setting the O_DIRECT flag), we can always just write the bigger packet
      size, and if user-space does a smaller read, it will just get that
      partial end result and the extra alignment padding will simply be thrown
      away.
      
      This makes both automount and systemd happy, since they now get the size
      they asked for, and the kernel side of autofs simply no longer needs to
      care - it could pad out the packet arbitrarily.
      
      Of course, if there is some *other* user of autofs (please, please,
      please tell me it ain't so - and we haven't heard of any) that tries to
      read the packets with multiple writes, that other user will now be
      broken - the whole point of the packetized mode is that one system call
      gets exactly one packet, and you cannot read a packet in pieces.
      Tested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Thomas Meyer <thomas@m3y3r.de>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      64f371bc
    • Marcos Paulo de Souza's avatar
      PM / Freezer / Docs: Update documentation about freezing of tasks · 26e0f90f
      Marcos Paulo de Souza authored
      The file Documentation/power/freezing-of-tasks.txt was still referencing
      the TIF_FREEZE flag, that was removed by the commit
      d88e4cb6(freezer: remove now unused
      TIF_FREEZE).
      
      This patch removes all the references of TIF_FREEZE that were left
      behind.
      Signed-off-by: default avatarMarcos Paulo de Souza <marcos.souza.org@gmail.com>
      Signed-off-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      26e0f90f
    • Linus Torvalds's avatar
      pipes: add a "packetized pipe" mode for writing · 9883035a
      Linus Torvalds authored
      The actual internal pipe implementation is already really about
      individual packets (called "pipe buffers"), and this simply exposes that
      as a special packetized mode.
      
      When we are in the packetized mode (marked by O_DIRECT as suggested by
      Alan Cox), a write() on a pipe will not merge the new data with previous
      writes, so each write will get a pipe buffer of its own.  The pipe
      buffer is then marked with the PIPE_BUF_FLAG_PACKET flag, which in turn
      will tell the reader side to break the read at that boundary (and throw
      away any partial packet contents that do not fit in the read buffer).
      
      End result: as long as you do writes less than PIPE_BUF in size (so that
      the pipe doesn't have to split them up), you can now treat the pipe as a
      packet interface, where each read() system call will read one packet at
      a time.  You can just use a sufficiently big read buffer (PIPE_BUF is
      sufficient, since bigger than that doesn't guarantee atomicity anyway),
      and the return value of the read() will naturally give you the size of
      the packet.
      
      NOTE! We do not support zero-sized packets, and zero-sized reads and
      writes to a pipe continue to be no-ops.  Also note that big packets will
      currently be split at write time, but that the size at which that
      happens is not really specified (except that it's bigger than PIPE_BUF).
      Currently that limit is the system page size, but we might want to
      explicitly support bigger packets some day.
      
      The main user for this is going to be the autofs packet interface,
      allowing us to stop having to care so deeply about exact packet sizes
      (which have had bugs with 32/64-bit compatibility modes).  But user
      space can create packetized pipes with "pipe2(fd, O_DIRECT)", which will
      fail with an EINVAL on kernels that do not support this interface.
      Tested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Cc: Ian Kent <raven@themaw.net>
      Cc: Thomas Meyer <thomas@m3y3r.de>
      Cc: stable@kernel.org  # needed for systemd/autofs interaction fix
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9883035a