1. 12 10月, 2012 19 次提交
    • J
      audit: set the name_len in audit_inode for parent lookups · bfcec708
      Jeff Layton 提交于
      Currently, this gets set mostly by happenstance when we call into
      audit_inode_child. While that might be a little more efficient, it seems
      wrong. If the syscall ends up failing before audit_inode_child ever gets
      called, then you'll have an audit_names record that shows the full path
      but has the parent inode info attached.
      
      Fix this by passing in a parent flag when we call audit_inode that gets
      set to the value of LOOKUP_PARENT. We can then fix up the pathname for
      the audit entry correctly from the get-go.
      
      While we're at it, clean up the no-op macro for audit_inode in the
      !CONFIG_AUDITSYSCALL case.
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      bfcec708
    • J
      audit: add a new "type" field to audit_names struct · 78e2e802
      Jeff Layton 提交于
      For now, we just have two possibilities:
      
      UNKNOWN: for a new audit_names record that we don't know anything about yet
      NORMAL: for everything else
      
      In later patches, we'll add other types so we can distinguish and update
      records created under different circumstances.
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      78e2e802
    • J
      audit: reverse arguments to audit_inode_child · c43a25ab
      Jeff Layton 提交于
      Most of the callers get called with an inode and dentry in the reverse
      order. The compiler then has to reshuffle the arg registers and/or
      stack in order to pass them on to audit_inode_child.
      
      Reverse those arguments for a micro-optimization.
      Reported-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      c43a25ab
    • J
      audit: no need to walk list in audit_inode if name is NULL · 9cec9d68
      Jeff Layton 提交于
      If name is NULL then the condition in the loop will never be true. Also,
      with this change, we can eliminate the check for n->name == NULL since
      the equivalence check will never be true if it is.
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      9cec9d68
    • J
      audit: pass in dentry to audit_copy_inode wherever possible · 1c2e51e8
      Jeff Layton 提交于
      In some cases, we were passing in NULL even when we have a dentry.
      Reported-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      1c2e51e8
    • J
      audit: remove unnecessary NULL ptr checks from do_path_lookup · f78570dd
      Jeff Layton 提交于
      As best I can tell, whenever retval == 0, nd->path.dentry and nd->inode
      are also non-NULL. Eliminate those checks and the superfluous
      audit_context check.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      f78570dd
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 79360ddd
      Linus Torvalds 提交于
      Pull pile 2 of vfs updates from Al Viro:
       "Stuff in this one - assorted fixes, lglock tidy-up, death to
        lock_super().
      
        There'll be a VFS pile tomorrow (with patches from Jeff Layton,
        sanitizing getname() and related parts of audit and preparing for
        ESTALE fixes), but I'd rather push the stuff in this one ASAP - some
        of the bugs closed here are quite unpleasant."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: bogus warnings in fs/namei.c
        consitify do_mount() arguments
        lglock: add DEFINE_STATIC_LGLOCK()
        lglock: make the per_cpu locks static
        lglock: remove unused DEFINE_LGLOCK_LOCKDEP()
        MAX_LFS_FILESIZE definition for 64bit needs LL...
        tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking
        vfs: drop lock/unlock super
        ufs: drop lock/unlock super
        sysv: drop lock/unlock super
        hpfs: drop lock/unlock super
        fat: drop lock/unlock super
        ext3: drop lock/unlock super
        exofs: drop lock/unlock super
        dup3: Return an error when oldfd == newfd.
        fs: handle failed audit_log_start properly
        fs: prevent use after free in auditing when symlink following was denied
      79360ddd
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 8213a2f3
      Linus Torvalds 提交于
      Pull pile 2 of execve and kernel_thread unification work from Al Viro:
       "Stuff in there: kernel_thread/kernel_execve/sys_execve conversions for
        several more architectures plus assorted signal fixes and cleanups.
      
        There'll be more (in particular, real fixes for the alpha
        do_notify_resume() irq mess)..."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (43 commits)
        alpha: don't open-code trace_report_syscall_{enter,exit}
        Uninclude linux/freezer.h
        m32r: trim masks
        avr32: trim masks
        tile: don't bother with SIGTRAP in setup_frame
        microblaze: don't bother with SIGTRAP in setup_rt_frame()
        mn10300: don't bother with SIGTRAP in setup_frame()
        frv: no need to raise SIGTRAP in setup_frame()
        x86: get rid of duplicate code in case of CONFIG_VM86
        unicore32: remove pointless test
        h8300: trim _TIF_WORK_MASK
        parisc: decide whether to go to slow path (tracesys) based on thread flags
        parisc: don't bother looping in do_signal()
        parisc: fix double restarts
        bury the rest of TIF_IRET
        sanitize tsk_is_polling()
        bury _TIF_RESTORE_SIGMASK
        unicore32: unobfuscate _TIF_WORK_MASK
        mips: NOTIFY_RESUME is not needed in TIF masks
        mips: merge the identical "return from syscall" per-ABI code
        ...
      
      Conflicts:
      	arch/arm/include/asm/thread_info.h
      8213a2f3
    • L
      Merge branch 'writeback-for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux · 40924754
      Linus Torvalds 提交于
      Pull writeback fixes from Fengguang Wu:
       "Three trivial writeback fixes"
      
      * 'writeback-for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
        CPU hotplug, writeback: Don't call writeback_set_ratelimit() too often during hotplug
        writeback: correct comment for move_expired_inodes()
        backing-dev: use kstrto* in preference to simple_strtoul
      40924754
    • L
      Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · cbd8aca4
      Linus Torvalds 提交于
      Pull kbuild misc changes from Michal Marek:
       "In the non-critical part of kbuild, I have
         - Some make coccicheck improvements and two new tests
         - Support for a cleaner html output in scripts/kernel-doc, named
           html5 (no, it does not play videos, yet)
      
        BTW, Randy wants to route further kernel-doc patches through the
        kbuild tree."
      
      * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        Update SmPL/Coccinelle section of MAINTAINERS
        coccicheck: Add the rep+ctxt mode
        scripts/coccinelle/tests/odd_ptr_err.cocci: semantic patch for IS_ERR/PTR_ERR inconsistency
        scripts/tags.sh: Add magic for pci access functions
        scripts/coccinelle: ptr_ret: Add ternary operator version
        scripts/kernel-doc: drop maintainer
        scripts/kernel-doc: added support for html5
      cbd8aca4
    • L
      Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 35e9a274
      Linus Torvalds 提交于
      Pull kconfig changes from Michal Marek:
       "kconfig in v3.7 is going to
         - initialize ncurses only once in menuconfig
         - be able to jump to a search result in menuconfig
         - change the misnomer oldnoconfig to a more meaningful name
           olddefconfig, keeping the old name as alias"
      
      * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kconfig: replace 'oldnoconfig' with 'olddefconfig', and keep the old name as an alias
        menuconfig: Assign jump keys per-page instead of globally
        menuconfig: Do not open code textbox scroll up/down
        menuconfig: Add jump keys to search results
        menuconfig: Extend dialog_textbox so that it can return to a scrolled position
        menuconfig: Extend dialog_textbox so that it can exit on arbitrary keypresses
        menuconfig: Remove superfluous conditionnal
        kconfig: document oldnoconfig to what it really does in conf.c
        kconfig/mconf.c: revision of curses initialization.
      35e9a274
    • L
      Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · ae3e4628
      Linus Torvalds 提交于
      Pull kbuild changes from Michal Marek:
       "The main part of kbuild for v3.7 contains:
         - Fix for scripts/Makefile.modpost to not choke on a '.ko' substring
           in the build directory path
         - Two warning fixes (modpost and main Makefile)
         - __compiletime_error works also with gcc 4.3
         - make tar{gz,bz2,xz}-pkg uses default compression settings instead
           of saving as many bytes as possible (this should actually be in the
           misc branch, I don't know why I applied it here)."
      
      * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        compiler-gcc4.h: correct verion check for __compiletime_error
        modpost: Permit .GCC.command.line sections
        Kbuild: use normal compression settings for tar*-pkg
        scripts/Makefile.modpost: error in finding modules from .mod files.
        kbuild: Remove useless warning while appending KCFLAGS
      ae3e4628
    • L
      Merge tag 'fbdev-updates-for-3.7' of git://github.com/schandinat/linux-2.6 · 5f76945a
      Linus Torvalds 提交于
      Pull fbdev updates from Florian Tobias Schandinat:
       "This includes:
         - large updates for OMAP
           - basic OMAP5 DSS support for DPI and DSI outputs
           - large cleanups and restructuring
         - some update to Exynos and da8xx-fb
         - removal of the pnx4008 driver (arch removed)
         - various other small patches"
      
      Fix up some trivial conflicts (mostly just include line changes, but
      also some due to the renaming of the deferred work functions by Tejun).
      
      * tag 'fbdev-updates-for-3.7' of git://github.com/schandinat/linux-2.6: (193 commits)
        gbefb: fix compile error
        video: mark nuc900fb_map_video_memory as __devinit
        video/mx3fb: set .owner to prevent module unloading while being used
        video: exynos_dp: use clk_prepare_enable and clk_disable_unprepare
        drivers/video/exynos/exynos_mipi_dsi.c: fix error return code
        drivers/video/savage/savagefb_driver.c: fix error return code
        video: s3c-fb: use clk_prepare_enable and clk_disable_unprepare
        da8xx-fb: save and restore LCDC context across suspend/resume cycle
        da8xx-fb: add pm_runtime support
        video/udlfb: fix line counting in fb_write
        OMAPDSS: add missing include for string.h
        OMAPDSS: DISPC: Configure color conversion coefficients for writeback
        OMAPDSS: DISPC: Add manager like functions for writeback
        OMAPDSS: DISPC: Configure writeback FIFOs
        OMAPDSS: DISPC: Configure writeback specific parameters in dispc_wb_setup()
        OMAPDSS: DISPC: Configure overlay-like parameters in dispc_wb_setup
        OMAPDSS: DISPC: Add function to set channel in for writeback
        OMAPDSS: DISPC: Don't set chroma resampling bit for writeback
        OMAPDSS: DISPC: Downscale chroma if plane is writeback
        OMAPDSS: DISPC: Configure input and output sizes for writeback
        ...
      5f76945a
    • L
      Merge tag 'for-linus-merge-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · 940e3a8d
      Linus Torvalds 提交于
      Pull v9fs update from Eric Van Hensbergen.
      
      * tag 'for-linus-merge-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        9P: Fix race between p9_write_work() and p9_fd_request()
        9P: Fix race in p9_write_work()
        9P: fix test at the end of p9_write_work()
        9P: Fix race in p9_read_work()
        9p: don't use __getname/__putname for uname/aname
        net/9p: Check errno validity
        fs/9p: avoid debug OOPS when reading a long symlink
      940e3a8d
    • A
      vfs: bogus warnings in fs/namei.c · 98f6ef64
      Arnd Bergmann 提交于
      The follow_link() function always initializes its *p argument,
      or returns an error, but when building with 'gcc -s', the compiler
      gets confused by the __always_inline attribute to the function
      and can no longer detect where the cookie was initialized.
      
      The solution is to always initialize the pointer from follow_link,
      even in the error path. When building with -O2, this has zero impact
      on generated code and adds a single instruction in the error path
      for a -Os build on ARM.
      
      Without this patch, building with gcc-4.6 through gcc-4.8 and
      CONFIG_CC_OPTIMIZE_FOR_SIZE results in:
      
      fs/namei.c: In function 'link_path_walk':
      fs/namei.c:649:24: warning: 'cookie' may be used uninitialized in this function [-Wuninitialized]
      fs/namei.c:1544:9: note: 'cookie' was declared here
      fs/namei.c: In function 'path_lookupat':
      fs/namei.c:649:24: warning: 'cookie' may be used uninitialized in this function [-Wuninitialized]
      fs/namei.c:1934:10: note: 'cookie' was declared here
      fs/namei.c: In function 'path_openat':
      fs/namei.c:649:24: warning: 'cookie' may be used uninitialized in this function [-Wuninitialized]
      fs/namei.c:2899:9: note: 'cookie' was declared here
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      98f6ef64
    • A
      consitify do_mount() arguments · 808d4e3c
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      808d4e3c
    • D
      compiler-gcc4.h: correct verion check for __compiletime_error · 415c2c52
      Daniel Santos 提交于
      __attribute__((error(msg))) was introduced in gcc 4.3 (not 4.4) and as I
      was unable to find any gcc bugs pertaining to it, I'm presuming that it
      has functioned as advertised since 4.3.0.
      Signed-off-by: NDaniel Santos <daniel.santos@pobox.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Tested-by: NDavid Rientjes <rientjes@google.com>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      415c2c52
    • J
      modpost: Permit .GCC.command.line sections · 76b27645
      Jonathan Kliegman 提交于
      Allow .GCC.command.line sections in modules to prevent modpost warnings:
      WARNING: sound/usb/snd-usbmidi-lib.o (.GCC.command.line): unexpected non-allocatable section.
      Did you forget to use "ax"/"aw" in a .S file?
      Note that for example <linux/init.h> contains
      section definitions for use in .S files.
      Signed-off-by: NJonathan Kliegman <kliegs@chromium.org>
      Signed-off-by: NMichal Marek <mmarek@suse.cz>
      76b27645
    • S
      9P: Fix race between p9_write_work() and p9_fd_request() · 759f4298
      Simon Derr 提交于
      Race scenario:
      
      thread A			thread B
      
      p9_write_work()                p9_fd_request()
      
      if (list_empty
        (&m->unsent_req_list))
        ...
      
                                     spin_lock(&client->lock);
                                     req->status = REQ_STATUS_UNSENT;
                                     list_add_tail(..., &m->unsent_req_list);
                                     spin_unlock(&client->lock);
                                     ....
                                     if (n & POLLOUT &&
                                     !test_and_set_bit(Wworksched, &m->wsched)
                                     schedule_work(&m->wq);
                                     --> not done because Wworksched is set
      
        clear_bit(Wworksched, &m->wsched);
        return;
      
      --> nobody will take care of sending the new request.
      
      This is not very likely to happen though, because p9_write_work()
      being called with an empty unsent_req_list is not frequent.
      But this also means that taking the lock earlier will not be costly.
      Signed-off-by: NSimon Derr <simon.derr@bull.net>
      Signed-off-by: NEric Van Hensbergen <ericvh@gmail.com>
      759f4298
  2. 11 10月, 2012 21 次提交