Merge branch 'linus' into tracing/core
authorIngo Molnar <mingo@elte.hu>
Thu, 17 Sep 2009 18:52:23 +0000 (20:52 +0200)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Sep 2009 18:53:10 +0000 (20:53 +0200)
Merge reason: Pick up kernel/softirq.c update for dependent fix.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
1  2 
Documentation/trace/events.txt
MAINTAINERS
include/asm-generic/vmlinux.lds.h
kernel/trace/trace_events.c

index 6e5f35ebb9c11b136aa4cca8c3b2ca8d9617a6b5,90e8b3383ba247c67cfd5040f7a7874182d2ee60..78c45a87be57a3c0d8df08664adce439df47586d
@@@ -1,7 -1,7 +1,7 @@@
                             Event Tracing
  
                Documentation written by Theodore Ts'o
 -                      Updated by Li Zefan
 +              Updated by Li Zefan and Tom Zanussi
  
  1. Introduction
  ===============
@@@ -22,12 -22,12 +22,12 @@@ tracing information should be printed
  ---------------------------------
  
  The events which are available for tracing can be found in the file
- /debug/tracing/available_events.
+ /sys/kernel/debug/tracing/available_events.
  
  To enable a particular event, such as 'sched_wakeup', simply echo it
- to /debug/tracing/set_event. For example:
+ to /sys/kernel/debug/tracing/set_event. For example:
  
-       # echo sched_wakeup >> /debug/tracing/set_event
+       # echo sched_wakeup >> /sys/kernel/debug/tracing/set_event
  
  [ Note: '>>' is necessary, otherwise it will firstly disable
    all the events. ]
  To disable an event, echo the event name to the set_event file prefixed
  with an exclamation point:
  
-       # echo '!sched_wakeup' >> /debug/tracing/set_event
+       # echo '!sched_wakeup' >> /sys/kernel/debug/tracing/set_event
  
  To disable all events, echo an empty line to the set_event file:
  
-       # echo > /debug/tracing/set_event
+       # echo > /sys/kernel/debug/tracing/set_event
  
  To enable all events, echo '*:*' or '*:' to the set_event file:
  
-       # echo *:* > /debug/tracing/set_event
+       # echo *:* > /sys/kernel/debug/tracing/set_event
  
  The events are organized into subsystems, such as ext4, irq, sched,
  etc., and a full event name looks like this: <subsystem>:<event>.  The
@@@ -52,29 -52,29 +52,29 @@@ file.  All of the events in a subsyste
  "<subsystem>:*"; for example, to enable all irq events, you can use the
  command:
  
-       # echo 'irq:*' > /debug/tracing/set_event
+       # echo 'irq:*' > /sys/kernel/debug/tracing/set_event
  
  2.2 Via the 'enable' toggle
  ---------------------------
  
- The events available are also listed in /debug/tracing/events/ hierarchy
+ The events available are also listed in /sys/kernel/debug/tracing/events/ hierarchy
  of directories.
  
  To enable event 'sched_wakeup':
  
-       # echo 1 > /debug/tracing/events/sched/sched_wakeup/enable
+       # echo 1 > /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
  
  To disable it:
  
-       # echo 0 > /debug/tracing/events/sched/sched_wakeup/enable
+       # echo 0 > /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
  
  To enable all events in sched subsystem:
  
-       # echo 1 > /debug/tracing/events/sched/enable
+       # echo 1 > /sys/kernel/debug/tracing/events/sched/enable
  
  To eanble all events:
  
-       # echo 1 > /debug/tracing/events/enable
+       # echo 1 > /sys/kernel/debug/tracing/events/enable
  
  When reading one of these enable files, there are four results:
  
