diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-14 20:08:51 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-14 20:08:51 -0700 | 
| commit | 1064d857738187c764c0bd76040f424397f857c7 (patch) | |
| tree | 13d16c0aed50b64c20b8fe235b15172f3c997f15 /kernel/reboot.c | |
| parent | 35c99ffa20edd3c24be352d28a63cd3a23121282 (diff) | |
| parent | def0fdae813dbbbbb588bfc5f52856be2e842b35 (diff) | |
Merge branch 'akpm' (patches from Andrew)
Merge more updates from Andrew Morton:
 - a couple of hotfixes
 - almost all of the rest of MM
 - lib/ updates
 - binfmt_elf updates
 - autofs updates
 - quite a lot of misc fixes and updates
    - reiserfs, fatfs
    - signals
    - exec
    - cpumask
    - rapidio
    - sysctl
    - pids
    - eventfd
    - gcov
    - panic
    - pps
 - gdb script updates
 - ipc updates
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (126 commits)
  mm: memcontrol: fix NUMA round-robin reclaim at intermediate level
  mm: memcontrol: fix recursive statistics correctness & scalabilty
  mm: memcontrol: move stat/event counting functions out-of-line
  mm: memcontrol: make cgroup stats and events query API explicitly local
  drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl
  drivers/virt/fsl_hypervisor.c: dereferencing error pointers in ioctl
  mm, memcg: rename ambiguously named memory.stat counters and functions
  arch: remove <asm/sizes.h> and <asm-generic/sizes.h>
  treewide: replace #include <asm/sizes.h> with #include <linux/sizes.h>
  fs/block_dev.c: Remove duplicate header
  fs/cachefiles/namei.c: remove duplicate header
  include/linux/sched/signal.h: replace `tsk' with `task'
  fs/coda/psdev.c: remove duplicate header
  ipc: do cyclic id allocation for the ipc object.
  ipc: conserve sequence numbers in ipcmni_extend mode
  ipc: allow boot time extension of IPCMNI from 32k to 16M
  ipc/mqueue: optimize msg_get()
  ipc/mqueue: remove redundant wq task assignment
  ipc: prevent lockup on alloc_msg and free_msg
  scripts/gdb: print cached rate in lx-clk-summary
  ...
Diffstat (limited to 'kernel/reboot.c')
| -rw-r--r-- | kernel/reboot.c | 20 | 
1 files changed, 15 insertions, 5 deletions
| diff --git a/kernel/reboot.c b/kernel/reboot.c index e1b79b6a2735..b9e79e8c7226 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c @@ -31,6 +31,7 @@ EXPORT_SYMBOL(cad_pid);  #define DEFAULT_REBOOT_MODE  #endif  enum reboot_mode reboot_mode DEFAULT_REBOOT_MODE; +enum reboot_mode panic_reboot_mode = REBOOT_UNDEFINED;  /*   * This variable is used privately to keep track of whether or not @@ -519,6 +520,8 @@ EXPORT_SYMBOL_GPL(orderly_reboot);  static int __init reboot_setup(char *str)  {  	for (;;) { +		enum reboot_mode *mode; +  		/*  		 * Having anything passed on the command line via  		 * reboot= will cause us to disable DMI checking @@ -526,17 +529,24 @@ static int __init reboot_setup(char *str)  		 */  		reboot_default = 0; +		if (!strncmp(str, "panic_", 6)) { +			mode = &panic_reboot_mode; +			str += 6; +		} else { +			mode = &reboot_mode; +		} +  		switch (*str) {  		case 'w': -			reboot_mode = REBOOT_WARM; +			*mode = REBOOT_WARM;  			break;  		case 'c': -			reboot_mode = REBOOT_COLD; +			*mode = REBOOT_COLD;  			break;  		case 'h': -			reboot_mode = REBOOT_HARD; +			*mode = REBOOT_HARD;  			break;  		case 's': @@ -553,11 +563,11 @@ static int __init reboot_setup(char *str)  				if (rc)  					return rc;  			} else -				reboot_mode = REBOOT_SOFT; +				*mode = REBOOT_SOFT;  			break;  		}  		case 'g': -			reboot_mode = REBOOT_GPIO; +			*mode = REBOOT_GPIO;  			break;  		case 'b': | 
