1. 06 4月, 2009 40 次提交
    • P
      perf_counter: fix type/event_id layout on big-endian systems · 9aaa131a
      Paul Mackerras 提交于
      Impact: build fix for powerpc
      
      Commit db3a944aca35ae61 ("perf_counter: revamp syscall input ABI")
      expanded the hw_event.type field into a union of structs containing
      bitfields.  In particular it introduced a type field and a raw_type
      field, with the intention that the 1-bit raw_type field should
      overlay the most-significant bit of the 8-bit type field, and in fact
      perf_counter_alloc() now assumes that (or at least, assumes that
      raw_type doesn't overlay any of the bits that are 1 in the values of
      PERF_TYPE_{HARDWARE,SOFTWARE,TRACEPOINT}).
      
      Unfortunately this is not true on big-endian systems such as PowerPC,
      where bitfields are laid out from left to right, i.e. from most
      significant bit to least significant.  This means that setting
      hw_event.type = PERF_TYPE_SOFTWARE will set hw_event.raw_type to 1.
      
      This fixes it by making the layout depend on whether or not
      __BIG_ENDIAN_BITFIELD is defined.  It's a bit ugly, but that's what
      we get for using bitfields in a user/kernel ABI.
      
      Also, that commit didn't fix up some places in arch/powerpc/kernel/
      perf_counter.c where hw_event.raw and hw_event.event_id were used.
      This fixes them too.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      9aaa131a
    • P
      perf_counter: powerpc: clean up perc_counter_interrupt · db4fb5ac
      Paul Mackerras 提交于
      Impact: cleanup
      
      This updates the powerpc perf_counter_interrupt following on from the
      "perf_counter: unify irq output code" patch.  Since we now use the
      generic perf_counter_output code, which sets the perf_counter_pending
      flag directly, we no longer need the need_wakeup variable.
      
      This removes need_wakeup and makes perf_counter_interrupt use
      get_perf_counter_pending() instead.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Orig-LKML-Reference: <20090319194234.024464535@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      db4fb5ac
    • P
      perf_counter: unify irq output code · 0322cd6e
      Peter Zijlstra 提交于
      Impact: cleanup
      
      Having 3 slightly different copies of the same code around does nobody
      any good. First step in revamping the output format.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Orig-LKML-Reference: <20090319194233.929962222@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0322cd6e
    • P
      perf_counter: revamp syscall input ABI · b8e83514
      Peter Zijlstra 提交于
      Impact: modify ABI
      
      The hardware/software classification in hw_event->type became a little
      strained due to the addition of tracepoint tracing.
      
      Instead split up the field and provide a type field to explicitly specify
      the counter type, while using the event_id field to specify which event to
      use.
      
      Raw counters still work as before, only the raw config now goes into
      raw_event.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Orig-LKML-Reference: <20090319194233.836807573@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b8e83514
    • P
      perf_counter: hook up the tracepoint events · e077df4f
      Peter Zijlstra 提交于
      Impact: new perfcounters feature
      
      Enable usage of tracepoints as perf counter events.
      
      tracepoint event ids can be found in /debug/tracing/event/*/*/id
      and (for now) are represented as -65536+id in the type field.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Orig-LKML-Reference: <20090319194233.744044174@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e077df4f
    • P
      perf_counter: fix up counter free paths · f1600952
      Peter Zijlstra 提交于
      Impact: fix crash during perfcounters use
      
      I found another counter free path, create a free_counter() call to
      accomodate generic tear-down.
      
      Fixes an RCU bug.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Orig-LKML-Reference: <20090319194233.652078652@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f1600952
    • P
      perf_counter: generic context switch event · 4a0deca6
      Peter Zijlstra 提交于
      Impact: cleanup
      
      Use the generic software events for context switches.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Orig-LKML-Reference: <20090319194233.283522645@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4a0deca6
    • P
      perf_counter: fix uninitialized usage of event_list · 01ef09d9
      Peter Zijlstra 提交于
      Impact: fix boot crash
      
      When doing the generic context switch event I ran into some early
      boot hangs, which were caused by inf func recursion (event, fault,
      event, fault).
      
      I eventually tracked it down to event_list not being initialized
      at the time of the first event. Fix this.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Orig-LKML-Reference: <20090319194233.195392657@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      01ef09d9
    • P
      perf_counter: abstract wakeup flag setting in core to fix powerpc build · b6c5a71d
      Paul Mackerras 提交于
      Impact: build fix for powerpc
      
      Commit bd753921015e7905 ("perf_counter: software counter event
      infrastructure") introduced a use of TIF_PERF_COUNTERS into the core
      perfcounter code.  This breaks the build on powerpc because we use
      a flag in a per-cpu area to signal wakeups on powerpc rather than
      a thread_info flag, because the thread_info flags have to be
      manipulated with atomic operations and are thus slower than per-cpu
      flags.
      
      This fixes the by changing the core to use an abstracted
      set_perf_counter_pending() function, which is defined on x86 to set
      the TIF_PERF_COUNTERS flag and on powerpc to set the per-cpu flag
      (paca->perf_counter_pending).  It changes the previous powerpc
      definition of set_perf_counter_pending to not take an argument and
      adds a clear_perf_counter_pending, so as to simplify the definition
      on x86.
      
      On x86, set_perf_counter_pending() is defined as a macro.  Defining
      it as a static inline in arch/x86/include/asm/perf_counters.h causes
      compile failures because <asm/perf_counters.h> gets included early in
      <linux/sched.h>, and the definitions of set_tsk_thread_flag etc. are
      therefore not available in <asm/perf_counters.h>.  (On powerpc this
      problem is avoided by defining set_perf_counter_pending etc. in
      <asm/hw_irq.h>.)
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b6c5a71d
    • I
      perf_counter: fix crash on perfmon v1 systems · 7bb497bd
      Ingo Molnar 提交于
      Impact: fix boot crash on Intel Perfmon Version 1 systems
      
      Intel Perfmon v1 does not support the global MSRs, nor does
      it offer the generalized MSR ranges. So support v2 and later
      CPUs only.
      
      Also mark pmc_ops as read-mostly - to avoid false cacheline
      sharing.
      
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7bb497bd
    • T
      perf_counter: include missing header · 4e193bd4
      Tim Blechmann 提交于
      Impact: build fix
      
      In order to compile a kernel with performance counter patches,
      <asm/irq_regs.h> has to be included to provide the declaration of
      struct pt_regs *get_irq_regs(void);
      
      [ This bug was masked by unrelated x86 header file changes in the
        x86 tree, but occurs in the tip:perfcounters/core standalone
        tree. ]
      Signed-off-by: NTim Blechmann <tim@klingt.org>
      Orig-LKML-Reference: <20090314142925.49c29c17@thinkpad>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4e193bd4
    • P
      perf_counter: fix hrtimer sampling · 039fc91e
      Peter Zijlstra 提交于
      Impact: fix deadlock with perfstat
      
      Fix for the perfstat fubar..
      
      We cannot unconditionally call hrtimer_cancel() without ever having done
      hrtimer_init() on the thing.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Orig-LKML-Reference: <1236959027.22447.149.camel@twins>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      039fc91e
    • P
      perf_counter: add an event_list · 592903cd
      Peter Zijlstra 提交于
      I noticed that the counter_list only includes top-level counters, thus
      perf_swcounter_event() will miss sw-counters in groups.
      
      Since perf_swcounter_event() also wants an RCU safe list, create a new
      event_list that includes all counters and uses RCU list ops and use call_rcu
      to free the counter structure.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      592903cd
    • P
      perf_counter: hrtimer based sampling for software time events · d6d020e9
      Peter Zijlstra 提交于
      Use hrtimers to profile timer based sampling for the software time
      counters.
      
      This allows platforms without hardware counter support to still
      perform sample based profiling.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d6d020e9
    • P
      perf_counter: provide major/minor page fault software events · ac17dc8e
      Peter Zijlstra 提交于
      Provide separate sw counters for major and minor page faults.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ac17dc8e
    • P
      perf_counter: provide pagefault software events · 7dd1fcc2
      Peter Zijlstra 提交于
      We use the generic software counter infrastructure to provide
      page fault events.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7dd1fcc2
    • P
      perf_counter: software counter event infrastructure · 15dbf27c
      Peter Zijlstra 提交于
      Provide generic software counter infrastructure that supports
      software events.
      
      This will be used to allow sample based profiling based on software
      events such as pagefaults. The current infrastructure can only
      provide a count of such events, no place information.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      15dbf27c
    • P
      perf_counter: x86: use ULL postfix for 64bit constants · 82bae4f8
      Peter Zijlstra 提交于
      Fix a build warning on 32bit machines by explicitly marking the
      constants as 64-bit.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      82bae4f8
    • P
      perf_counter: add comment to barrier · 60b3df9c
      Peter Zijlstra 提交于
      We need to ensure the enabled=0 write happens before we
      start disabling the actual counters, so that a pcm_amd_enable()
      will not enable one underneath us.
      
      I think the race is impossible anyway, we always balance the
      ops within any one context and perform enable() with IRQs disabled.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      60b3df9c
    • P
      perf_counter: use list_move_tail() · 75564232
      Peter Zijlstra 提交于
      Instead of del/add use a move list-op.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      75564232
    • P
      perf_counter: x86: fix 32-bit irq_period assumption · 595258aa
      Peter Zijlstra 提交于
      No need to assume the irq_period is 32bit.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      595258aa
    • I
      Merge branch 'linus' into perfcounters/core-v2 · f541ae32
      Ingo Molnar 提交于
      Merge reason: we have gathered quite a few conflicts, need to merge upstream
      
      Conflicts:
      	arch/powerpc/kernel/Makefile
      	arch/x86/ia32/ia32entry.S
      	arch/x86/include/asm/hardirq.h
      	arch/x86/include/asm/unistd_32.h
      	arch/x86/include/asm/unistd_64.h
      	arch/x86/kernel/cpu/common.c
      	arch/x86/kernel/irq.c
      	arch/x86/kernel/syscall_table_32.S
      	arch/x86/mm/iomap_32.c
      	include/linux/sched.h
      	kernel/Makefile
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f541ae32
    • L
      Merge branch 'audit.b62' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current · 0221c81b
      Linus Torvalds 提交于
      * 'audit.b62' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
        Audit: remove spaces from audit_log_d_path
        audit: audit_set_auditable defined but not used
        audit: incorrect ref counting in audit tree tag_chunk
        audit: Fix possible return value truncation in audit_get_context()
        audit: ignore terminating NUL in AUDIT_USER_TTY messages
        Audit: fix handling of 'strings' with NULL characters
        make the e->rule.xxx shorter in kernel auditfilter.c
        auditsc: fix kernel-doc notation
        audit: EXECVE record - removed bogus newline
      0221c81b
    • L
      Merge branch 'for-next' of git://git.o-hand.com/linux-mfd · 48f286a2
      Linus Torvalds 提交于
      * 'for-next' of git://git.o-hand.com/linux-mfd:
        mfd: fix da903x warning
        mfd: fix MAINTAINERS entry
        mfd: Use the value of the final spin when reading the AUXADC
        mfd: Storage class should be before const qualifier
        mfd: PASIC3: supply clock_rate to DS1WM via driver_data
        mfd: remove DS1WM clock handling
        mfd: remove unused PASIC3 bus_shift field
        pxa/magician: remove deprecated .bus_shift from PASIC3 platform_data
        mfd: convert PASIC3 to use MFD core
        mfd: convert DS1WM to use MFD core
        mfd: Support active high IRQs on WM835x
        mfd: Use bulk read to fill WM8350 register cache
        mfd: remove duplicated #include from pcf50633
      48f286a2
    • L
      Merge branch 'for-linus' of git://repo.or.cz/cris-mirror · ea431793
      Linus Torvalds 提交于
      * 'for-linus' of git://repo.or.cz/cris-mirror:
        CRISv32: Remove extraneous space between -I and the path.
        cris: convert obsolete hw_interrupt_type to struct irq_chip
        BUG to BUG_ON changes
        cpumask: use mm_cpumask() wrapper: cris
        cpumask: Use accessors code.: cris
        cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: cris
      ea431793
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · 32fb6c17
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (140 commits)
        ACPI: processor: use .notify method instead of installing handler directly
        ACPI: button: use .notify method instead of installing handler directly
        ACPI: support acpi_device_ops .notify methods
        toshiba-acpi: remove MAINTAINERS entry
        ACPI: battery: asynchronous init
        acer-wmi: Update copyright notice & documentation
        acer-wmi: Cleanup the failure cleanup handling
        acer-wmi: Blacklist Acer Aspire One
        video: build fix
        thinkpad-acpi: rework brightness support
        thinkpad-acpi: enhanced debugging messages for the fan subdriver
        thinkpad-acpi: enhanced debugging messages for the hotkey subdriver
        thinkpad-acpi: enhanced debugging messages for rfkill subdrivers
        thinkpad-acpi: restrict access to some firmware LEDs
        thinkpad-acpi: remove HKEY disable functionality
        thinkpad-acpi: add new debug helpers and warn of deprecated atts
        thinkpad-acpi: add missing log levels
        thinkpad-acpi: cleanup debug helpers
        thinkpad-acpi: documentation cleanup
        thinkpad-acpi: drop ibm-acpi alias
        ...
      32fb6c17
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 45e36c16
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (23 commits)
        sh: sh7785lcr: Map whole PCI address space.
        sh: Fix up DSP context save/restore.
        sh: Fix up number of on-chip DMA channels on SH7091.
        sh: update defconfigs.
        sh: Kill off broken direct-mapped cache mode.
        sh: Wire up ARCH_HAS_DEFAULT_IDLE for cpuidle.
        sh: Add a command line option for disabling I/O trapping.
        sh: Select ARCH_HIBERNATION_POSSIBLE.
        sh: migor: Fix up CEU use flags.
        input: migor_ts: add wakeup support
        rtc: rtc-sh: use set_irq_wake()
        input: sh_keysc: use enable/disable_irq_wake()
        sh: intc: set_irq_wake() support
        sh: intc: install enable, disable and shutdown callbacks
        clocksource: sh_cmt: use remove_irq() and remove clockevent workaround
        sh: ap325 and Migo-R use new sh_mobile_ceu_info flags
        sh: Fix up -Wformat-security whining.
        sh: ap325rxa: Add ov772x support, again.
        sh: Sanitize asm/mmu.h for assembly use.
        sh: Tidy up sh7786 pinmux table.
        ...
      45e36c16
    • L
      Merge branch 'avr32-arch' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 · 87fc94d5
      Linus Torvalds 提交于
      * 'avr32-arch' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
        avr32: add hardware handshake support to atmel_serial
        avr32: add RTS/CTS/CLK pin selection for the USARTs
        Add RTC support for Merisc boards
        avr32: at32ap700x: setup DMA for AC97C in the machine code
        avr32: at32ap700x: setup DMA for ABDAC in the machine code
        Add Merisc board support
        avr32: use gpio_is_valid() to check USBA vbus_pin I/O line
        atmel-usba-udc: use gpio_is_valid() to check vbus_pin I/O line
        avr32: fix timing LCD parameters for EVKLCD10X boards
        avr32: use GPIO line PB15 on EVKLCD10x boards for backlight
        avr32: configure MCI detect and write protect pins for EVKLCD10x boards
        avr32: set pin mask to alternative 18 bpp for EVKLCD10x boards
        avr32: add pin mask for 18-bit color on the LCD controller
        avr32: fix 15-bit LCDC pin mask to use MSB lines
      87fc94d5
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · 3516c6a8
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (714 commits)
        Staging: sxg: slicoss: Specify the license for Sahara SXG and Slicoss drivers
        Staging: serqt_usb: fix build due to proc tty changes
        Staging: serqt_usb: fix checkpatch errors
        Staging: serqt_usb: add TODO file
        Staging: serqt_usb: Lindent the code
        Staging: add USB serial Quatech driver
        staging: document that the wifi staging drivers a bit better
        Staging: echo cleanup
        Staging: BUG to BUG_ON changes
        Staging: remove some pointless conditionals before kfree_skb()
        Staging: line6: fix build error, select SND_RAWMIDI
        Staging: line6: fix checkpatch errors in variax.c
        Staging: line6: fix checkpatch errors in toneport.c
        Staging: line6: fix checkpatch errors in pcm.c
        Staging: line6: fix checkpatch errors in midibuf.c
        Staging: line6: fix checkpatch errors in midi.c
        Staging: line6: fix checkpatch errors in dumprequest.c
        Staging: line6: fix checkpatch errors in driver.c
        Staging: line6: fix checkpatch errors in audio.c
        Staging: line6: fix checkpatch errors in pod.c
        ...
      3516c6a8
    • L
      Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 714f83d5
      Linus Torvalds 提交于
      * 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)
        tracing, net: fix net tree and tracing tree merge interaction
        tracing, powerpc: fix powerpc tree and tracing tree interaction
        ring-buffer: do not remove reader page from list on ring buffer free
        function-graph: allow unregistering twice
        trace: make argument 'mem' of trace_seq_putmem() const
        tracing: add missing 'extern' keywords to trace_output.h
        tracing: provide trace_seq_reserve()
        blktrace: print out BLK_TN_MESSAGE properly
        blktrace: extract duplidate code
        blktrace: fix memory leak when freeing struct blk_io_trace
        blktrace: fix blk_probes_ref chaos
        blktrace: make classic output more classic
        blktrace: fix off-by-one bug
        blktrace: fix the original blktrace
        blktrace: fix a race when creating blk_tree_root in debugfs
        blktrace: fix timestamp in binary output
        tracing, Text Edit Lock: cleanup
        tracing: filter fix for TRACE_EVENT_FORMAT events
        ftrace: Using FTRACE_WARN_ON() to check "freed record" in ftrace_release()
        x86: kretprobe-booster interrupt emulation code fix
        ...
      
      Fix up trivial conflicts in
       arch/parisc/include/asm/ftrace.h
       include/linux/memory.h
       kernel/extable.c
       kernel/module.c
      714f83d5
    • E
      Audit: remove spaces from audit_log_d_path · def57543
      Eric Paris 提交于
      audit_log_d_path had spaces in the strings which would be emitted on the
      error paths.  This patch simply replaces those spaces with an _ or removes
      the needless spaces entirely.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      def57543
    • E
      audit: audit_set_auditable defined but not used · 679173b7
      Eric Paris 提交于
      after 0590b933 audit_set_auditable() is now only
      used by the audit tree code.  If CONFIG_AUDIT_TREE is unset it will be defined
      but unused.  This patch simply moves the function inside a CONFIG_AUDIT_TREE
      block.
      
      cc1: warnings being treated as errors
      /home/acme_unencrypted/git/linux-2.6-tip/kernel/auditsc.c:745: error: ‘audit_set_auditable’ defined but not used
      make[2]: *** [kernel/auditsc.o] Error 1
      make[1]: *** [kernel] Error 2
      make[1]: *** Waiting for unfinished jobs....
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      679173b7
    • E
      audit: incorrect ref counting in audit tree tag_chunk · 318b6d3d
      Eric Paris 提交于
      tag_chunk has bad exit paths in which the inotify ref counting is wrong.
      At the top of the function we found &old_watch using  inotify_find_watch().
      inotify_find_watch takes a reference to the watch.  This is never dropped
      on an error path.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      318b6d3d
    • P
      audit: Fix possible return value truncation in audit_get_context() · 6d208da8
      Paul Moore 提交于
      The audit subsystem treats syscall return codes as type long, unfortunately
      the audit_get_context() function mistakenly converts the return code to an
      int type in the parameters which could cause problems on systems where the
      sizeof(int) != sizeof(long).
      Signed-off-by: NPaul Moore <paul.moore@hp.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      6d208da8
    • M
      audit: ignore terminating NUL in AUDIT_USER_TTY messages · 55ad2f8d
      Miloslav Trmac 提交于
      AUDIT_USER_TTY, like all other messages sent from user-space, is sent
      NUL-terminated.  Unlike other user-space audit messages, which come only
      from trusted sources, AUDIT_USER_TTY messages are processed using
      audit_log_n_untrustedstring().
      
      This patch modifies AUDIT_USER_TTY handling to ignore the trailing NUL
      and use the "quoted_string" representation of the message if possible.
      Signed-off-by: NMiloslav Trmac <mitr@redhat.com>
      Cc: Eric Paris <eparis@redhat.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Steve Grubb <sgrubb@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      55ad2f8d
    • M
      Audit: fix handling of 'strings' with NULL characters · b3897f56
      Miloslav Trmac 提交于
      currently audit_log_n_untrustedstring() uses audit_string_contains_control()
      to check if the 'string' has any control characters.  If the 'string' has an
      embedded NULL audit_string_contains_control() will return that the data has
      no control characters and will then pass the string to audit_log_n_string
      with the total length, not the length up to the first NULL.
      audit_log_n_string() does a memcpy of the entire length and so the actual
      audit record emitted may then contain a NULL and then whatever random memory
      is after the NULL.
      
      Since we want to log the entire octet stream (if we can't trust the data
      to be a string we can't trust that a NULL isn't actually a part of it)
      we should just consider NULL as a control character.  If the caller is
      certain they want to stop at the first NULL they should be using
      audit_log_untrustedstring.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b3897f56
    • Z
      make the e->rule.xxx shorter in kernel auditfilter.c · c28bb7da
      Zhenwen Xu 提交于
      make the e->rule.xxx shorter in kernel/auditfilter.c
      --
      ---------------------------------
      Zhenwen Xu - Open and Free
      Home Page:	http://zhwen.org
      My Studio:	http://dim4.cn
      
      >From 99692dc640b278f1cb1a15646ce42f22e89c0f77 Mon Sep 17 00:00:00 2001
      From: Zhenwen Xu <Helight.Xu@gmail.com>
      Date: Thu, 12 Mar 2009 22:04:59 +0800
      Subject: [PATCH] make the e->rule.xxx shorter in kernel/auditfilter.c
      Signed-off-by: NZhenwen Xu <Helight.Xu@gmail.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      c28bb7da
    • R
      auditsc: fix kernel-doc notation · 6b962559
      Randy Dunlap 提交于
      Fix auditsc kernel-doc notation:
      
      Warning(linux-2.6.28-git7//kernel/auditsc.c:2156): No description found for parameter 'attr'
      Warning(linux-2.6.28-git7//kernel/auditsc.c:2156): Excess function parameter 'u_attr' description in '__audit_mq_open'
      Warning(linux-2.6.28-git7//kernel/auditsc.c:2204): No description found for parameter 'notification'
      Warning(linux-2.6.28-git7//kernel/auditsc.c:2204): Excess function parameter 'u_notification' description in '__audit_mq_notify'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      cc:	Al Viro <viro@zeniv.linux.org.uk>
      cc:	Eric Paris <eparis@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      6b962559
    • J
      audit: EXECVE record - removed bogus newline · ca96a895
      Jiri Pirko 提交于
      (updated)
      Added hunk that changes the comment, the rest is the same.
      
      EXECVE records contain a newline after every argument. auditd converts
      "\n" to " " so you cannot see newlines even in raw logs, but they're
      there nevertheless. If you're not using auditd, you need to work round
      them. These '\n' chars are can be easily replaced by spaces when
      creating record in kernel. Note there is no need for trailing '\n' in
      an audit record.
      
      record before this patch:
      "type=EXECVE msg=audit(1231421801.566:31): argc=4 a0=\"./test\"\na1=\"a\"\na2=\"b\"\na3=\"c\"\n"
      
      record after this patch:
      "type=EXECVE msg=audit(1231421801.566:31): argc=4 a0=\"./test\" a1=\"a\" a2=\"b\" a3=\"c\""
      Signed-off-by: NJiri Pirko <jpirko@redhat.com>
      Acked-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      ca96a895
    • L
      Merge branch 'bzip2-lzma-for-linus' of... · 8901e7ff
      Linus Torvalds 提交于
      Merge branch 'bzip2-lzma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip
      
      * 'bzip2-lzma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip:
        bzip2/lzma: quiet Kconfig warning for INITRAMFS_COMPRESSION_NONE
      8901e7ff