@@@ -97,185 -97,3 +97,185 @@@ The format of this boot option is the s
  
  See The example provided in samples/trace_events
  
 +4. Event formats
 +================
 +
 +Each trace event has a 'format' file associated with it that contains
 +a description of each field in a logged event.  This information can
 +be used to parse the binary trace stream, and is also the place to
 +find the field names that can be used in event filters (see section 5).
 +
 +It also displays the format string that will be used to print the
 +event in text mode, along with the event name and ID used for
 +profiling.
 +
 +Every event has a set of 'common' fields associated with it; these are
 +the fields prefixed with 'common_'.  The other fields vary between
 +events and correspond to the fields defined in the TRACE_EVENT
 +definition for that event.
 +
 +Each field in the format has the form:
 +
 +     field:field-type field-name; offset:N; size:N;
 +
 +where offset is the offset of the field in the trace record and size
 +is the size of the data item, in bytes.
 +
 +For example, here's the information displayed for the 'sched_wakeup'
 +event:
 +
 +# cat /debug/tracing/events/sched/sched_wakeup/format
 +
 +name: sched_wakeup
 +ID: 60
 +format:
 +      field:unsigned short common_type;       offset:0;       size:2;
 +      field:unsigned char common_flags;       offset:2;       size:1;
 +      field:unsigned char common_preempt_count;       offset:3;       size:1;
 +      field:int common_pid;   offset:4;       size:4;
 +      field:int common_tgid;  offset:8;       size:4;
 +
 +      field:char comm[TASK_COMM_LEN]; offset:12;      size:16;
 +      field:pid_t pid;        offset:28;      size:4;
 +      field:int prio; offset:32;      size:4;
 +      field:int success;      offset:36;      size:4;
 +      field:int cpu;  offset:40;      size:4;
 +
 +print fmt: "task %s:%d [%d] success=%d [%03d]", REC->comm, REC->pid,
 +         REC->prio, REC->success, REC->cpu
 +
 +This event contains 10 fields, the first 5 common and the remaining 5
 +event-specific.  All the fields for this event are numeric, except for
 +'comm' which is a string, a distinction important for event filtering.
 +
 +5. Event filtering
 +==================
 +
 +Trace events can be filtered in the kernel by associating boolean
 +'filter expressions' with them.  As soon as an event is logged into
 +the trace buffer, its fields are checked against the filter expression
 +associated with that event type.  An event with field values that
 +'match' the filter will appear in the trace output, and an event whose
 +values don't match will be discarded.  An event with no filter
 +associated with it matches everything, and is the default when no
 +filter has been set for an event.
 +
 +5.1 Expression syntax
 +---------------------
 +
 +A filter expression consists of one or more 'predicates' that can be
 +combined using the logical operators '&&' and '||'.  A predicate is
 +simply a clause that compares the value of a field contained within a
 +logged event with a constant value and returns either 0 or 1 depending
 +on whether the field value matched (1) or didn't match (0):
 +
 +        field-name relational-operator value
 +
 +Parentheses can be used to provide arbitrary logical groupings and
 +double-quotes can be used to prevent the shell from interpreting
 +operators as shell metacharacters.
 +
 +The field-names available for use in filters can be found in the
 +'format' files for trace events (see section 4).
 +
 +The relational-operators depend on the type of the field being tested:
 +
 +The operators available for numeric fields are:
 +
 +==, !=, <, <=, >, >=
 +
 +And for string fields they are:
 +
 +==, !=
 +
 +Currently, only exact string matches are supported.
 +
 +Currently, the maximum number of predicates in a filter is 16.
 +
 +5.2 Setting filters
 +-------------------
 +
 +A filter for an individual event is set by writing a filter expression
 +to the 'filter' file for the given event.
 +
 +For example:
 +
 +# cd /debug/tracing/events/sched/sched_wakeup
 +# echo "common_preempt_count > 4" > filter
 +
 +A slightly more involved example:
 +
 +# cd /debug/tracing/events/sched/sched_signal_send
 +# echo "((sig >= 10 && sig < 15) || sig == 17) && comm != bash" > filter
 +
 +If there is an error in the expression, you'll get an 'Invalid
 +argument' error when setting it, and the erroneous string along with
 +an error message can be seen by looking at the filter e.g.:
 +
 +# cd /debug/tracing/events/sched/sched_signal_send
 +# echo "((sig >= 10 && sig < 15) || dsig == 17) && comm != bash" > filter
 +-bash: echo: write error: Invalid argument
 +# cat filter
 +((sig >= 10 && sig < 15) || dsig == 17) && comm != bash
 +^
 +parse_error: Field not found
 +
 +Currently the caret ('^') for an error always appears at the beginning of
 +the filter string; the error message should still be useful though
 +even without more accurate position info.
 +
 +5.3 Clearing filters
 +--------------------
 +
 +To clear the filter for an event, write a '0' to the event's filter
 +file.
 +
 +To clear the filters for all events in a subsystem, write a '0' to the
 +subsystem's filter file.
 +
 +5.3 Subsystem filters
 +---------------------
 +
 +For convenience, filters for every event in a subsystem can be set or
 +cleared as a group by writing a filter expression into the filter file
 +at the root of the subsytem.  Note however, that if a filter for any
 +event within the subsystem lacks a field specified in the subsystem
 +filter, or if the filter can't be applied for any other reason, the
 +filter for that event will retain its previous setting.  This can
 +result in an unintended mixture of filters which could lead to
 +confusing (to the user who might think different filters are in
 +effect) trace output.  Only filters that reference just the common
 +fields can be guaranteed to propagate successfully to all events.
 +
 +Here are a few subsystem filter examples that also illustrate the
 +above points:
 +
 +Clear the filters on all events in the sched subsytem:
 +
 +# cd /sys/kernel/debug/tracing/events/sched
 +# echo 0 > filter
 +# cat sched_switch/filter
 +none
 +# cat sched_wakeup/filter
 +none
 +
 +Set a filter using only common fields for all events in the sched
 +subsytem (all events end up with the same filter):
 +
 +# cd /sys/kernel/debug/tracing/events/sched
 +# echo common_pid == 0 > filter
 +# cat sched_switch/filter
 +common_pid == 0
 +# cat sched_wakeup/filter
 +common_pid == 0
 +
 +Attempt to set a filter using a non-common field for all events in the
 +sched subsytem (all events but those that have a prev_pid field retain
 +their old filters):
 +
 +# cd /sys/kernel/debug/tracing/events/sched
 +# echo prev_pid == 0 > filter
 +# cat sched_switch/filter
 +prev_pid == 0
 +# cat sched_wakeup/filter
 +common_pid == 0
