linux_dsm_epyc7002/include/uapi/linux
Prarit Bhargava 9e3961a097 kernel: add panic_on_warn
There have been several times where I have had to rebuild a kernel to
cause a panic when hitting a WARN() in the code in order to get a crash
dump from a system.  Sometimes this is easy to do, other times (such as
in the case of a remote admin) it is not trivial to send new images to
the user.

A much easier method would be a switch to change the WARN() over to a
panic.  This makes debugging easier in that I can now test the actual
image the WARN() was seen on and I do not have to engage in remote
debugging.

This patch adds a panic_on_warn kernel parameter and
/proc/sys/kernel/panic_on_warn calls panic() in the
warn_slowpath_common() path.  The function will still print out the
location of the warning.

An example of the panic_on_warn output:

The first line below is from the WARN_ON() to output the WARN_ON()'s
location.  After that the panic() output is displayed.

    WARNING: CPU: 30 PID: 11698 at /home/prarit/dummy_module/dummy-module.c:25 init_dummy+0x1f/0x30 [dummy_module]()
    Kernel panic - not syncing: panic_on_warn set ...

    CPU: 30 PID: 11698 Comm: insmod Tainted: G        W  OE  3.17.0+ #57
    Hardware name: Intel Corporation S2600CP/S2600CP, BIOS RMLSDP.86I.00.29.D696.1311111329 11/11/2013
     0000000000000000 000000008e3f87df ffff88080f093c38 ffffffff81665190
     0000000000000000 ffffffff818aea3d ffff88080f093cb8 ffffffff8165e2ec
     ffffffff00000008 ffff88080f093cc8 ffff88080f093c68 000000008e3f87df
    Call Trace:
     [<ffffffff81665190>] dump_stack+0x46/0x58
     [<ffffffff8165e2ec>] panic+0xd0/0x204
     [<ffffffffa038e05f>] ? init_dummy+0x1f/0x30 [dummy_module]
     [<ffffffff81076b90>] warn_slowpath_common+0xd0/0xd0
     [<ffffffffa038e040>] ? dummy_greetings+0x40/0x40 [dummy_module]
     [<ffffffff81076c8a>] warn_slowpath_null+0x1a/0x20
     [<ffffffffa038e05f>] init_dummy+0x1f/0x30 [dummy_module]
     [<ffffffff81002144>] do_one_initcall+0xd4/0x210
     [<ffffffff811b52c2>] ? __vunmap+0xc2/0x110
     [<ffffffff810f8889>] load_module+0x16a9/0x1b30
     [<ffffffff810f3d30>] ? store_uevent+0x70/0x70
     [<ffffffff810f49b9>] ? copy_module_from_fd.isra.44+0x129/0x180
     [<ffffffff810f8ec6>] SyS_finit_module+0xa6/0xd0
     [<ffffffff8166cf29>] system_call_fastpath+0x12/0x17

Successfully tested by me.

