1. 25 4月, 2012 1 次提交
  2. 01 4月, 2012 2 次提交
  3. 29 3月, 2012 2 次提交
  4. 26 3月, 2012 1 次提交
    • P
      params: <level>_initcall-like kernel parameters · 026cee00
      Pawel Moll 提交于
      This patch adds a set of macros that can be used to declare
      kernel parameters to be parsed _before_ initcalls at a chosen
      level are executed.  We rename the now-unused "flags" field of
      struct kernel_param as the level.  It's signed, for when we
      use this for early params as well, in future.
      
      Linker macro collating init calls had to be modified in order
      to add additional symbols between levels that are later used
      by the init code to split the calls into blocks.
      Signed-off-by: NPawel Moll <pawel.moll@arm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      026cee00
  5. 24 3月, 2012 2 次提交
  6. 21 3月, 2012 1 次提交
  7. 15 3月, 2012 1 次提交
  8. 01 3月, 2012 1 次提交
  9. 22 2月, 2012 1 次提交
  10. 18 1月, 2012 2 次提交
    • N
      Kernel: Audit Support For The ARM Platform · 29ef73b7
      Nathaniel Husted 提交于
      This patch provides functionality to audit system call events on the
      ARM platform. The implementation was based off the structure of the
      MIPS platform and information in this
      (http://lists.fedoraproject.org/pipermail/arm/2009-October/000382.html)
      mailing list thread. The required audit_syscall_exit and
      audit_syscall_entry checks were added to ptrace using the standard
      registers for system call values (r0 through r3). A thread information
      flag was added for auditing (TIF_SYSCALL_AUDIT) and a meta-flag was
      added (_TIF_SYSCALL_WORK) to simplify modifications to the syscall
      entry/exit. Now, if either the TRACE flag is set or the AUDIT flag is
      set, the syscall_trace function will be executed. The prober changes
      were made to Kconfig to allow CONFIG_AUDITSYSCALL to be enabled.
      
      Due to platform availability limitations, this patch was only tested
      on the Android platform running the modified "android-goldfish-2.6.29"
      kernel. A test compile was performed using Code Sourcery's
      cross-compilation toolset and the current linux-3.0 stable kernel. The
      changes compile without error. I'm hoping, due to the simple modifications,
      the patch is "obviously correct".
      Signed-off-by: NNathaniel Husted <nhusted@gmail.com>
      Signed-off-by: NEric Paris <eparis@redhat.com>
      29ef73b7
    • E
      audit: only allow tasks to set their loginuid if it is -1 · 633b4545
      Eric Paris 提交于
      At the moment we allow tasks to set their loginuid if they have
      CAP_AUDIT_CONTROL.  In reality we want tasks to set the loginuid when they
      log in and it be impossible to ever reset.  We had to make it mutable even
      after it was once set (with the CAP) because on update and admin might have
      to restart sshd.  Now sshd would get his loginuid and the next user which
      logged in using ssh would not be able to set his loginuid.
      
      Systemd has changed how userspace works and allowed us to make the kernel
      work the way it should.  With systemd users (even admins) are not supposed
      to restart services directly.  The system will restart the service for
      them.  Thus since systemd is going to loginuid==-1, sshd would get -1, and
      sshd would be allowed to set a new loginuid without special permissions.
      
      If an admin in this system were to manually start an sshd he is inserting
      himself into the system chain of trust and thus, logically, it's his
      loginuid that should be used!  Since we have old systems I make this a
      Kconfig option.
      Signed-off-by: NEric Paris <eparis@redhat.com>
      633b4545
  11. 13 1月, 2012 2 次提交
  12. 10 1月, 2012 1 次提交
  13. 07 1月, 2012 1 次提交
  14. 05 1月, 2012 1 次提交
    • C
      NFS: Retry mounting NFSROOT · 43717c7d
      Chuck Lever 提交于
      Lukas Razik <linux@razik.name> reports that on his SPARC system,
      booting with an NFS root file system stopped working after commit
      56463e50 "NFS: Use super.c for NFSROOT mount option parsing."
      
      We found that the network switch to which Lukas' client was attached
      was delaying access to the LAN after the client's NIC driver reported
      that its link was up.  The delay was longer than the timeouts used in
      the NFS client during mounting.
      
      NFSROOT worked for Lukas before commit 56463e50 because in those
      kernels, the client's first operation was an rpcbind request to
      determine which port the NFS server was listening on.  When that
      request failed after a long timeout, the client simply selected the
      default NFS port (2049).  By that time the switch was allowing access
      to the LAN, and the mount succeeded.
      
      Neither of these client behaviors is desirable, so reverting 56463e50
      is really not a choice.  Instead, introduce a mechanism that retries
      the NFSROOT mount request several times.  This is the same tactic that
      normal user space NFS mounts employ to overcome server and network
      delays.
      Signed-off-by: NLukas Razik <linux@razik.name>
      [ cel: match kernel coding style, add proper patch description ]
      [ cel: add exponential back-off ]
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Tested-by: NLukas Razik <linux@razik.name>
      Cc: stable@kernel.org # > 2.6.38
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      43717c7d
  15. 04 1月, 2012 1 次提交
  16. 13 12月, 2011 1 次提交
  17. 12 12月, 2011 1 次提交
  18. 06 12月, 2011 3 次提交
  19. 03 11月, 2011 3 次提交
    • W
      sysctl: make CONFIG_SYSCTL_SYSCALL default to n · c736de60
      WANG Cong 提交于
      When I tried to send a patch to remove it, Andi told me we still need to
      keep compabitlies for old libc, so we can't remove this completely.  Then
      just make it default to n and remove the doc from
      feature-removal-schedule.txt.
      Signed-off-by: NWANG Cong <amwang@redhat.com>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c736de60
    • W
      init: add root=PARTUUID=UUID/PARTNROFF=%d support · 79975f13
      Will Drewry 提交于
      Expand root=PARTUUID=UUID syntax to support selecting a root partition by
      integer offset from a known, unique partition.  This approach provides
      similar properties to specifying a device and partition number, but using
      the UUID as the unique path prior to evaluating the offset.
      
      For example,
        root=PARTUUID=99DE9194-FC15-4223-9192-FC243948F88B/PARTNROFF=1
      selects the partition with UUID 99DE.. then select the next
      partition.
      
      This change is motivated by a particular usecase in Chromium OS where the
      bootloader can easily determine what partition it is on (by UUID) but
      doesn't perform general partition table walking.
      
      That said, support for this model provides a direct mechanism for the user
      to modify the root partition to boot without specifically needing to
      extract each UUID or update the bootloader explicitly when the root
      partition UUID is changed (if it is recreated to be larger, for instance).
       Pinning to a /boot-style partition UUID allows the arbitrary root
      partition reconfiguration/modifications with slightly less ambiguity than
      just [dev][partition] and less stringency than the specific root partition
      UUID.
      
      [sfr@canb.auug.org.au: fix init sections warning]
      Signed-off-by: NWill Drewry <wad@chromium.org>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Randy Dunlap <rdunlap@xenotime.net>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      79975f13
    • N
      init/do_mounts_rd.c: fix ramdisk identification for padded cramfs · f919b923
      Neil Armstrong 提交于
      When a cramfs ramdisk padded with 512 bytes is given to the kernel, the
      current identify_ramdisk_image function fails to identify it.
      
      Tested with a padded cramfs image on an ARM based board.
      Signed-off-by: NNeil Armstrong <narmstrong@neotion.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Davidlohr Bueso <dave@gnu.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f919b923
  20. 26 10月, 2011 2 次提交
  21. 30 9月, 2011 1 次提交
    • W
      bootup: move 'usermodehelper_enable()' a little earlier · b0f84374
      wangyanqing 提交于
      Commit d5767c53 ("bootup: move 'usermodehelper_enable()' to the end
      of do_basic_setup()") moved 'usermodehelper_enable()' to end of
      do_basic_setup() to after the initcalls.  But then I get failed to let
      uvesafb work on my computer, and lose the splash boot.
      
      So maybe we could start usermodehelper_enable a little early to make
      some task work that need eary init with the help of user mode.
      
      [ I would *really* prefer that initcalls not call into user space - even
        the real 'init' hasn't been execve'd yet, after all! But for uvesafb
        it really does look like we don't have much choice.
      
        I considered doing this when we mount the root filesystem, but
        depending on config options that is in multiple places.  We could do
        the usermode helper enable as a rootfs_initcall()..
      
        So I'm just using wang yanqing's trivial patch.  It's not wonderful,
        but it's simple and should work.  We should revisit this some day,
        though.      - Linus ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b0f84374
  22. 29 9月, 2011 2 次提交
    • P
      rcu: Drive configuration directly from SMP and PREEMPT · 8008e129
      Paul E. McKenney 提交于
      This commit eliminates the possibility of running TREE_PREEMPT_RCU
      when SMP=n and of running TINY_RCU when PREEMPT=y.  People who really
      want these combinations can hand-edit init/Kconfig, but eliminating
      them as choices for production systems reduces the amount of testing
      required.  It will also allow cutting out a few #ifdefs.
      
      Note that running TREE_RCU and TINY_RCU on single-CPU systems using
      SMP-built kernels is still supported.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      8008e129
    • L
      bootup: move 'usermodehelper_enable()' to the end of do_basic_setup() · d5767c53
      Linus Torvalds 提交于
      Doing it just before starting to call into cpu_idle() made a sick kind
      of sense only because the original bug we fixed (see commit
      288d5abe: "Boot up with usermodehelper disabled") was about problems
      with some scheduler data structures not being initialized, and they had
      better be initialized at that point.
      
      But it really didn't make any other conceptual sense, and doing it after
      the initial "schedule()" call for the idle thread actually opened up a
      race: what if the main initialization thread did everything without
      needing to sleep, and got all the way into user land too? Without
      actually having scheduled back to the idle thread?
      
      Now, in normal circumstances that doesn't ever happen, but it looks like
      Richard Cochran triggered exactly that on his ARM IXP4xx machines:
      
        "I have some ARM IXP4xx based machines that use the two on chip MAC
         ports (aka NPEs).  The NPE needs a firmware in order to function.
         Ever since the following commit [that 288d5abe one], it is no
         longer possible to bring up the interfaces during the init scripts."
      
      with a call trace showing an ioctl coming from user space. Richard says:
      
        "The init is busybox, and the startup script does mount, syslogd, and
         then ifup, so that all can go by quickly."
      
      The fix is to move the usermodehelper_enable() into the main 'init'
      thread, and just put it after we've done all our initcalls.  By then,
      everything really should be up, but we've obviously not actually started
      the user-mode portion of init yet.
      Reported-and-tested-by: NRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d5767c53
  23. 22 9月, 2011 1 次提交
  24. 14 8月, 2011 1 次提交
  25. 04 8月, 2011 2 次提交
  26. 26 7月, 2011 2 次提交
  27. 23 6月, 2011 1 次提交
    • R
      Fix CPU spinlock lockups on secondary CPU bringup · 1b19ca9f
      Russell King 提交于
      Secondary CPU bringup typically calls calibrate_delay() during its
      initialization.  However, calibrate_delay() modifies a global variable
      (loops_per_jiffy) used for udelay() and __delay().
      
      A side effect of 71c696b1 ("calibrate: extract fall-back calculation
      into own helper") introduced in the 2.6.39 merge window means that we
      end up with a substantial period where loops_per_jiffy is zero.  This
      causes the spinlock debugging code to malfunction:
      
      	u64 loops = loops_per_jiffy * HZ;
      	for (;;) {
      		for (i = 0; i < loops; i++) {
      			if (arch_spin_trylock(&lock->raw_lock))
      				return;
      			__delay(1);
      		}
      		...
      	}
      
      by never calling arch_spin_trylock() - resulting in the CPU locking
      up in an infinite loop inside __spin_lock_debug().
      
      Work around this by only writing to loops_per_jiffy only once we have
      completed all the calibration decisions.
      Tested-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Cc: <stable@kernel.org> (2.6.39-stable)
      --
      Better solutions (such as omitting the calibration for secondary CPUs,
      or arranging for calibrate_delay() to return the LPJ value and leave
      it to the caller to decide where to store it) are a possibility, but
      would be much more invasive into each architecture.
      
      I think this is the best solution for -rc and stable, but it should be
      revisited for the next merge window.
      
       init/calibrate.c |   14 ++++++++------
       1 files changed, 8 insertions(+), 6 deletions(-)
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1b19ca9f