diff --combined MAINTAINERS
index 1505129ec5a03cb7e4b3a657ddd4148e4dc175cd,9117b65f4ae374152242064d518a8f30a3a4fcb0..9addc2838e4f2e17112c67f5ef010a744790e6cc
@@@ -439,7 -439,7 +439,7 @@@ F: drivers/hwmon/ams
  AMSO1100 RNIC DRIVER
  M:    Tom Tucker <tom@opengridcomputing.com>
  M:    Steve Wise <swise@opengridcomputing.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  S:    Maintained
  F:    drivers/infiniband/hw/amso1100/
  
@@@ -534,10 -534,30 +534,30 @@@ L:      linux-arm-kernel@lists.arm.linux.org
  W:    http://maxim.org.za/at91_26.html
  S:    Maintained
  
+ ARM/BCMRING ARM ARCHITECTURE
+ M:    Leo Chen <leochen@broadcom.com>
+ M:    Scott Branden <sbranden@broadcom.com>
+ L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+ S:    Maintained
+ F:    arch/arm/mach-bcmring
+ ARM/BCMRING MTD NAND DRIVER
+ M:    Leo Chen <leochen@broadcom.com>
+ M:    Scott Branden <sbranden@broadcom.com>
+ L:    linux-mtd@lists.infradead.org
+ S:    Maintained
+ F:    drivers/mtd/nand/bcm_umi_nand.c
+ F:    drivers/mtd/nand/bcm_umi_bch.c
+ F:    drivers/mtd/nand/bcm_umi_hamming.c
+ F:    drivers/mtd/nand/nand_bcm_umi.h
  ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