hpa said: There is another very valid use for this: many operators would
rather a machine shuts down than being potentially compromised either
functionally or security-wise.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Acked-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Cc: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-12-10 17:41:10 -08:00
..
byteorder
caif
can can: netlink: Add CAN_CTRLMODE_PRESUME_ACK flag 2014-07-15 09:34:19 +02:00
cifs
dvb
genwqe GenWQE: Update author information 2014-09-23 23:15:46 -07:00
hdlc
hsi
isdn
mmc
netfilter netfilter: fix wrong arithmetics regarding NFT_REJECT_ICMPX_MAX 2014-10-07 20:16:31 +02:00
netfilter_arp uapi: netfilter_arp: use __u8 instead of u_int8_t 2014-08-20 15:13:08 +02:00
netfilter_bridge netfilter: kill ulog targets 2014-06-25 19:28:43 +02:00
netfilter_ipv4 netfilter: kill ulog targets 2014-06-25 19:28:43 +02:00
netfilter_ipv6
nfsd nfsd: allow turning off nfsv3 readdir_plus 2014-08-18 15:12:14 -04:00
raid md: discard PRINT_RAID_DEBUG ioctl 2014-10-14 13:08:29 +11:00
spi
sunrpc
tc_act
tc_ematch
usb usb: gadget: f_fs: virtual endpoint address mapping 2014-09-16 09:58:21 -05:00
wimax
a.out.h
acct.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
apm_bios.h
arcfb.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h Merge git://git.infradead.org/users/eparis/audit 2014-10-19 16:25:56 -07:00
auto_fs4.h
auto_fs.h
auxvec.h
ax25.h
b1lli.h
baycom.h
bcache.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
bpf_common.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
bpf.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
bpqether.h
bsg.h block SG_IO: add SG_FLAG_Q_AT_HEAD flag 2014-07-01 10:48:05 -06:00
btrfs.h btrfs: create sprout should rename fsid on the sysfs as well 2014-06-28 13:48:44 -07:00
can.h can: unify identifiers to ensure unique include processing 2014-05-19 09:38:24 +02:00
capability.h audit: add netlink audit protocol bind to check capabilities on multicast join 2014-04-22 21:42:27 -04:00
capi.h
cciss_defs.h
cciss_ioctl.h
cdrom.h
cgroupstats.h
chio.h
cm4000_cs.h
cn_proc.h
coda_psdev.h
coda.h
coff.h
connector.h
const.h
cramfs_fs.h
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h dcbnl : Fix misleading dcb_app->priority explanation 2014-07-30 17:21:05 -07:00
dccp.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlm.h
dlmconstants.h
dm-ioctl.h dm: enhance internal suspend and resume interface 2014-11-19 12:31:17 -05:00
dm-log-userspace.h
dn.h
dqblk_xfs.h
edd.h
efs_fs_sb.h
elf-em.h Add ELF machine define for Nios2 2014-12-08 12:55:57 +08:00
elf-fdpic.h
elf.h arm64: ptrace: add NT_ARM_SYSTEM_CALL regset 2014-11-28 10:19:49 +00:00
elfcore.h
errno.h
errqueue.h net-timestamp: ACK timestamp for bytestreams 2014-08-05 16:35:54 -07:00
ethtool.h ethtool: Ethtool parameter to dynamically change tx_copybreak 2014-10-06 01:04:16 -04:00
eventpoll.h
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h shm: add sealing API 2014-08-08 15:57:31 -07:00
fd.h
fdreg.h
fib_rules.h
fiemap.h
filter.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
firewire-cdev.h
firewire-constants.h
flat.h
fou.h gue: Receive side for Generic UDP Encapsulation 2014-10-03 16:53:33 -07:00
fs.h vfs: add RENAME_WHITEOUT 2014-10-24 00:14:37 +02:00
fsl_hypervisor.h
fuse.h fuse: add FUSE_NO_OPEN_SUPPORT flag to INIT 2014-07-22 16:37:43 +02:00
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h GFS2: remove transaction glock 2014-05-14 10:04:34 +01:00
gigaset_dev.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h Drivers: hv: util: Properly pack the data for file copy functionality 2014-09-23 23:31:21 -07:00
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h i8k: uapi: Introduce define for new highest fan speed 2014-07-09 16:41:36 -07:00
icmp.h
icmpv6.h
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h bridge: include in6.h in if_bridge.h for struct in6_addr 2014-11-05 17:13:34 -05:00
if_cablemodem.h
if_eql.h
if_ether.h net: dsa: reduce number of protocol hooks 2014-08-27 22:59:39 -07:00
if_fc.h
if_fddi.h FDDI: Reformat <linux/if_fddi.h> for 8-character tabs 2014-04-27 19:08:06 -04:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h macvlan: add source mode 2014-09-29 15:37:01 -04:00
if_ltalk.h
if_packet.h packet: remove deprecated syststamp timestamp 2014-07-29 11:39:50 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h
if_tunnel.h ip_tunnel: Add GUE support 2014-10-03 16:53:33 -07:00
if_vlan.h
if_x25.h
if.h
igmp.h
in6.h net: reallocate new socket option number for IPV6_AUTOFLOWLABEL 2014-08-06 15:25:01 -07:00
in_route.h
in.h
inet_diag.h net: tcp: add DCTCP congestion control algorithm 2014-09-29 00:13:10 -04:00
inotify.h
input.h HID: add keyboard input assist hid usages 2014-10-20 21:03:58 +02:00
ioctl.h
ip6_tunnel.h
ip_vs.h ipvs: Add destination address family to netlink interface 2014-09-16 09:03:33 +09:00
ip.h
ipc.h
ipmi_msgdefs.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h ipv6: Allow accepting RA from local IP addresses. 2014-07-01 12:16:24 -07:00
ipx.h
irda.h
irqnr.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
Kbuild uapi: fix to export linux/vm_sockets.h 2014-12-04 15:28:40 -08:00
kd.h
kdev_t.h
kernel-page-flags.h mm/balloon_compaction: add vmstat counters and kpageflags bit 2014-10-09 22:26:01 -04:00
kernel.h
kernelcapi.h
kexec.h kexec: implementation of new syscall kexec_file_load 2014-08-08 15:57:32 -07:00
keyboard.h
keyctl.h
kvm_para.h MIPS: Add functions for hypervisor call 2014-05-30 21:01:11 +02:00
kvm.h KVM: device: add simple registration mechanism for kvm_device_ops 2014-09-17 13:10:08 +02:00
l2tp.h l2tp: Add support for zero IPv6 checksums 2014-05-23 16:28:53 -04:00
libc-compat.h
limits.h
llc.h
loop.h
lp.h
magic.h
major.h
map_to_7segment.h
matroxfb.h
mdio.h
media.h
mei.h
memfd.h shm: add memfd_create() syscall 2014-08-08 15:57:31 -07:00
mempolicy.h
meye.h
mic_common.h
mic_ioctl.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mpls.h
mqueue.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
mtio.h
n_r3964.h
nbd.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
neighbour.h bridge: Add bridge ifindex to bridge fdb notify msgs 2014-06-02 17:58:55 -07:00
net_dropmon.h
net_tstamp.h net-timestamp: ACK timestamp for bytestreams 2014-08-05 16:35:54 -07:00
net.h
netconf.h
netdevice.h net: add name_assign_type netdev attribute 2014-07-15 16:12:01 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink_diag.h
netlink.h
netrom.h
nfc.h NFC: Add RAW socket type support for SOCKPROTO_RAW 2014-05-20 00:06:04 +02:00
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h
nfsacl.h
nl80211.h cfg80211: allow requesting SMPS mode on ap start 2014-09-11 13:37:02 +02:00
nubus.h
nvme.h NVMe: Define Log Page constants 2014-06-13 10:53:49 -04:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h openvswitch: Add support for Geneve tunneling. 2014-10-06 00:32:21 -04:00
packet_diag.h
param.h
parport.h
patchkey.h
pci_regs.h Merge branches 'pci/aer' and 'pci/virtualization' into next 2014-10-01 12:30:58 -06:00
pci.h
perf_event.h perf: Add ability to sample machine state on interrupt 2014-11-16 11:41:57 +01:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
pmu.h
poll.h
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h
pps.h
prctl.h x86, mpx: On-demand kernel allocation of bounds tables 2014-11-18 00:58:53 +01:00
psci.h ARM/ARM64: KVM: Add common header for PSCI related defines 2014-04-30 04:18:57 -07:00
ptp_clock.h
ptrace.h
qnx4_fs.h
qnxtypes.h
quota.h
radeonfb.h
random.h random: introduce getrandom(2) system call 2014-08-05 16:41:22 -04:00
raw.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
resource.h
rfkill.h
romfs_fs.h
rose.h
route.h
rtc.h
rtnetlink.h
scc.h
sched.h sched: Update comments about CLONE_NEWUTS and CLONE_NEWIPC 2014-11-16 10:58:53 +01:00
screen_info.h
sctp.h net: sctp: implement rfc6458, 8.1.31. SCTP_DEFAULT_SNDINFO support 2014-07-16 14:40:04 -07:00
sdla.h
seccomp.h seccomp: implement SECCOMP_FILTER_FLAG_TSYNC 2014-07-18 12:13:40 -07:00
securebits.h
selinux_netlink.h
sem.h
serial_core.h ARM: meson: serial: add MesonX SoC on-chip uart driver 2014-09-08 16:12:40 -07:00
serial_reg.h serial/uart/8250: Add tunable RX interrupt trigger I/F of FIFO buffers 2014-07-17 18:23:35 -07:00
serial.h
serio.h Input: add support for Wacom protocol 4 serial tablets 2014-07-20 14:33:23 -07:00
shm.h ipc,shm: document new limits in the uapi header 2014-06-06 16:08:14 -07:00
signal.h
signalfd.h
smiapp.h [media] smiapp: Add driver-specific test pattern menu item definitions 2014-08-21 15:25:11 -05:00
snmp.h
sock_diag.h
socket.h
sockios.h
som.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
string.h
suspend_ioctls.h
swab.h
synclink.h
sysctl.h kernel: add panic_on_warn 2014-12-10 17:41:10 -08:00
sysinfo.h
target_core_user.h target: Add a user-passthrough backstore 2014-10-03 11:15:20 -07:00
taskstats.h
tcp_metrics.h
tcp.h
telephony.h
termios.h
time.h
times.h
timex.h
tiocl.h
tipc_config.h tipc: bump max configurable window size 2014-06-25 18:03:41 -07:00
tipc.h tipc: add ioctl to fetch link names 2014-04-26 12:13:24 -04:00
toshiba.h
tty_flags.h
tty.h
types.h
udf_fs_i.h
udp.h net: Make enabling of zero UDP6 csums more restrictive 2014-05-23 16:28:53 -04:00
uhid.h HID: uhid: report to user-space whether reports are numbered 2014-08-25 03:28:08 -05:00
uinput.h Input: uinput - add UI_GET_VERSION ioctl 2014-07-21 14:30:42 -07:00
uio.h
ultrasound.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h usbip: move usbip kernel code out of staging 2014-08-25 10:40:06 -07:00
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h [media] v4l2-common.h: remove __user annotation in struct v4l2_edid 2014-04-16 18:20:02 -03:00
v4l2-controls.h [media] v4l: Add camera pan/tilt speed controls 2014-09-21 20:23:39 -03:00
v4l2-dv-timings.h Revert "[media] v4l2-dv-timings: fix a sparse warning" 2014-10-24 08:58:09 -02:00
v4l2-mediabus.h [media] v4l: Add 12-bit YUV 4:2:2 media bus pixel codes 2014-05-13 13:48:29 -03:00
v4l2-subdev.h [media] v4l: Add support for DV timings ioctls on subdev nodes 2014-05-25 12:47:55 -03:00
veth.h
vfio.h vfio/iommu_type1: add new VFIO_TYPE1_NESTING_IOMMU IOMMU type 2014-09-29 10:06:19 -06:00
vhost.h
videodev2.h [media] v4l: Add ARGB555X and XRGB555X pixel formats 2014-09-21 20:28:32 -03:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h include/uapi/linux/virtio_blk.h: introduce feature of VIRTIO_BLK_F_MQ 2014-07-01 10:51:01 -06:00
virtio_config.h
virtio_console.h
virtio_ids.h
virtio_net.h
virtio_pci.h
virtio_ring.h
virtio_rng.h
vm_sockets.h
vsp1.h
vt.h
wait.h
wanrouter.h
watchdog.h
wil6210_uapi.h wil6210: atomic I/O for the card memory 2014-10-02 14:23:14 -04:00
wimax.h
wireless.h
x25.h
xattr.h xattr: fix check for simultaneous glibc header inclusion 2014-08-29 16:28:16 -07:00
xfrm.h xfrm: configure policy hash table thresholds by netlink 2014-09-02 13:37:56 +02:00
zorro_ids.h
zorro.h