- M:    Lennert Buytenhek <kernel@wantstofly.org>
+ M:    Hartley Sweeten <hsweeten@visionengravers.com>
+ M:    Ryan Mallon <ryan@bluewatersys.com>
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
+ F:    arch/arm/mach-ep93xx/
+ F:    arch/arm/mach-ep93xx/include/mach/
  
  ARM/CIRRUS LOGIC EDB9315A MACHINE SUPPORT
  M:    Lennert Buytenhek <kernel@wantstofly.org>
@@@ -685,6 -705,18 +705,18 @@@ ARM/MAGICIAN MACHINE SUPPOR
  M:    Philipp Zabel <philipp.zabel@gmail.com>
  S:    Maintained
  
+ ARM/Marvell Loki/Kirkwood/MV78xx0/Orion SOC support
+ M:    Lennert Buytenhek <buytenh@marvell.com>
+ M:    Nicolas Pitre <nico@marvell.com>
+ L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+ T:    git git://git.marvell.com/orion
+ S:    Maintained
+ F:    arch/arm/mach-loki/
+ F:    arch/arm/mach-kirkwood/
+ F:    arch/arm/mach-mv78xx0/
+ F:    arch/arm/mach-orion5x/
+ F:    arch/arm/plat-orion/
  ARM/MIOA701 MACHINE SUPPORT
  M:    Robert Jarzmik <robert.jarzmik@free.fr>
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
@@@ -876,6 -908,7 +908,7 @@@ M: "Luis R. Rodriguez" <lrodriguez@athe
  M:    Bob Copeland <me@bobcopeland.com>
  L:    linux-wireless@vger.kernel.org
  L:    ath5k-devel@lists.ath5k.org
+ W:    http://wireless.kernel.org/en/users/Drivers/ath5k
  S:    Maintained
  F:    drivers/net/wireless/ath/ath5k/
  
@@@ -887,6 -920,7 +920,7 @@@ M: Vasanthakumar Thiagarajan <vasanth@a
  M:    Senthil Balasubramanian <senthilkumar@atheros.com>
  L:    linux-wireless@vger.kernel.org
  L:    ath9k-devel@lists.ath9k.org
+ W:    http://wireless.kernel.org/en/users/Drivers/ath9k
  S:    Supported
  F:    drivers/net/wireless/ath/ath9k/
  
@@@ -1494,7 -1528,7 +1528,7 @@@ F:      drivers/net/cxgb3
  
  CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
  M:    Steve Wise <swise@chelsio.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  W:    http://www.openfabrics.org
  S:    Supported
  F:    drivers/infiniband/hw/cxgb3/
@@@ -1868,7 -1902,7 +1902,7 @@@ F:      fs/efs
  EHCA (IBM GX bus InfiniBand adapter) DRIVER
  M:    Hoang-Nam Nguyen <hnguyen@de.ibm.com>
  M:    Christoph Raisch <raisch@de.ibm.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  S:    Supported
  F:    drivers/infiniband/hw/ehca/
  
@@@ -2118,16 -2152,13 +2152,16 @@@ F:   Documentation/filesystems/caching
  F:    fs/fscache/
  F:    include/linux/fscache*.h
  
 -FTRACE
 +TRACING
  M:    Steven Rostedt <rostedt@goodmis.org>
 +M:    Frederic Weisbecker <fweisbec@gmail.com>
 +M:    Ingo Molnar <mingo@redhat.com>
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git tracing/core
  S:    Maintained
  F:    Documentation/trace/ftrace.txt
  F:    arch/*/*/*/ftrace.h
  F:    arch/*/kernel/ftrace.c
 -F:    include/*/ftrace.h
 +F:    include/*/ftrace.h include/trace/ include/linux/trace*.h
  F:    kernel/trace/
  
  FUJITSU FR-V (FRV) PORT
@@@ -2187,6 -2218,13 +2221,13 @@@ T:    git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    include/asm-generic
  
+ GENERIC UIO DRIVER FOR PCI DEVICES
+ M:    Michael S. Tsirkin <mst@redhat.com>
+ L:    kvm@vger.kernel.org
+ L:    linux-kernel@vger.kernel.org
+ S:    Supported
+ F:    drivers/uio/uio_pci_generic.c
  GFS2 FILE SYSTEM
  M:    Steven Whitehouse <swhiteho@redhat.com>
  L:    cluster-devel@redhat.com
@@@ -2555,7 -2593,7 +2596,7 @@@ INFINIBAND SUBSYSTE
  M:    Roland Dreier <rolandd@cisco.com>
  M:    Sean Hefty <sean.hefty@intel.com>
  M:    Hal Rosenstock <hal.rosenstock@gmail.com>
- L:    general@lists.openfabrics.org (moderated for non-subscribers)
+ L:    linux-rdma@vger.kernel.org
  W:    http://www.openib.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git
  S:    Supported
@@@ -2663,25 -2701,21 +2704,21 @@@ F:   drivers/net/ixgbe
  
  INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
  M:    Zhu Yi <yi.zhu@intel.com>
- M:    James Ketrenos <jketreno@linux.intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
+ M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
- L:    ipw2100-devel@lists.sourceforge.net
- W:    http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
  W:    http://ipw2100.sourceforge.net
- S:    Supported
+ S:    Odd Fixes
  F:    Documentation/networking/README.ipw2100
  F:    drivers/net/wireless/ipw2x00/ipw2100.*
  
  INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
  M:    Zhu Yi <yi.zhu@intel.com>
- M:    James Ketrenos <jketreno@linux.intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
+ M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
- L:    ipw2100-devel@lists.sourceforge.net
- W:    http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
  W:    http://ipw2200.sourceforge.net
- S:    Supported
+ S:    Odd Fixes
  F:    Documentation/networking/README.ipw2200
  F:    drivers/net/wireless/ipw2x00/ipw2200.*
  
@@@ -2698,8 -2732,8 +2735,8 @@@ F:      include/linux/wimax/i2400m.
  INTEL WIRELESS WIFI LINK (iwlwifi)
  M:    Zhu Yi <yi.zhu@intel.com>
  M:    Reinette Chatre <reinette.chatre@intel.com>
+ M:    Intel Linux Wireless <ilw@linux.intel.com>
  L:    linux-wireless@vger.kernel.org
- L:    ipw3945-devel@lists.sourceforge.net
  W:    http://intellinuxwireless.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git
  S:    Supported
@@@ -2732,7 -2766,7 +2769,7 @@@ F:      drivers/net/ipg.
  
  IPATH DRIVER
  M:    Ralph Campbell <infinipath@qlogic.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  T:    git git://git.qlogic.com/ipath-linux-2.6
  S:    Supported
  F:    drivers/infiniband/hw/ipath/
@@@ -2931,6 -2965,7 +2968,7 @@@ F:      include/linux/sunrpc
  
  KERNEL VIRTUAL MACHINE (KVM)
  M:    Avi Kivity <avi@redhat.com>
+ M:    Marcelo Tosatti <mtosatti@redhat.com>
  L:    kvm@vger.kernel.org
  W:    http://kvm.qumranet.com
  S:    Supported
@@@ -3282,8 -3317,14 +3320,14 @@@ S:    Supporte
  F:    drivers/net/mv643xx_eth.*
  F:    include/linux/mv643xx.h
  
+ MARVELL MWL8K WIRELESS DRIVER
+ M:    Lennert Buytenhek <buytenh@marvell.com>
+ L:    linux-wireless@vger.kernel.org
+ S:    Supported
+ F:    drivers/net/wireless/mwl8k.c
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
- M:    Nicolas Pitre <nico@cam.org>
+ M:    Nicolas Pitre <nico@fluxnic.net>
  S:    Maintained
  
  MARVELL YUKON / SYSKONNECT DRIVER
@@@ -3488,7 -3529,7 +3532,7 @@@ F:      drivers/scsi/NCR_D700.
  NETEFFECT IWARP RNIC DRIVER (IW_NES)
  M:    Faisal Latif <faisal.latif@intel.com>
  M:    Chien Tung <chien.tin.tung@intel.com>
- L:    general@lists.openfabrics.org
+ L:    linux-rdma@vger.kernel.org
  W:    http://www.neteffect.com
  S:    Supported
  F:    drivers/infiniband/hw/nes/
@@@ -3594,9 -3635,12 +3638,12 @@@ M:    "John W. Linville" <linville@tuxdriv
  L:    linux-wireless@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git
  S:    Maintained
+ F:    net/mac80211/
+ F:    net/rfkill/
  F:    net/wireless/
  F:    include/net/ieee80211*
  F:    include/linux/wireless.h
+ F:    drivers/net/wireless/
  
  NETWORKING DRIVERS
  L:    netdev@vger.kernel.org
@@@ -3972,6 -4016,14 +4019,14 @@@ S:    Maintaine
  F:    drivers/block/pktcdvd.c
  F:    include/linux/pktcdvd.h
  
+ PMC SIERRA MaxRAID DRIVER
+ P:    Anil Ravindranath
+ M:    anil_ravindranath@pmc-sierra.com
+ L:    linux-scsi@vger.kernel.org
+ W:    http://www.pmc-sierra.com/
+ S:    Supported
+ F:    drivers/scsi/pmcraid.*
  POSIX CLOCKS and TIMERS
  M:    Thomas Gleixner <tglx@linutronix.de>
  S:    Supported
@@@ -4302,7 -4354,7 +4357,7 @@@ L:      linux-wireless@vger.kernel.or
  W:    http://linuxwireless.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
  S:    Maintained
- F:    drivers/net/wireless/rtl818*
+ F:    drivers/net/wireless/rtl818x/rtl8180*
  
  RTL8187 WIRELESS DRIVER
  M:    Herton Ronaldo Krzesinski <herton@mandriva.com.br>
@@@ -4410,7 -4462,7 +4465,7 @@@ F:      drivers/scsi/sg.
  F:    include/scsi/sg.h
  
  SCSI SUBSYSTEM
- M:    "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
+ M:    "James E.J. Bottomley" <James.Bottomley@suse.de>
  L:    linux-scsi@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git
@@@ -4529,9 -4581,10 +4584,10 @@@ S:    Supporte
  F:    drivers/net/benet/
  
  SFC NETWORK DRIVER
- P:    Steve Hodgson
- P:    Ben Hutchings
- M:    Robert Stonehouse <linux-net-drivers@solarflare.com>
+ M:    Solarflare linux maintainers <linux-net-drivers@solarflare.com>
+ M:    Steve Hodgson <shodgson@solarflare.com>
+ M:    Ben Hutchings <bhutchings@solarflare.com>
+ L:    netdev@vger.kernel.org
  S:    Supported
  F:    drivers/net/sfc/
  
@@@ -4643,7 -4696,7 +4699,7 @@@ F:      include/linux/sl?b*.
  F:    mm/sl?b.c
  
  SMC91x ETHERNET DRIVER
- M:    Nicolas Pitre <nico@cam.org>
+ M:    Nicolas Pitre <nico@fluxnic.net>
  S:    Maintained
  F:    drivers/net/smc91x.*
  
@@@ -5581,6 -5634,24 +5637,24 @@@ M:    Miloslav Trmac <mitr@volny.cz
  S:    Maintained
  F:    drivers/input/misc/wistron_btns.c
  
+ WL1251 WIRELESS DRIVER
+ P:    Kalle Valo
+ M:    kalle.valo@nokia.com
+ L:    linux-wireless@vger.kernel.org
+ W:    http://wireless.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
+ S:    Maintained
+ F:    drivers/net/wireless/wl12xx/*
+ X:    drivers/net/wireless/wl12xx/wl1271*
+ WL1271 WIRELESS DRIVER
+ M:    Luciano Coelho <luciano.coelho@nokia.com>
+ L:    linux-wireless@vger.kernel.org
+ W:    http://wireless.kernel.org
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
+ S:    Maintained
+ F:    drivers/net/wireless/wl12xx/wl1271*
  WL3501 WIRELESS PCMCIA CARD DRIVER
  M:    Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
  L:    linux-wireless@vger.kernel.org
index 98b37cf3ac6d0346f86f60e47449e7583acfed9d,a43223af98b667c0e5af01ed90d4637fe001272e..29ca8f53ffbe203fc00960e495fb39c3f959fc51
   *    BSS_SECTION(0, 0, 0)
   *    _end = .;
   *
-  *    /DISCARD/ : {
-  *            EXIT_TEXT
-  *            EXIT_DATA
-  *            EXIT_CALL
-  *    }
   *    STABS_DEBUG
   *    DWARF_DEBUG
+  *
+  *    DISCARDS                // must be the last
   * }
   *
   * [__init_begin, __init_end] is the init section that may be freed after init
@@@ -91,8 -88,7 +88,8 @@@
  #endif
  
  #ifdef CONFIG_FTRACE_MCOUNT_RECORD
 -#define MCOUNT_REC()  VMLINUX_SYMBOL(__start_mcount_loc) = .; \
 +#define MCOUNT_REC()  . = ALIGN(8);                           \
 +                      VMLINUX_SYMBOL(__start_mcount_loc) = .; \
                        *(__mcount_loc)                         \
                        VMLINUX_SYMBOL(__stop_mcount_loc) = .;
  #else
        /* __*init sections */                                          \
        __init_rodata : AT(ADDR(__init_rodata) - LOAD_OFFSET) {         \
                *(.ref.rodata)                                          \
 -              MCOUNT_REC()                                            \
                DEV_KEEP(init.rodata)                                   \
                DEV_KEEP(exit.rodata)                                   \
                CPU_KEEP(init.rodata)                                   \
        MEM_DISCARD(init.data)                                          \
        KERNEL_CTORS()                                                  \
        *(.init.rodata)                                                 \
 +      MCOUNT_REC()                                                    \
        DEV_DISCARD(init.rodata)                                        \
        CPU_DISCARD(init.rodata)                                        \
        MEM_DISCARD(init.rodata)
  #define INIT_RAM_FS
  #endif
  
+ /*
+  * Default discarded sections.
+  *
+  * Some archs want to discard exit text/data at runtime rather than
+  * link time due to cross-section references such as alt instructions,
+  * bug table, eh_frame, etc.  DISCARDS must be the last of output
+  * section definitions so that such archs put those in earlier section
+  * definitions.
+  */
+ #define DISCARDS                                                      \
+       /DISCARD/ : {                                                   \
+       EXIT_TEXT                                                       \
+       EXIT_DATA                                                       \
+       EXIT_CALL                                                       \
+       *(.discard)                                                     \
+       }
  /**
   * PERCPU_VADDR - define output section for percpu area
   * @vaddr: explicit base address (optional)
index 787f0fb0994e861a3248a5018f7c4667b200910b,97e2c4d2e9ebdfeed72e8518a34e0e25f6b045d4..56c260b83a9cc8a4fa76a44a387cbc68691ae2ff
@@@ -21,7 -21,6 +21,7 @@@
  
  #include "trace_output.h"
  
 +#undef TRACE_SYSTEM
  #define TRACE_SYSTEM "TRACE_SYSTEM"
  
  DEFINE_MUTEX(event_mutex);
@@@ -87,7 -86,7 +87,7 @@@ int trace_define_common_fields(struct f
        __common_field(unsigned char, flags);
        __common_field(unsigned char, preempt_count);
        __common_field(int, pid);
 -      __common_field(int, tgid);
 +      __common_field(int, lock_depth);
  
        return ret;
  }
@@@ -231,9 -230,11 +231,9 @@@ static ssize_
  ftrace_event_write(struct file *file, const char __user *ubuf,
                   size_t cnt, loff_t *ppos)
  {
 +      struct trace_parser parser;
        size_t read = 0;
 -      int i, set = 1;
        ssize_t ret;
 -      char *buf;
 -      char ch;
  
        if (!cnt || cnt < 0)
                return 0;
        if (ret < 0)
                return ret;
  
 -      ret = get_user(ch, ubuf++);
 -      if (ret)
 -              return ret;
 -      read++;
 -      cnt--;
 -
 -      /* skip white space */
 -      while (cnt && isspace(ch)) {
 -              ret = get_user(ch, ubuf++);
 -              if (ret)
 -                      return ret;
 -              read++;
 -              cnt--;
 -      }
 -
 -      /* Only white space found? */
 -      if (isspace(ch)) {
 -              file->f_pos += read;
 -              ret = read;
 -              return ret;
 -      }
 -
 -      buf = kmalloc(EVENT_BUF_SIZE+1, GFP_KERNEL);
 -      if (!buf)
 +      if (trace_parser_get_init(&parser, EVENT_BUF_SIZE + 1))
                return -ENOMEM;
  
 -      if (cnt > EVENT_BUF_SIZE)
 -              cnt = EVENT_BUF_SIZE;
 +      read = trace_get_user(&parser, ubuf, cnt, ppos);
 +
 +      if (trace_parser_loaded((&parser))) {
 +              int set = 1;
  
 -      i = 0;
 -      while (cnt && !isspace(ch)) {
 -              if (!i && ch == '!')
 +              if (*parser.buffer == '!')
                        set = 0;
 -              else
 -                      buf[i++] = ch;
  
 -              ret = get_user(ch, ubuf++);
 +              parser.buffer[parser.idx] = 0;
 +
 +              ret = ftrace_set_clr_event(parser.buffer + !set, set);
                if (ret)
 -                      goto out_free;
 -              read++;
 -              cnt--;
 +                      goto out_put;
        }
 -      buf[i] = 0;
 -
 -      file->f_pos += read;
 -
 -      ret = ftrace_set_clr_event(buf, set);
 -      if (ret)
 -              goto out_free;
  
        ret = read;
  
 - out_free:
 -      kfree(buf);
 + out_put:
 +      trace_parser_put(&parser);
  
        return ret;
  }
@@@ -545,7 -578,7 +545,7 @@@ static int trace_write_header(struct tr
                                FIELD(unsigned char, flags),
                                FIELD(unsigned char, preempt_count),
                                FIELD(int, pid),
 -                              FIELD(int, tgid));
 +                              FIELD(int, lock_depth));
  }
  
  static ssize_t
@@@ -1154,7 -1187,7 +1154,7 @@@ static int trace_module_notify(struct n
  }
  #endif /* CONFIG_MODULES */
  
 -struct notifier_block trace_module_nb = {
 +static struct notifier_block trace_module_nb = {
        .notifier_call = trace_module_notify,
        .priority = 0,
  };
@@@ -1326,18 -1359,6 +1326,18 @@@ static __init void event_trace_self_tes
                if (!call->regfunc)
                        continue;
  
 +/*
 + * Testing syscall events here is pretty useless, but
 + * we still do it if configured. But this is time consuming.
 + * What we really need is a user thread to perform the
 + * syscalls as we test.
 + */
 +#ifndef CONFIG_EVENT_TRACE_TEST_SYSCALLS
 +              if (call->system &&
 +                  strcmp(call->system, "syscalls") == 0)
 +                      continue;
 +#endif
 +
                pr_info("Testing event %s: ", call->name);
  
                /*
  
  #ifdef CONFIG_FUNCTION_TRACER
  
- static DEFINE_PER_CPU(atomic_t, test_event_disable);
+ static DEFINE_PER_CPU(atomic_t, ftrace_test_event_disable);
  
  static void
  function_test_events_call(unsigned long ip, unsigned long parent_ip)
        pc = preempt_count();
        resched = ftrace_preempt_disable();
        cpu = raw_smp_processor_id();
-       disabled = atomic_inc_return(&per_cpu(test_event_disable, cpu));
+       disabled = atomic_inc_return(&per_cpu(ftrace_test_event_disable, cpu));
  
        if (disabled != 1)
                goto out;
        trace_nowake_buffer_unlock_commit(buffer, event, flags, pc);
  
   out:
-       atomic_dec(&per_cpu(test_event_disable, cpu));
+       atomic_dec(&per_cpu(ftrace_test_event_disable, cpu));
        ftrace_preempt_enable(resched);
  }