selftests/livepatch fails on s390

Alexander Gordeev
2023-12-18T10:45:29Z

[-- Attachment #1: Type: text/plain, Size: 2369 bytes --]

Hi all,

The livepatch selftest somehow fails in -next on s390 due to what
appears to me as 'comm' usage issue. E.g the removal of timestamp-
less line "with link type OSD_10GIG." in the below output forces
'comm' to produce the correct result in check_result() function of
tools/testing/selftests/livepatch/functions.sh script:

[ 11.229256] qeth 0.0.bd02: qdio: OSA on SC 2624 using AI:1 QEBSM:0 PRI:1 TDD:1 SIGA: W
[ 11.250189] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.258763] qeth 0.0.bd00: Device is a OSD Express card (level: 0165)
with link type OSD_10GIG.
[ 11.259261] qeth 0.0.bd00: The device represents a Bridge Capable Port
[ 11.262376] qeth 0.0.bd00: MAC address b2:96:9c:49:aa:e9 successfully registered
[ 11.269654] qeth 0.0.bd00: MAC address 06:c6:b5:7d:ee:63 successfully registered

By contrast, using the 'diff' instead works as a charm. But it was
removed with commit 2f3f651f3756 ("selftests/livepatch: Use "comm"
instead of "diff" for dmesg").

I am attaching the contents of "$expect" and "$result" script
variables and the output of 'dmesg' before and after test run
dmesg-saved.txt and dmesg.txt.

Another 'dmesg' output dmesg-saved1.txt and dmesg1.txt also
shows the same problem, which seems like something to do with
sorting.

The minimal reproducer attached is dmesg-saved1-rep.txt and
dmesg1-rep.txt, that could be described as:

--- dmesg-saved1-rep.txt 2023-12-17 21:08:14.171014218 +0100
+++ dmesg1-rep.txt 2023-12-17 21:06:52.221014218 +0100
@@ -1,3 +1,3 @@
-[ 98.820331] livepatch: 'test_klp_state2': starting patching transition
[ 100.031067] livepatch: 'test_klp_state2': completing patching transition
[ 284.224335] livepatch: kernel.ftrace_enabled = 1
+[ 284.232921] ===== TEST: basic shadow variable API =====

The culprit is the extra space in [ 98.820331] timestamp, that from
the script point of view produces the output with two extra lines:

[ 100.031067] livepatch: 'test_klp_state2': completing patching transition
[ 284.224335] livepatch: kernel.ftrace_enabled = 1
[ 284.232921] ===== TEST: basic shadow variable API =====

If the line with [ 98.820331] timestamp removed or changed to e.g
[ 100.031066] (aka 1 us less), then the result output is as expected:

[ 284.232921] ===== TEST: basic shadow variable API =====

Thanks!

[-- Attachment #2: dmesg-saved.txt --]
[-- Type: text/plain, Size: 132879 bytes --]

[ 11.189483] systemd-journald[943]: varlink-22: Changing state processed-method → idle-server
[ 11.190633] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.190705] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.191385] systemd-journald[943]: varlink-22: Got POLLHUP from socket.
[ 11.191389] systemd-journald[943]: varlink-22: Changing state idle-server → pending-disconnect
[ 11.191392] systemd-journald[943]: varlink-22: Changing state pending-disconnect → processing-disconnect
[ 11.191395] systemd-journald[943]: varlink-22: Changing state processing-disconnect → disconnected
[ 11.200993] VFIO - User Level meta-driver version: 0.3
[ 11.224375] qeth 0.0.bd00: CHID: 1a0 CHPID: 98
[ 11.229256] qeth 0.0.bd02: qdio: OSA on SC 2624 using AI:1 QEBSM:0 PRI:1 TDD:1 SIGA: W
[ 11.250189] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.258763] qeth 0.0.bd00: Device is a OSD Express card (level: 0165)
with link type OSD_10GIG.
[ 11.259261] qeth 0.0.bd00: The device represents a Bridge Capable Port
[ 11.262376] qeth 0.0.bd00: MAC address b2:96:9c:49:aa:e9 successfully registered
[ 11.269654] qeth 0.0.bd00: MAC address 06:c6:b5:7d:ee:63 successfully registered
[ 11.272060] qeth 0.0.bd00 encbd00: renamed from eth0
[ 11.310918] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.323102] dasdconf.sh Warning: 0.0.627c is already online, not configuring
[ 11.343058] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.347561] zram0: detected capacity change from 0 to 16777216
[ 11.359549] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.377984] Adding 8388604k swap on /dev/zram0. Priority:100 extents:1 across:8388604k SSDsc
[ 11.381599] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.390605] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.397956] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.552967] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.569530] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.575683] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.605458] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.611661] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.615960] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.714654] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.716630] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.743224] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.745027] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.746763] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.751180] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.752995] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 11.920342] dasd-eckd 0.0.627f: A channel path to the device has become operational
[ 11.920856] dasd-eckd 0.0.627f: A channel path to the device has become operational
[ 11.928668] dasd-eckd 0.0.627f: New DASD 3390/0C (CU 3990/04) with 30051 cylinders, 15 heads, 224 sectors
[ 11.941252] zfcp 0.0.1900: qdio: ZFCP on SC 61 using AI:1 QEBSM:0 PRI:1 TDD:1 SIGA: W
[ 11.948281] dasd-eckd 0.0.627f: DASD with 4 KB/block, 21636720 KB total size, 48 KB/track, compatible disk layout
[ 11.949271] dasdb:VOL1/ 0X627F: dasdb1 dasdb2
[ 11.970413] scsi host0: scsi_eh_0: sleeping
[ 11.970560] scsi host0: zfcp
[ 12.028341] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.032979] zfcp 0.0.1900: FC Endpoint Security of connection to remote port 0x500507630910d435 enabled: Encryption
[ 12.035107] scsi 0:0:0:0: scsi scan: INQUIRY pass 1 length 36
[ 12.035239] scsi 0:0:0:0: scsi scan: INQUIRY successful with code 0x0
[ 12.035246] scsi 0:0:0:0: scsi scan: INQUIRY pass 2 length 164
[ 12.035345] scsi 0:0:0:0: scsi scan: INQUIRY successful with code 0x0
[ 12.035350] scsi 0:0:0:0: scsi scan: peripheral device type of 31, no device added
[ 12.035679] scsi 0:0:0:0: scsi scan: Sending REPORT LUNS to (try 0)
[ 12.036992] scsi 0:0:0:0: scsi scan: REPORT LUNS successful (try 0) result 0x0
[ 12.036994] scsi 0:0:0:0: scsi scan: REPORT LUN scan
[ 12.037241] scsi 0:0:0:1084113024: scsi scan: INQUIRY pass 1 length 36
[ 12.037394] scsi 0:0:0:1084113024: scsi scan: INQUIRY successful with code 0x0
[ 12.037399] scsi 0:0:0:1084113024: scsi scan: INQUIRY pass 2 length 164
[ 12.037496] scsi 0:0:0:1084113024: scsi scan: INQUIRY successful with code 0x0
[ 12.037502] scsi 0:0:0:1084113024: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.038919] scsi 0:0:0:1084113024: alua: supports implicit TPGS
[ 12.038922] scsi 0:0:0:1084113024: alua: device naa.6005076309ffd435000000000000809e port group 0 rel port 203
[ 12.038952] sd 0:0:0:1084113024: sg_alloc: dev=0
[ 12.038982] sd 0:0:0:1084113024: Attached scsi generic sg0 type 0
[ 12.039272] scsi 0:0:0:1084178560: scsi scan: INQUIRY pass 1 length 36
[ 12.039319] sd 0:0:0:1084113024: Power-on or device reset occurred
[ 12.039325] sd 0:0:0:1084113024: [sda] tag#640 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.039328] sd 0:0:0:1084113024: [sda] tag#640 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.039330] sd 0:0:0:1084113024: [sda] tag#640 Sense Key : Unit Attention [current]
[ 12.039333] sd 0:0:0:1084113024: [sda] tag#640 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.039384] scsi 0:0:0:1084178560: scsi scan: INQUIRY successful with code 0x0
[ 12.039404] scsi 0:0:0:1084178560: scsi scan: INQUIRY pass 2 length 164
[ 12.039505] scsi 0:0:0:1084178560: scsi scan: INQUIRY successful with code 0x0
[ 12.039510] scsi 0:0:0:1084178560: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.040890] scsi 0:0:0:1084178560: alua: supports implicit TPGS
[ 12.040892] scsi 0:0:0:1084178560: alua: device naa.6005076309ffd435000000000000809f port group 0 rel port 203
[ 12.040956] sd 0:0:0:1084178560: sg_alloc: dev=1
[ 12.040983] sd 0:0:0:1084178560: Attached scsi generic sg1 type 0
[ 12.041244] scsi 0:0:0:1084113025: scsi scan: INQUIRY pass 1 length 36
[ 12.041362] sd 0:0:0:1084178560: Power-on or device reset occurred
[ 12.041367] sd 0:0:0:1084178560: [sdb] tag#3264 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.041369] sd 0:0:0:1084178560: [sdb] tag#3264 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.041371] sd 0:0:0:1084178560: [sdb] tag#3264 Sense Key : Unit Attention [current]
[ 12.041373] sd 0:0:0:1084178560: [sdb] tag#3264 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.041405] scsi 0:0:0:1084113025: scsi scan: INQUIRY successful with code 0x0
[ 12.041410] scsi 0:0:0:1084113025: scsi scan: INQUIRY pass 2 length 164
[ 12.041580] scsi 0:0:0:1084113025: scsi scan: INQUIRY successful with code 0x0
[ 12.041585] scsi 0:0:0:1084113025: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.042960] scsi 0:0:0:1084113025: alua: supports implicit TPGS
[ 12.042962] scsi 0:0:0:1084113025: alua: device naa.6005076309ffd435000000000000819e port group 0 rel port 203
[ 12.043005] sd 0:0:0:1084113025: sg_alloc: dev=2
[ 12.043063] sd 0:0:0:1084113025: Attached scsi generic sg2 type 0
[ 12.043298] scsi 0:0:0:1084178561: scsi scan: INQUIRY pass 1 length 36
[ 12.043309] sd 0:0:0:1084113025: Power-on or device reset occurred
[ 12.043312] sd 0:0:0:1084113025: [sdc] tag#641 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.043314] sd 0:0:0:1084113025: [sdc] tag#641 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.043316] sd 0:0:0:1084113025: [sdc] tag#641 Sense Key : Unit Attention [current]
[ 12.043317] sd 0:0:0:1084113025: [sdc] tag#641 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.043423] scsi 0:0:0:1084178561: scsi scan: INQUIRY successful with code 0x0
[ 12.043428] scsi 0:0:0:1084178561: scsi scan: INQUIRY pass 2 length 164
[ 12.043531] scsi 0:0:0:1084178561: scsi scan: INQUIRY successful with code 0x0
[ 12.043536] scsi 0:0:0:1084178561: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.044875] scsi 0:0:0:1084178561: alua: supports implicit TPGS
[ 12.044877] scsi 0:0:0:1084178561: alua: device naa.6005076309ffd435000000000000819f port group 0 rel port 203
[ 12.044927] scsi 0:0:0:1084178561: sg_alloc: dev=3
[ 12.044950] scsi 0:0:0:1084178561: Attached scsi generic sg3 type 0
[ 12.045107] sd 0:0:0:1084113024: scsi scan: device exists on 0:0:0:1084113024
[ 12.045243] sd 0:0:0:1084178561: Power-on or device reset occurred
[ 12.045244] sd 0:0:0:1084178560: scsi scan: device exists on 0:0:0:1084178560
[ 12.045247] sd 0:0:0:1084178561: [sdd] tag#3265 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.045250] sd 0:0:0:1084178561: [sdd] tag#3265 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.045252] sd 0:0:0:1084178561: [sdd] tag#3265 Sense Key : Unit Attention [current]
[ 12.045254] sd 0:0:0:1084178561: [sdd] tag#3265 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.045305] sd 0:0:0:1084113025: scsi scan: device exists on 0:0:0:1084113025
[ 12.045373] sd 0:0:0:1084178561: scsi scan: device exists on 0:0:0:1084178561
[ 12.050288] sd 0:0:0:1084113024: [sda] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.050294] sd 0:0:0:1084113024: alua: transition timeout set to 60 seconds
[ 12.050309] sd 0:0:0:1084113024: alua: port group 00 state A preferred supports tolusnA
[ 12.050393] sd 0:0:0:1084113024: [sda] Write Protect is off
[ 12.050395] sd 0:0:0:1084113024: [sda] Mode Sense: ed 00 00 08
[ 12.050571] sd 0:0:0:1084113024: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.050678] sd 0:0:0:1084113024: [sda] tag#648 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.050680] sd 0:0:0:1084113024: [sda] tag#648 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.050682] sd 0:0:0:1084113024: [sda] tag#648 Sense Key : Illegal Request [current]
[ 12.050684] sd 0:0:0:1084113024: [sda] tag#648 Add. Sense: Invalid field in cdb
[ 12.052828] sd 0:0:0:1084113024: [sda] tag#651 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.052830] sd 0:0:0:1084113024: [sda] tag#651 CDB: Inquiry 12 01 b9 00 04 00
[ 12.052832] sd 0:0:0:1084113024: [sda] tag#651 Sense Key : Illegal Request [current]
[ 12.052833] sd 0:0:0:1084113024: [sda] tag#651 Add. Sense: Invalid field in cdb
[ 12.054252] sda: sda1
[ 12.059079] sd 0:0:0:1084113024: [sda] Attached SCSI disk
[ 12.060240] sd 0:0:0:1084113025: [sdc] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.060242] sd 0:0:0:1084178561: [sdd] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.060287] sd 0:0:0:1084178561: alua: transition timeout set to 60 seconds
[ 12.060290] sd 0:0:0:1084178561: alua: port group 00 state A preferred supports tolusnA
[ 12.060294] sd 0:0:0:1084113025: alua: transition timeout set to 60 seconds
[ 12.060295] sd 0:0:0:1084178560: [sdb] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.060296] sd 0:0:0:1084113025: alua: port group 00 state A preferred supports tolusnA
[ 12.060330] sd 0:0:0:1084178560: alua: transition timeout set to 60 seconds
[ 12.060334] sd 0:0:0:1084113025: [sdc] Write Protect is off
[ 12.060334] sd 0:0:0:1084178560: alua: port group 00 state A preferred supports tolusnA
[ 12.060336] sd 0:0:0:1084178561: [sdd] Write Protect is off
[ 12.060336] sd 0:0:0:1084113025: [sdc] Mode Sense: ed 00 00 08
[ 12.060339] sd 0:0:0:1084178561: [sdd] Mode Sense: ed 00 00 08
[ 12.060397] sd 0:0:0:1084178560: [sdb] Write Protect is off
[ 12.060398] sd 0:0:0:1084178560: [sdb] Mode Sense: ed 00 00 08
[ 12.060544] sd 0:0:0:1084113025: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.060544] sd 0:0:0:1084178561: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.060588] sd 0:0:0:1084178560: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.060692] sd 0:0:0:1084178560: [sdb] tag#1226 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.060695] sd 0:0:0:1084178560: [sdb] tag#1226 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.060697] sd 0:0:0:1084178560: [sdb] tag#1226 Sense Key : Illegal Request [current]
[ 12.060699] sd 0:0:0:1084178560: [sdb] tag#1226 Add. Sense: Invalid field in cdb
[ 12.060784] sd 0:0:0:1084178561: [sdd] tag#1227 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.060786] sd 0:0:0:1084178561: [sdd] tag#1227 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.060788] sd 0:0:0:1084178561: [sdd] tag#1227 Sense Key : Illegal Request [current]
[ 12.060790] sd 0:0:0:1084178561: [sdd] tag#1227 Add. Sense: Invalid field in cdb
[ 12.060797] sd 0:0:0:1084113025: [sdc] tag#672 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.060816] sd 0:0:0:1084178561: [sdd] Disabling DIF Type 1 protection
[ 12.060817] sd 0:0:0:1084113025: [sdc] tag#672 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.060818] sd 0:0:0:1084178561: [sdd] Enabling DIF Type 0 protection
[ 12.060820] sd 0:0:0:1084113025: [sdc] tag#672 Sense Key : Illegal Request [current]
[ 12.060823] sd 0:0:0:1084113025: [sdc] tag#672 Add. Sense: Invalid field in cdb
[ 12.060828] sd 0:0:0:1084113025: [sdc] Disabling DIF Type 1 protection
[ 12.060830] sd 0:0:0:1084113025: [sdc] Enabling DIF Type 0 protection
[ 12.063360] sd 0:0:0:1084178561: [sdd] tag#3274 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.063363] sd 0:0:0:1084178561: [sdd] tag#3274 CDB: Inquiry 12 01 b9 00 04 00
[ 12.063364] sd 0:0:0:1084178561: [sdd] tag#3274 Sense Key : Illegal Request [current]
[ 12.063367] sd 0:0:0:1084178561: [sdd] tag#3274 Add. Sense: Invalid field in cdb
[ 12.063825] sd 0:0:0:1084113025: [sdc] tag#675 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.063827] sd 0:0:0:1084113025: [sdc] tag#675 CDB: Inquiry 12 01 b9 00 04 00
[ 12.063829] sd 0:0:0:1084113025: [sdc] tag#675 Sense Key : Illegal Request [current]
[ 12.063830] sd 0:0:0:1084113025: [sdc] tag#675 Add. Sense: Invalid field in cdb
[ 12.063837] sd 0:0:0:1084178560: [sdb] tag#1230 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.063839] sd 0:0:0:1084178560: [sdb] tag#1230 CDB: Inquiry 12 01 b9 00 04 00
[ 12.063841] sd 0:0:0:1084178560: [sdb] tag#1230 Sense Key : Illegal Request [current]
[ 12.063843] sd 0:0:0:1084178560: [sdb] tag#1230 Add. Sense: Invalid field in cdb
[ 12.063920] sd 0:0:0:1084178561: [sdd] Attached SCSI disk
[ 12.064305] sd 0:0:0:1084178560: [sdb] Attached SCSI disk
[ 12.064457] sd 0:0:0:1084113025: [sdc] Attached SCSI disk
[ 12.118155] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.173553] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.213521] device-mapper: multipath service-time: version 0.3.0 loaded
[ 12.320946] zfcp 0.0.1940: qdio: ZFCP on SC 62 using AI:1 QEBSM:0 PRI:1 TDD:1 SIGA: W
[ 12.350368] scsi host1: scsi_eh_1: sleeping
[ 12.350411] scsi host1: zfcp
[ 12.415631] zfcp 0.0.1940: FC Endpoint Security of connection to remote port 0x500507630914d435 enabled: Encryption
[ 12.417541] scsi 1:0:0:0: scsi scan: INQUIRY pass 1 length 36
[ 12.417634] scsi 1:0:0:0: scsi scan: INQUIRY successful with code 0x0
[ 12.417658] scsi 1:0:0:0: scsi scan: INQUIRY pass 2 length 164
[ 12.417749] scsi 1:0:0:0: scsi scan: INQUIRY successful with code 0x0
[ 12.417755] scsi 1:0:0:0: scsi scan: peripheral device type of 31, no device added
[ 12.418087] scsi 1:0:0:0: scsi scan: Sending REPORT LUNS to (try 0)
[ 12.418541] scsi 1:0:0:0: scsi scan: REPORT LUNS successful (try 0) result 0x0
[ 12.418543] scsi 1:0:0:0: scsi scan: REPORT LUN scan
[ 12.418789] scsi 1:0:0:1084113024: scsi scan: INQUIRY pass 1 length 36
[ 12.418903] scsi 1:0:0:1084113024: scsi scan: INQUIRY successful with code 0x0
[ 12.418908] scsi 1:0:0:1084113024: scsi scan: INQUIRY pass 2 length 164
[ 12.419005] scsi 1:0:0:1084113024: scsi scan: INQUIRY successful with code 0x0
[ 12.419010] scsi 1:0:0:1084113024: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.420462] scsi 1:0:0:1084113024: alua: supports implicit TPGS
[ 12.420466] scsi 1:0:0:1084113024: alua: device naa.6005076309ffd435000000000000809e port group 0 rel port 243
[ 12.420514] sd 1:0:0:1084113024: sg_alloc: dev=4
[ 12.420566] sd 1:0:0:1084113024: Attached scsi generic sg4 type 0
[ 12.420859] scsi 1:0:0:1084178560: scsi scan: INQUIRY pass 1 length 36
[ 12.420863] sd 1:0:0:1084113024: Power-on or device reset occurred
[ 12.420867] sd 1:0:0:1084113024: [sde] tag#1664 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.420870] sd 1:0:0:1084113024: [sde] tag#1664 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.420872] sd 1:0:0:1084113024: [sde] tag#1664 Sense Key : Unit Attention [current]
[ 12.420874] sd 1:0:0:1084113024: [sde] tag#1664 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.420971] scsi 1:0:0:1084178560: scsi scan: INQUIRY successful with code 0x0
[ 12.420976] scsi 1:0:0:1084178560: scsi scan: INQUIRY pass 2 length 164
[ 12.421074] scsi 1:0:0:1084178560: scsi scan: INQUIRY successful with code 0x0
[ 12.421079] scsi 1:0:0:1084178560: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.422435] scsi 1:0:0:1084178560: alua: supports implicit TPGS
[ 12.422438] scsi 1:0:0:1084178560: alua: device naa.6005076309ffd435000000000000809f port group 0 rel port 243
[ 12.422481] sd 1:0:0:1084178560: sg_alloc: dev=5
[ 12.422513] sd 1:0:0:1084178560: Attached scsi generic sg5 type 0
[ 12.422818] scsi 1:0:0:1084113025: scsi scan: INQUIRY pass 1 length 36
[ 12.422918] scsi 1:0:0:1084113025: scsi scan: INQUIRY successful with code 0x0
[ 12.422923] scsi 1:0:0:1084113025: scsi scan: INQUIRY pass 2 length 164
[ 12.423017] scsi 1:0:0:1084113025: scsi scan: INQUIRY successful with code 0x0
[ 12.423022] scsi 1:0:0:1084113025: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.423169] sd 1:0:0:1084178560: Power-on or device reset occurred
[ 12.423173] sd 1:0:0:1084178560: [sdf] tag#896 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.423175] sd 1:0:0:1084178560: [sdf] tag#896 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.423176] sd 1:0:0:1084178560: [sdf] tag#896 Sense Key : Unit Attention [current]
[ 12.423178] sd 1:0:0:1084178560: [sdf] tag#896 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.424628] scsi 1:0:0:1084113025: alua: supports implicit TPGS
[ 12.424630] scsi 1:0:0:1084113025: alua: device naa.6005076309ffd435000000000000819e port group 0 rel port 243
[ 12.424675] sd 1:0:0:1084113025: sg_alloc: dev=6
[ 12.424746] sd 1:0:0:1084113025: Attached scsi generic sg6 type 0
[ 12.425035] scsi 1:0:0:1084178561: scsi scan: INQUIRY pass 1 length 36
[ 12.425136] scsi 1:0:0:1084178561: scsi scan: INQUIRY successful with code 0x0
[ 12.425141] scsi 1:0:0:1084178561: scsi scan: INQUIRY pass 2 length 164
[ 12.425154] sd 1:0:0:1084113025: Power-on or device reset occurred
[ 12.425157] sd 1:0:0:1084113025: [sdg] tag#1665 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.425159] sd 1:0:0:1084113025: [sdg] tag#1665 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.425161] sd 1:0:0:1084113025: [sdg] tag#1665 Sense Key : Unit Attention [current]
[ 12.425163] sd 1:0:0:1084113025: [sdg] tag#1665 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.425233] scsi 1:0:0:1084178561: scsi scan: INQUIRY successful with code 0x0
[ 12.425238] scsi 1:0:0:1084178561: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.426688] scsi 1:0:0:1084178561: alua: supports implicit TPGS
[ 12.426691] scsi 1:0:0:1084178561: alua: device naa.6005076309ffd435000000000000819f port group 0 rel port 243
[ 12.426934] sd 1:0:0:1084178561: sg_alloc: dev=7
[ 12.427059] sd 1:0:0:1084178561: Attached scsi generic sg7 type 0
[ 12.427341] sd 1:0:0:1084113024: scsi scan: device exists on 1:0:0:1084113024
[ 12.427411] sd 1:0:0:1084178561: Power-on or device reset occurred
[ 12.427414] sd 1:0:0:1084178561: [sdh] tag#897 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.427417] sd 1:0:0:1084178561: [sdh] tag#897 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.427419] sd 1:0:0:1084178561: [sdh] tag#897 Sense Key : Unit Attention [current]
[ 12.427422] sd 1:0:0:1084178561: [sdh] tag#897 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.427766] sd 1:0:0:1084178560: scsi scan: device exists on 1:0:0:1084178560
[ 12.428386] sd 1:0:0:1084113025: scsi scan: device exists on 1:0:0:1084113025
[ 12.428806] sd 1:0:0:1084178561: scsi scan: device exists on 1:0:0:1084178561
[ 12.440305] sd 1:0:0:1084113025: [sdg] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440309] sd 1:0:0:1084113024: [sde] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440328] sd 1:0:0:1084178561: [sdh] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440365] sd 1:0:0:1084178560: [sdf] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440405] sd 1:0:0:1084113025: [sdg] Write Protect is off
[ 12.440406] sd 1:0:0:1084113025: [sdg] Mode Sense: ed 00 00 08
[ 12.440408] sd 1:0:0:1084113024: [sde] Write Protect is off
[ 12.440410] sd 1:0:0:1084113024: [sde] Mode Sense: ed 00 00 08
[ 12.440426] sd 1:0:0:1084178561: [sdh] Write Protect is off
[ 12.440428] sd 1:0:0:1084178561: [sdh] Mode Sense: ed 00 00 08
[ 12.440451] sd 1:0:0:1084178560: [sdf] Write Protect is off
[ 12.440453] sd 1:0:0:1084178560: [sdf] Mode Sense: ed 00 00 08
[ 12.440613] sd 1:0:0:1084113025: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440615] sd 1:0:0:1084113024: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440625] sd 1:0:0:1084178561: [sdh] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440627] sd 1:0:0:1084178560: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440709] sd 1:0:0:1084113024: [sde] tag#2055 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440712] sd 1:0:0:1084113024: [sde] tag#2055 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440714] sd 1:0:0:1084113024: [sde] tag#2055 Sense Key : Illegal Request [current]
[ 12.440716] sd 1:0:0:1084113024: [sde] tag#2055 Add. Sense: Invalid field in cdb
[ 12.440722] sd 1:0:0:1084178560: [sdf] tag#906 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440724] sd 1:0:0:1084178560: [sdf] tag#906 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440727] sd 1:0:0:1084178560: [sdf] tag#906 Sense Key : Illegal Request [current]
[ 12.440729] sd 1:0:0:1084178560: [sdf] tag#906 Add. Sense: Invalid field in cdb
[ 12.440826] sd 1:0:0:1084113025: [sdg] tag#1677 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440846] sd 1:0:0:1084113025: [sdg] tag#1677 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440849] sd 1:0:0:1084113025: [sdg] tag#1677 Sense Key : Illegal Request [current]
[ 12.440851] sd 1:0:0:1084113025: [sdg] tag#1677 Add. Sense: Invalid field in cdb
[ 12.440855] sd 1:0:0:1084113025: [sdg] Disabling DIF Type 1 protection
[ 12.440857] sd 1:0:0:1084113025: [sdg] Enabling DIF Type 0 protection
[ 12.440861] sd 1:0:0:1084178561: [sdh] tag#325 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440874] sd 1:0:0:1084178561: [sdh] tag#325 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440881] sd 1:0:0:1084178561: [sdh] tag#325 Sense Key : Illegal Request [current]
[ 12.440882] sd 1:0:0:1084178561: [sdh] tag#325 Add. Sense: Invalid field in cdb
[ 12.440886] sd 1:0:0:1084178561: [sdh] Disabling DIF Type 1 protection
[ 12.440888] sd 1:0:0:1084178561: [sdh] Enabling DIF Type 0 protection
[ 12.443759] sd 1:0:0:1084113024: [sde] tag#1679 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443780] sd 1:0:0:1084113024: [sde] tag#1679 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443782] sd 1:0:0:1084113024: [sde] tag#1679 Sense Key : Illegal Request [current]
[ 12.443785] sd 1:0:0:1084113024: [sde] tag#1679 Add. Sense: Invalid field in cdb
[ 12.443797] sd 1:0:0:1084178560: [sdf] tag#327 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443800] sd 1:0:0:1084178560: [sdf] tag#327 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443802] sd 1:0:0:1084178560: [sdf] tag#327 Sense Key : Illegal Request [current]
[ 12.443805] sd 1:0:0:1084178560: [sdf] tag#327 Add. Sense: Invalid field in cdb
[ 12.443902] sd 1:0:0:1084113025: [sdg] tag#1682 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443905] sd 1:0:0:1084113025: [sdg] tag#1682 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443908] sd 1:0:0:1084113025: [sdg] tag#1682 Sense Key : Illegal Request [current]
[ 12.443910] sd 1:0:0:1084113025: [sdg] tag#1682 Add. Sense: Invalid field in cdb
[ 12.443912] sd 1:0:0:1084178561: [sdh] tag#2057 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443917] sd 1:0:0:1084178561: [sdh] tag#2057 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443919] sd 1:0:0:1084178561: [sdh] tag#2057 Sense Key : Illegal Request [current]
[ 12.443921] sd 1:0:0:1084178561: [sdh] tag#2057 Add. Sense: Invalid field in cdb
[ 12.444277] sd 1:0:0:1084178560: [sdf] Attached SCSI disk
[ 12.444413] sd 1:0:0:1084113025: [sdg] Attached SCSI disk
[ 12.444437] sd 1:0:0:1084178561: [sdh] Attached SCSI disk
[ 12.445055] sde: sde1
[ 12.445135] sd 1:0:0:1084113024: [sde] Attached SCSI disk
[ 12.455157] mlx5_core 0001:00:00.0 ens8192f0np0: Link up
[ 12.754503] mlx5_core 0000:00:00.0 ens8320f0np0: Link up
[ 12.870161] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.871810] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.873288] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.879490] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.881609] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.883524] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 13.129973] systemd-journald[943]: Compressed data object 621 -> 266 using ZSTD
[ 13.130596] systemd-journald[943]: Compressed data object 621 -> 274 using ZSTD
[ 14.130283] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 52.526889] crw_info : CRW reports slct=0, oflw=0, chn=0, rsc=B, anc=0, erc=0, rsid=0
[ 64.832872] systemd-journald[943]: Compressed data object 533 -> 400 using ZSTD
[ 64.919285] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 64.928008] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 65.045916] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 65.046557] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 65.206974] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 84.040569] livepatch: kernel.ftrace_enabled = 1
[ 84.047983] ===== TEST: basic function patching =====
[ 84.052146] % modprobe test_klp_livepatch
[ 84.054139] test_klp_livepatch: tainting kernel with TAINT_LIVEPATCH
[ 84.054277] livepatch: enabling patch 'test_klp_livepatch'
[ 84.054279] livepatch: 'test_klp_livepatch': initializing patching transition
[ 84.055514] livepatch: 'test_klp_livepatch': starting patching transition
[ 84.867407] livepatch: 'test_klp_livepatch': completing patching transition
[ 84.867542] livepatch: 'test_klp_livepatch': patching complete
[ 84.872840] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 84.872891] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 84.872925] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 85.987407] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 85.989034] livepatch: 'test_klp_livepatch': unpatching complete
[ 86.084797] % rmmod test_klp_livepatch
[ 86.153886] ===== TEST: multiple livepatches =====
[ 86.157188] % modprobe test_klp_livepatch
[ 86.158657] livepatch: enabling patch 'test_klp_livepatch'
[ 86.158659] livepatch: 'test_klp_livepatch': initializing patching transition
[ 86.159793] livepatch: 'test_klp_livepatch': starting patching transition
[ 87.027437] livepatch: 'test_klp_livepatch': completing patching transition
[ 87.027546] livepatch: 'test_klp_livepatch': patching complete
[ 87.078385] test_klp_livepatch: this has been live patched
[ 87.083290] % modprobe test_klp_atomic_replace replace=0
[ 87.085500] livepatch: enabling patch 'test_klp_atomic_replace'
[ 87.085502] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 87.086685] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 87.907412] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 87.907555] livepatch: 'test_klp_atomic_replace': patching complete
[ 88.004547] test_klp_livepatch: this has been live patched
[ 88.005509] test_klp_atomic_replace: this has been live patched
[ 88.005634] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 88.005721] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 88.005740] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 88.947422] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 88.948800] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 89.016537] % rmmod test_klp_atomic_replace
[ 89.097952] test_klp_livepatch: this has been live patched
[ 89.099036] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 89.099056] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 89.099079] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 89.907443] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 89.908927] livepatch: 'test_klp_livepatch': unpatching complete
[ 90.008993] % rmmod test_klp_livepatch
[ 90.075281] ===== TEST: atomic replace livepatch =====
[ 90.078563] % modprobe test_klp_livepatch
[ 90.080025] livepatch: enabling patch 'test_klp_livepatch'
[ 90.080027] livepatch: 'test_klp_livepatch': initializing patching transition
[ 90.081063] livepatch: 'test_klp_livepatch': starting patching transition
[ 91.667362] livepatch: 'test_klp_livepatch': completing patching transition
[ 91.667466] livepatch: 'test_klp_livepatch': patching complete
[ 91.711116] test_klp_livepatch: this has been live patched
[ 91.715609] % modprobe test_klp_atomic_replace replace=1
[ 91.717349] livepatch: enabling patch 'test_klp_atomic_replace'
[ 91.717350] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 91.718440] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 93.027449] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 93.028821] livepatch: 'test_klp_atomic_replace': patching complete
[ 93.044211] test_klp_atomic_replace: this has been live patched
[ 93.045414] % rmmod test_klp_livepatch
[ 93.138826] test_klp_atomic_replace: this has been live patched
[ 93.138945] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 93.139013] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 93.139039] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 93.987388] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 93.988892] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 94.048696] % rmmod test_klp_atomic_replace
[ 94.131346] livepatch: kernel.ftrace_enabled = 1
[ 94.138074] ===== TEST: target module before livepatch =====
[ 94.141712] % modprobe test_klp_callbacks_mod
[ 94.143390] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 94.147450] % modprobe test_klp_callbacks_demo
[ 94.149518] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 94.149520] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 94.149584] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 94.149585] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 94.149586] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 95.827310] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 95.827414] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 95.827416] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 95.827417] livepatch: 'test_klp_callbacks_demo': patching complete
[ 95.880751] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 95.880770] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 95.880792] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 95.880793] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 95.880795] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 96.947362] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 96.947467] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 96.947468] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 96.947470] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 96.991491] % rmmod test_klp_callbacks_demo
[ 97.047939] % rmmod test_klp_callbacks_mod
[ 97.049129] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 97.123448] ===== TEST: module_coming notifier =====
[ 97.126706] % modprobe test_klp_callbacks_demo
[ 97.128201] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 97.128202] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 97.128221] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 97.128222] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 97.907366] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 97.907523] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 97.907524] livepatch: 'test_klp_callbacks_demo': patching complete
[ 97.947504] % modprobe test_klp_callbacks_mod
[ 97.948836] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 97.948839] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 97.948841] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 97.948883] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 97.949244] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 97.949263] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 97.949283] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 97.949284] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 97.949285] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 99.117355] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 99.117458] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 99.117460] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 99.117461] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 99.160962] % rmmod test_klp_callbacks_demo
[ 99.207962] % rmmod test_klp_callbacks_mod
[ 99.209122] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 99.283107] ===== TEST: module_going notifier =====
[ 99.286635] % modprobe test_klp_callbacks_mod
[ 99.288047] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 99.291742] % modprobe test_klp_callbacks_demo
[ 99.293440] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 99.293441] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 99.293462] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 99.293463] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 99.293465] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 101.027350] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 101.027455] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 101.027456] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 101.027458] livepatch: 'test_klp_callbacks_demo': patching complete
[ 101.126745] % rmmod test_klp_callbacks_mod
[ 101.127848] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 101.127863] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 101.127865] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 101.127866] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 101.187049] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 101.187066] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 101.187085] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 101.187086] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 102.067340] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 102.067461] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 102.067463] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 102.096546] % rmmod test_klp_callbacks_demo
[ 102.183243] ===== TEST: module_coming and module_going notifiers =====
[ 102.186391] % modprobe test_klp_callbacks_demo
[ 102.187856] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 102.187858] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 102.187879] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 102.187881] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 103.827367] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 103.827510] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 103.827511] livepatch: 'test_klp_callbacks_demo': patching complete
[ 103.920248] % modprobe test_klp_callbacks_mod
[ 103.921535] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 103.921537] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 103.921539] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 103.921581] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 103.922691] % rmmod test_klp_callbacks_mod
[ 103.923756] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 103.923786] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 103.923788] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 103.923789] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 103.987019] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 103.987036] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 103.987057] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 103.987058] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 105.027318] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 105.027425] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 105.027426] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 105.096960] % rmmod test_klp_callbacks_demo
[ 105.193366] ===== TEST: target module not present =====
[ 105.196426] % modprobe test_klp_callbacks_demo
[ 105.197920] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 105.197923] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 105.197944] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 105.197945] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 106.957298] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 106.957421] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 106.957422] livepatch: 'test_klp_callbacks_demo': patching complete
[ 107.027668] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 107.027687] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 107.027708] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 107.027709] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 108.067334] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 108.067440] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 108.067441] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 108.137719] % rmmod test_klp_callbacks_demo
[ 108.213123] ===== TEST: pre-patch callback -ENODEV =====
[ 108.216268] % modprobe test_klp_callbacks_mod
[ 108.217645] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 108.218019] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 108.219501] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 108.219503] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 108.219523] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 108.219524] livepatch: pre-patch callback failed for object 'vmlinux'
[ 108.219524] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 108.219526] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 108.219527] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 108.219633] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 108.366951] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 108.367826] % rmmod test_klp_callbacks_mod
[ 108.368966] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 108.463160] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 108.466160] % modprobe test_klp_callbacks_demo
[ 108.467614] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 108.467616] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 108.467638] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 108.467639] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 109.667362] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 109.667472] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 109.667473] livepatch: 'test_klp_callbacks_demo': patching complete
[ 109.689019] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 109.689979] % modprobe test_klp_callbacks_mod
[ 109.691291] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 109.691294] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 109.691296] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 109.691297] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 109.837006] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 109.837051] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 109.837066] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 109.837088] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 109.837089] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 111.027394] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 111.027554] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 111.027555] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 111.048716] % rmmod test_klp_callbacks_demo
[ 111.124777] ===== TEST: multiple target modules =====
[ 111.128696] % modprobe test_klp_callbacks_busy block_transition=N
[ 111.130780] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 111.130784] test_klp_callbacks_busy: busymod_work_func enter
[ 111.130786] test_klp_callbacks_busy: busymod_work_func exit
[ 111.134478] % modprobe test_klp_callbacks_demo
[ 111.135984] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 111.135986] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 111.136005] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 111.136006] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 111.137437] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 111.987405] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 111.987513] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 111.987515] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 111.987516] livepatch: 'test_klp_callbacks_demo': patching complete
[ 112.058064] % modprobe test_klp_callbacks_mod
[ 112.059514] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 112.059516] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 112.059518] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 112.059560] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 112.060788] % rmmod test_klp_callbacks_mod
[ 112.061910] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 112.061925] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 112.061927] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 112.061928] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 112.137104] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 112.137122] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 112.137143] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 112.137144] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 112.137146] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 113.027375] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 113.029229] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 113.029230] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 113.029232] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 113.046037] % rmmod test_klp_callbacks_demo
[ 113.117945] % rmmod test_klp_callbacks_busy
[ 113.119077] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 113.184611] ===== TEST: busy target module =====
[ 113.187764] % modprobe test_klp_callbacks_busy block_transition=Y
[ 113.189352] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 113.189356] test_klp_callbacks_busy: busymod_work_func enter
[ 113.192845] % modprobe test_klp_callbacks_demo
[ 113.194361] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 113.194363] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 113.194384] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 113.194385] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 113.195818] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 113.201297] % modprobe test_klp_callbacks_mod
[ 113.202625] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 113.202627] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 113.202719] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 113.203890] % rmmod test_klp_callbacks_mod
[ 113.204951] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 113.204963] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 113.204964] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 113.267080] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 113.267098] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 113.267246] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 115.907346] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 115.909130] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 115.909132] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 115.909133] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 115.989675] % rmmod test_klp_callbacks_demo
[ 116.047878] % rmmod test_klp_callbacks_busy
[ 116.066667] test_klp_callbacks_busy: busymod_work_func exit
[ 116.066674] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 116.194426] ===== TEST: multiple livepatches =====
[ 116.197597] % modprobe test_klp_callbacks_demo
[ 116.199116] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 116.199118] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 116.199139] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 116.199140] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 117.667375] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 117.667525] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 117.667527] livepatch: 'test_klp_callbacks_demo': patching complete
[ 117.729276] % modprobe test_klp_callbacks_demo2
[ 117.731386] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 117.731388] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 117.731409] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 117.731410] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 118.707443] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 118.707552] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 118.707553] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 118.749944] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 118.749964] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 118.749986] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 118.749987] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 119.907371] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 119.907541] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 119.907543] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 119.960612] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 119.960630] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 119.960649] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 119.960650] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 120.867332] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 120.867435] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 120.867436] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 120.869780] % rmmod test_klp_callbacks_demo2
[ 120.917849] % rmmod test_klp_callbacks_demo
[ 120.984589] ===== TEST: atomic replace =====
[ 120.987657] % modprobe test_klp_callbacks_demo
[ 120.989209] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 120.989211] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 120.989232] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 120.989233] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 121.907296] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 121.907399] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 121.907401] livepatch: 'test_klp_callbacks_demo': patching complete
[ 122.010261] % modprobe test_klp_callbacks_demo2 replace=1
[ 122.011745] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 122.011747] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 122.011767] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 122.011768] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 122.947337] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 122.947446] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 122.947448] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 123.030617] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 123.030637] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 123.030658] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 123.030659] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 123.907269] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 123.907424] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 123.907426] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 123.939784] % rmmod test_klp_callbacks_demo2
[ 123.987825] % rmmod test_klp_callbacks_demo
[ 124.090148] livepatch: kernel.ftrace_enabled = 1
[ 124.097727] ===== TEST: basic shadow variable API =====
[ 124.101462] % modprobe test_klp_shadow_vars
[ 124.103146] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 124.103148] test_klp_shadow_vars: got expected NULL result
[ 124.103150] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 124.103151] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 124.103155] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 124.103156] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 124.103158] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 124.103160] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 124.103162] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 124.103163] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 124.103165] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 124.103167] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 124.103169] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 124.103170] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 124.103173] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 124.103174] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 124.103175] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 124.103176] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 124.103177] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 124.103179] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 124.103180] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 124.103181] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 124.103182] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 124.103184] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 124.103185] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 124.103186] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 124.103187] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 124.103189] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 124.103191] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 124.103193] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 124.103194] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 124.103196] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 124.103197] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 124.103199] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 124.103200] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 124.103201] test_klp_shadow_vars: got expected NULL result
[ 124.103202] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 124.103204] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 124.103205] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 124.103206] test_klp_shadow_vars: got expected NULL result
[ 124.103207] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 124.103208] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 124.103209] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 124.103211] test_klp_shadow_vars: got expected NULL result
[ 124.103212] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 124.103213] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 124.103214] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 124.103215] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 124.103216] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 124.103218] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 124.103231] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 124.103232] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 124.103233] test_klp_shadow_vars: got expected NULL result
[ 124.103234] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 124.103235] test_klp_shadow_vars: got expected NULL result
[ 124.103236] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 124.103238] test_klp_shadow_vars: got expected NULL result
[ 124.104546] % rmmod test_klp_shadow_vars
[ 124.201338] livepatch: kernel.ftrace_enabled = 1
[ 124.208997] ===== TEST: system state modification =====
[ 124.212733] % modprobe test_klp_state
[ 124.214788] livepatch: enabling patch 'test_klp_state'
[ 124.214790] livepatch: 'test_klp_state': initializing patching transition
[ 124.214811] test_klp_state: pre_patch_callback: vmlinux
[ 124.214812] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 124.214814] livepatch: 'test_klp_state': starting patching transition
[ 125.107324] livepatch: 'test_klp_state': completing patching transition
[ 125.107502] test_klp_state: post_patch_callback: vmlinux
[ 125.107504] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 125.107505] livepatch: 'test_klp_state': patching complete
[ 125.132083] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 125.132120] livepatch: 'test_klp_state': initializing unpatching transition
[ 125.132141] test_klp_state: pre_unpatch_callback: vmlinux
[ 125.132142] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 125.132143] livepatch: 'test_klp_state': starting unpatching transition
[ 125.987299] livepatch: 'test_klp_state': completing unpatching transition
[ 125.987400] test_klp_state: post_unpatch_callback: vmlinux
[ 125.987401] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 125.987402] livepatch: 'test_klp_state': unpatching complete
[ 126.040767] % rmmod test_klp_state
[ 126.104509] ===== TEST: taking over system state modification =====
[ 126.107689] % modprobe test_klp_state
[ 126.109150] livepatch: enabling patch 'test_klp_state'
[ 126.109152] livepatch: 'test_klp_state': initializing patching transition
[ 126.109173] test_klp_state: pre_patch_callback: vmlinux
[ 126.109174] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 126.109176] livepatch: 'test_klp_state': starting patching transition
[ 127.107325] livepatch: 'test_klp_state': completing patching transition
[ 127.107431] test_klp_state: post_patch_callback: vmlinux
[ 127.107432] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 127.107433] livepatch: 'test_klp_state': patching complete
[ 127.131647] % modprobe test_klp_state2
[ 127.133754] livepatch: enabling patch 'test_klp_state2'
[ 127.133756] livepatch: 'test_klp_state2': initializing patching transition
[ 127.133777] test_klp_state2: pre_patch_callback: vmlinux
[ 127.133778] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 127.133779] livepatch: 'test_klp_state2': starting patching transition
[ 127.987333] livepatch: 'test_klp_state2': completing patching transition
[ 127.987456] test_klp_state2: post_patch_callback: vmlinux
[ 127.987457] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 127.987458] livepatch: 'test_klp_state2': patching complete
[ 128.051214] % rmmod test_klp_state
[ 128.117089] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 128.117108] livepatch: 'test_klp_state2': initializing unpatching transition
[ 128.117128] test_klp_state2: pre_unpatch_callback: vmlinux
[ 128.117129] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 128.117131] livepatch: 'test_klp_state2': starting unpatching transition
[ 129.027341] livepatch: 'test_klp_state2': completing unpatching transition
[ 129.027447] test_klp_state2: post_unpatch_callback: vmlinux
[ 129.027449] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 129.027451] livepatch: 'test_klp_state2': unpatching complete
[ 129.127118] % rmmod test_klp_state2
[ 129.194469] ===== TEST: compatible cumulative livepatches =====
[ 129.197663] % modprobe test_klp_state2
[ 129.199144] livepatch: enabling patch 'test_klp_state2'
[ 129.199146] livepatch: 'test_klp_state2': initializing patching transition
[ 129.199166] test_klp_state2: pre_patch_callback: vmlinux
[ 129.199167] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 129.199168] livepatch: 'test_klp_state2': starting patching transition
[ 130.707290] livepatch: 'test_klp_state2': completing patching transition
[ 130.707484] test_klp_state2: post_patch_callback: vmlinux
[ 130.707485] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 130.707486] livepatch: 'test_klp_state2': patching complete
[ 130.728829] % modprobe test_klp_state3
[ 130.730860] livepatch: enabling patch 'test_klp_state3'
[ 130.730863] livepatch: 'test_klp_state3': initializing patching transition
[ 130.730883] test_klp_state3: pre_patch_callback: vmlinux
[ 130.730884] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 130.730886] livepatch: 'test_klp_state3': starting patching transition
[ 131.747404] livepatch: 'test_klp_state3': completing patching transition
[ 131.747514] test_klp_state3: post_patch_callback: vmlinux
[ 131.747516] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 131.747517] livepatch: 'test_klp_state3': patching complete
[ 131.751280] % rmmod test_klp_state2
[ 131.830254] % modprobe test_klp_state2
[ 131.831912] livepatch: enabling patch 'test_klp_state2'
[ 131.831914] livepatch: 'test_klp_state2': initializing patching transition
[ 131.831932] test_klp_state2: pre_patch_callback: vmlinux
[ 131.831933] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 131.831934] livepatch: 'test_klp_state2': starting patching transition
[ 132.787297] livepatch: 'test_klp_state2': completing patching transition
[ 132.787417] test_klp_state2: post_patch_callback: vmlinux
[ 132.787418] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 132.787420] livepatch: 'test_klp_state2': patching complete
[ 132.849950] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 132.850015] livepatch: 'test_klp_state2': initializing unpatching transition
[ 132.850036] test_klp_state2: pre_unpatch_callback: vmlinux
[ 132.850037] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 132.850038] livepatch: 'test_klp_state2': starting unpatching transition
[ 133.907269] livepatch: 'test_klp_state2': completing unpatching transition
[ 133.907403] test_klp_state2: post_unpatch_callback: vmlinux
[ 133.907405] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 133.907406] livepatch: 'test_klp_state2': unpatching complete
[ 133.960649] % rmmod test_klp_state2
[ 134.007856] % rmmod test_klp_state3
[ 134.074550] ===== TEST: incompatible cumulative livepatches =====
[ 134.077882] % modprobe test_klp_state2
[ 134.079476] livepatch: enabling patch 'test_klp_state2'
[ 134.079478] livepatch: 'test_klp_state2': initializing patching transition
[ 134.079498] test_klp_state2: pre_patch_callback: vmlinux
[ 134.079499] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 134.079501] livepatch: 'test_klp_state2': starting patching transition
[ 135.587306] livepatch: 'test_klp_state2': completing patching transition
[ 135.587415] test_klp_state2: post_patch_callback: vmlinux
[ 135.587417] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 135.587418] livepatch: 'test_klp_state2': patching complete
[ 135.606549] % modprobe test_klp_state
[ 135.608261] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 135.736937] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 135.736975] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 135.736992] livepatch: 'test_klp_state2': initializing unpatching transition
[ 135.737013] test_klp_state2: pre_unpatch_callback: vmlinux
[ 135.737014] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 135.737015] livepatch: 'test_klp_state2': starting unpatching transition
[ 136.947325] livepatch: 'test_klp_state2': completing unpatching transition
[ 136.947481] test_klp_state2: post_unpatch_callback: vmlinux
[ 136.947482] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 136.947483] livepatch: 'test_klp_state2': unpatching complete
[ 136.948539] % rmmod test_klp_state2
[ 137.041414] livepatch: kernel.ftrace_enabled = 1
[ 137.049296] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 137.051220] livepatch: kernel.ftrace_enabled = 0
[ 137.051281] % modprobe test_klp_livepatch
[ 137.052860] livepatch: enabling patch 'test_klp_livepatch'
[ 137.052862] livepatch: 'test_klp_livepatch': initializing patching transition
[ 137.052885] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 137.052887] livepatch: failed to patch object 'vmlinux'
[ 137.052888] livepatch: failed to enable patch 'test_klp_livepatch'
[ 137.052889] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 137.052890] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 137.052996] livepatch: 'test_klp_livepatch': unpatching complete
[ 137.176943] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 137.178976] livepatch: kernel.ftrace_enabled = 1
[ 137.182231] % modprobe test_klp_livepatch
[ 137.183760] livepatch: enabling patch 'test_klp_livepatch'
[ 137.183762] livepatch: 'test_klp_livepatch': initializing patching transition
[ 137.184843] livepatch: 'test_klp_livepatch': starting patching transition
[ 138.067403] livepatch: 'test_klp_livepatch': completing patching transition
[ 138.067507] livepatch: 'test_klp_livepatch': patching complete
[ 138.105610] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 138.106627] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 138.106648] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 138.106672] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 139.107365] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 139.108879] livepatch: 'test_klp_livepatch': unpatching complete
[ 139.116355] % rmmod test_klp_livepatch
[ 139.200586] livepatch: kernel.ftrace_enabled = 1
[ 139.208530] ===== TEST: sysfs test =====
[ 139.211756] % modprobe test_klp_livepatch
[ 139.213178] livepatch: enabling patch 'test_klp_livepatch'
[ 139.213180] livepatch: 'test_klp_livepatch': initializing patching transition
[ 139.214331] livepatch: 'test_klp_livepatch': starting patching transition
[ 140.867306] livepatch: 'test_klp_livepatch': completing patching transition
[ 140.867409] livepatch: 'test_klp_livepatch': patching complete
[ 140.953991] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 140.954006] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 140.954028] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 141.997333] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 141.998940] livepatch: 'test_klp_livepatch': unpatching complete
[ 142.064873] % rmmod test_klp_livepatch
[ 142.144542] ===== TEST: sysfs test object/patched =====
[ 142.147844] % modprobe test_klp_callbacks_demo
[ 142.149314] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 142.149316] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 142.149336] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 142.149337] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 143.027295] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 143.027399] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 143.027400] livepatch: 'test_klp_callbacks_demo': patching complete
[ 143.071068] % modprobe test_klp_callbacks_mod
[ 143.072452] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 143.072454] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.072456] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.072497] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 143.074775] % rmmod test_klp_callbacks_mod
[ 143.076064] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 143.076077] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.076079] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 143.076081] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.137979] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 143.138015] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 143.138036] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 143.138038] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 144.147343] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 144.147528] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 144.147530] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 144.249115] % rmmod test_klp_callbacks_demo
[ 149.652836] livepatch: kernel.ftrace_enabled = 1
[ 149.660651] ===== TEST: basic function patching =====
[ 149.663714] % modprobe test_klp_livepatch
[ 149.665324] livepatch: enabling patch 'test_klp_livepatch'
[ 149.665326] livepatch: 'test_klp_livepatch': initializing patching transition
[ 149.666432] livepatch: 'test_klp_livepatch': starting patching transition
[ 151.027254] livepatch: 'test_klp_livepatch': completing patching transition
[ 151.027390] livepatch: 'test_klp_livepatch': patching complete
[ 151.092898] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 151.092917] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 151.092934] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 152.067265] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 152.068794] livepatch: 'test_klp_livepatch': unpatching complete
[ 152.102901] % rmmod test_klp_livepatch
[ 152.175346] ===== TEST: multiple livepatches =====
[ 152.178402] % modprobe test_klp_livepatch
[ 152.179854] livepatch: enabling patch 'test_klp_livepatch'
[ 152.179857] livepatch: 'test_klp_livepatch': initializing patching transition
[ 152.181052] livepatch: 'test_klp_livepatch': starting patching transition
[ 153.587227] livepatch: 'test_klp_livepatch': completing patching transition
[ 153.587346] livepatch: 'test_klp_livepatch': patching complete
[ 153.605914] test_klp_livepatch: this has been live patched
[ 153.610106] % modprobe test_klp_atomic_replace replace=0
[ 153.611743] livepatch: enabling patch 'test_klp_atomic_replace'
[ 153.611746] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 153.612988] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 154.867269] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 154.867427] livepatch: 'test_klp_atomic_replace': patching complete
[ 154.936390] test_klp_livepatch: this has been live patched
[ 154.937249] test_klp_atomic_replace: this has been live patched
[ 154.937424] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 154.937443] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 154.937463] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 156.067196] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 156.068608] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 156.148189] % rmmod test_klp_atomic_replace
[ 156.197593] test_klp_livepatch: this has been live patched
[ 156.198534] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 156.198551] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 156.198569] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 157.027245] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 157.028678] livepatch: 'test_klp_livepatch': unpatching complete
[ 157.107307] % rmmod test_klp_livepatch
[ 157.196290] ===== TEST: atomic replace livepatch =====
[ 157.199586] % modprobe test_klp_livepatch
[ 157.201016] livepatch: enabling patch 'test_klp_livepatch'
[ 157.201018] livepatch: 'test_klp_livepatch': initializing patching transition
[ 157.202113] livepatch: 'test_klp_livepatch': starting patching transition
[ 159.027189] livepatch: 'test_klp_livepatch': completing patching transition
[ 159.027295] livepatch: 'test_klp_livepatch': patching complete
[ 159.033053] test_klp_livepatch: this has been live patched
[ 159.037594] % modprobe test_klp_atomic_replace replace=1
[ 159.039272] livepatch: enabling patch 'test_klp_atomic_replace'
[ 159.039274] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 159.040394] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 160.627247] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 160.628733] livepatch: 'test_klp_atomic_replace': patching complete
[ 160.669276] test_klp_atomic_replace: this has been live patched
[ 160.670250] % rmmod test_klp_livepatch
[ 160.728472] test_klp_atomic_replace: this has been live patched
[ 160.728578] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 160.728647] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 160.728675] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 162.067222] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 162.068711] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 162.140945] % rmmod test_klp_atomic_replace
[ 162.231887] livepatch: kernel.ftrace_enabled = 1
[ 162.239588] ===== TEST: target module before livepatch =====
[ 162.242938] % modprobe test_klp_callbacks_mod
[ 162.244287] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 162.247833] % modprobe test_klp_callbacks_demo
[ 162.249367] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 162.249369] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 162.249388] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 162.249389] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 162.249406] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 163.747295] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 163.747452] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 163.747454] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 163.747456] livepatch: 'test_klp_callbacks_demo': patching complete
[ 163.776543] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 163.776563] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 163.776586] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 163.776587] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 163.776589] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 165.027266] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 165.027372] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 165.027374] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 165.027375] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 165.088636] % rmmod test_klp_callbacks_demo
[ 165.147720] % rmmod test_klp_callbacks_mod
[ 165.148920] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 165.243998] ===== TEST: module_coming notifier =====
[ 165.247169] % modprobe test_klp_callbacks_demo
[ 165.248711] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 165.248713] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 165.248734] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 165.248735] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 166.707205] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 166.707378] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 166.707380] livepatch: 'test_klp_callbacks_demo': patching complete
[ 166.778763] % modprobe test_klp_callbacks_mod
[ 166.780198] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 166.780201] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 166.780203] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 166.780245] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 166.780610] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 166.780628] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 166.780649] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 166.780650] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 166.780652] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 168.067171] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 168.067288] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 168.067289] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 168.067291] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 168.092769] % rmmod test_klp_callbacks_demo
[ 168.137636] % rmmod test_klp_callbacks_mod
[ 168.138733] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 168.214554] ===== TEST: module_going notifier =====
[ 168.217657] % modprobe test_klp_callbacks_mod
[ 168.219088] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 168.222668] % modprobe test_klp_callbacks_demo
[ 168.224189] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 168.224190] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 168.224209] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 168.224210] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 168.224211] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 169.027192] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 169.027294] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 169.027296] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 169.027297] livepatch: 'test_klp_callbacks_demo': patching complete
[ 169.039955] % rmmod test_klp_callbacks_mod
[ 169.041211] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 169.041225] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 169.041227] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 169.041229] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 169.096825] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 169.096842] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 169.096860] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 169.096861] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 170.067135] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 170.067237] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 170.067239] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 170.106247] % rmmod test_klp_callbacks_demo
[ 170.184203] ===== TEST: module_coming and module_going notifiers =====
[ 170.187291] % modprobe test_klp_callbacks_demo
[ 170.188838] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 170.188840] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 170.188861] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 170.188862] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 171.837198] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 171.837326] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 171.837328] livepatch: 'test_klp_callbacks_demo': patching complete
[ 171.921732] % modprobe test_klp_callbacks_mod
[ 171.923091] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 171.923094] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 171.923096] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 171.923138] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 171.924441] % rmmod test_klp_callbacks_mod
[ 171.925535] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 171.925548] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 171.925550] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 171.925551] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 171.966871] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 171.966889] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 171.966909] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 171.966910] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 173.027199] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 173.027354] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 173.027355] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 173.076841] % rmmod test_klp_callbacks_demo
[ 173.144067] ===== TEST: target module not present =====
[ 173.147097] % modprobe test_klp_callbacks_demo
[ 173.148676] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 173.148678] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 173.148717] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 173.148719] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 174.627151] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 174.627256] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 174.627257] livepatch: 'test_klp_callbacks_demo': patching complete
[ 174.675094] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 174.675112] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 174.675133] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 174.675134] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 176.067150] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 176.067252] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 176.067253] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 176.088083] % rmmod test_klp_callbacks_demo
[ 176.194636] ===== TEST: pre-patch callback -ENODEV =====
[ 176.197807] % modprobe test_klp_callbacks_mod
[ 176.199160] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 176.199520] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 176.201031] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 176.201033] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 176.201061] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 176.201062] livepatch: pre-patch callback failed for object 'vmlinux'
[ 176.201063] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 176.201064] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 176.201079] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 176.201187] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 176.346872] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 176.347900] % rmmod test_klp_callbacks_mod
[ 176.349044] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 176.424402] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 176.427567] % modprobe test_klp_callbacks_demo
[ 176.429103] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 176.429105] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 176.429125] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 176.429126] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 177.667156] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 177.667260] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 177.667261] livepatch: 'test_klp_callbacks_demo': patching complete
[ 177.753119] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 177.754056] % modprobe test_klp_callbacks_mod
[ 177.755378] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 177.755381] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 177.755383] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 177.755385] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 177.846782] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 177.846853] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 177.846869] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 177.846891] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 177.846892] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 179.027108] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 179.027212] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 179.027214] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 179.058400] % rmmod test_klp_callbacks_demo
[ 179.124598] ===== TEST: multiple target modules =====
[ 179.127765] % modprobe test_klp_callbacks_busy block_transition=N
[ 179.129305] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 179.129311] test_klp_callbacks_busy: busymod_work_func enter
[ 179.129313] test_klp_callbacks_busy: busymod_work_func exit
[ 179.132729] % modprobe test_klp_callbacks_demo
[ 179.134243] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 179.134247] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 179.134267] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 179.134268] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 179.135680] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 180.947100] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 180.947201] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 180.947203] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 180.947204] livepatch: 'test_klp_callbacks_demo': patching complete
[ 180.970719] % modprobe test_klp_callbacks_mod
[ 180.972226] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 180.972228] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 180.972230] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 180.972273] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 180.973615] % rmmod test_klp_callbacks_mod
[ 180.974736] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 180.974748] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 180.974750] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 180.974751] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 181.046824] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 181.046842] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 181.046860] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 181.046861] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 181.046863] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 181.907102] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 181.908849] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 181.908851] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 181.908853] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 181.955928] % rmmod test_klp_callbacks_demo
[ 182.057660] % rmmod test_klp_callbacks_busy
[ 182.058777] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 182.134704] ===== TEST: busy target module =====
[ 182.137780] % modprobe test_klp_callbacks_busy block_transition=Y
[ 182.139259] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 182.139263] test_klp_callbacks_busy: busymod_work_func enter
[ 182.142889] % modprobe test_klp_callbacks_demo
[ 182.144362] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 182.144364] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 182.144382] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 182.144383] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 182.145742] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 182.150873] % modprobe test_klp_callbacks_mod
[ 182.152293] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 182.152296] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 182.152339] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 182.153479] % rmmod test_klp_callbacks_mod
[ 182.154578] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 182.154591] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 182.154592] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 182.196952] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 182.196973] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 182.197122] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 184.947083] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 184.948859] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 184.948861] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 184.948862] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 185.020008] % rmmod test_klp_callbacks_demo
[ 185.077670] % rmmod test_klp_callbacks_busy
[ 185.106398] test_klp_callbacks_busy: busymod_work_func exit
[ 185.106407] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 185.184323] ===== TEST: multiple livepatches =====
[ 185.187426] % modprobe test_klp_callbacks_demo
[ 185.188999] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 185.189001] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 185.189021] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 185.189022] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 186.067143] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 186.067283] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 186.067284] livepatch: 'test_klp_callbacks_demo': patching complete
[ 186.109240] % modprobe test_klp_callbacks_demo2
[ 186.110881] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 186.110883] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 186.110904] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 186.110906] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 187.107240] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 187.107352] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 187.107353] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 187.129168] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 187.129188] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 187.129208] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 187.129209] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 187.987516] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 187.987618] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 187.987620] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 188.037170] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 188.037188] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 188.037205] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 188.037206] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 189.027062] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 189.027164] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 189.027166] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 189.047265] % rmmod test_klp_callbacks_demo2
[ 189.137664] % rmmod test_klp_callbacks_demo
[ 189.224455] ===== TEST: atomic replace =====
[ 189.227586] % modprobe test_klp_callbacks_demo
[ 189.229201] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 189.229203] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 189.229222] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 189.229224] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 190.067084] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 190.067235] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 190.067237] livepatch: 'test_klp_callbacks_demo': patching complete
[ 190.148887] % modprobe test_klp_callbacks_demo2 replace=1
[ 190.150416] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 190.150419] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 190.150439] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 190.150441] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 191.747107] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 191.747218] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 191.747220] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 191.778578] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 191.778598] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 191.778619] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 191.778621] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 192.947121] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 192.947227] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 192.947229] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 192.989892] % rmmod test_klp_callbacks_demo2
[ 193.057940] % rmmod test_klp_callbacks_demo
[ 193.160197] livepatch: kernel.ftrace_enabled = 1
[ 193.167730] ===== TEST: basic shadow variable API =====
[ 193.170833] % modprobe test_klp_shadow_vars
[ 193.172209] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 193.172211] test_klp_shadow_vars: got expected NULL result
[ 193.172213] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 193.172214] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 193.172217] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 193.172218] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 193.172220] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 193.172221] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 193.172224] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 193.172225] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 193.172227] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 193.172229] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 193.172231] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 193.172232] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 193.172234] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 193.172236] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 193.172237] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 193.172238] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 193.172239] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 193.172240] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 193.172241] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 193.172243] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 193.172244] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 193.172245] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 193.172246] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 193.172247] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 193.172249] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 193.172251] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 193.172252] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 193.172254] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 193.172255] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 193.172257] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 193.172258] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 193.172260] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 193.172261] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 193.172262] test_klp_shadow_vars: got expected NULL result
[ 193.172263] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 193.172265] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 193.172266] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 193.172267] test_klp_shadow_vars: got expected NULL result
[ 193.172268] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 193.172269] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 193.172270] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 193.172271] test_klp_shadow_vars: got expected NULL result
[ 193.172272] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 193.172274] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 193.172275] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 193.172276] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 193.172277] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 193.172278] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 193.172287] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 193.172288] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 193.172289] test_klp_shadow_vars: got expected NULL result
[ 193.172290] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 193.172291] test_klp_shadow_vars: got expected NULL result
[ 193.172292] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 193.172293] test_klp_shadow_vars: got expected NULL result
[ 193.173588] % rmmod test_klp_shadow_vars
[ 193.270211] livepatch: kernel.ftrace_enabled = 1
[ 193.277772] ===== TEST: system state modification =====
[ 193.280982] % modprobe test_klp_state
[ 193.282421] livepatch: enabling patch 'test_klp_state'
[ 193.282422] livepatch: 'test_klp_state': initializing patching transition
[ 193.282443] test_klp_state: pre_patch_callback: vmlinux
[ 193.282444] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 193.282445] livepatch: 'test_klp_state': starting patching transition
[ 194.627016] livepatch: 'test_klp_state': completing patching transition
[ 194.627121] test_klp_state: post_patch_callback: vmlinux
[ 194.627122] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 194.627123] livepatch: 'test_klp_state': patching complete
[ 194.707923] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 194.707943] livepatch: 'test_klp_state': initializing unpatching transition
[ 194.707962] test_klp_state: pre_unpatch_callback: vmlinux
[ 194.707963] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 194.707964] livepatch: 'test_klp_state': starting unpatching transition
[ 195.667037] livepatch: 'test_klp_state': completing unpatching transition
[ 195.667141] test_klp_state: post_unpatch_callback: vmlinux
[ 195.667143] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 195.667144] livepatch: 'test_klp_state': unpatching complete
[ 195.718014] % rmmod test_klp_state
[ 195.794830] ===== TEST: taking over system state modification =====
[ 195.797971] % modprobe test_klp_state
[ 195.799572] livepatch: enabling patch 'test_klp_state'
[ 195.799574] livepatch: 'test_klp_state': initializing patching transition
[ 195.799595] test_klp_state: pre_patch_callback: vmlinux
[ 195.799596] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 195.799598] livepatch: 'test_klp_state': starting patching transition
[ 196.867056] livepatch: 'test_klp_state': completing patching transition
[ 196.867162] test_klp_state: post_patch_callback: vmlinux
[ 196.867164] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 196.867165] livepatch: 'test_klp_state': patching complete
[ 196.922499] % modprobe test_klp_state2
[ 196.924010] livepatch: enabling patch 'test_klp_state2'
[ 196.924012] livepatch: 'test_klp_state2': initializing patching transition
[ 196.924032] test_klp_state2: pre_patch_callback: vmlinux
[ 196.924033] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 196.924034] livepatch: 'test_klp_state2': starting patching transition
[ 198.627070] livepatch: 'test_klp_state2': completing patching transition
[ 198.627227] test_klp_state2: post_patch_callback: vmlinux
[ 198.627229] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 198.627230] livepatch: 'test_klp_state2': patching complete
[ 198.654169] % rmmod test_klp_state
[ 198.696775] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 198.696796] livepatch: 'test_klp_state2': initializing unpatching transition
[ 198.696818] test_klp_state2: pre_unpatch_callback: vmlinux
[ 198.696820] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 198.696821] livepatch: 'test_klp_state2': starting unpatching transition
[ 199.667041] livepatch: 'test_klp_state2': completing unpatching transition
[ 199.667222] test_klp_state2: post_unpatch_callback: vmlinux
[ 199.667223] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 199.667224] livepatch: 'test_klp_state2': unpatching complete
[ 199.706641] % rmmod test_klp_state2
[ 199.794709] ===== TEST: compatible cumulative livepatches =====
[ 199.797951] % modprobe test_klp_state2
[ 199.799497] livepatch: enabling patch 'test_klp_state2'
[ 199.799500] livepatch: 'test_klp_state2': initializing patching transition
[ 199.799521] test_klp_state2: pre_patch_callback: vmlinux
[ 199.799522] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 199.799524] livepatch: 'test_klp_state2': starting patching transition
[ 200.707033] livepatch: 'test_klp_state2': completing patching transition
[ 200.707156] test_klp_state2: post_patch_callback: vmlinux
[ 200.707158] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 200.707159] livepatch: 'test_klp_state2': patching complete
[ 200.719453] % modprobe test_klp_state3
[ 200.721036] livepatch: enabling patch 'test_klp_state3'
[ 200.721040] livepatch: 'test_klp_state3': initializing patching transition
[ 200.721063] test_klp_state3: pre_patch_callback: vmlinux
[ 200.721064] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 200.721065] livepatch: 'test_klp_state3': starting patching transition
[ 201.667030] livepatch: 'test_klp_state3': completing patching transition
[ 201.667132] test_klp_state3: post_patch_callback: vmlinux
[ 201.667134] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 201.667135] livepatch: 'test_klp_state3': patching complete
[ 201.740654] % rmmod test_klp_state2
[ 201.790108] % modprobe test_klp_state2
[ 201.791613] livepatch: enabling patch 'test_klp_state2'
[ 201.791616] livepatch: 'test_klp_state2': initializing patching transition
[ 201.791636] test_klp_state2: pre_patch_callback: vmlinux
[ 201.791637] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 201.791639] livepatch: 'test_klp_state2': starting patching transition
[ 202.947001] livepatch: 'test_klp_state2': completing patching transition
[ 202.947134] test_klp_state2: post_patch_callback: vmlinux
[ 202.947136] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 202.947137] livepatch: 'test_klp_state2': patching complete
[ 203.013457] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 203.013476] livepatch: 'test_klp_state2': initializing unpatching transition
[ 203.013497] test_klp_state2: pre_unpatch_callback: vmlinux
[ 203.013498] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 203.013499] livepatch: 'test_klp_state2': starting unpatching transition
[ 204.627021] livepatch: 'test_klp_state2': completing unpatching transition
[ 204.627127] test_klp_state2: post_unpatch_callback: vmlinux
[ 204.627128] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 204.627130] livepatch: 'test_klp_state2': unpatching complete
[ 204.628240] % rmmod test_klp_state2
[ 204.677492] % rmmod test_klp_state3
[ 204.754498] ===== TEST: incompatible cumulative livepatches =====
[ 204.757803] % modprobe test_klp_state2
[ 204.759469] livepatch: enabling patch 'test_klp_state2'
[ 204.759471] livepatch: 'test_klp_state2': initializing patching transition
[ 204.759509] test_klp_state2: pre_patch_callback: vmlinux
[ 204.759511] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 204.759512] livepatch: 'test_klp_state2': starting patching transition
[ 205.667054] livepatch: 'test_klp_state2': completing patching transition
[ 205.667221] test_klp_state2: post_patch_callback: vmlinux
[ 205.667223] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 205.667224] livepatch: 'test_klp_state2': patching complete
[ 205.676418] % modprobe test_klp_state
[ 205.678021] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 205.796666] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 205.796711] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 205.796727] livepatch: 'test_klp_state2': initializing unpatching transition
[ 205.796748] test_klp_state2: pre_unpatch_callback: vmlinux
[ 205.796749] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 205.796750] livepatch: 'test_klp_state2': starting unpatching transition
[ 206.627024] livepatch: 'test_klp_state2': completing unpatching transition
[ 206.627126] test_klp_state2: post_unpatch_callback: vmlinux
[ 206.627127] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 206.627128] livepatch: 'test_klp_state2': unpatching complete
[ 206.705649] % rmmod test_klp_state2
[ 206.799832] livepatch: kernel.ftrace_enabled = 1
[ 206.807523] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 206.809453] livepatch: kernel.ftrace_enabled = 0
[ 206.809519] % modprobe test_klp_livepatch
[ 206.811132] livepatch: enabling patch 'test_klp_livepatch'
[ 206.811134] livepatch: 'test_klp_livepatch': initializing patching transition
[ 206.811157] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 206.811159] livepatch: failed to patch object 'vmlinux'
[ 206.811160] livepatch: failed to enable patch 'test_klp_livepatch'
[ 206.811161] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 206.811162] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 206.811267] livepatch: 'test_klp_livepatch': unpatching complete
[ 206.946752] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 206.948665] livepatch: kernel.ftrace_enabled = 1
[ 206.951864] % modprobe test_klp_livepatch
[ 206.953500] livepatch: enabling patch 'test_klp_livepatch'
[ 206.953502] livepatch: 'test_klp_livepatch': initializing patching transition
[ 206.954621] livepatch: 'test_klp_livepatch': starting patching transition
[ 208.147074] livepatch: 'test_klp_livepatch': completing patching transition
[ 208.147180] livepatch: 'test_klp_livepatch': patching complete
[ 208.181130] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 208.182202] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 208.182223] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 208.182241] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 209.106989] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 209.108516] livepatch: 'test_klp_livepatch': unpatching complete
[ 209.192468] % rmmod test_klp_livepatch
[ 209.269412] livepatch: kernel.ftrace_enabled = 1
[ 209.277289] ===== TEST: sysfs test =====
[ 209.280562] % modprobe test_klp_livepatch
[ 209.282041] livepatch: enabling patch 'test_klp_livepatch'
[ 209.282043] livepatch: 'test_klp_livepatch': initializing patching transition
[ 209.283130] livepatch: 'test_klp_livepatch': starting patching transition
[ 210.946994] livepatch: 'test_klp_livepatch': completing patching transition
[ 210.947096] livepatch: 'test_klp_livepatch': patching complete
[ 211.020069] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 211.020084] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 211.020103] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 211.906955] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 211.908429] livepatch: 'test_klp_livepatch': unpatching complete
[ 211.928959] % rmmod test_klp_livepatch
[ 212.004690] ===== TEST: sysfs test object/patched =====
[ 212.007954] % modprobe test_klp_callbacks_demo
[ 212.009626] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 212.009628] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 212.009649] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 212.009650] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 213.106985] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 213.107148] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 213.107150] livepatch: 'test_klp_callbacks_demo': patching complete
[ 213.133983] % modprobe test_klp_callbacks_mod
[ 213.135432] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 213.135434] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 213.135436] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 213.135478] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 213.137671] % rmmod test_klp_callbacks_mod
[ 213.138782] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 213.138796] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 213.138798] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 213.138799] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 213.187620] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 213.187639] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 213.187660] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 213.187661] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 214.956966] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 214.957069] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 214.957070] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 215.004034] % rmmod test_klp_callbacks_demo
[ 216.486413] livepatch: kernel.ftrace_enabled = 1
[ 216.494184] ===== TEST: basic function patching =====
[ 216.497478] % modprobe test_klp_livepatch
[ 216.499123] livepatch: enabling patch 'test_klp_livepatch'
[ 216.499125] livepatch: 'test_klp_livepatch': initializing patching transition
[ 216.500232] livepatch: 'test_klp_livepatch': starting patching transition
[ 217.906980] livepatch: 'test_klp_livepatch': completing patching transition
[ 217.907138] livepatch: 'test_klp_livepatch': patching complete
[ 217.927548] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 217.927569] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 217.927590] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 218.947043] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 218.948644] livepatch: 'test_klp_livepatch': unpatching complete
[ 219.038726] % rmmod test_klp_livepatch
[ 219.115033] ===== TEST: multiple livepatches =====
[ 219.118186] % modprobe test_klp_livepatch
[ 219.119788] livepatch: enabling patch 'test_klp_livepatch'
[ 219.119790] livepatch: 'test_klp_livepatch': initializing patching transition
[ 219.120986] livepatch: 'test_klp_livepatch': starting patching transition
[ 220.866989] livepatch: 'test_klp_livepatch': completing patching transition
[ 220.867145] livepatch: 'test_klp_livepatch': patching complete
[ 220.952783] test_klp_livepatch: this has been live patched
[ 220.957044] % modprobe test_klp_atomic_replace replace=0
[ 220.958580] livepatch: enabling patch 'test_klp_atomic_replace'
[ 220.958582] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 220.959660] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 221.826984] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 221.827087] livepatch: 'test_klp_atomic_replace': patching complete
[ 221.877823] test_klp_livepatch: this has been live patched
[ 221.878665] test_klp_atomic_replace: this has been live patched
[ 221.878801] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 221.878822] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 221.878843] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 222.947011] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 222.948465] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 222.989788] % rmmod test_klp_atomic_replace
[ 223.047531] test_klp_livepatch: this has been live patched
[ 223.048613] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 223.048632] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 223.048654] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 223.987012] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 223.988534] livepatch: 'test_klp_livepatch': unpatching complete
[ 224.059000] % rmmod test_klp_livepatch
[ 224.156318] ===== TEST: atomic replace livepatch =====
[ 224.159489] % modprobe test_klp_livepatch
[ 224.160923] livepatch: enabling patch 'test_klp_livepatch'
[ 224.160926] livepatch: 'test_klp_livepatch': initializing patching transition
[ 224.162024] livepatch: 'test_klp_livepatch': starting patching transition
[ 225.666965] livepatch: 'test_klp_livepatch': completing patching transition
[ 225.667118] livepatch: 'test_klp_livepatch': patching complete
[ 225.689716] test_klp_livepatch: this has been live patched
[ 225.693937] % modprobe test_klp_atomic_replace replace=1
[ 225.695517] livepatch: enabling patch 'test_klp_atomic_replace'
[ 225.695519] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 225.696644] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 226.786967] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 226.788286] livepatch: 'test_klp_atomic_replace': patching complete
[ 226.818010] test_klp_atomic_replace: this has been live patched
[ 226.819031] % rmmod test_klp_livepatch
[ 226.878235] test_klp_atomic_replace: this has been live patched
[ 226.878402] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 226.878421] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 226.878443] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 227.907041] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 227.908601] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 227.988889] % rmmod test_klp_atomic_replace
[ 228.081616] livepatch: kernel.ftrace_enabled = 1
[ 228.089746] ===== TEST: target module before livepatch =====
[ 228.093012] % modprobe test_klp_callbacks_mod
[ 228.094389] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 228.097768] % modprobe test_klp_callbacks_demo
[ 228.099261] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 228.099263] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 228.099286] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 228.099287] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 228.099289] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 229.027084] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 229.027196] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 229.027198] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 229.027199] livepatch: 'test_klp_callbacks_demo': patching complete
[ 229.118464] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 229.118483] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 229.118504] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 229.118505] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 229.118506] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 230.866938] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 230.867117] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 230.867118] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 230.867120] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 230.935471] % rmmod test_klp_callbacks_demo
[ 230.997625] % rmmod test_klp_callbacks_mod
[ 230.998771] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 231.064190] ===== TEST: module_coming notifier =====
[ 231.067155] % modprobe test_klp_callbacks_demo
[ 231.068630] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 231.068632] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 231.068652] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 231.068653] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 232.786968] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 232.787122] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 232.787123] livepatch: 'test_klp_callbacks_demo': patching complete
[ 232.800046] % modprobe test_klp_callbacks_mod
[ 232.801418] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 232.801421] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 232.801423] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 232.801465] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 232.801808] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 232.801826] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 232.801848] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 232.801849] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 232.801850] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 233.906995] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 233.907137] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 233.907139] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 233.907140] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 233.912080] % rmmod test_klp_callbacks_demo
[ 233.987482] % rmmod test_klp_callbacks_mod
[ 233.988644] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 234.064216] ===== TEST: module_going notifier =====
[ 234.067491] % modprobe test_klp_callbacks_mod
[ 234.068784] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 234.072123] % modprobe test_klp_callbacks_demo
[ 234.073590] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 234.073592] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 234.073611] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 234.073613] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 234.073614] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 234.866962] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 234.867066] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 234.867068] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 234.867069] livepatch: 'test_klp_callbacks_demo': patching complete
[ 234.889218] % rmmod test_klp_callbacks_mod
[ 234.890290] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 234.890303] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 234.890305] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 234.890307] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 234.936640] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 234.936658] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 234.936677] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 234.936678] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 235.906953] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 235.907059] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 235.907060] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 235.946374] % rmmod test_klp_callbacks_demo
[ 236.044816] ===== TEST: module_coming and module_going notifiers =====
[ 236.047961] % modprobe test_klp_callbacks_demo
[ 236.049483] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 236.049485] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 236.049505] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 236.049506] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 236.947000] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 236.947176] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 236.947178] livepatch: 'test_klp_callbacks_demo': patching complete
[ 236.969682] % modprobe test_klp_callbacks_mod
[ 236.971078] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 236.971080] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 236.971082] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 236.971123] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 236.972339] % rmmod test_klp_callbacks_mod
[ 236.973427] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 236.973439] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 236.973441] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 236.973442] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 237.036714] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 237.036732] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 237.036753] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 237.036754] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 237.906936] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 237.907087] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 237.907088] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 237.945408] % rmmod test_klp_callbacks_demo

[-- Attachment #3: dmesg.txt --]
[-- Type: text/plain, Size: 132587 bytes --]

[ 12.425136] scsi 1:0:0:1084178561: scsi scan: INQUIRY successful with code 0x0
[ 12.425141] scsi 1:0:0:1084178561: scsi scan: INQUIRY pass 2 length 164
[ 12.425154] sd 1:0:0:1084113025: Power-on or device reset occurred
[ 12.425157] sd 1:0:0:1084113025: [sdg] tag#1665 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.425159] sd 1:0:0:1084113025: [sdg] tag#1665 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.425161] sd 1:0:0:1084113025: [sdg] tag#1665 Sense Key : Unit Attention [current]
[ 12.425163] sd 1:0:0:1084113025: [sdg] tag#1665 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.425233] scsi 1:0:0:1084178561: scsi scan: INQUIRY successful with code 0x0
[ 12.425238] scsi 1:0:0:1084178561: Direct-Access IBM 2107900 .102 PQ: 0 ANSI: 6
[ 12.426688] scsi 1:0:0:1084178561: alua: supports implicit TPGS
[ 12.426691] scsi 1:0:0:1084178561: alua: device naa.6005076309ffd435000000000000819f port group 0 rel port 243
[ 12.426934] sd 1:0:0:1084178561: sg_alloc: dev=7
[ 12.427059] sd 1:0:0:1084178561: Attached scsi generic sg7 type 0
[ 12.427341] sd 1:0:0:1084113024: scsi scan: device exists on 1:0:0:1084113024
[ 12.427411] sd 1:0:0:1084178561: Power-on or device reset occurred
[ 12.427414] sd 1:0:0:1084178561: [sdh] tag#897 Done: ADD_TO_MLQUEUE Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.427417] sd 1:0:0:1084178561: [sdh] tag#897 CDB: Test Unit Ready 00 00 00 00 00 00
[ 12.427419] sd 1:0:0:1084178561: [sdh] tag#897 Sense Key : Unit Attention [current]
[ 12.427422] sd 1:0:0:1084178561: [sdh] tag#897 Add. Sense: Power on, reset, or bus device reset occurred
[ 12.427766] sd 1:0:0:1084178560: scsi scan: device exists on 1:0:0:1084178560
[ 12.428386] sd 1:0:0:1084113025: scsi scan: device exists on 1:0:0:1084113025
[ 12.428806] sd 1:0:0:1084178561: scsi scan: device exists on 1:0:0:1084178561
[ 12.440305] sd 1:0:0:1084113025: [sdg] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440309] sd 1:0:0:1084113024: [sde] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440328] sd 1:0:0:1084178561: [sdh] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440365] sd 1:0:0:1084178560: [sdf] 41943040 512-byte logical blocks: (21.5 GB/20.0 GiB)
[ 12.440405] sd 1:0:0:1084113025: [sdg] Write Protect is off
[ 12.440406] sd 1:0:0:1084113025: [sdg] Mode Sense: ed 00 00 08
[ 12.440408] sd 1:0:0:1084113024: [sde] Write Protect is off
[ 12.440410] sd 1:0:0:1084113024: [sde] Mode Sense: ed 00 00 08
[ 12.440426] sd 1:0:0:1084178561: [sdh] Write Protect is off
[ 12.440428] sd 1:0:0:1084178561: [sdh] Mode Sense: ed 00 00 08
[ 12.440451] sd 1:0:0:1084178560: [sdf] Write Protect is off
[ 12.440453] sd 1:0:0:1084178560: [sdf] Mode Sense: ed 00 00 08
[ 12.440613] sd 1:0:0:1084113025: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440615] sd 1:0:0:1084113024: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440625] sd 1:0:0:1084178561: [sdh] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440627] sd 1:0:0:1084178560: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 12.440709] sd 1:0:0:1084113024: [sde] tag#2055 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440712] sd 1:0:0:1084113024: [sde] tag#2055 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440714] sd 1:0:0:1084113024: [sde] tag#2055 Sense Key : Illegal Request [current]
[ 12.440716] sd 1:0:0:1084113024: [sde] tag#2055 Add. Sense: Invalid field in cdb
[ 12.440722] sd 1:0:0:1084178560: [sdf] tag#906 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440724] sd 1:0:0:1084178560: [sdf] tag#906 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440727] sd 1:0:0:1084178560: [sdf] tag#906 Sense Key : Illegal Request [current]
[ 12.440729] sd 1:0:0:1084178560: [sdf] tag#906 Add. Sense: Invalid field in cdb
[ 12.440826] sd 1:0:0:1084113025: [sdg] tag#1677 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440846] sd 1:0:0:1084113025: [sdg] tag#1677 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440849] sd 1:0:0:1084113025: [sdg] tag#1677 Sense Key : Illegal Request [current]
[ 12.440851] sd 1:0:0:1084113025: [sdg] tag#1677 Add. Sense: Invalid field in cdb
[ 12.440855] sd 1:0:0:1084113025: [sdg] Disabling DIF Type 1 protection
[ 12.440857] sd 1:0:0:1084113025: [sdg] Enabling DIF Type 0 protection
[ 12.440861] sd 1:0:0:1084178561: [sdh] tag#325 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.440874] sd 1:0:0:1084178561: [sdh] tag#325 CDB: Report supported operation codes a3 0c 01 12 00 00 00 00 00 0a 00 00
[ 12.440881] sd 1:0:0:1084178561: [sdh] tag#325 Sense Key : Illegal Request [current]
[ 12.440882] sd 1:0:0:1084178561: [sdh] tag#325 Add. Sense: Invalid field in cdb
[ 12.440886] sd 1:0:0:1084178561: [sdh] Disabling DIF Type 1 protection
[ 12.440888] sd 1:0:0:1084178561: [sdh] Enabling DIF Type 0 protection
[ 12.443759] sd 1:0:0:1084113024: [sde] tag#1679 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443780] sd 1:0:0:1084113024: [sde] tag#1679 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443782] sd 1:0:0:1084113024: [sde] tag#1679 Sense Key : Illegal Request [current]
[ 12.443785] sd 1:0:0:1084113024: [sde] tag#1679 Add. Sense: Invalid field in cdb
[ 12.443797] sd 1:0:0:1084178560: [sdf] tag#327 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443800] sd 1:0:0:1084178560: [sdf] tag#327 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443802] sd 1:0:0:1084178560: [sdf] tag#327 Sense Key : Illegal Request [current]
[ 12.443805] sd 1:0:0:1084178560: [sdf] tag#327 Add. Sense: Invalid field in cdb
[ 12.443902] sd 1:0:0:1084113025: [sdg] tag#1682 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443905] sd 1:0:0:1084113025: [sdg] tag#1682 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443908] sd 1:0:0:1084113025: [sdg] tag#1682 Sense Key : Illegal Request [current]
[ 12.443910] sd 1:0:0:1084113025: [sdg] tag#1682 Add. Sense: Invalid field in cdb
[ 12.443912] sd 1:0:0:1084178561: [sdh] tag#2057 Done: SUCCESS Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 12.443917] sd 1:0:0:1084178561: [sdh] tag#2057 CDB: Inquiry 12 01 b9 00 04 00
[ 12.443919] sd 1:0:0:1084178561: [sdh] tag#2057 Sense Key : Illegal Request [current]
[ 12.443921] sd 1:0:0:1084178561: [sdh] tag#2057 Add. Sense: Invalid field in cdb
[ 12.444277] sd 1:0:0:1084178560: [sdf] Attached SCSI disk
[ 12.444413] sd 1:0:0:1084113025: [sdg] Attached SCSI disk
[ 12.444437] sd 1:0:0:1084178561: [sdh] Attached SCSI disk
[ 12.445055] sde: sde1
[ 12.445135] sd 1:0:0:1084113024: [sde] Attached SCSI disk
[ 12.455157] mlx5_core 0001:00:00.0 ens8192f0np0: Link up
[ 12.754503] mlx5_core 0000:00:00.0 ens8320f0np0: Link up
[ 12.870161] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.871810] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.873288] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.879490] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.881609] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 12.883524] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 13.129973] systemd-journald[943]: Compressed data object 621 -> 266 using ZSTD
[ 13.130596] systemd-journald[943]: Compressed data object 621 -> 274 using ZSTD
[ 14.130283] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 52.526889] crw_info : CRW reports slct=0, oflw=0, chn=0, rsc=B, anc=0, erc=0, rsid=0
[ 64.832872] systemd-journald[943]: Compressed data object 533 -> 400 using ZSTD
[ 64.919285] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 64.928008] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 65.045916] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 65.046557] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 65.206974] systemd-journald[943]: Successfully sent stream file descriptor to service manager.
[ 84.040569] livepatch: kernel.ftrace_enabled = 1
[ 84.047983] ===== TEST: basic function patching =====
[ 84.052146] % modprobe test_klp_livepatch
[ 84.054139] test_klp_livepatch: tainting kernel with TAINT_LIVEPATCH
[ 84.054277] livepatch: enabling patch 'test_klp_livepatch'
[ 84.054279] livepatch: 'test_klp_livepatch': initializing patching transition
[ 84.055514] livepatch: 'test_klp_livepatch': starting patching transition
[ 84.867407] livepatch: 'test_klp_livepatch': completing patching transition
[ 84.867542] livepatch: 'test_klp_livepatch': patching complete
[ 84.872840] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 84.872891] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 84.872925] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 85.987407] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 85.989034] livepatch: 'test_klp_livepatch': unpatching complete
[ 86.084797] % rmmod test_klp_livepatch
[ 86.153886] ===== TEST: multiple livepatches =====
[ 86.157188] % modprobe test_klp_livepatch
[ 86.158657] livepatch: enabling patch 'test_klp_livepatch'
[ 86.158659] livepatch: 'test_klp_livepatch': initializing patching transition
[ 86.159793] livepatch: 'test_klp_livepatch': starting patching transition
[ 87.027437] livepatch: 'test_klp_livepatch': completing patching transition
[ 87.027546] livepatch: 'test_klp_livepatch': patching complete
[ 87.078385] test_klp_livepatch: this has been live patched
[ 87.083290] % modprobe test_klp_atomic_replace replace=0
[ 87.085500] livepatch: enabling patch 'test_klp_atomic_replace'
[ 87.085502] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 87.086685] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 87.907412] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 87.907555] livepatch: 'test_klp_atomic_replace': patching complete
[ 88.004547] test_klp_livepatch: this has been live patched
[ 88.005509] test_klp_atomic_replace: this has been live patched
[ 88.005634] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 88.005721] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 88.005740] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 88.947422] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 88.948800] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 89.016537] % rmmod test_klp_atomic_replace
[ 89.097952] test_klp_livepatch: this has been live patched
[ 89.099036] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 89.099056] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 89.099079] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 89.907443] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 89.908927] livepatch: 'test_klp_livepatch': unpatching complete
[ 90.008993] % rmmod test_klp_livepatch
[ 90.075281] ===== TEST: atomic replace livepatch =====
[ 90.078563] % modprobe test_klp_livepatch
[ 90.080025] livepatch: enabling patch 'test_klp_livepatch'
[ 90.080027] livepatch: 'test_klp_livepatch': initializing patching transition
[ 90.081063] livepatch: 'test_klp_livepatch': starting patching transition
[ 91.667362] livepatch: 'test_klp_livepatch': completing patching transition
[ 91.667466] livepatch: 'test_klp_livepatch': patching complete
[ 91.711116] test_klp_livepatch: this has been live patched
[ 91.715609] % modprobe test_klp_atomic_replace replace=1
[ 91.717349] livepatch: enabling patch 'test_klp_atomic_replace'
[ 91.717350] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 91.718440] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 93.027449] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 93.028821] livepatch: 'test_klp_atomic_replace': patching complete
[ 93.044211] test_klp_atomic_replace: this has been live patched
[ 93.045414] % rmmod test_klp_livepatch
[ 93.138826] test_klp_atomic_replace: this has been live patched
[ 93.138945] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 93.139013] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 93.139039] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 93.987388] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 93.988892] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 94.048696] % rmmod test_klp_atomic_replace
[ 94.131346] livepatch: kernel.ftrace_enabled = 1
[ 94.138074] ===== TEST: target module before livepatch =====
[ 94.141712] % modprobe test_klp_callbacks_mod
[ 94.143390] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 94.147450] % modprobe test_klp_callbacks_demo
[ 94.149518] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 94.149520] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 94.149584] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 94.149585] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 94.149586] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 95.827310] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 95.827414] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 95.827416] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 95.827417] livepatch: 'test_klp_callbacks_demo': patching complete
[ 95.880751] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 95.880770] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 95.880792] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 95.880793] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 95.880795] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 96.947362] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 96.947467] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 96.947468] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 96.947470] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 96.991491] % rmmod test_klp_callbacks_demo
[ 97.047939] % rmmod test_klp_callbacks_mod
[ 97.049129] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 97.123448] ===== TEST: module_coming notifier =====
[ 97.126706] % modprobe test_klp_callbacks_demo
[ 97.128201] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 97.128202] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 97.128221] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 97.128222] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 97.907366] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 97.907523] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 97.907524] livepatch: 'test_klp_callbacks_demo': patching complete
[ 97.947504] % modprobe test_klp_callbacks_mod
[ 97.948836] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 97.948839] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 97.948841] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 97.948883] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 97.949244] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 97.949263] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 97.949283] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 97.949284] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 97.949285] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 99.117355] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 99.117458] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 99.117460] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 99.117461] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 99.160962] % rmmod test_klp_callbacks_demo
[ 99.207962] % rmmod test_klp_callbacks_mod
[ 99.209122] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 99.283107] ===== TEST: module_going notifier =====
[ 99.286635] % modprobe test_klp_callbacks_mod
[ 99.288047] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 99.291742] % modprobe test_klp_callbacks_demo
[ 99.293440] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 99.293441] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 99.293462] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 99.293463] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 99.293465] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 101.027350] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 101.027455] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 101.027456] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 101.027458] livepatch: 'test_klp_callbacks_demo': patching complete
[ 101.126745] % rmmod test_klp_callbacks_mod
[ 101.127848] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 101.127863] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 101.127865] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 101.127866] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 101.187049] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 101.187066] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 101.187085] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 101.187086] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 102.067340] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 102.067461] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 102.067463] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 102.096546] % rmmod test_klp_callbacks_demo
[ 102.183243] ===== TEST: module_coming and module_going notifiers =====
[ 102.186391] % modprobe test_klp_callbacks_demo
[ 102.187856] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 102.187858] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 102.187879] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 102.187881] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 103.827367] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 103.827510] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 103.827511] livepatch: 'test_klp_callbacks_demo': patching complete
[ 103.920248] % modprobe test_klp_callbacks_mod
[ 103.921535] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 103.921537] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 103.921539] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 103.921581] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 103.922691] % rmmod test_klp_callbacks_mod
[ 103.923756] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 103.923786] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 103.923788] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 103.923789] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 103.987019] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 103.987036] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 103.987057] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 103.987058] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 105.027318] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 105.027425] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 105.027426] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 105.096960] % rmmod test_klp_callbacks_demo
[ 105.193366] ===== TEST: target module not present =====
[ 105.196426] % modprobe test_klp_callbacks_demo
[ 105.197920] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 105.197923] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 105.197944] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 105.197945] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 106.957298] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 106.957421] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 106.957422] livepatch: 'test_klp_callbacks_demo': patching complete
[ 107.027668] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 107.027687] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 107.027708] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 107.027709] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 108.067334] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 108.067440] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 108.067441] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 108.137719] % rmmod test_klp_callbacks_demo
[ 108.213123] ===== TEST: pre-patch callback -ENODEV =====
[ 108.216268] % modprobe test_klp_callbacks_mod
[ 108.217645] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 108.218019] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 108.219501] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 108.219503] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 108.219523] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 108.219524] livepatch: pre-patch callback failed for object 'vmlinux'
[ 108.219524] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 108.219526] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 108.219527] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 108.219633] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 108.366951] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 108.367826] % rmmod test_klp_callbacks_mod
[ 108.368966] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 108.463160] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 108.466160] % modprobe test_klp_callbacks_demo
[ 108.467614] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 108.467616] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 108.467638] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 108.467639] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 109.667362] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 109.667472] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 109.667473] livepatch: 'test_klp_callbacks_demo': patching complete
[ 109.689019] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 109.689979] % modprobe test_klp_callbacks_mod
[ 109.691291] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 109.691294] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 109.691296] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 109.691297] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 109.837006] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 109.837051] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 109.837066] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 109.837088] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 109.837089] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 111.027394] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 111.027554] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 111.027555] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 111.048716] % rmmod test_klp_callbacks_demo
[ 111.124777] ===== TEST: multiple target modules =====
[ 111.128696] % modprobe test_klp_callbacks_busy block_transition=N
[ 111.130780] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 111.130784] test_klp_callbacks_busy: busymod_work_func enter
[ 111.130786] test_klp_callbacks_busy: busymod_work_func exit
[ 111.134478] % modprobe test_klp_callbacks_demo
[ 111.135984] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 111.135986] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 111.136005] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 111.136006] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 111.137437] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 111.987405] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 111.987513] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 111.987515] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 111.987516] livepatch: 'test_klp_callbacks_demo': patching complete
[ 112.058064] % modprobe test_klp_callbacks_mod
[ 112.059514] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 112.059516] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 112.059518] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 112.059560] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 112.060788] % rmmod test_klp_callbacks_mod
[ 112.061910] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 112.061925] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 112.061927] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 112.061928] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 112.137104] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 112.137122] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 112.137143] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 112.137144] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 112.137146] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 113.027375] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 113.029229] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 113.029230] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 113.029232] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 113.046037] % rmmod test_klp_callbacks_demo
[ 113.117945] % rmmod test_klp_callbacks_busy
[ 113.119077] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 113.184611] ===== TEST: busy target module =====
[ 113.187764] % modprobe test_klp_callbacks_busy block_transition=Y
[ 113.189352] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 113.189356] test_klp_callbacks_busy: busymod_work_func enter
[ 113.192845] % modprobe test_klp_callbacks_demo
[ 113.194361] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 113.194363] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 113.194384] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 113.194385] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 113.195818] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 113.201297] % modprobe test_klp_callbacks_mod
[ 113.202625] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 113.202627] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 113.202719] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 113.203890] % rmmod test_klp_callbacks_mod
[ 113.204951] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 113.204963] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 113.204964] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 113.267080] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 113.267098] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 113.267246] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 115.907346] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 115.909130] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 115.909132] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 115.909133] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 115.989675] % rmmod test_klp_callbacks_demo
[ 116.047878] % rmmod test_klp_callbacks_busy
[ 116.066667] test_klp_callbacks_busy: busymod_work_func exit
[ 116.066674] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 116.194426] ===== TEST: multiple livepatches =====
[ 116.197597] % modprobe test_klp_callbacks_demo
[ 116.199116] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 116.199118] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 116.199139] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 116.199140] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 117.667375] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 117.667525] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 117.667527] livepatch: 'test_klp_callbacks_demo': patching complete
[ 117.729276] % modprobe test_klp_callbacks_demo2
[ 117.731386] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 117.731388] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 117.731409] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 117.731410] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 118.707443] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 118.707552] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 118.707553] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 118.749944] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 118.749964] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 118.749986] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 118.749987] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 119.907371] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 119.907541] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 119.907543] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 119.960612] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 119.960630] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 119.960649] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 119.960650] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 120.867332] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 120.867435] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 120.867436] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 120.869780] % rmmod test_klp_callbacks_demo2
[ 120.917849] % rmmod test_klp_callbacks_demo
[ 120.984589] ===== TEST: atomic replace =====
[ 120.987657] % modprobe test_klp_callbacks_demo
[ 120.989209] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 120.989211] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 120.989232] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 120.989233] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 121.907296] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 121.907399] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 121.907401] livepatch: 'test_klp_callbacks_demo': patching complete
[ 122.010261] % modprobe test_klp_callbacks_demo2 replace=1
[ 122.011745] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 122.011747] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 122.011767] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 122.011768] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 122.947337] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 122.947446] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 122.947448] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 123.030617] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 123.030637] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 123.030658] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 123.030659] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 123.907269] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 123.907424] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 123.907426] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 123.939784] % rmmod test_klp_callbacks_demo2
[ 123.987825] % rmmod test_klp_callbacks_demo
[ 124.090148] livepatch: kernel.ftrace_enabled = 1
[ 124.097727] ===== TEST: basic shadow variable API =====
[ 124.101462] % modprobe test_klp_shadow_vars
[ 124.103146] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 124.103148] test_klp_shadow_vars: got expected NULL result
[ 124.103150] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 124.103151] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 124.103155] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 124.103156] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 124.103158] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 124.103160] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 124.103162] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 124.103163] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 124.103165] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 124.103167] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 124.103169] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 124.103170] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 124.103173] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 124.103174] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 124.103175] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 124.103176] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 124.103177] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 124.103179] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 124.103180] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 124.103181] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 124.103182] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 124.103184] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 124.103185] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 124.103186] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 124.103187] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 124.103189] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 124.103191] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 124.103193] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 124.103194] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 124.103196] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 124.103197] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 124.103199] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 124.103200] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 124.103201] test_klp_shadow_vars: got expected NULL result
[ 124.103202] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 124.103204] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 124.103205] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 124.103206] test_klp_shadow_vars: got expected NULL result
[ 124.103207] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 124.103208] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 124.103209] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 124.103211] test_klp_shadow_vars: got expected NULL result
[ 124.103212] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 124.103213] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 124.103214] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 124.103215] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 124.103216] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 124.103218] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 124.103231] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 124.103232] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 124.103233] test_klp_shadow_vars: got expected NULL result
[ 124.103234] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 124.103235] test_klp_shadow_vars: got expected NULL result
[ 124.103236] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 124.103238] test_klp_shadow_vars: got expected NULL result
[ 124.104546] % rmmod test_klp_shadow_vars
[ 124.201338] livepatch: kernel.ftrace_enabled = 1
[ 124.208997] ===== TEST: system state modification =====
[ 124.212733] % modprobe test_klp_state
[ 124.214788] livepatch: enabling patch 'test_klp_state'
[ 124.214790] livepatch: 'test_klp_state': initializing patching transition
[ 124.214811] test_klp_state: pre_patch_callback: vmlinux
[ 124.214812] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 124.214814] livepatch: 'test_klp_state': starting patching transition
[ 125.107324] livepatch: 'test_klp_state': completing patching transition
[ 125.107502] test_klp_state: post_patch_callback: vmlinux
[ 125.107504] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 125.107505] livepatch: 'test_klp_state': patching complete
[ 125.132083] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 125.132120] livepatch: 'test_klp_state': initializing unpatching transition
[ 125.132141] test_klp_state: pre_unpatch_callback: vmlinux
[ 125.132142] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 125.132143] livepatch: 'test_klp_state': starting unpatching transition
[ 125.987299] livepatch: 'test_klp_state': completing unpatching transition
[ 125.987400] test_klp_state: post_unpatch_callback: vmlinux
[ 125.987401] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 125.987402] livepatch: 'test_klp_state': unpatching complete
[ 126.040767] % rmmod test_klp_state
[ 126.104509] ===== TEST: taking over system state modification =====
[ 126.107689] % modprobe test_klp_state
[ 126.109150] livepatch: enabling patch 'test_klp_state'
[ 126.109152] livepatch: 'test_klp_state': initializing patching transition
[ 126.109173] test_klp_state: pre_patch_callback: vmlinux
[ 126.109174] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 126.109176] livepatch: 'test_klp_state': starting patching transition
[ 127.107325] livepatch: 'test_klp_state': completing patching transition
[ 127.107431] test_klp_state: post_patch_callback: vmlinux
[ 127.107432] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 127.107433] livepatch: 'test_klp_state': patching complete
[ 127.131647] % modprobe test_klp_state2
[ 127.133754] livepatch: enabling patch 'test_klp_state2'
[ 127.133756] livepatch: 'test_klp_state2': initializing patching transition
[ 127.133777] test_klp_state2: pre_patch_callback: vmlinux
[ 127.133778] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 127.133779] livepatch: 'test_klp_state2': starting patching transition
[ 127.987333] livepatch: 'test_klp_state2': completing patching transition
[ 127.987456] test_klp_state2: post_patch_callback: vmlinux
[ 127.987457] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 127.987458] livepatch: 'test_klp_state2': patching complete
[ 128.051214] % rmmod test_klp_state
[ 128.117089] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 128.117108] livepatch: 'test_klp_state2': initializing unpatching transition
[ 128.117128] test_klp_state2: pre_unpatch_callback: vmlinux
[ 128.117129] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 128.117131] livepatch: 'test_klp_state2': starting unpatching transition
[ 129.027341] livepatch: 'test_klp_state2': completing unpatching transition
[ 129.027447] test_klp_state2: post_unpatch_callback: vmlinux
[ 129.027449] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 129.027451] livepatch: 'test_klp_state2': unpatching complete
[ 129.127118] % rmmod test_klp_state2
[ 129.194469] ===== TEST: compatible cumulative livepatches =====
[ 129.197663] % modprobe test_klp_state2
[ 129.199144] livepatch: enabling patch 'test_klp_state2'
[ 129.199146] livepatch: 'test_klp_state2': initializing patching transition
[ 129.199166] test_klp_state2: pre_patch_callback: vmlinux
[ 129.199167] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 129.199168] livepatch: 'test_klp_state2': starting patching transition
[ 130.707290] livepatch: 'test_klp_state2': completing patching transition
[ 130.707484] test_klp_state2: post_patch_callback: vmlinux
[ 130.707485] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 130.707486] livepatch: 'test_klp_state2': patching complete
[ 130.728829] % modprobe test_klp_state3
[ 130.730860] livepatch: enabling patch 'test_klp_state3'
[ 130.730863] livepatch: 'test_klp_state3': initializing patching transition
[ 130.730883] test_klp_state3: pre_patch_callback: vmlinux
[ 130.730884] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 130.730886] livepatch: 'test_klp_state3': starting patching transition
[ 131.747404] livepatch: 'test_klp_state3': completing patching transition
[ 131.747514] test_klp_state3: post_patch_callback: vmlinux
[ 131.747516] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 131.747517] livepatch: 'test_klp_state3': patching complete
[ 131.751280] % rmmod test_klp_state2
[ 131.830254] % modprobe test_klp_state2
[ 131.831912] livepatch: enabling patch 'test_klp_state2'
[ 131.831914] livepatch: 'test_klp_state2': initializing patching transition
[ 131.831932] test_klp_state2: pre_patch_callback: vmlinux
[ 131.831933] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 131.831934] livepatch: 'test_klp_state2': starting patching transition
[ 132.787297] livepatch: 'test_klp_state2': completing patching transition
[ 132.787417] test_klp_state2: post_patch_callback: vmlinux
[ 132.787418] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 132.787420] livepatch: 'test_klp_state2': patching complete
[ 132.849950] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 132.850015] livepatch: 'test_klp_state2': initializing unpatching transition
[ 132.850036] test_klp_state2: pre_unpatch_callback: vmlinux
[ 132.850037] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 132.850038] livepatch: 'test_klp_state2': starting unpatching transition
[ 133.907269] livepatch: 'test_klp_state2': completing unpatching transition
[ 133.907403] test_klp_state2: post_unpatch_callback: vmlinux
[ 133.907405] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 133.907406] livepatch: 'test_klp_state2': unpatching complete
[ 133.960649] % rmmod test_klp_state2
[ 134.007856] % rmmod test_klp_state3
[ 134.074550] ===== TEST: incompatible cumulative livepatches =====
[ 134.077882] % modprobe test_klp_state2
[ 134.079476] livepatch: enabling patch 'test_klp_state2'
[ 134.079478] livepatch: 'test_klp_state2': initializing patching transition
[ 134.079498] test_klp_state2: pre_patch_callback: vmlinux
[ 134.079499] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 134.079501] livepatch: 'test_klp_state2': starting patching transition
[ 135.587306] livepatch: 'test_klp_state2': completing patching transition
[ 135.587415] test_klp_state2: post_patch_callback: vmlinux
[ 135.587417] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 135.587418] livepatch: 'test_klp_state2': patching complete
[ 135.606549] % modprobe test_klp_state
[ 135.608261] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 135.736937] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 135.736975] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 135.736992] livepatch: 'test_klp_state2': initializing unpatching transition
[ 135.737013] test_klp_state2: pre_unpatch_callback: vmlinux
[ 135.737014] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 135.737015] livepatch: 'test_klp_state2': starting unpatching transition
[ 136.947325] livepatch: 'test_klp_state2': completing unpatching transition
[ 136.947481] test_klp_state2: post_unpatch_callback: vmlinux
[ 136.947482] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 136.947483] livepatch: 'test_klp_state2': unpatching complete
[ 136.948539] % rmmod test_klp_state2
[ 137.041414] livepatch: kernel.ftrace_enabled = 1
[ 137.049296] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 137.051220] livepatch: kernel.ftrace_enabled = 0
[ 137.051281] % modprobe test_klp_livepatch
[ 137.052860] livepatch: enabling patch 'test_klp_livepatch'
[ 137.052862] livepatch: 'test_klp_livepatch': initializing patching transition
[ 137.052885] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 137.052887] livepatch: failed to patch object 'vmlinux'
[ 137.052888] livepatch: failed to enable patch 'test_klp_livepatch'
[ 137.052889] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 137.052890] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 137.052996] livepatch: 'test_klp_livepatch': unpatching complete
[ 137.176943] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 137.178976] livepatch: kernel.ftrace_enabled = 1
[ 137.182231] % modprobe test_klp_livepatch
[ 137.183760] livepatch: enabling patch 'test_klp_livepatch'
[ 137.183762] livepatch: 'test_klp_livepatch': initializing patching transition
[ 137.184843] livepatch: 'test_klp_livepatch': starting patching transition
[ 138.067403] livepatch: 'test_klp_livepatch': completing patching transition
[ 138.067507] livepatch: 'test_klp_livepatch': patching complete
[ 138.105610] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 138.106627] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 138.106648] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 138.106672] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 139.107365] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 139.108879] livepatch: 'test_klp_livepatch': unpatching complete
[ 139.116355] % rmmod test_klp_livepatch
[ 139.200586] livepatch: kernel.ftrace_enabled = 1
[ 139.208530] ===== TEST: sysfs test =====
[ 139.211756] % modprobe test_klp_livepatch
[ 139.213178] livepatch: enabling patch 'test_klp_livepatch'
[ 139.213180] livepatch: 'test_klp_livepatch': initializing patching transition
[ 139.214331] livepatch: 'test_klp_livepatch': starting patching transition
[ 140.867306] livepatch: 'test_klp_livepatch': completing patching transition
[ 140.867409] livepatch: 'test_klp_livepatch': patching complete
[ 140.953991] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 140.954006] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 140.954028] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 141.997333] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 141.998940] livepatch: 'test_klp_livepatch': unpatching complete
[ 142.064873] % rmmod test_klp_livepatch
[ 142.144542] ===== TEST: sysfs test object/patched =====
[ 142.147844] % modprobe test_klp_callbacks_demo
[ 142.149314] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 142.149316] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 142.149336] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 142.149337] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 143.027295] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 143.027399] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 143.027400] livepatch: 'test_klp_callbacks_demo': patching complete
[ 143.071068] % modprobe test_klp_callbacks_mod
[ 143.072452] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 143.072454] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.072456] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.072497] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 143.074775] % rmmod test_klp_callbacks_mod
[ 143.076064] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 143.076077] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.076079] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 143.076081] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.137979] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 143.138015] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 143.138036] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 143.138038] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 144.147343] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 144.147528] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 144.147530] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 144.249115] % rmmod test_klp_callbacks_demo
[ 149.652836] livepatch: kernel.ftrace_enabled = 1
[ 149.660651] ===== TEST: basic function patching =====
[ 149.663714] % modprobe test_klp_livepatch
[ 149.665324] livepatch: enabling patch 'test_klp_livepatch'
[ 149.665326] livepatch: 'test_klp_livepatch': initializing patching transition
[ 149.666432] livepatch: 'test_klp_livepatch': starting patching transition
[ 151.027254] livepatch: 'test_klp_livepatch': completing patching transition
[ 151.027390] livepatch: 'test_klp_livepatch': patching complete
[ 151.092898] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 151.092917] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 151.092934] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 152.067265] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 152.068794] livepatch: 'test_klp_livepatch': unpatching complete
[ 152.102901] % rmmod test_klp_livepatch
[ 152.175346] ===== TEST: multiple livepatches =====
[ 152.178402] % modprobe test_klp_livepatch
[ 152.179854] livepatch: enabling patch 'test_klp_livepatch'
[ 152.179857] livepatch: 'test_klp_livepatch': initializing patching transition
[ 152.181052] livepatch: 'test_klp_livepatch': starting patching transition
[ 153.587227] livepatch: 'test_klp_livepatch': completing patching transition
[ 153.587346] livepatch: 'test_klp_livepatch': patching complete
[ 153.605914] test_klp_livepatch: this has been live patched
[ 153.610106] % modprobe test_klp_atomic_replace replace=0
[ 153.611743] livepatch: enabling patch 'test_klp_atomic_replace'
[ 153.611746] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 153.612988] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 154.867269] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 154.867427] livepatch: 'test_klp_atomic_replace': patching complete
[ 154.936390] test_klp_livepatch: this has been live patched
[ 154.937249] test_klp_atomic_replace: this has been live patched
[ 154.937424] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 154.937443] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 154.937463] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 156.067196] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 156.068608] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 156.148189] % rmmod test_klp_atomic_replace
[ 156.197593] test_klp_livepatch: this has been live patched
[ 156.198534] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 156.198551] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 156.198569] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 157.027245] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 157.028678] livepatch: 'test_klp_livepatch': unpatching complete
[ 157.107307] % rmmod test_klp_livepatch
[ 157.196290] ===== TEST: atomic replace livepatch =====
[ 157.199586] % modprobe test_klp_livepatch
[ 157.201016] livepatch: enabling patch 'test_klp_livepatch'
[ 157.201018] livepatch: 'test_klp_livepatch': initializing patching transition
[ 157.202113] livepatch: 'test_klp_livepatch': starting patching transition
[ 159.027189] livepatch: 'test_klp_livepatch': completing patching transition
[ 159.027295] livepatch: 'test_klp_livepatch': patching complete
[ 159.033053] test_klp_livepatch: this has been live patched
[ 159.037594] % modprobe test_klp_atomic_replace replace=1
[ 159.039272] livepatch: enabling patch 'test_klp_atomic_replace'
[ 159.039274] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 159.040394] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 160.627247] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 160.628733] livepatch: 'test_klp_atomic_replace': patching complete
[ 160.669276] test_klp_atomic_replace: this has been live patched
[ 160.670250] % rmmod test_klp_livepatch
[ 160.728472] test_klp_atomic_replace: this has been live patched
[ 160.728578] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 160.728647] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 160.728675] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 162.067222] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 162.068711] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 162.140945] % rmmod test_klp_atomic_replace
[ 162.231887] livepatch: kernel.ftrace_enabled = 1
[ 162.239588] ===== TEST: target module before livepatch =====
[ 162.242938] % modprobe test_klp_callbacks_mod
[ 162.244287] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 162.247833] % modprobe test_klp_callbacks_demo
[ 162.249367] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 162.249369] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 162.249388] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 162.249389] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 162.249406] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 163.747295] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 163.747452] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 163.747454] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 163.747456] livepatch: 'test_klp_callbacks_demo': patching complete
[ 163.776543] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 163.776563] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 163.776586] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 163.776587] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 163.776589] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 165.027266] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 165.027372] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 165.027374] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 165.027375] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 165.088636] % rmmod test_klp_callbacks_demo
[ 165.147720] % rmmod test_klp_callbacks_mod
[ 165.148920] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 165.243998] ===== TEST: module_coming notifier =====
[ 165.247169] % modprobe test_klp_callbacks_demo
[ 165.248711] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 165.248713] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 165.248734] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 165.248735] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 166.707205] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 166.707378] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 166.707380] livepatch: 'test_klp_callbacks_demo': patching complete
[ 166.778763] % modprobe test_klp_callbacks_mod
[ 166.780198] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 166.780201] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 166.780203] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 166.780245] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 166.780610] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 166.780628] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 166.780649] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 166.780650] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 166.780652] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 168.067171] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 168.067288] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 168.067289] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 168.067291] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 168.092769] % rmmod test_klp_callbacks_demo
[ 168.137636] % rmmod test_klp_callbacks_mod
[ 168.138733] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 168.214554] ===== TEST: module_going notifier =====
[ 168.217657] % modprobe test_klp_callbacks_mod
[ 168.219088] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 168.222668] % modprobe test_klp_callbacks_demo
[ 168.224189] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 168.224190] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 168.224209] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 168.224210] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 168.224211] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 169.027192] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 169.027294] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 169.027296] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 169.027297] livepatch: 'test_klp_callbacks_demo': patching complete
[ 169.039955] % rmmod test_klp_callbacks_mod
[ 169.041211] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 169.041225] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 169.041227] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 169.041229] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 169.096825] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 169.096842] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 169.096860] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 169.096861] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 170.067135] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 170.067237] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 170.067239] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 170.106247] % rmmod test_klp_callbacks_demo
[ 170.184203] ===== TEST: module_coming and module_going notifiers =====
[ 170.187291] % modprobe test_klp_callbacks_demo
[ 170.188838] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 170.188840] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 170.188861] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 170.188862] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 171.837198] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 171.837326] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 171.837328] livepatch: 'test_klp_callbacks_demo': patching complete
[ 171.921732] % modprobe test_klp_callbacks_mod
[ 171.923091] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 171.923094] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 171.923096] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 171.923138] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 171.924441] % rmmod test_klp_callbacks_mod
[ 171.925535] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 171.925548] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 171.925550] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 171.925551] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 171.966871] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 171.966889] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 171.966909] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 171.966910] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 173.027199] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 173.027354] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 173.027355] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 173.076841] % rmmod test_klp_callbacks_demo
[ 173.144067] ===== TEST: target module not present =====
[ 173.147097] % modprobe test_klp_callbacks_demo
[ 173.148676] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 173.148678] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 173.148717] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 173.148719] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 174.627151] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 174.627256] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 174.627257] livepatch: 'test_klp_callbacks_demo': patching complete
[ 174.675094] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 174.675112] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 174.675133] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 174.675134] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 176.067150] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 176.067252] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 176.067253] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 176.088083] % rmmod test_klp_callbacks_demo
[ 176.194636] ===== TEST: pre-patch callback -ENODEV =====
[ 176.197807] % modprobe test_klp_callbacks_mod
[ 176.199160] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 176.199520] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 176.201031] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 176.201033] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 176.201061] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 176.201062] livepatch: pre-patch callback failed for object 'vmlinux'
[ 176.201063] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 176.201064] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 176.201079] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 176.201187] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 176.346872] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 176.347900] % rmmod test_klp_callbacks_mod
[ 176.349044] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 176.424402] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 176.427567] % modprobe test_klp_callbacks_demo
[ 176.429103] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 176.429105] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 176.429125] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 176.429126] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 177.667156] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 177.667260] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 177.667261] livepatch: 'test_klp_callbacks_demo': patching complete
[ 177.753119] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 177.754056] % modprobe test_klp_callbacks_mod
[ 177.755378] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 177.755381] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 177.755383] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 177.755385] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 177.846782] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 177.846853] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 177.846869] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 177.846891] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 177.846892] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 179.027108] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 179.027212] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 179.027214] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 179.058400] % rmmod test_klp_callbacks_demo
[ 179.124598] ===== TEST: multiple target modules =====
[ 179.127765] % modprobe test_klp_callbacks_busy block_transition=N
[ 179.129305] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 179.129311] test_klp_callbacks_busy: busymod_work_func enter
[ 179.129313] test_klp_callbacks_busy: busymod_work_func exit
[ 179.132729] % modprobe test_klp_callbacks_demo
[ 179.134243] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 179.134247] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 179.134267] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 179.134268] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 179.135680] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 180.947100] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 180.947201] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 180.947203] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 180.947204] livepatch: 'test_klp_callbacks_demo': patching complete
[ 180.970719] % modprobe test_klp_callbacks_mod
[ 180.972226] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 180.972228] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 180.972230] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 180.972273] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 180.973615] % rmmod test_klp_callbacks_mod
[ 180.974736] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 180.974748] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 180.974750] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 180.974751] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 181.046824] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 181.046842] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 181.046860] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 181.046861] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 181.046863] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 181.907102] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 181.908849] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 181.908851] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 181.908853] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 181.955928] % rmmod test_klp_callbacks_demo
[ 182.057660] % rmmod test_klp_callbacks_busy
[ 182.058777] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 182.134704] ===== TEST: busy target module =====
[ 182.137780] % modprobe test_klp_callbacks_busy block_transition=Y
[ 182.139259] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 182.139263] test_klp_callbacks_busy: busymod_work_func enter
[ 182.142889] % modprobe test_klp_callbacks_demo
[ 182.144362] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 182.144364] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 182.144382] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 182.144383] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 182.145742] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 182.150873] % modprobe test_klp_callbacks_mod
[ 182.152293] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 182.152296] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 182.152339] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 182.153479] % rmmod test_klp_callbacks_mod
[ 182.154578] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 182.154591] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 182.154592] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 182.196952] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 182.196973] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 182.197122] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 184.947083] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 184.948859] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 184.948861] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 184.948862] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 185.020008] % rmmod test_klp_callbacks_demo
[ 185.077670] % rmmod test_klp_callbacks_busy
[ 185.106398] test_klp_callbacks_busy: busymod_work_func exit
[ 185.106407] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 185.184323] ===== TEST: multiple livepatches =====
[ 185.187426] % modprobe test_klp_callbacks_demo
[ 185.188999] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 185.189001] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 185.189021] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 185.189022] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 186.067143] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 186.067283] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 186.067284] livepatch: 'test_klp_callbacks_demo': patching complete
[ 186.109240] % modprobe test_klp_callbacks_demo2
[ 186.110881] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 186.110883] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 186.110904] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 186.110906] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 187.107240] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 187.107352] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 187.107353] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 187.129168] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 187.129188] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 187.129208] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 187.129209] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 187.987516] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 187.987618] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 187.987620] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 188.037170] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 188.037188] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 188.037205] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 188.037206] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 189.027062] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 189.027164] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 189.027166] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 189.047265] % rmmod test_klp_callbacks_demo2
[ 189.137664] % rmmod test_klp_callbacks_demo
[ 189.224455] ===== TEST: atomic replace =====
[ 189.227586] % modprobe test_klp_callbacks_demo
[ 189.229201] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 189.229203] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 189.229222] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 189.229224] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 190.067084] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 190.067235] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 190.067237] livepatch: 'test_klp_callbacks_demo': patching complete
[ 190.148887] % modprobe test_klp_callbacks_demo2 replace=1
[ 190.150416] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 190.150419] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 190.150439] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 190.150441] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 191.747107] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 191.747218] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 191.747220] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 191.778578] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 191.778598] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 191.778619] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 191.778621] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 192.947121] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 192.947227] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 192.947229] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 192.989892] % rmmod test_klp_callbacks_demo2
[ 193.057940] % rmmod test_klp_callbacks_demo
[ 193.160197] livepatch: kernel.ftrace_enabled = 1
[ 193.167730] ===== TEST: basic shadow variable API =====
[ 193.170833] % modprobe test_klp_shadow_vars
[ 193.172209] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 193.172211] test_klp_shadow_vars: got expected NULL result
[ 193.172213] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 193.172214] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 193.172217] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 193.172218] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 193.172220] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 193.172221] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 193.172224] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 193.172225] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 193.172227] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 193.172229] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 193.172231] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 193.172232] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 193.172234] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 193.172236] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 193.172237] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 193.172238] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 193.172239] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 193.172240] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 193.172241] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 193.172243] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 193.172244] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 193.172245] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 193.172246] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 193.172247] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 193.172249] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 193.172251] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 193.172252] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 193.172254] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 193.172255] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 193.172257] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 193.172258] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 193.172260] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 193.172261] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 193.172262] test_klp_shadow_vars: got expected NULL result
[ 193.172263] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 193.172265] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 193.172266] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 193.172267] test_klp_shadow_vars: got expected NULL result
[ 193.172268] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 193.172269] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 193.172270] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 193.172271] test_klp_shadow_vars: got expected NULL result
[ 193.172272] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 193.172274] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 193.172275] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 193.172276] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 193.172277] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 193.172278] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 193.172287] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 193.172288] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 193.172289] test_klp_shadow_vars: got expected NULL result
[ 193.172290] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 193.172291] test_klp_shadow_vars: got expected NULL result
[ 193.172292] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 193.172293] test_klp_shadow_vars: got expected NULL result
[ 193.173588] % rmmod test_klp_shadow_vars
[ 193.270211] livepatch: kernel.ftrace_enabled = 1
[ 193.277772] ===== TEST: system state modification =====
[ 193.280982] % modprobe test_klp_state
[ 193.282421] livepatch: enabling patch 'test_klp_state'
[ 193.282422] livepatch: 'test_klp_state': initializing patching transition
[ 193.282443] test_klp_state: pre_patch_callback: vmlinux
[ 193.282444] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 193.282445] livepatch: 'test_klp_state': starting patching transition
[ 194.627016] livepatch: 'test_klp_state': completing patching transition
[ 194.627121] test_klp_state: post_patch_callback: vmlinux
[ 194.627122] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 194.627123] livepatch: 'test_klp_state': patching complete
[ 194.707923] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 194.707943] livepatch: 'test_klp_state': initializing unpatching transition
[ 194.707962] test_klp_state: pre_unpatch_callback: vmlinux
[ 194.707963] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 194.707964] livepatch: 'test_klp_state': starting unpatching transition
[ 195.667037] livepatch: 'test_klp_state': completing unpatching transition
[ 195.667141] test_klp_state: post_unpatch_callback: vmlinux
[ 195.667143] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 195.667144] livepatch: 'test_klp_state': unpatching complete
[ 195.718014] % rmmod test_klp_state
[ 195.794830] ===== TEST: taking over system state modification =====
[ 195.797971] % modprobe test_klp_state
[ 195.799572] livepatch: enabling patch 'test_klp_state'
[ 195.799574] livepatch: 'test_klp_state': initializing patching transition
[ 195.799595] test_klp_state: pre_patch_callback: vmlinux
[ 195.799596] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 195.799598] livepatch: 'test_klp_state': starting patching transition
[ 196.867056] livepatch: 'test_klp_state': completing patching transition
[ 196.867162] test_klp_state: post_patch_callback: vmlinux
[ 196.867164] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 196.867165] livepatch: 'test_klp_state': patching complete
[ 196.922499] % modprobe test_klp_state2
[ 196.924010] livepatch: enabling patch 'test_klp_state2'
[ 196.924012] livepatch: 'test_klp_state2': initializing patching transition
[ 196.924032] test_klp_state2: pre_patch_callback: vmlinux
[ 196.924033] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 196.924034] livepatch: 'test_klp_state2': starting patching transition
[ 198.627070] livepatch: 'test_klp_state2': completing patching transition
[ 198.627227] test_klp_state2: post_patch_callback: vmlinux
[ 198.627229] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 198.627230] livepatch: 'test_klp_state2': patching complete
[ 198.654169] % rmmod test_klp_state
[ 198.696775] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 198.696796] livepatch: 'test_klp_state2': initializing unpatching transition
[ 198.696818] test_klp_state2: pre_unpatch_callback: vmlinux
[ 198.696820] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 198.696821] livepatch: 'test_klp_state2': starting unpatching transition
[ 199.667041] livepatch: 'test_klp_state2': completing unpatching transition
[ 199.667222] test_klp_state2: post_unpatch_callback: vmlinux
[ 199.667223] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 199.667224] livepatch: 'test_klp_state2': unpatching complete
[ 199.706641] % rmmod test_klp_state2
[ 199.794709] ===== TEST: compatible cumulative livepatches =====
[ 199.797951] % modprobe test_klp_state2
[ 199.799497] livepatch: enabling patch 'test_klp_state2'
[ 199.799500] livepatch: 'test_klp_state2': initializing patching transition
[ 199.799521] test_klp_state2: pre_patch_callback: vmlinux
[ 199.799522] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 199.799524] livepatch: 'test_klp_state2': starting patching transition
[ 200.707033] livepatch: 'test_klp_state2': completing patching transition
[ 200.707156] test_klp_state2: post_patch_callback: vmlinux
[ 200.707158] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 200.707159] livepatch: 'test_klp_state2': patching complete
[ 200.719453] % modprobe test_klp_state3
[ 200.721036] livepatch: enabling patch 'test_klp_state3'
[ 200.721040] livepatch: 'test_klp_state3': initializing patching transition
[ 200.721063] test_klp_state3: pre_patch_callback: vmlinux
[ 200.721064] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 200.721065] livepatch: 'test_klp_state3': starting patching transition
[ 201.667030] livepatch: 'test_klp_state3': completing patching transition
[ 201.667132] test_klp_state3: post_patch_callback: vmlinux
[ 201.667134] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 201.667135] livepatch: 'test_klp_state3': patching complete
[ 201.740654] % rmmod test_klp_state2
[ 201.790108] % modprobe test_klp_state2
[ 201.791613] livepatch: enabling patch 'test_klp_state2'
[ 201.791616] livepatch: 'test_klp_state2': initializing patching transition
[ 201.791636] test_klp_state2: pre_patch_callback: vmlinux
[ 201.791637] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 201.791639] livepatch: 'test_klp_state2': starting patching transition
[ 202.947001] livepatch: 'test_klp_state2': completing patching transition
[ 202.947134] test_klp_state2: post_patch_callback: vmlinux
[ 202.947136] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 202.947137] livepatch: 'test_klp_state2': patching complete
[ 203.013457] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 203.013476] livepatch: 'test_klp_state2': initializing unpatching transition
[ 203.013497] test_klp_state2: pre_unpatch_callback: vmlinux
[ 203.013498] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 203.013499] livepatch: 'test_klp_state2': starting unpatching transition
[ 204.627021] livepatch: 'test_klp_state2': completing unpatching transition
[ 204.627127] test_klp_state2: post_unpatch_callback: vmlinux
[ 204.627128] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 204.627130] livepatch: 'test_klp_state2': unpatching complete
[ 204.628240] % rmmod test_klp_state2
[ 204.677492] % rmmod test_klp_state3
[ 204.754498] ===== TEST: incompatible cumulative livepatches =====
[ 204.757803] % modprobe test_klp_state2
[ 204.759469] livepatch: enabling patch 'test_klp_state2'
[ 204.759471] livepatch: 'test_klp_state2': initializing patching transition
[ 204.759509] test_klp_state2: pre_patch_callback: vmlinux
[ 204.759511] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 204.759512] livepatch: 'test_klp_state2': starting patching transition
[ 205.667054] livepatch: 'test_klp_state2': completing patching transition
[ 205.667221] test_klp_state2: post_patch_callback: vmlinux
[ 205.667223] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 205.667224] livepatch: 'test_klp_state2': patching complete
[ 205.676418] % modprobe test_klp_state
[ 205.678021] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 205.796666] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 205.796711] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 205.796727] livepatch: 'test_klp_state2': initializing unpatching transition
[ 205.796748] test_klp_state2: pre_unpatch_callback: vmlinux
[ 205.796749] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 205.796750] livepatch: 'test_klp_state2': starting unpatching transition
[ 206.627024] livepatch: 'test_klp_state2': completing unpatching transition
[ 206.627126] test_klp_state2: post_unpatch_callback: vmlinux
[ 206.627127] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 206.627128] livepatch: 'test_klp_state2': unpatching complete
[ 206.705649] % rmmod test_klp_state2
[ 206.799832] livepatch: kernel.ftrace_enabled = 1
[ 206.807523] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 206.809453] livepatch: kernel.ftrace_enabled = 0
[ 206.809519] % modprobe test_klp_livepatch
[ 206.811132] livepatch: enabling patch 'test_klp_livepatch'
[ 206.811134] livepatch: 'test_klp_livepatch': initializing patching transition
[ 206.811157] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 206.811159] livepatch: failed to patch object 'vmlinux'
[ 206.811160] livepatch: failed to enable patch 'test_klp_livepatch'
[ 206.811161] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 206.811162] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 206.811267] livepatch: 'test_klp_livepatch': unpatching complete
[ 206.946752] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 206.948665] livepatch: kernel.ftrace_enabled = 1
[ 206.951864] % modprobe test_klp_livepatch
[ 206.953500] livepatch: enabling patch 'test_klp_livepatch'
[ 206.953502] livepatch: 'test_klp_livepatch': initializing patching transition
[ 206.954621] livepatch: 'test_klp_livepatch': starting patching transition
[ 208.147074] livepatch: 'test_klp_livepatch': completing patching transition
[ 208.147180] livepatch: 'test_klp_livepatch': patching complete
[ 208.181130] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 208.182202] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 208.182223] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 208.182241] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 209.106989] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 209.108516] livepatch: 'test_klp_livepatch': unpatching complete
[ 209.192468] % rmmod test_klp_livepatch
[ 209.269412] livepatch: kernel.ftrace_enabled = 1
[ 209.277289] ===== TEST: sysfs test =====
[ 209.280562] % modprobe test_klp_livepatch
[ 209.282041] livepatch: enabling patch 'test_klp_livepatch'
[ 209.282043] livepatch: 'test_klp_livepatch': initializing patching transition
[ 209.283130] livepatch: 'test_klp_livepatch': starting patching transition
[ 210.946994] livepatch: 'test_klp_livepatch': completing patching transition
[ 210.947096] livepatch: 'test_klp_livepatch': patching complete
[ 211.020069] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 211.020084] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 211.020103] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 211.906955] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 211.908429] livepatch: 'test_klp_livepatch': unpatching complete
[ 211.928959] % rmmod test_klp_livepatch
[ 212.004690] ===== TEST: sysfs test object/patched =====
[ 212.007954] % modprobe test_klp_callbacks_demo
[ 212.009626] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 212.009628] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 212.009649] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 212.009650] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 213.106985] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 213.107148] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 213.107150] livepatch: 'test_klp_callbacks_demo': patching complete
[ 213.133983] % modprobe test_klp_callbacks_mod
[ 213.135432] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 213.135434] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 213.135436] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 213.135478] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 213.137671] % rmmod test_klp_callbacks_mod
[ 213.138782] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 213.138796] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 213.138798] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 213.138799] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 213.187620] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 213.187639] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 213.187660] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 213.187661] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 214.956966] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 214.957069] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 214.957070] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 215.004034] % rmmod test_klp_callbacks_demo
[ 216.486413] livepatch: kernel.ftrace_enabled = 1
[ 216.494184] ===== TEST: basic function patching =====
[ 216.497478] % modprobe test_klp_livepatch
[ 216.499123] livepatch: enabling patch 'test_klp_livepatch'
[ 216.499125] livepatch: 'test_klp_livepatch': initializing patching transition
[ 216.500232] livepatch: 'test_klp_livepatch': starting patching transition
[ 217.906980] livepatch: 'test_klp_livepatch': completing patching transition
[ 217.907138] livepatch: 'test_klp_livepatch': patching complete
[ 217.927548] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 217.927569] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 217.927590] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 218.947043] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 218.948644] livepatch: 'test_klp_livepatch': unpatching complete
[ 219.038726] % rmmod test_klp_livepatch
[ 219.115033] ===== TEST: multiple livepatches =====
[ 219.118186] % modprobe test_klp_livepatch
[ 219.119788] livepatch: enabling patch 'test_klp_livepatch'
[ 219.119790] livepatch: 'test_klp_livepatch': initializing patching transition
[ 219.120986] livepatch: 'test_klp_livepatch': starting patching transition
[ 220.866989] livepatch: 'test_klp_livepatch': completing patching transition
[ 220.867145] livepatch: 'test_klp_livepatch': patching complete
[ 220.952783] test_klp_livepatch: this has been live patched
[ 220.957044] % modprobe test_klp_atomic_replace replace=0
[ 220.958580] livepatch: enabling patch 'test_klp_atomic_replace'
[ 220.958582] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 220.959660] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 221.826984] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 221.827087] livepatch: 'test_klp_atomic_replace': patching complete
[ 221.877823] test_klp_livepatch: this has been live patched
[ 221.878665] test_klp_atomic_replace: this has been live patched
[ 221.878801] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 221.878822] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 221.878843] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 222.947011] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 222.948465] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 222.989788] % rmmod test_klp_atomic_replace
[ 223.047531] test_klp_livepatch: this has been live patched
[ 223.048613] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 223.048632] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 223.048654] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 223.987012] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 223.988534] livepatch: 'test_klp_livepatch': unpatching complete
[ 224.059000] % rmmod test_klp_livepatch
[ 224.156318] ===== TEST: atomic replace livepatch =====
[ 224.159489] % modprobe test_klp_livepatch
[ 224.160923] livepatch: enabling patch 'test_klp_livepatch'
[ 224.160926] livepatch: 'test_klp_livepatch': initializing patching transition
[ 224.162024] livepatch: 'test_klp_livepatch': starting patching transition
[ 225.666965] livepatch: 'test_klp_livepatch': completing patching transition
[ 225.667118] livepatch: 'test_klp_livepatch': patching complete
[ 225.689716] test_klp_livepatch: this has been live patched
[ 225.693937] % modprobe test_klp_atomic_replace replace=1
[ 225.695517] livepatch: enabling patch 'test_klp_atomic_replace'
[ 225.695519] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 225.696644] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 226.786967] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 226.788286] livepatch: 'test_klp_atomic_replace': patching complete
[ 226.818010] test_klp_atomic_replace: this has been live patched
[ 226.819031] % rmmod test_klp_livepatch
[ 226.878235] test_klp_atomic_replace: this has been live patched
[ 226.878402] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 226.878421] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 226.878443] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 227.907041] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 227.908601] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 227.988889] % rmmod test_klp_atomic_replace
[ 228.081616] livepatch: kernel.ftrace_enabled = 1
[ 228.089746] ===== TEST: target module before livepatch =====
[ 228.093012] % modprobe test_klp_callbacks_mod
[ 228.094389] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 228.097768] % modprobe test_klp_callbacks_demo
[ 228.099261] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 228.099263] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 228.099286] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 228.099287] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 228.099289] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 229.027084] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 229.027196] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 229.027198] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 229.027199] livepatch: 'test_klp_callbacks_demo': patching complete
[ 229.118464] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 229.118483] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 229.118504] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 229.118505] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 229.118506] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 230.866938] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 230.867117] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 230.867118] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 230.867120] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 230.935471] % rmmod test_klp_callbacks_demo
[ 230.997625] % rmmod test_klp_callbacks_mod
[ 230.998771] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 231.064190] ===== TEST: module_coming notifier =====
[ 231.067155] % modprobe test_klp_callbacks_demo
[ 231.068630] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 231.068632] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 231.068652] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 231.068653] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 232.786968] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 232.787122] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 232.787123] livepatch: 'test_klp_callbacks_demo': patching complete
[ 232.800046] % modprobe test_klp_callbacks_mod
[ 232.801418] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 232.801421] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 232.801423] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 232.801465] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 232.801808] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 232.801826] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 232.801848] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 232.801849] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 232.801850] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 233.906995] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 233.907137] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 233.907139] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 233.907140] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 233.912080] % rmmod test_klp_callbacks_demo
[ 233.987482] % rmmod test_klp_callbacks_mod
[ 233.988644] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 234.064216] ===== TEST: module_going notifier =====
[ 234.067491] % modprobe test_klp_callbacks_mod
[ 234.068784] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 234.072123] % modprobe test_klp_callbacks_demo
[ 234.073590] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 234.073592] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 234.073611] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 234.073613] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 234.073614] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 234.866962] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 234.867066] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 234.867068] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 234.867069] livepatch: 'test_klp_callbacks_demo': patching complete
[ 234.889218] % rmmod test_klp_callbacks_mod
[ 234.890290] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 234.890303] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 234.890305] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 234.890307] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 234.936640] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 234.936658] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 234.936677] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 234.936678] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 235.906953] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 235.907059] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 235.907060] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 235.946374] % rmmod test_klp_callbacks_demo
[ 236.044816] ===== TEST: module_coming and module_going notifiers =====
[ 236.047961] % modprobe test_klp_callbacks_demo
[ 236.049483] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 236.049485] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 236.049505] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 236.049506] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 236.947000] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 236.947176] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 236.947178] livepatch: 'test_klp_callbacks_demo': patching complete
[ 236.969682] % modprobe test_klp_callbacks_mod
[ 236.971078] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 236.971080] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 236.971082] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 236.971123] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 236.972339] % rmmod test_klp_callbacks_mod
[ 236.973427] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 236.973439] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 236.973441] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 236.973442] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 237.036714] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 237.036732] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 237.036753] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 237.036754] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 237.906936] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 237.907087] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 237.907088] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 237.945408] % rmmod test_klp_callbacks_demo
[ 238.024442] ===== TEST: target module not present =====
[ 238.027541] % modprobe test_klp_callbacks_demo
[ 238.028922] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 238.028925] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 238.028945] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 238.028946] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 239.666976] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 239.667083] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 239.667084] livepatch: 'test_klp_callbacks_demo': patching complete
[ 239.757876] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 239.757896] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 239.757916] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 239.757917] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 240.866920] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 240.867056] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 240.867058] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 240.868130] % rmmod test_klp_callbacks_demo
[ 240.960617] ERROR: livepatch kselftest(s) failed
[ 241.022110] livepatch: kernel.ftrace_enabled = 1
[ 241.029698] ===== TEST: basic shadow variable API =====
[ 241.032978] % modprobe test_klp_shadow_vars
[ 241.034446] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 241.034448] test_klp_shadow_vars: got expected NULL result
[ 241.034449] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 241.034451] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 241.034454] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 241.034455] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 241.034457] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 241.034459] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 241.034461] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 241.034462] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 241.034464] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 241.034466] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 241.034468] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 241.034469] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 241.034471] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 241.034473] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 241.034474] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 241.034475] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 241.034476] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 241.034478] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 241.034479] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 241.034480] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 241.034481] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 241.034482] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 241.034483] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 241.034485] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 241.034486] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 241.034488] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 241.034489] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 241.034491] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 241.034492] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 241.034494] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 241.034496] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 241.034497] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 241.034499] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 241.034500] test_klp_shadow_vars: got expected NULL result
[ 241.034501] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 241.034502] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 241.034503] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 241.034505] test_klp_shadow_vars: got expected NULL result
[ 241.034505] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 241.034507] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 241.034508] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 241.034509] test_klp_shadow_vars: got expected NULL result
[ 241.034510] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 241.034512] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 241.034513] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 241.034514] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 241.034515] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 241.034516] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 241.034522] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 241.034523] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 241.034524] test_klp_shadow_vars: got expected NULL result
[ 241.034525] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 241.034526] test_klp_shadow_vars: got expected NULL result
[ 241.034527] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 241.034528] test_klp_shadow_vars: got expected NULL result
[ 241.035837] % rmmod test_klp_shadow_vars
[ 241.150238] livepatch: kernel.ftrace_enabled = 1
[ 241.157791] ===== TEST: system state modification =====
[ 241.161055] % modprobe test_klp_state
[ 241.162597] livepatch: enabling patch 'test_klp_state'
[ 241.162599] livepatch: 'test_klp_state': initializing patching transition
[ 241.162624] test_klp_state: pre_patch_callback: vmlinux
[ 241.162625] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 241.162626] livepatch: 'test_klp_state': starting patching transition
[ 242.636994] livepatch: 'test_klp_state': completing patching transition
[ 242.637119] test_klp_state: post_patch_callback: vmlinux
[ 242.637121] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 242.637122] livepatch: 'test_klp_state': patching complete
[ 242.690300] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 242.690318] livepatch: 'test_klp_state': initializing unpatching transition
[ 242.690340] test_klp_state: pre_unpatch_callback: vmlinux
[ 242.690341] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 242.690342] livepatch: 'test_klp_state': starting unpatching transition
[ 243.666983] livepatch: 'test_klp_state': completing unpatching transition
[ 243.667104] test_klp_state: post_unpatch_callback: vmlinux
[ 243.667105] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 243.667106] livepatch: 'test_klp_state': unpatching complete
[ 243.700880] % rmmod test_klp_state
[ 243.774968] ===== TEST: taking over system state modification =====
[ 243.778186] % modprobe test_klp_state
[ 243.779642] livepatch: enabling patch 'test_klp_state'
[ 243.779645] livepatch: 'test_klp_state': initializing patching transition
[ 243.779665] test_klp_state: pre_patch_callback: vmlinux
[ 243.779667] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 243.779668] livepatch: 'test_klp_state': starting patching transition
[ 244.707041] livepatch: 'test_klp_state': completing patching transition
[ 244.707171] test_klp_state: post_patch_callback: vmlinux
[ 244.707172] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 244.707173] livepatch: 'test_klp_state': patching complete
[ 244.801759] % modprobe test_klp_state2
[ 244.803222] livepatch: enabling patch 'test_klp_state2'
[ 244.803223] livepatch: 'test_klp_state2': initializing patching transition
[ 244.803243] test_klp_state2: pre_patch_callback: vmlinux
[ 244.803244] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 244.803245] livepatch: 'test_klp_state2': starting patching transition
[ 245.747022] livepatch: 'test_klp_state2': completing patching transition
[ 245.747131] test_klp_state2: post_patch_callback: vmlinux
[ 245.747133] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 245.747134] livepatch: 'test_klp_state2': patching complete
[ 245.822853] % rmmod test_klp_state
[ 245.896693] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 245.896711] livepatch: 'test_klp_state2': initializing unpatching transition
[ 245.896733] test_klp_state2: pre_unpatch_callback: vmlinux
[ 245.896735] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 245.896736] livepatch: 'test_klp_state2': starting unpatching transition
[ 247.666976] livepatch: 'test_klp_state2': completing unpatching transition
[ 247.667145] test_klp_state2: post_unpatch_callback: vmlinux
[ 247.667146] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 247.667147] livepatch: 'test_klp_state2': unpatching complete
[ 247.712764] % rmmod test_klp_state2
[ 247.774578] ===== TEST: compatible cumulative livepatches =====
[ 247.777820] % modprobe test_klp_state2
[ 247.779360] livepatch: enabling patch 'test_klp_state2'
[ 247.779362] livepatch: 'test_klp_state2': initializing patching transition
[ 247.779401] test_klp_state2: pre_patch_callback: vmlinux
[ 247.779402] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 247.779403] livepatch: 'test_klp_state2': starting patching transition
[ 248.706971] livepatch: 'test_klp_state2': completing patching transition
[ 248.707111] test_klp_state2: post_patch_callback: vmlinux
[ 248.707112] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 248.707114] livepatch: 'test_klp_state2': patching complete
[ 248.800628] % modprobe test_klp_state3
[ 248.802120] livepatch: enabling patch 'test_klp_state3'
[ 248.802122] livepatch: 'test_klp_state3': initializing patching transition
[ 248.802143] test_klp_state3: pre_patch_callback: vmlinux
[ 248.802144] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 248.802145] livepatch: 'test_klp_state3': starting patching transition
[ 249.747012] livepatch: 'test_klp_state3': completing patching transition
[ 249.747117] test_klp_state3: post_patch_callback: vmlinux
[ 249.747119] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 249.747120] livepatch: 'test_klp_state3': patching complete
[ 249.821681] % rmmod test_klp_state2
[ 249.889775] % modprobe test_klp_state2
[ 249.891292] livepatch: enabling patch 'test_klp_state2'
[ 249.891294] livepatch: 'test_klp_state2': initializing patching transition
[ 249.891314] test_klp_state2: pre_patch_callback: vmlinux
[ 249.891315] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 249.891317] livepatch: 'test_klp_state2': starting patching transition
[ 250.706998] livepatch: 'test_klp_state2': completing patching transition
[ 250.707174] test_klp_state2: post_patch_callback: vmlinux
[ 250.707176] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 250.707177] livepatch: 'test_klp_state2': patching complete
[ 250.808275] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 250.808295] livepatch: 'test_klp_state2': initializing unpatching transition
[ 250.808317] test_klp_state2: pre_unpatch_callback: vmlinux
[ 250.808318] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 250.808319] livepatch: 'test_klp_state2': starting unpatching transition
[ 252.146949] livepatch: 'test_klp_state2': completing unpatching transition
[ 252.147137] test_klp_state2: post_unpatch_callback: vmlinux
[ 252.147139] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 252.147140] livepatch: 'test_klp_state2': unpatching complete
[ 252.221718] % rmmod test_klp_state2
[ 252.267508] % rmmod test_klp_state3
[ 252.344651] ===== TEST: incompatible cumulative livepatches =====
[ 252.347830] % modprobe test_klp_state2
[ 252.349374] livepatch: enabling patch 'test_klp_state2'
[ 252.349376] livepatch: 'test_klp_state2': initializing patching transition
[ 252.349397] test_klp_state2: pre_patch_callback: vmlinux
[ 252.349398] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 252.349399] livepatch: 'test_klp_state2': starting patching transition
[ 253.666985] livepatch: 'test_klp_state2': completing patching transition
[ 253.667137] test_klp_state2: post_patch_callback: vmlinux
[ 253.667139] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 253.667140] livepatch: 'test_klp_state2': patching complete
[ 253.672445] % modprobe test_klp_state
[ 253.673955] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 253.836626] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 253.836711] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 253.836729] livepatch: 'test_klp_state2': initializing unpatching transition
[ 253.836751] test_klp_state2: pre_unpatch_callback: vmlinux
[ 253.836752] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 253.836753] livepatch: 'test_klp_state2': starting unpatching transition
[ 255.107053] livepatch: 'test_klp_state2': completing unpatching transition
[ 255.107160] test_klp_state2: post_unpatch_callback: vmlinux
[ 255.107162] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 255.107163] livepatch: 'test_klp_state2': unpatching complete
[ 255.149006] % rmmod test_klp_state2
[ 255.251724] livepatch: kernel.ftrace_enabled = 1
[ 255.259721] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 255.261663] livepatch: kernel.ftrace_enabled = 0
[ 255.261800] % modprobe test_klp_livepatch
[ 255.263372] livepatch: enabling patch 'test_klp_livepatch'
[ 255.263374] livepatch: 'test_klp_livepatch': initializing patching transition
[ 255.263397] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 255.263399] livepatch: failed to patch object 'vmlinux'
[ 255.263400] livepatch: failed to enable patch 'test_klp_livepatch'
[ 255.263401] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 255.263402] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 255.263560] livepatch: 'test_klp_livepatch': unpatching complete
[ 255.386651] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 255.388605] livepatch: kernel.ftrace_enabled = 1
[ 255.391657] % modprobe test_klp_livepatch
[ 255.393208] livepatch: enabling patch 'test_klp_livepatch'
[ 255.393210] livepatch: 'test_klp_livepatch': initializing patching transition
[ 255.394450] livepatch: 'test_klp_livepatch': starting patching transition
[ 256.786971] livepatch: 'test_klp_livepatch': completing patching transition
[ 256.787078] livepatch: 'test_klp_livepatch': patching complete
[ 256.823325] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 256.824273] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 256.824293] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 256.824311] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 257.746928] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 257.748446] livepatch: 'test_klp_livepatch': unpatching complete
[ 257.833832] % rmmod test_klp_livepatch
[ 257.929505] livepatch: kernel.ftrace_enabled = 1
[ 257.936957] ===== TEST: sysfs test =====
[ 257.940220] % modprobe test_klp_livepatch
[ 257.941745] livepatch: enabling patch 'test_klp_livepatch'
[ 257.941747] livepatch: 'test_klp_livepatch': initializing patching transition
[ 257.942869] livepatch: 'test_klp_livepatch': starting patching transition
[ 258.946982] livepatch: 'test_klp_livepatch': completing patching transition
[ 258.947104] livepatch: 'test_klp_livepatch': patching complete
[ 258.969357] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 258.969373] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 258.969393] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 260.716963] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 260.718450] livepatch: 'test_klp_livepatch': unpatching complete
[ 260.785513] % rmmod test_klp_livepatch
[ 260.874332] ===== TEST: sysfs test object/patched =====
[ 260.877504] % modprobe test_klp_callbacks_demo
[ 260.878941] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 260.878943] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 260.878965] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 260.878966] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 261.906924] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 261.907028] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 261.907030] livepatch: 'test_klp_callbacks_demo': patching complete
[ 262.003387] % modprobe test_klp_callbacks_mod
[ 262.004837] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 262.004839] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 262.004841] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 262.004883] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 262.007085] % rmmod test_klp_callbacks_mod
[ 262.008282] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 262.008297] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 262.008299] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 262.008300] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 262.077659] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 262.077679] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 262.077698] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 262.077700] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 263.666952] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 263.667118] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 263.667119] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 263.692467] % rmmod test_klp_callbacks_demo

[-- Attachment #4: expect.txt --]
[-- Type: text/plain, Size: 936 bytes --]

% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo

[-- Attachment #5: result.txt --]
[-- Type: text/plain, Size: 81985 bytes --]

livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
test_klp_livepatch: this has been live patched
% modprobe test_klp_atomic_replace replace=0
livepatch: enabling patch 'test_klp_atomic_replace'
livepatch: 'test_klp_atomic_replace': initializing patching transition
livepatch: 'test_klp_atomic_replace': starting patching transition
livepatch: 'test_klp_atomic_replace': completing patching transition
livepatch: 'test_klp_atomic_replace': patching complete
test_klp_livepatch: this has been live patched
test_klp_atomic_replace: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
livepatch: 'test_klp_atomic_replace': initializing unpatching transition
livepatch: 'test_klp_atomic_replace': starting unpatching transition
livepatch: 'test_klp_atomic_replace': completing unpatching transition
livepatch: 'test_klp_atomic_replace': unpatching complete
% rmmod test_klp_atomic_replace
test_klp_livepatch: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
test_klp_livepatch: this has been live patched
% modprobe test_klp_atomic_replace replace=1
livepatch: enabling patch 'test_klp_atomic_replace'
livepatch: 'test_klp_atomic_replace': initializing patching transition
livepatch: 'test_klp_atomic_replace': starting patching transition
livepatch: 'test_klp_atomic_replace': completing patching transition
livepatch: 'test_klp_atomic_replace': patching complete
test_klp_atomic_replace: this has been live patched
% rmmod test_klp_livepatch
test_klp_atomic_replace: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
livepatch: 'test_klp_atomic_replace': initializing unpatching transition
livepatch: 'test_klp_atomic_replace': starting unpatching transition
livepatch: 'test_klp_atomic_replace': completing unpatching transition
livepatch: 'test_klp_atomic_replace': unpatching complete
% rmmod test_klp_atomic_replace
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo pre_patch_ret=-19
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: pre-patch callback failed for object 'vmlinux'
livepatch: failed to enable patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
livepatch: 'test_klp_callbacks_demo': unpatching complete
modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_busy block_transition=N
test_klp_callbacks_busy: test_klp_callbacks_busy_init
test_klp_callbacks_busy: busymod_work_func enter
test_klp_callbacks_busy: busymod_work_func exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_busy
test_klp_callbacks_busy: test_klp_callbacks_busy_exit
% modprobe test_klp_callbacks_busy block_transition=Y
test_klp_callbacks_busy: test_klp_callbacks_busy_init
test_klp_callbacks_busy: busymod_work_func enter
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_busy
test_klp_callbacks_busy: busymod_work_func exit
test_klp_callbacks_busy: test_klp_callbacks_busy_exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_demo2
livepatch: enabling patch 'test_klp_callbacks_demo2'
livepatch: 'test_klp_callbacks_demo2': initializing patching transition
test_klp_callbacks_demo2: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting patching transition
livepatch: 'test_klp_callbacks_demo2': completing patching transition
test_klp_callbacks_demo2: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': unpatching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo2
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_demo2 replace=1
livepatch: enabling patch 'test_klp_callbacks_demo2'
livepatch: 'test_klp_callbacks_demo2': initializing patching transition
test_klp_callbacks_demo2: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting patching transition
livepatch: 'test_klp_callbacks_demo2': completing patching transition
test_klp_callbacks_demo2: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': unpatching complete
% rmmod test_klp_callbacks_demo2
% rmmod test_klp_callbacks_demo
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_shadow_vars
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
test_klp_shadow_vars: got expected PTR3 -> PTR2 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
test_klp_shadow_vars: got expected PTR6 -> PTR5 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
test_klp_shadow_vars: got expected PTR8 -> PTR7 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
test_klp_shadow_vars: got expected PTR11 -> PTR10 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
test_klp_shadow_vars: got expected PTR13 -> PTR12 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
test_klp_shadow_vars: got expected PTR16 -> PTR15 result
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
test_klp_shadow_vars: got expected PTR3 -> PTR2 result
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
test_klp_shadow_vars: got expected PTR8 -> PTR7 result
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
test_klp_shadow_vars: got expected PTR13 -> PTR12 result
test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
test_klp_shadow_vars: got expected PTR6 -> PTR5 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
test_klp_shadow_vars: got expected PTR11 -> PTR10 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
test_klp_shadow_vars: got expected PTR16 -> PTR15 result
test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
test_klp_shadow_vars: got expected NULL result
% rmmod test_klp_shadow_vars
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_state
livepatch: enabling patch 'test_klp_state'
livepatch: 'test_klp_state': initializing patching transition
test_klp_state: pre_patch_callback: vmlinux
test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state': starting patching transition
livepatch: 'test_klp_state': completing patching transition
test_klp_state: post_patch_callback: vmlinux
test_klp_state: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
livepatch: 'test_klp_state': initializing unpatching transition
test_klp_state: pre_unpatch_callback: vmlinux
test_klp_state: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state': starting unpatching transition
livepatch: 'test_klp_state': completing unpatching transition
test_klp_state: post_unpatch_callback: vmlinux
test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state': unpatching complete
% rmmod test_klp_state
% modprobe test_klp_state
livepatch: enabling patch 'test_klp_state'
livepatch: 'test_klp_state': initializing patching transition
test_klp_state: pre_patch_callback: vmlinux
test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state': starting patching transition
livepatch: 'test_klp_state': completing patching transition
test_klp_state: post_patch_callback: vmlinux
test_klp_state: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state': patching complete
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
livepatch: 'test_klp_state2': patching complete
% rmmod test_klp_state
% echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
livepatch: 'test_klp_state2': initializing unpatching transition
test_klp_state2: pre_unpatch_callback: vmlinux
test_klp_state2: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state2': starting unpatching transition
livepatch: 'test_klp_state2': completing unpatching transition
test_klp_state2: post_unpatch_callback: vmlinux
test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state2': unpatching complete
% rmmod test_klp_state2
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state2': patching complete
% modprobe test_klp_state3
livepatch: enabling patch 'test_klp_state3'
livepatch: 'test_klp_state3': initializing patching transition
test_klp_state3: pre_patch_callback: vmlinux
test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
livepatch: 'test_klp_state3': starting patching transition
livepatch: 'test_klp_state3': completing patching transition
test_klp_state3: post_patch_callback: vmlinux
test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
livepatch: 'test_klp_state3': patching complete
% rmmod test_klp_state2
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
livepatch: 'test_klp_state2': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
livepatch: 'test_klp_state2': initializing unpatching transition
test_klp_state2: pre_unpatch_callback: vmlinux
test_klp_state2: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state2': starting unpatching transition
livepatch: 'test_klp_state2': completing unpatching transition
test_klp_state2: post_unpatch_callback: vmlinux
test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state2': unpatching complete
% rmmod test_klp_state2
% rmmod test_klp_state3
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state2': patching complete
% modprobe test_klp_state
livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
% echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
livepatch: 'test_klp_state2': initializing unpatching transition
test_klp_state2: pre_unpatch_callback: vmlinux
test_klp_state2: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state2': starting unpatching transition
livepatch: 'test_klp_state2': completing unpatching transition
test_klp_state2: post_unpatch_callback: vmlinux
test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state2': unpatching complete
% rmmod test_klp_state2
livepatch: kernel.ftrace_enabled = 1
livepatch: kernel.ftrace_enabled = 0
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
livepatch: failed to patch object 'vmlinux'
livepatch: failed to enable patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
test_klp_livepatch: this has been live patched
% modprobe test_klp_atomic_replace replace=0
livepatch: enabling patch 'test_klp_atomic_replace'
livepatch: 'test_klp_atomic_replace': initializing patching transition
livepatch: 'test_klp_atomic_replace': starting patching transition
livepatch: 'test_klp_atomic_replace': completing patching transition
livepatch: 'test_klp_atomic_replace': patching complete
test_klp_livepatch: this has been live patched
test_klp_atomic_replace: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
livepatch: 'test_klp_atomic_replace': initializing unpatching transition
livepatch: 'test_klp_atomic_replace': starting unpatching transition
livepatch: 'test_klp_atomic_replace': completing unpatching transition
livepatch: 'test_klp_atomic_replace': unpatching complete
% rmmod test_klp_atomic_replace
test_klp_livepatch: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
test_klp_livepatch: this has been live patched
% modprobe test_klp_atomic_replace replace=1
livepatch: enabling patch 'test_klp_atomic_replace'
livepatch: 'test_klp_atomic_replace': initializing patching transition
livepatch: 'test_klp_atomic_replace': starting patching transition
livepatch: 'test_klp_atomic_replace': completing patching transition
livepatch: 'test_klp_atomic_replace': patching complete
test_klp_atomic_replace: this has been live patched
% rmmod test_klp_livepatch
test_klp_atomic_replace: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
livepatch: 'test_klp_atomic_replace': initializing unpatching transition
livepatch: 'test_klp_atomic_replace': starting unpatching transition
livepatch: 'test_klp_atomic_replace': completing unpatching transition
livepatch: 'test_klp_atomic_replace': unpatching complete
% rmmod test_klp_atomic_replace
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo pre_patch_ret=-19
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: pre-patch callback failed for object 'vmlinux'
livepatch: failed to enable patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
livepatch: 'test_klp_callbacks_demo': unpatching complete
modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_busy block_transition=N
test_klp_callbacks_busy: test_klp_callbacks_busy_init
test_klp_callbacks_busy: busymod_work_func enter
test_klp_callbacks_busy: busymod_work_func exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_busy
test_klp_callbacks_busy: test_klp_callbacks_busy_exit
% modprobe test_klp_callbacks_busy block_transition=Y
test_klp_callbacks_busy: test_klp_callbacks_busy_init
test_klp_callbacks_busy: busymod_work_func enter
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_busy
test_klp_callbacks_busy: busymod_work_func exit
test_klp_callbacks_busy: test_klp_callbacks_busy_exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_demo2
livepatch: enabling patch 'test_klp_callbacks_demo2'
livepatch: 'test_klp_callbacks_demo2': initializing patching transition
test_klp_callbacks_demo2: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting patching transition
livepatch: 'test_klp_callbacks_demo2': completing patching transition
test_klp_callbacks_demo2: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': unpatching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo2
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_demo2 replace=1
livepatch: enabling patch 'test_klp_callbacks_demo2'
livepatch: 'test_klp_callbacks_demo2': initializing patching transition
test_klp_callbacks_demo2: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting patching transition
livepatch: 'test_klp_callbacks_demo2': completing patching transition
test_klp_callbacks_demo2: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo2': unpatching complete
% rmmod test_klp_callbacks_demo2
% rmmod test_klp_callbacks_demo
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_shadow_vars
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
test_klp_shadow_vars: got expected PTR3 -> PTR2 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
test_klp_shadow_vars: got expected PTR6 -> PTR5 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
test_klp_shadow_vars: got expected PTR8 -> PTR7 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
test_klp_shadow_vars: got expected PTR11 -> PTR10 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
test_klp_shadow_vars: got expected PTR13 -> PTR12 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
test_klp_shadow_vars: got expected PTR16 -> PTR15 result
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
test_klp_shadow_vars: got expected PTR3 -> PTR2 result
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
test_klp_shadow_vars: got expected PTR8 -> PTR7 result
test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
test_klp_shadow_vars: got expected PTR13 -> PTR12 result
test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
test_klp_shadow_vars: got expected PTR6 -> PTR5 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
test_klp_shadow_vars: got expected PTR11 -> PTR10 result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
test_klp_shadow_vars: got expected PTR16 -> PTR15 result
test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
test_klp_shadow_vars: got expected NULL result
test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
test_klp_shadow_vars: got expected NULL result
% rmmod test_klp_shadow_vars
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_state
livepatch: enabling patch 'test_klp_state'
livepatch: 'test_klp_state': initializing patching transition
test_klp_state: pre_patch_callback: vmlinux
test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state': starting patching transition
livepatch: 'test_klp_state': completing patching transition
test_klp_state: post_patch_callback: vmlinux
test_klp_state: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
livepatch: 'test_klp_state': initializing unpatching transition
test_klp_state: pre_unpatch_callback: vmlinux
test_klp_state: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state': starting unpatching transition
livepatch: 'test_klp_state': completing unpatching transition
test_klp_state: post_unpatch_callback: vmlinux
test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state': unpatching complete
% rmmod test_klp_state
% modprobe test_klp_state
livepatch: enabling patch 'test_klp_state'
livepatch: 'test_klp_state': initializing patching transition
test_klp_state: pre_patch_callback: vmlinux
test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state': starting patching transition
livepatch: 'test_klp_state': completing patching transition
test_klp_state: post_patch_callback: vmlinux
test_klp_state: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state': patching complete
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
livepatch: 'test_klp_state2': patching complete
% rmmod test_klp_state
% echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
livepatch: 'test_klp_state2': initializing unpatching transition
test_klp_state2: pre_unpatch_callback: vmlinux
test_klp_state2: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state2': starting unpatching transition
livepatch: 'test_klp_state2': completing unpatching transition
test_klp_state2: post_unpatch_callback: vmlinux
test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state2': unpatching complete
% rmmod test_klp_state2
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state2': patching complete
% modprobe test_klp_state3
livepatch: enabling patch 'test_klp_state3'
livepatch: 'test_klp_state3': initializing patching transition
test_klp_state3: pre_patch_callback: vmlinux
test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
livepatch: 'test_klp_state3': starting patching transition
livepatch: 'test_klp_state3': completing patching transition
test_klp_state3: post_patch_callback: vmlinux
test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
livepatch: 'test_klp_state3': patching complete
% rmmod test_klp_state2
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
livepatch: 'test_klp_state2': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
livepatch: 'test_klp_state2': initializing unpatching transition
test_klp_state2: pre_unpatch_callback: vmlinux
test_klp_state2: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state2': starting unpatching transition
livepatch: 'test_klp_state2': completing unpatching transition
test_klp_state2: post_unpatch_callback: vmlinux
test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state2': unpatching complete
% rmmod test_klp_state2
% rmmod test_klp_state3
% modprobe test_klp_state2
livepatch: enabling patch 'test_klp_state2'
livepatch: 'test_klp_state2': initializing patching transition
test_klp_state2: pre_patch_callback: vmlinux
test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
livepatch: 'test_klp_state2': starting patching transition
livepatch: 'test_klp_state2': completing patching transition
test_klp_state2: post_patch_callback: vmlinux
test_klp_state2: fix_console_loglevel: fixing console_loglevel
livepatch: 'test_klp_state2': patching complete
% modprobe test_klp_state
livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
% echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
livepatch: 'test_klp_state2': initializing unpatching transition
test_klp_state2: pre_unpatch_callback: vmlinux
test_klp_state2: restore_console_loglevel: restoring console_loglevel
livepatch: 'test_klp_state2': starting unpatching transition
livepatch: 'test_klp_state2': completing unpatching transition
test_klp_state2: post_unpatch_callback: vmlinux
test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
livepatch: 'test_klp_state2': unpatching complete
% rmmod test_klp_state2
livepatch: kernel.ftrace_enabled = 1
livepatch: kernel.ftrace_enabled = 0
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
livepatch: failed to patch object 'vmlinux'
livepatch: failed to enable patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
test_klp_livepatch: this has been live patched
% modprobe test_klp_atomic_replace replace=0
livepatch: enabling patch 'test_klp_atomic_replace'
livepatch: 'test_klp_atomic_replace': initializing patching transition
livepatch: 'test_klp_atomic_replace': starting patching transition
livepatch: 'test_klp_atomic_replace': completing patching transition
livepatch: 'test_klp_atomic_replace': patching complete
test_klp_livepatch: this has been live patched
test_klp_atomic_replace: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
livepatch: 'test_klp_atomic_replace': initializing unpatching transition
livepatch: 'test_klp_atomic_replace': starting unpatching transition
livepatch: 'test_klp_atomic_replace': completing unpatching transition
livepatch: 'test_klp_atomic_replace': unpatching complete
% rmmod test_klp_atomic_replace
test_klp_livepatch: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
livepatch: 'test_klp_livepatch': initializing unpatching transition
livepatch: 'test_klp_livepatch': starting unpatching transition
livepatch: 'test_klp_livepatch': completing unpatching transition
livepatch: 'test_klp_livepatch': unpatching complete
% rmmod test_klp_livepatch
% modprobe test_klp_livepatch
livepatch: enabling patch 'test_klp_livepatch'
livepatch: 'test_klp_livepatch': initializing patching transition
livepatch: 'test_klp_livepatch': starting patching transition
livepatch: 'test_klp_livepatch': completing patching transition
livepatch: 'test_klp_livepatch': patching complete
test_klp_livepatch: this has been live patched
% modprobe test_klp_atomic_replace replace=1
livepatch: enabling patch 'test_klp_atomic_replace'
livepatch: 'test_klp_atomic_replace': initializing patching transition
livepatch: 'test_klp_atomic_replace': starting patching transition
livepatch: 'test_klp_atomic_replace': completing patching transition
livepatch: 'test_klp_atomic_replace': patching complete
test_klp_atomic_replace: this has been live patched
% rmmod test_klp_livepatch
test_klp_atomic_replace: this has been live patched
% echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
livepatch: 'test_klp_atomic_replace': initializing unpatching transition
livepatch: 'test_klp_atomic_replace': starting unpatching transition
livepatch: 'test_klp_atomic_replace': completing unpatching transition
livepatch: 'test_klp_atomic_replace': unpatching complete
% rmmod test_klp_atomic_replace
livepatch: kernel.ftrace_enabled = 1
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
% modprobe test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
livepatch: 'test_klp_callbacks_demo': patching complete
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% modprobe test_klp_callbacks_mod
livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
test_klp_callbacks_mod: test_klp_callbacks_mod_init
% rmmod test_klp_callbacks_mod
test_klp_callbacks_mod: test_klp_callbacks_mod_exit
test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo
% modprobe test_klp_callbacks_demo
livepatch: enabling patch 'test_klp_callbacks_demo'
livepatch: 'test_klp_callbacks_demo': initializing patching transition
test_klp_callbacks_demo: pre_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting patching transition
livepatch: 'test_klp_callbacks_demo': completing patching transition
test_klp_callbacks_demo: post_patch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': patching complete
% echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': starting unpatching transition
livepatch: 'test_klp_callbacks_demo': completing unpatching transition
test_klp_callbacks_demo: post_unpatch_callback: vmlinux
livepatch: 'test_klp_callbacks_demo': unpatching complete
% rmmod test_klp_callbacks_demo

[-- Attachment #6: dmesg-saved1.txt --]
[-- Type: text/plain, Size: 132443 bytes --]

[ 91.923385] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 91.923387] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 91.923388] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 91.923389] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 91.923403] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 91.923404] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 91.923405] test_klp_shadow_vars: got expected NULL result
[ 91.923406] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 91.923408] test_klp_shadow_vars: got expected NULL result
[ 91.923408] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 91.923410] test_klp_shadow_vars: got expected NULL result
[ 91.924707] % rmmod test_klp_shadow_vars
[ 92.043422] livepatch: kernel.ftrace_enabled = 1
[ 92.049886] ===== TEST: system state modification =====
[ 92.053102] % modprobe test_klp_state
[ 92.054575] livepatch: enabling patch 'test_klp_state'
[ 92.054577] livepatch: 'test_klp_state': initializing patching transition
[ 92.054599] test_klp_state: pre_patch_callback: vmlinux
[ 92.054600] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 92.054601] livepatch: 'test_klp_state': starting patching transition
[ 92.911051] livepatch: 'test_klp_state': completing patching transition
[ 92.911154] test_klp_state: post_patch_callback: vmlinux
[ 92.911156] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 92.911157] livepatch: 'test_klp_state': patching complete
[ 92.971706] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 92.971726] livepatch: 'test_klp_state': initializing unpatching transition
[ 92.971748] test_klp_state: pre_unpatch_callback: vmlinux
[ 92.971749] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 92.971750] livepatch: 'test_klp_state': starting unpatching transition
[ 94.751032] livepatch: 'test_klp_state': completing unpatching transition
[ 94.751134] test_klp_state: post_unpatch_callback: vmlinux
[ 94.751136] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 94.751137] livepatch: 'test_klp_state': unpatching complete
[ 94.788056] % rmmod test_klp_state
[ 94.845476] ===== TEST: taking over system state modification =====
[ 94.848473] % modprobe test_klp_state
[ 94.849942] livepatch: enabling patch 'test_klp_state'
[ 94.849944] livepatch: 'test_klp_state': initializing patching transition
[ 94.849964] test_klp_state: pre_patch_callback: vmlinux
[ 94.849965] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 94.849966] livepatch: 'test_klp_state': starting patching transition
[ 95.711025] livepatch: 'test_klp_state': completing patching transition
[ 95.711177] test_klp_state: post_patch_callback: vmlinux
[ 95.711179] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 95.711180] livepatch: 'test_klp_state': patching complete
[ 95.770236] % modprobe test_klp_state2
[ 95.771616] livepatch: enabling patch 'test_klp_state2'
[ 95.771618] livepatch: 'test_klp_state2': initializing patching transition
[ 95.771638] test_klp_state2: pre_patch_callback: vmlinux
[ 95.771639] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 95.771641] livepatch: 'test_klp_state2': starting patching transition
[ 97.081037] livepatch: 'test_klp_state2': completing patching transition
[ 97.081197] test_klp_state2: post_patch_callback: vmlinux
[ 97.081198] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 97.081199] livepatch: 'test_klp_state2': patching complete
[ 97.096083] % rmmod test_klp_state
[ 97.140728] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 97.140747] livepatch: 'test_klp_state2': initializing unpatching transition
[ 97.140768] test_klp_state2: pre_unpatch_callback: vmlinux
[ 97.140769] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 97.140770] livepatch: 'test_klp_state2': starting unpatching transition
[ 98.671037] livepatch: 'test_klp_state2': completing unpatching transition
[ 98.671175] test_klp_state2: post_unpatch_callback: vmlinux
[ 98.671177] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 98.671179] livepatch: 'test_klp_state2': unpatching complete
[ 98.755809] % rmmod test_klp_state2
[ 98.815472] ===== TEST: compatible cumulative livepatches =====
[ 98.818642] % modprobe test_klp_state2
[ 98.820299] livepatch: enabling patch 'test_klp_state2'
[ 98.820301] livepatch: 'test_klp_state2': initializing patching transition
[ 98.820328] test_klp_state2: pre_patch_callback: vmlinux
[ 98.820330] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 98.820331] livepatch: 'test_klp_state2': starting patching transition
[ 100.031067] livepatch: 'test_klp_state2': completing patching transition
[ 100.031184] test_klp_state2: post_patch_callback: vmlinux
[ 100.031185] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 100.031187] livepatch: 'test_klp_state2': patching complete
[ 100.045573] % modprobe test_klp_state3
[ 100.047069] livepatch: enabling patch 'test_klp_state3'
[ 100.047072] livepatch: 'test_klp_state3': initializing patching transition
[ 100.047093] test_klp_state3: pre_patch_callback: vmlinux
[ 100.047094] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 100.047095] livepatch: 'test_klp_state3': starting patching transition
[ 101.711037] livepatch: 'test_klp_state3': completing patching transition
[ 101.711204] test_klp_state3: post_patch_callback: vmlinux
[ 101.711206] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 101.711207] livepatch: 'test_klp_state3': patching complete
[ 101.778205] % rmmod test_klp_state2
[ 101.853923] % modprobe test_klp_state2
[ 101.855447] livepatch: enabling patch 'test_klp_state2'
[ 101.855449] livepatch: 'test_klp_state2': initializing patching transition
[ 101.855470] test_klp_state2: pre_patch_callback: vmlinux
[ 101.855472] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 101.855473] livepatch: 'test_klp_state2': starting patching transition
[ 103.630965] livepatch: 'test_klp_state2': completing patching transition
[ 103.631070] test_klp_state2: post_patch_callback: vmlinux
[ 103.631071] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 103.631073] livepatch: 'test_klp_state2': patching complete
[ 103.686892] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 103.686911] livepatch: 'test_klp_state2': initializing unpatching transition
[ 103.686932] test_klp_state2: pre_unpatch_callback: vmlinux
[ 103.686933] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 103.686935] livepatch: 'test_klp_state2': starting unpatching transition
[ 105.150996] livepatch: 'test_klp_state2': completing unpatching transition
[ 105.151097] test_klp_state2: post_unpatch_callback: vmlinux
[ 105.151099] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 105.151100] livepatch: 'test_klp_state2': unpatching complete
[ 105.199966] % rmmod test_klp_state2
[ 105.281410] % rmmod test_klp_state3
[ 105.355459] ===== TEST: incompatible cumulative livepatches =====
[ 105.358650] % modprobe test_klp_state2
[ 105.360034] livepatch: enabling patch 'test_klp_state2'
[ 105.360035] livepatch: 'test_klp_state2': initializing patching transition
[ 105.360056] test_klp_state2: pre_patch_callback: vmlinux
[ 105.360057] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 105.360058] livepatch: 'test_klp_state2': starting patching transition
[ 107.071045] livepatch: 'test_klp_state2': completing patching transition
[ 107.071145] test_klp_state2: post_patch_callback: vmlinux
[ 107.071147] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 107.071148] livepatch: 'test_klp_state2': patching complete
[ 107.087110] % modprobe test_klp_state
[ 107.088695] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 107.190677] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 107.190716] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 107.190734] livepatch: 'test_klp_state2': initializing unpatching transition
[ 107.190753] test_klp_state2: pre_unpatch_callback: vmlinux
[ 107.190754] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 107.190755] livepatch: 'test_klp_state2': starting unpatching transition
[ 108.111015] livepatch: 'test_klp_state2': completing unpatching transition
[ 108.111118] test_klp_state2: post_unpatch_callback: vmlinux
[ 108.111120] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 108.111121] livepatch: 'test_klp_state2': unpatching complete
[ 108.200035] % rmmod test_klp_state2
[ 108.301787] livepatch: kernel.ftrace_enabled = 1
[ 108.308056] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 108.309828] livepatch: kernel.ftrace_enabled = 0
[ 108.309890] % modprobe test_klp_livepatch
[ 108.311242] livepatch: enabling patch 'test_klp_livepatch'
[ 108.311244] livepatch: 'test_klp_livepatch': initializing patching transition
[ 108.311267] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 108.311270] livepatch: failed to patch object 'vmlinux'
[ 108.311271] livepatch: failed to enable patch 'test_klp_livepatch'
[ 108.311272] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 108.311273] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 108.311382] livepatch: 'test_klp_livepatch': unpatching complete
[ 108.500681] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 108.502529] livepatch: kernel.ftrace_enabled = 1
[ 108.505528] % modprobe test_klp_livepatch
[ 108.506881] livepatch: enabling patch 'test_klp_livepatch'
[ 108.506882] livepatch: 'test_klp_livepatch': initializing patching transition
[ 108.508030] livepatch: 'test_klp_livepatch': starting patching transition
[ 109.790992] livepatch: 'test_klp_livepatch': completing patching transition
[ 109.791146] livepatch: 'test_klp_livepatch': patching complete
[ 109.834645] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 109.835658] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 109.835676] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 109.835692] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 110.831016] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 110.832521] livepatch: 'test_klp_livepatch': unpatching complete
[ 110.845082] % rmmod test_klp_livepatch
[ 110.962324] livepatch: kernel.ftrace_enabled = 1
[ 110.969070] ===== TEST: sysfs test =====
[ 110.972147] % modprobe test_klp_livepatch
[ 110.973575] livepatch: enabling patch 'test_klp_livepatch'
[ 110.973578] livepatch: 'test_klp_livepatch': initializing patching transition
[ 110.974676] livepatch: 'test_klp_livepatch': starting patching transition
[ 112.671034] livepatch: 'test_klp_livepatch': completing patching transition
[ 112.671137] livepatch: 'test_klp_livepatch': patching complete
[ 112.711815] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 112.711832] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 112.711853] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 113.711046] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 113.712556] livepatch: 'test_klp_livepatch': unpatching complete
[ 113.721666] % rmmod test_klp_livepatch
[ 113.786348] ===== TEST: sysfs test object/patched =====
[ 113.789508] % modprobe test_klp_callbacks_demo
[ 113.791059] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 113.791061] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 113.791082] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 113.791083] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 114.831046] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 114.831155] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 114.831157] livepatch: 'test_klp_callbacks_demo': patching complete
[ 114.915700] % modprobe test_klp_callbacks_mod
[ 114.917199] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 114.917201] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 114.917203] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 114.917220] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 114.919407] % rmmod test_klp_callbacks_mod
[ 114.920563] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 114.920578] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 114.920580] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 114.920582] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 114.991648] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 114.991667] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 114.991690] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 114.991692] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 116.671055] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 116.671159] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 116.671177] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 116.706610] % rmmod test_klp_callbacks_demo
[ 116.853345] livepatch: kernel.ftrace_enabled = 1
[ 116.860222] ===== TEST: basic function patching =====
[ 116.863329] % modprobe test_klp_livepatch
[ 116.864936] livepatch: enabling patch 'test_klp_livepatch'
[ 116.864938] livepatch: 'test_klp_livepatch': initializing patching transition
[ 116.866224] livepatch: 'test_klp_livepatch': starting patching transition
[ 117.791071] livepatch: 'test_klp_livepatch': completing patching transition
[ 117.791193] livepatch: 'test_klp_livepatch': patching complete
[ 117.885360] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 117.885397] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 117.885424] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 118.750980] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 118.752543] livepatch: 'test_klp_livepatch': unpatching complete
[ 118.794530] % rmmod test_klp_livepatch
[ 118.897157] ===== TEST: multiple livepatches =====
[ 118.900009] % modprobe test_klp_livepatch
[ 118.901338] livepatch: enabling patch 'test_klp_livepatch'
[ 118.901341] livepatch: 'test_klp_livepatch': initializing patching transition
[ 118.902413] livepatch: 'test_klp_livepatch': starting patching transition
[ 119.711012] livepatch: 'test_klp_livepatch': completing patching transition
[ 119.711114] livepatch: 'test_klp_livepatch': patching complete
[ 119.718796] test_klp_livepatch: this has been live patched
[ 119.723001] % modprobe test_klp_atomic_replace replace=0
[ 119.724612] livepatch: enabling patch 'test_klp_atomic_replace'
[ 119.724614] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 119.725833] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 120.751022] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 120.751130] livepatch: 'test_klp_atomic_replace': patching complete
[ 120.847005] test_klp_livepatch: this has been live patched
[ 120.847986] test_klp_atomic_replace: this has been live patched
[ 120.848118] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 120.848138] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 120.848158] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 121.710988] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 121.712378] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 121.757104] % rmmod test_klp_atomic_replace
[ 121.801514] test_klp_livepatch: this has been live patched
[ 121.802520] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 121.802538] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 121.802554] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 122.761006] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 122.762405] livepatch: 'test_klp_livepatch': unpatching complete
[ 122.812386] % rmmod test_klp_livepatch
[ 122.888229] ===== TEST: atomic replace livepatch =====
[ 122.891365] % modprobe test_klp_livepatch
[ 122.892757] livepatch: enabling patch 'test_klp_livepatch'
[ 122.892759] livepatch: 'test_klp_livepatch': initializing patching transition
[ 122.893900] livepatch: 'test_klp_livepatch': starting patching transition
[ 123.871073] livepatch: 'test_klp_livepatch': completing patching transition
[ 123.871179] livepatch: 'test_klp_livepatch': patching complete
[ 123.913201] test_klp_livepatch: this has been live patched
[ 123.917508] % modprobe test_klp_atomic_replace replace=1
[ 123.918994] livepatch: enabling patch 'test_klp_atomic_replace'
[ 123.918996] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 123.920106] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 124.751016] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 124.752390] livepatch: 'test_klp_atomic_replace': patching complete
[ 124.838483] test_klp_atomic_replace: this has been live patched
[ 124.839576] % rmmod test_klp_livepatch
[ 124.892319] test_klp_atomic_replace: this has been live patched
[ 124.892494] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 124.892513] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 124.892529] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 125.711010] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 125.712510] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 125.801651] % rmmod test_klp_atomic_replace
[ 125.905407] livepatch: kernel.ftrace_enabled = 1
[ 125.912644] ===== TEST: target module before livepatch =====
[ 125.915835] % modprobe test_klp_callbacks_mod
[ 125.917236] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 125.920790] % modprobe test_klp_callbacks_demo
[ 125.922345] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 125.922347] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 125.922366] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 125.922367] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 125.922369] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 127.711053] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 127.711189] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 127.711191] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 127.711193] livepatch: 'test_klp_callbacks_demo': patching complete
[ 127.755072] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 127.755091] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 127.755106] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 127.755107] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 127.755109] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 128.671068] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 128.671171] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 128.671172] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 128.671174] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 128.765224] % rmmod test_klp_callbacks_demo
[ 128.811614] % rmmod test_klp_callbacks_mod
[ 128.812787] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 128.887174] ===== TEST: module_coming notifier =====
[ 128.890422] % modprobe test_klp_callbacks_demo
[ 128.892042] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 128.892045] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 128.892067] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 128.892068] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 129.791064] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 129.791173] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 129.791175] livepatch: 'test_klp_callbacks_demo': patching complete
[ 129.812482] % modprobe test_klp_callbacks_mod
[ 129.813968] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 129.813971] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 129.813973] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 129.813990] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 129.814364] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 129.814383] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 129.814404] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 129.814405] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 129.814407] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 130.671041] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 130.671174] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 130.671176] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 130.671178] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 130.723905] % rmmod test_klp_callbacks_demo
[ 130.771625] % rmmod test_klp_callbacks_mod
[ 130.772641] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 130.826909] ===== TEST: module_going notifier =====
[ 130.830202] % modprobe test_klp_callbacks_mod
[ 130.831538] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 130.834984] % modprobe test_klp_callbacks_demo
[ 130.836549] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 130.836552] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 130.836573] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 130.836574] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 130.836576] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 131.710974] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 131.711075] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 131.711077] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 131.711079] livepatch: 'test_klp_callbacks_demo': patching complete
[ 131.754244] % rmmod test_klp_callbacks_mod
[ 131.755454] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 131.755471] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 131.755473] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 131.755475] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 131.800736] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 131.800754] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 131.800775] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 131.800776] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 133.071027] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 133.071132] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 133.071134] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 133.113297] % rmmod test_klp_callbacks_demo
[ 133.177434] ===== TEST: module_coming and module_going notifiers =====
[ 133.180622] % modprobe test_klp_callbacks_demo
[ 133.182228] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 133.182231] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 133.182251] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 133.182252] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 134.751073] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 134.751184] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 134.751187] livepatch: 'test_klp_callbacks_demo': patching complete
[ 134.813811] % modprobe test_klp_callbacks_mod
[ 134.815280] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 134.815282] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 134.815284] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 134.815302] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 134.816526] % rmmod test_klp_callbacks_mod
[ 134.817758] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 134.817773] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 134.817775] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 134.817776] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 134.940787] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 134.940806] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 134.940828] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 134.940829] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 135.950967] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 135.951069] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 135.951071] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 136.051536] % rmmod test_klp_callbacks_demo
[ 136.117597] ===== TEST: target module not present =====
[ 136.120836] % modprobe test_klp_callbacks_demo
[ 136.122441] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 136.122444] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 136.122476] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 136.122477] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 137.871054] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 137.871179] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 137.871181] livepatch: 'test_klp_callbacks_demo': patching complete
[ 137.952610] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 137.952631] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 137.952666] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 137.952668] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 139.071051] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 139.071152] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 139.071154] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 139.164250] % rmmod test_klp_callbacks_demo
[ 139.257782] ===== TEST: pre-patch callback -ENODEV =====
[ 139.260610] % modprobe test_klp_callbacks_mod
[ 139.261932] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 139.262266] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 139.263690] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 139.263692] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 139.263711] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 139.263712] livepatch: pre-patch callback failed for object 'vmlinux'
[ 139.263713] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 139.263714] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 139.263715] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 139.263820] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 139.410666] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 139.411683] % rmmod test_klp_callbacks_mod
[ 139.412838] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 139.477858] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 139.480794] % modprobe test_klp_callbacks_demo
[ 139.482279] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 139.482282] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 139.482303] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 139.482304] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 140.831122] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 140.831279] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 140.831281] livepatch: 'test_klp_callbacks_demo': patching complete
[ 140.908032] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 140.908963] % modprobe test_klp_callbacks_mod
[ 140.910243] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 140.910246] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 140.910248] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 140.910249] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 141.030671] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 141.030722] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 141.030738] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 141.030776] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 141.030777] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 141.789613] crw_info : CRW reports slct=0, oflw=0, chn=0, rsc=B, anc=0, erc=0, rsid=0
[ 142.031077] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 142.031196] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 142.031198] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 142.041387] % rmmod test_klp_callbacks_demo
[ 142.108391] ===== TEST: multiple target modules =====
[ 142.111495] % modprobe test_klp_callbacks_busy block_transition=N
[ 142.112950] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 142.112954] test_klp_callbacks_busy: busymod_work_func enter
[ 142.112956] test_klp_callbacks_busy: busymod_work_func exit
[ 142.116379] % modprobe test_klp_callbacks_demo
[ 142.117801] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 142.117802] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 142.117840] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 142.117841] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 142.119215] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 143.070935] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 143.071035] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 143.071037] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 143.071039] livepatch: 'test_klp_callbacks_demo': patching complete
[ 143.141657] % modprobe test_klp_callbacks_mod
[ 143.143195] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 143.143198] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.143200] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.143236] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 143.144563] % rmmod test_klp_callbacks_mod
[ 143.145857] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 143.145873] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.145875] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 143.145876] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.220815] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 143.220851] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 143.220872] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 143.220873] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 143.220875] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 144.031007] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 144.032819] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 144.032821] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 144.032822] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 144.130433] % rmmod test_klp_callbacks_demo
[ 144.211697] % rmmod test_klp_callbacks_busy
[ 144.213003] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 144.308603] ===== TEST: busy target module =====
[ 144.311786] % modprobe test_klp_callbacks_busy block_transition=Y
[ 144.313186] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 144.313190] test_klp_callbacks_busy: busymod_work_func enter
[ 144.316644] % modprobe test_klp_callbacks_demo
[ 144.318094] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 144.318095] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 144.318115] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 144.318116] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 144.319516] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 144.324787] % modprobe test_klp_callbacks_mod
[ 144.326157] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 144.326159] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 144.326174] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 144.327454] % rmmod test_klp_callbacks_mod
[ 144.328546] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 144.328561] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 144.328563] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 144.410842] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 144.410861] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 144.410966] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 146.990932] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 146.992683] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 146.992685] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 146.992687] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 147.033638] % rmmod test_klp_callbacks_demo
[ 147.121645] % rmmod test_klp_callbacks_busy
[ 147.130314] test_klp_callbacks_busy: busymod_work_func exit
[ 147.130323] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 147.208177] ===== TEST: multiple livepatches =====
[ 147.211079] % modprobe test_klp_callbacks_demo
[ 147.212707] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 147.212710] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 147.212730] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 147.212731] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 148.031059] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 148.031160] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 148.031162] livepatch: 'test_klp_callbacks_demo': patching complete
[ 148.132098] % modprobe test_klp_callbacks_demo2
[ 148.133641] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 148.133644] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 148.133664] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 148.133666] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 149.151067] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 149.151184] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 149.151186] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 149.152975] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 149.152995] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 149.153015] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 149.153016] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 149.951022] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 149.951125] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 149.951127] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 149.960854] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 149.960873] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 149.960888] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 149.960890] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 150.991050] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 150.991152] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 150.991154] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 151.071631] % rmmod test_klp_callbacks_demo2
[ 151.131726] % rmmod test_klp_callbacks_demo
[ 151.229250] ===== TEST: atomic replace =====
[ 151.232455] % modprobe test_klp_callbacks_demo
[ 151.234085] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 151.234087] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 151.234107] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 151.234108] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 152.031077] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 152.031231] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 152.031233] livepatch: 'test_klp_callbacks_demo': patching complete
[ 152.052914] % modprobe test_klp_callbacks_demo2 replace=1
[ 152.054593] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 152.054595] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 152.054616] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 152.054618] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 153.071103] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 153.071224] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 153.071226] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 153.073798] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 153.073819] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 153.073840] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 153.073841] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 154.031008] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 154.031113] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 154.031116] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 154.084458] % rmmod test_klp_callbacks_demo2
[ 154.161744] % rmmod test_klp_callbacks_demo
[ 154.245192] livepatch: kernel.ftrace_enabled = 1
[ 154.253557] ===== TEST: basic shadow variable API =====
[ 154.256693] % modprobe test_klp_shadow_vars
[ 154.258215] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 154.258218] test_klp_shadow_vars: got expected NULL result
[ 154.258220] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 154.258221] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 154.258224] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 154.258226] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 154.258228] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 154.258229] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 154.258232] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 154.258233] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 154.258235] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 154.258236] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 154.258239] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 154.258240] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 154.258242] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 154.258243] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 154.258244] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 154.258246] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 154.258268] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 154.258269] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 154.258270] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 154.258271] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 154.258273] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 154.258274] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 154.258275] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 154.258276] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 154.258278] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 154.258280] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 154.258281] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 154.258283] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 154.258284] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 154.258286] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 154.258287] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 154.258289] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 154.258290] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 154.258292] test_klp_shadow_vars: got expected NULL result
[ 154.258292] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 154.258294] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 154.258295] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 154.258297] test_klp_shadow_vars: got expected NULL result
[ 154.258297] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 154.258299] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 154.258300] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 154.258301] test_klp_shadow_vars: got expected NULL result
[ 154.258302] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 154.258303] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 154.258304] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 154.258306] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 154.258307] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 154.258308] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 154.258317] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 154.258318] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 154.258319] test_klp_shadow_vars: got expected NULL result
[ 154.258320] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 154.258321] test_klp_shadow_vars: got expected NULL result
[ 154.258322] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 154.258323] test_klp_shadow_vars: got expected NULL result
[ 154.259549] % rmmod test_klp_shadow_vars
[ 154.364539] livepatch: kernel.ftrace_enabled = 1
[ 154.373051] ===== TEST: system state modification =====
[ 154.376288] % modprobe test_klp_state
[ 154.377808] livepatch: enabling patch 'test_klp_state'
[ 154.377810] livepatch: 'test_klp_state': initializing patching transition
[ 154.377832] test_klp_state: pre_patch_callback: vmlinux
[ 154.377833] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 154.377834] livepatch: 'test_klp_state': starting patching transition
[ 155.951098] livepatch: 'test_klp_state': completing patching transition
[ 155.951196] test_klp_state: post_patch_callback: vmlinux
[ 155.951198] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 155.951199] livepatch: 'test_klp_state': patching complete
[ 156.005967] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 156.005986] livepatch: 'test_klp_state': initializing unpatching transition
[ 156.006003] test_klp_state: pre_unpatch_callback: vmlinux
[ 156.006004] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 156.006005] livepatch: 'test_klp_state': starting unpatching transition
[ 156.991099] livepatch: 'test_klp_state': completing unpatching transition
[ 156.991197] test_klp_state: post_unpatch_callback: vmlinux
[ 156.991199] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 156.991201] livepatch: 'test_klp_state': unpatching complete
[ 157.016096] % rmmod test_klp_state
[ 157.119439] ===== TEST: taking over system state modification =====
[ 157.122658] % modprobe test_klp_state
[ 157.124299] livepatch: enabling patch 'test_klp_state'
[ 157.124302] livepatch: 'test_klp_state': initializing patching transition
[ 157.124324] test_klp_state: pre_patch_callback: vmlinux
[ 157.124325] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 157.124326] livepatch: 'test_klp_state': starting patching transition
[ 158.031004] livepatch: 'test_klp_state': completing patching transition
[ 158.031105] test_klp_state: post_patch_callback: vmlinux
[ 158.031107] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 158.031109] livepatch: 'test_klp_state': patching complete
[ 158.044647] % modprobe test_klp_state2
[ 158.046174] livepatch: enabling patch 'test_klp_state2'
[ 158.046176] livepatch: 'test_klp_state2': initializing patching transition
[ 158.046194] test_klp_state2: pre_patch_callback: vmlinux
[ 158.046195] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 158.046197] livepatch: 'test_klp_state2': starting patching transition
[ 158.991060] livepatch: 'test_klp_state2': completing patching transition
[ 158.991184] test_klp_state2: post_patch_callback: vmlinux
[ 158.991185] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 158.991186] livepatch: 'test_klp_state2': patching complete
[ 159.065518] % rmmod test_klp_state
[ 159.130779] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 159.130797] livepatch: 'test_klp_state2': initializing unpatching transition
[ 159.130818] test_klp_state2: pre_unpatch_callback: vmlinux
[ 159.130819] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 159.130820] livepatch: 'test_klp_state2': starting unpatching transition
[ 160.911085] livepatch: 'test_klp_state2': completing unpatching transition
[ 160.911224] test_klp_state2: post_unpatch_callback: vmlinux
[ 160.911226] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 160.911227] livepatch: 'test_klp_state2': unpatching complete
[ 160.948036] % rmmod test_klp_state2
[ 161.059424] ===== TEST: compatible cumulative livepatches =====
[ 161.062474] % modprobe test_klp_state2
[ 161.063931] livepatch: enabling patch 'test_klp_state2'
[ 161.063934] livepatch: 'test_klp_state2': initializing patching transition
[ 161.063957] test_klp_state2: pre_patch_callback: vmlinux
[ 161.063958] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 161.063959] livepatch: 'test_klp_state2': starting patching transition
[ 162.671079] livepatch: 'test_klp_state2': completing patching transition
[ 162.671184] test_klp_state2: post_patch_callback: vmlinux
[ 162.671186] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 162.671188] livepatch: 'test_klp_state2': patching complete
[ 162.694355] % modprobe test_klp_state3
[ 162.695852] livepatch: enabling patch 'test_klp_state3'
[ 162.695855] livepatch: 'test_klp_state3': initializing patching transition
[ 162.695877] test_klp_state3: pre_patch_callback: vmlinux
[ 162.695878] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 162.695879] livepatch: 'test_klp_state3': starting patching transition
[ 163.951036] livepatch: 'test_klp_state3': completing patching transition
[ 163.951139] test_klp_state3: post_patch_callback: vmlinux
[ 163.951141] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 163.951142] livepatch: 'test_klp_state3': patching complete
[ 164.019372] % rmmod test_klp_state2
[ 164.093821] % modprobe test_klp_state2
[ 164.095460] livepatch: enabling patch 'test_klp_state2'
[ 164.095463] livepatch: 'test_klp_state2': initializing patching transition
[ 164.095484] test_klp_state2: pre_patch_callback: vmlinux
[ 164.095485] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 164.095487] livepatch: 'test_klp_state2': starting patching transition
[ 165.871122] livepatch: 'test_klp_state2': completing patching transition
[ 165.871280] test_klp_state2: post_patch_callback: vmlinux
[ 165.871281] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 165.871283] livepatch: 'test_klp_state2': patching complete
[ 165.926447] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 165.926486] livepatch: 'test_klp_state2': initializing unpatching transition
[ 165.926507] test_klp_state2: pre_unpatch_callback: vmlinux
[ 165.926508] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 165.926509] livepatch: 'test_klp_state2': starting unpatching transition
[ 166.831076] livepatch: 'test_klp_state2': completing unpatching transition
[ 166.831199] test_klp_state2: post_unpatch_callback: vmlinux
[ 166.831201] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 166.831203] livepatch: 'test_klp_state2': unpatching complete
[ 166.835243] % rmmod test_klp_state2
[ 166.901777] % rmmod test_klp_state3
[ 166.969742] ===== TEST: incompatible cumulative livepatches =====
[ 166.972899] % modprobe test_klp_state2
[ 166.974399] livepatch: enabling patch 'test_klp_state2'
[ 166.974401] livepatch: 'test_klp_state2': initializing patching transition
[ 166.974420] test_klp_state2: pre_patch_callback: vmlinux
[ 166.974422] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 166.974423] livepatch: 'test_klp_state2': starting patching transition
[ 168.681063] livepatch: 'test_klp_state2': completing patching transition
[ 168.681165] test_klp_state2: post_patch_callback: vmlinux
[ 168.681167] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 168.681169] livepatch: 'test_klp_state2': patching complete
[ 168.703685] % modprobe test_klp_state
[ 168.705124] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 168.860784] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 168.860833] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 168.860851] livepatch: 'test_klp_state2': initializing unpatching transition
[ 168.860909] test_klp_state2: pre_unpatch_callback: vmlinux
[ 168.860910] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 168.860911] livepatch: 'test_klp_state2': starting unpatching transition
[ 169.871047] livepatch: 'test_klp_state2': completing unpatching transition
[ 169.871186] test_klp_state2: post_unpatch_callback: vmlinux
[ 169.871188] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 169.871189] livepatch: 'test_klp_state2': unpatching complete
[ 169.971989] % rmmod test_klp_state2
[ 170.114423] livepatch: kernel.ftrace_enabled = 1
[ 170.122713] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 170.124491] livepatch: kernel.ftrace_enabled = 0
[ 170.124552] % modprobe test_klp_livepatch
[ 170.125916] livepatch: enabling patch 'test_klp_livepatch'
[ 170.125918] livepatch: 'test_klp_livepatch': initializing patching transition
[ 170.125942] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 170.125945] livepatch: failed to patch object 'vmlinux'
[ 170.125946] livepatch: failed to enable patch 'test_klp_livepatch'
[ 170.125947] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 170.125948] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 170.126056] livepatch: 'test_klp_livepatch': unpatching complete
[ 170.260823] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 170.262584] livepatch: kernel.ftrace_enabled = 1
[ 170.265470] % modprobe test_klp_livepatch
[ 170.266711] livepatch: enabling patch 'test_klp_livepatch'
[ 170.266712] livepatch: 'test_klp_livepatch': initializing patching transition
[ 170.267782] livepatch: 'test_klp_livepatch': starting patching transition
[ 171.791076] livepatch: 'test_klp_livepatch': completing patching transition
[ 171.791226] livepatch: 'test_klp_livepatch': patching complete
[ 171.797053] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 171.798001] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 171.798020] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 171.798035] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 172.831042] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 172.832563] livepatch: 'test_klp_livepatch': unpatching complete
[ 172.908336] % rmmod test_klp_livepatch
[ 172.983414] livepatch: kernel.ftrace_enabled = 1
[ 172.991780] ===== TEST: sysfs test =====
[ 172.994796] % modprobe test_klp_livepatch
[ 172.996248] livepatch: enabling patch 'test_klp_livepatch'
[ 172.996250] livepatch: 'test_klp_livepatch': initializing patching transition
[ 172.997482] livepatch: 'test_klp_livepatch': starting patching transition
[ 174.671056] livepatch: 'test_klp_livepatch': completing patching transition
[ 174.671194] livepatch: 'test_klp_livepatch': patching complete
[ 174.734417] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 174.734432] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 174.734466] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 175.711081] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 175.712575] livepatch: 'test_klp_livepatch': unpatching complete
[ 175.744085] % rmmod test_klp_livepatch
[ 175.808160] ===== TEST: sysfs test object/patched =====
[ 175.810980] % modprobe test_klp_callbacks_demo
[ 175.812208] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 175.812210] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 175.812230] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 175.812231] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 176.911051] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 176.911161] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 176.911163] livepatch: 'test_klp_callbacks_demo': patching complete
[ 176.934731] % modprobe test_klp_callbacks_mod
[ 176.935992] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 176.935994] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 176.935996] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 176.936013] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 176.937945] % rmmod test_klp_callbacks_mod
[ 176.938946] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 176.938961] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 176.938963] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 176.938964] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 176.991789] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 176.991808] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 176.991828] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 176.991830] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 178.191025] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 178.191124] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 178.191126] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 178.202777] % rmmod test_klp_callbacks_demo
[ 178.318263] livepatch: kernel.ftrace_enabled = 1
[ 178.326039] ===== TEST: basic function patching =====
[ 178.328835] % modprobe test_klp_livepatch
[ 178.330156] livepatch: enabling patch 'test_klp_livepatch'
[ 178.330158] livepatch: 'test_klp_livepatch': initializing patching transition
[ 178.331256] livepatch: 'test_klp_livepatch': starting patching transition
[ 179.711061] livepatch: 'test_klp_livepatch': completing patching transition
[ 179.711168] livepatch: 'test_klp_livepatch': patching complete
[ 179.757176] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 179.757196] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 179.757219] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 180.751089] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 180.752537] livepatch: 'test_klp_livepatch': unpatching complete
[ 180.767212] % rmmod test_klp_livepatch
[ 180.830459] ===== TEST: multiple livepatches =====
[ 180.833537] % modprobe test_klp_livepatch
[ 180.834932] livepatch: enabling patch 'test_klp_livepatch'
[ 180.834933] livepatch: 'test_klp_livepatch': initializing patching transition
[ 180.836072] livepatch: 'test_klp_livepatch': starting patching transition
[ 181.711030] livepatch: 'test_klp_livepatch': completing patching transition
[ 181.711129] livepatch: 'test_klp_livepatch': patching complete
[ 181.753931] test_klp_livepatch: this has been live patched
[ 181.758075] % modprobe test_klp_atomic_replace replace=0
[ 181.759630] livepatch: enabling patch 'test_klp_atomic_replace'
[ 181.759632] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 181.760761] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 182.751097] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 182.751210] livepatch: 'test_klp_atomic_replace': patching complete
[ 182.779987] test_klp_livepatch: this has been live patched
[ 182.780949] test_klp_atomic_replace: this has been live patched
[ 182.781132] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 182.781152] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 182.781172] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 183.711178] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 183.712627] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 183.791173] % rmmod test_klp_atomic_replace
[ 183.881579] test_klp_livepatch: this has been live patched
[ 183.882598] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 183.882616] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 183.882634] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 184.751183] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 184.752715] livepatch: 'test_klp_livepatch': unpatching complete
[ 184.791884] % rmmod test_klp_livepatch
[ 184.921013] ===== TEST: atomic replace livepatch =====
[ 184.924117] % modprobe test_klp_livepatch
[ 184.925507] livepatch: enabling patch 'test_klp_livepatch'
[ 184.925509] livepatch: 'test_klp_livepatch': initializing patching transition
[ 184.926666] livepatch: 'test_klp_livepatch': starting patching transition
[ 185.791155] livepatch: 'test_klp_livepatch': completing patching transition
[ 185.791263] livepatch: 'test_klp_livepatch': patching complete
[ 185.844460] test_klp_livepatch: this has been live patched
[ 185.848202] % modprobe test_klp_atomic_replace replace=1
[ 185.849784] livepatch: enabling patch 'test_klp_atomic_replace'
[ 185.849786] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 185.850899] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 186.751268] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 186.752724] livepatch: 'test_klp_atomic_replace': patching complete
[ 186.769820] test_klp_atomic_replace: this has been live patched
[ 186.771001] % rmmod test_klp_livepatch
[ 186.842577] test_klp_atomic_replace: this has been live patched
[ 186.842713] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 186.842732] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 186.842752] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 187.711155] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 187.712686] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 187.751949] % rmmod test_klp_atomic_replace
[ 187.875356] livepatch: kernel.ftrace_enabled = 1
[ 187.883440] ===== TEST: target module before livepatch =====
[ 187.886603] % modprobe test_klp_callbacks_mod
[ 187.887986] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 187.891200] % modprobe test_klp_callbacks_demo
[ 187.892630] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 187.892632] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 187.892658] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 187.892659] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 187.892660] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 189.071175] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 189.071347] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 189.071350] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 189.071351] livepatch: 'test_klp_callbacks_demo': patching complete
[ 189.113416] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 189.113437] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 189.113459] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 189.113460] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 189.113461] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 190.831161] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 190.831300] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 190.831303] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 190.831304] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 190.928590] % rmmod test_klp_callbacks_demo
[ 190.981743] % rmmod test_klp_callbacks_mod
[ 190.982844] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 191.068717] ===== TEST: module_coming notifier =====
[ 191.071881] % modprobe test_klp_callbacks_demo
[ 191.073324] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 191.073326] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 191.073345] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 191.073347] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 192.761063] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 192.761166] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 192.761168] livepatch: 'test_klp_callbacks_demo': patching complete
[ 192.804600] % modprobe test_klp_callbacks_mod
[ 192.806035] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 192.806038] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 192.806040] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 192.806058] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 192.806411] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 192.806429] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 192.806450] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 192.806452] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 192.806453] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 193.951153] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 193.951254] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 193.951256] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 193.951257] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 194.016717] % rmmod test_klp_callbacks_demo
[ 194.111640] % rmmod test_klp_callbacks_mod
[ 194.112834] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 194.179536] ===== TEST: module_going notifier =====
[ 194.182529] % modprobe test_klp_callbacks_mod
[ 194.183902] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 194.186979] % modprobe test_klp_callbacks_demo
[ 194.188306] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 194.188308] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 194.188334] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 194.188336] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 194.188337] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 195.871146] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 195.871247] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 195.871248] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 195.871250] livepatch: 'test_klp_callbacks_demo': patching complete
[ 195.917690] % rmmod test_klp_callbacks_mod
[ 195.918839] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 195.918874] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 195.918876] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 195.918877] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 196.000811] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 196.000829] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 196.000847] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 196.000848] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 196.831134] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 196.831258] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 196.831276] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 196.909237] % rmmod test_klp_callbacks_demo
[ 196.999252] ===== TEST: module_coming and module_going notifiers =====
[ 197.002219] % modprobe test_klp_callbacks_demo
[ 197.003720] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 197.003722] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 197.003761] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 197.003762] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 197.951097] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 197.951197] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 197.951199] livepatch: 'test_klp_callbacks_demo': patching complete
[ 198.023498] % modprobe test_klp_callbacks_mod
[ 198.024865] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 198.024868] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 198.024870] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 198.024887] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 198.026043] % rmmod test_klp_callbacks_mod
[ 198.027153] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 198.027169] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 198.027171] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 198.027172] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 198.110789] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 198.110807] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 198.110828] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 198.110830] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 199.881138] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 199.881237] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 199.881239] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 199.925505] % rmmod test_klp_callbacks_demo
[ 199.999151] ===== TEST: target module not present =====
[ 200.002145] % modprobe test_klp_callbacks_demo
[ 200.003699] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 200.003701] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 200.003721] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 200.003723] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 200.911124] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 200.911242] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 200.911244] livepatch: 'test_klp_callbacks_demo': patching complete
[ 200.919249] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 200.919267] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 200.919288] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 200.919289] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 201.951160] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 201.951277] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 201.951279] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 202.028867] % rmmod test_klp_callbacks_demo
[ 202.119054] ===== TEST: pre-patch callback -ENODEV =====
[ 202.122040] % modprobe test_klp_callbacks_mod
[ 202.123508] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 202.123862] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 202.125317] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 202.125319] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 202.125341] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 202.125342] livepatch: pre-patch callback failed for object 'vmlinux'
[ 202.125343] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 202.125344] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 202.125345] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 202.125496] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 202.250789] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 202.251582] % rmmod test_klp_callbacks_mod
[ 202.252724] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 202.348771] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 202.351804] % modprobe test_klp_callbacks_demo
[ 202.353355] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 202.353357] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 202.353392] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 202.353393] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 203.951197] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 203.951351] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 203.951353] livepatch: 'test_klp_callbacks_demo': patching complete
[ 203.979670] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 203.980548] % modprobe test_klp_callbacks_mod
[ 203.981920] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 203.981922] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 203.981924] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 203.981925] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 204.130800] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 204.130845] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 204.130862] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 204.130882] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 204.130884] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 205.951235] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 205.951341] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 205.951343] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 206.046975] % rmmod test_klp_callbacks_demo
[ 206.128457] ===== TEST: multiple target modules =====
[ 206.131336] % modprobe test_klp_callbacks_busy block_transition=N
[ 206.132672] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 206.132677] test_klp_callbacks_busy: busymod_work_func enter
[ 206.132679] test_klp_callbacks_busy: busymod_work_func exit
[ 206.135860] % modprobe test_klp_callbacks_demo
[ 206.137206] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 206.137207] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 206.137228] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 206.137229] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 206.138577] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 207.871214] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 207.871314] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 207.871316] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 207.871318] livepatch: 'test_klp_callbacks_demo': patching complete
[ 207.969934] % modprobe test_klp_callbacks_mod
[ 207.971401] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 207.971404] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 207.971406] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 207.971423] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 207.972674] % rmmod test_klp_callbacks_mod
[ 207.973849] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 207.973866] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 207.973868] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 207.973870] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 208.050976] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 208.050996] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 208.051017] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 208.051018] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 208.051020] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 208.911216] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 208.912965] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 208.912967] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 208.912969] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 208.959486] % rmmod test_klp_callbacks_demo
[ 209.071781] % rmmod test_klp_callbacks_busy
[ 209.072943] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 209.149873] ===== TEST: busy target module =====
[ 209.152833] % modprobe test_klp_callbacks_busy block_transition=Y
[ 209.154258] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 209.154262] test_klp_callbacks_busy: busymod_work_func enter
[ 209.157628] % modprobe test_klp_callbacks_demo
[ 209.159018] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 209.159020] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 209.159040] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 209.159041] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 209.160430] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 209.165518] % modprobe test_klp_callbacks_mod
[ 209.166893] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 209.166896] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 209.166914] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 209.168092] % rmmod test_klp_callbacks_mod
[ 209.169182] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 209.169198] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 209.169200] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 209.250960] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 209.250978] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 209.251083] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 211.871203] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 211.872965] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 211.872967] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 211.872969] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 211.971835] % rmmod test_klp_callbacks_demo
[ 212.051698] % rmmod test_klp_callbacks_busy
[ 212.090506] test_klp_callbacks_busy: busymod_work_func exit
[ 212.090513] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 212.169096] ===== TEST: multiple livepatches =====
[ 212.172221] % modprobe test_klp_callbacks_demo
[ 212.173625] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 212.173627] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 212.173645] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 212.173646] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 213.881119] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 213.881238] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 213.881240] livepatch: 'test_klp_callbacks_demo': patching complete
[ 213.904735] % modprobe test_klp_callbacks_demo2
[ 213.906252] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 213.906254] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 213.906291] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 213.906292] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 214.911228] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 214.911330] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 214.911332] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 214.923290] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 214.923309] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 214.923323] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 214.923324] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 215.951189] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 215.951289] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 215.951291] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 216.032305] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 216.032322] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 216.032338] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 216.032339] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 216.911208] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 216.911327] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 216.911329] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 216.941200] % rmmod test_klp_callbacks_demo2
[ 217.011815] % rmmod test_klp_callbacks_demo
[ 217.089875] ===== TEST: atomic replace =====
[ 217.092945] % modprobe test_klp_callbacks_demo
[ 217.094433] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 217.094436] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 217.094455] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 217.094457] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 217.951266] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 217.951371] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 217.951372] livepatch: 'test_klp_callbacks_demo': patching complete
[ 218.014048] % modprobe test_klp_callbacks_demo2 replace=1
[ 218.015488] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 218.015491] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 218.015512] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 218.015514] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 219.631259] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 219.631381] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 219.631383] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 219.643212] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 219.643241] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 219.643273] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 219.643274] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 220.831217] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 220.831316] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 220.831318] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 220.853623] % rmmod test_klp_callbacks_demo2
[ 220.931690] % rmmod test_klp_callbacks_demo
[ 221.032866] livepatch: kernel.ftrace_enabled = 1
[ 221.041249] ===== TEST: basic shadow variable API =====
[ 221.044342] % modprobe test_klp_shadow_vars
[ 221.046005] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 221.046008] test_klp_shadow_vars: got expected NULL result
[ 221.046010] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 221.046011] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 221.046015] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 221.046016] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 221.046019] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 221.046020] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 221.046022] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 221.046024] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 221.046026] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 221.046028] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 221.046030] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 221.046031] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 221.046034] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 221.046035] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 221.046036] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 221.046038] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 221.046039] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 221.046041] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 221.046042] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 221.046043] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 221.046045] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 221.046046] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 221.046047] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 221.046049] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 221.046050] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 221.046052] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 221.046054] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 221.046056] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 221.046057] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 221.046059] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 221.046061] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 221.046063] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 221.046064] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 221.046066] test_klp_shadow_vars: got expected NULL result
[ 221.046067] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 221.046068] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 221.046070] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 221.046071] test_klp_shadow_vars: got expected NULL result
[ 221.046072] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 221.046073] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 221.046075] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 221.046076] test_klp_shadow_vars: got expected NULL result
[ 221.046077] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 221.046079] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 221.046080] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 221.046081] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 221.046083] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 221.046084] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 221.046092] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 221.046093] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 221.046094] test_klp_shadow_vars: got expected NULL result
[ 221.046095] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 221.046097] test_klp_shadow_vars: got expected NULL result
[ 221.046098] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 221.046099] test_klp_shadow_vars: got expected NULL result
[ 221.047460] % rmmod test_klp_shadow_vars
[ 221.132199] livepatch: kernel.ftrace_enabled = 1
[ 221.140198] ===== TEST: system state modification =====
[ 221.143166] % modprobe test_klp_state
[ 221.144614] livepatch: enabling patch 'test_klp_state'
[ 221.144616] livepatch: 'test_klp_state': initializing patching transition
[ 221.144637] test_klp_state: pre_patch_callback: vmlinux
[ 221.144638] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 221.144639] livepatch: 'test_klp_state': starting patching transition
[ 222.111272] livepatch: 'test_klp_state': completing patching transition
[ 222.111377] test_klp_state: post_patch_callback: vmlinux
[ 222.111379] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 222.111381] livepatch: 'test_klp_state': patching complete
[ 222.162434] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 222.162453] livepatch: 'test_klp_state': initializing unpatching transition
[ 222.162474] test_klp_state: pre_unpatch_callback: vmlinux
[ 222.162476] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 222.162477] livepatch: 'test_klp_state': starting unpatching transition
[ 223.951243] livepatch: 'test_klp_state': completing unpatching transition
[ 223.951343] test_klp_state: post_unpatch_callback: vmlinux
[ 223.951345] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 223.951346] livepatch: 'test_klp_state': unpatching complete
[ 223.978524] % rmmod test_klp_state
[ 224.049861] ===== TEST: taking over system state modification =====
[ 224.052982] % modprobe test_klp_state
[ 224.054535] livepatch: enabling patch 'test_klp_state'
[ 224.054537] livepatch: 'test_klp_state': initializing patching transition
[ 224.054558] test_klp_state: pre_patch_callback: vmlinux
[ 224.054559] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 224.054561] livepatch: 'test_klp_state': starting patching transition
[ 224.921252] livepatch: 'test_klp_state': completing patching transition
[ 224.921353] test_klp_state: post_patch_callback: vmlinux
[ 224.921355] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 224.921357] livepatch: 'test_klp_state': patching complete
[ 224.974637] % modprobe test_klp_state2
[ 224.976246] livepatch: enabling patch 'test_klp_state2'
[ 224.976248] livepatch: 'test_klp_state2': initializing patching transition
[ 224.976275] test_klp_state2: pre_patch_callback: vmlinux
[ 224.976276] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 224.976278] livepatch: 'test_klp_state2': starting patching transition
[ 226.031256] livepatch: 'test_klp_state2': completing patching transition
[ 226.031388] test_klp_state2: post_patch_callback: vmlinux
[ 226.031389] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 226.031390] livepatch: 'test_klp_state2': patching complete
[ 226.097150] % rmmod test_klp_state
[ 226.170953] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 226.170972] livepatch: 'test_klp_state2': initializing unpatching transition
[ 226.170994] test_klp_state2: pre_unpatch_callback: vmlinux
[ 226.170995] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 226.170996] livepatch: 'test_klp_state2': starting unpatching transition
[ 227.951209] livepatch: 'test_klp_state2': completing unpatching transition
[ 227.951314] test_klp_state2: post_unpatch_callback: vmlinux
[ 227.951317] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 227.951318] livepatch: 'test_klp_state2': unpatching complete
[ 227.987229] % rmmod test_klp_state2
[ 228.048401] ===== TEST: compatible cumulative livepatches =====
[ 228.051472] % modprobe test_klp_state2
[ 228.052836] livepatch: enabling patch 'test_klp_state2'
[ 228.052839] livepatch: 'test_klp_state2': initializing patching transition
[ 228.052858] test_klp_state2: pre_patch_callback: vmlinux
[ 228.052860] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 228.052861] livepatch: 'test_klp_state2': starting patching transition
[ 229.071292] livepatch: 'test_klp_state2': completing patching transition
[ 229.071407] test_klp_state2: post_patch_callback: vmlinux
[ 229.071409] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 229.071410] livepatch: 'test_klp_state2': patching complete
[ 229.174501] % modprobe test_klp_state3
[ 229.175964] livepatch: enabling patch 'test_klp_state3'
[ 229.175966] livepatch: 'test_klp_state3': initializing patching transition
[ 229.175984] test_klp_state3: pre_patch_callback: vmlinux
[ 229.175985] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 229.175986] livepatch: 'test_klp_state3': starting patching transition
[ 230.031287] livepatch: 'test_klp_state3': completing patching transition
[ 230.031407] test_klp_state3: post_patch_callback: vmlinux
[ 230.031409] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 230.031410] livepatch: 'test_klp_state3': patching complete
[ 230.092633] % rmmod test_klp_state2
[ 230.174017] % modprobe test_klp_state2
[ 230.175415] livepatch: enabling patch 'test_klp_state2'
[ 230.175416] livepatch: 'test_klp_state2': initializing patching transition
[ 230.175437] test_klp_state2: pre_patch_callback: vmlinux
[ 230.175438] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 230.175453] livepatch: 'test_klp_state2': starting patching transition
[ 231.871289] livepatch: 'test_klp_state2': completing patching transition
[ 231.871392] test_klp_state2: post_patch_callback: vmlinux
[ 231.871393] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 231.871394] livepatch: 'test_klp_state2': patching complete
[ 231.902873] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 231.902893] livepatch: 'test_klp_state2': initializing unpatching transition
[ 231.902909] test_klp_state2: pre_unpatch_callback: vmlinux
[ 231.902910] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 231.902911] livepatch: 'test_klp_state2': starting unpatching transition
[ 232.831270] livepatch: 'test_klp_state2': completing unpatching transition
[ 232.831371] test_klp_state2: post_unpatch_callback: vmlinux
[ 232.831373] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 232.831374] livepatch: 'test_klp_state2': unpatching complete
[ 232.912312] % rmmod test_klp_state2
[ 232.961704] % rmmod test_klp_state3
[ 233.039460] ===== TEST: incompatible cumulative livepatches =====
[ 233.042189] % modprobe test_klp_state2
[ 233.043520] livepatch: enabling patch 'test_klp_state2'
[ 233.043522] livepatch: 'test_klp_state2': initializing patching transition
[ 233.043542] test_klp_state2: pre_patch_callback: vmlinux
[ 233.043543] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 233.043545] livepatch: 'test_klp_state2': starting patching transition
[ 234.191241] livepatch: 'test_klp_state2': completing patching transition
[ 234.191348] test_klp_state2: post_patch_callback: vmlinux
[ 234.191365] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 234.191368] livepatch: 'test_klp_state2': patching complete
[ 234.263631] % modprobe test_klp_state
[ 234.265068] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 234.380932] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 234.380979] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 234.380997] livepatch: 'test_klp_state2': initializing unpatching transition
[ 234.381018] test_klp_state2: pre_unpatch_callback: vmlinux
[ 234.381019] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 234.381020] livepatch: 'test_klp_state2': starting unpatching transition
[ 235.951273] livepatch: 'test_klp_state2': completing unpatching transition
[ 235.951373] test_klp_state2: post_unpatch_callback: vmlinux
[ 235.951375] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 235.951376] livepatch: 'test_klp_state2': unpatching complete
[ 235.994953] % rmmod test_klp_state2
[ 236.093180] livepatch: kernel.ftrace_enabled = 1
[ 236.101310] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 236.102950] livepatch: kernel.ftrace_enabled = 0
[ 236.103030] % modprobe test_klp_livepatch
[ 236.104411] livepatch: enabling patch 'test_klp_livepatch'
[ 236.104414] livepatch: 'test_klp_livepatch': initializing patching transition
[ 236.104437] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 236.104439] livepatch: failed to patch object 'vmlinux'
[ 236.104440] livepatch: failed to enable patch 'test_klp_livepatch'
[ 236.104441] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 236.104442] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 236.104560] livepatch: 'test_klp_livepatch': unpatching complete
[ 236.260929] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 236.262507] livepatch: kernel.ftrace_enabled = 1
[ 236.265215] % modprobe test_klp_livepatch
[ 236.266486] livepatch: enabling patch 'test_klp_livepatch'
[ 236.266488] livepatch: 'test_klp_livepatch': initializing patching transition
[ 236.267596] livepatch: 'test_klp_livepatch': starting patching transition
[ 237.791212] livepatch: 'test_klp_livepatch': completing patching transition
[ 237.791310] livepatch: 'test_klp_livepatch': patching complete
[ 237.797154] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 237.798043] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 237.798095] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 237.798109] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 238.831322] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 238.832826] livepatch: 'test_klp_livepatch': unpatching complete
[ 238.908640] % rmmod test_klp_livepatch
[ 238.992263] livepatch: kernel.ftrace_enabled = 1
[ 238.999933] ===== TEST: sysfs test =====
[ 239.002807] % modprobe test_klp_livepatch
[ 239.004110] livepatch: enabling patch 'test_klp_livepatch'
[ 239.004111] livepatch: 'test_klp_livepatch': initializing patching transition
[ 239.005181] livepatch: 'test_klp_livepatch': starting patching transition
[ 240.111262] livepatch: 'test_klp_livepatch': completing patching transition
[ 240.111381] livepatch: 'test_klp_livepatch': patching complete
[ 240.132783] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 240.132799] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 240.132815] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 241.081328] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 241.082831] livepatch: 'test_klp_livepatch': unpatching complete
[ 241.142598] % rmmod test_klp_livepatch
[ 241.210158] ===== TEST: sysfs test object/patched =====
[ 241.213283] % modprobe test_klp_callbacks_demo
[ 241.214762] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 241.214764] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 241.214784] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 241.214785] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 242.031320] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 242.031449] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 242.031451] livepatch: 'test_klp_callbacks_demo': patching complete
[ 242.136182] % modprobe test_klp_callbacks_mod
[ 242.137515] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 242.137517] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 242.137519] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 242.137535] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 242.139783] % rmmod test_klp_callbacks_mod
[ 242.140942] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 242.140957] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 242.140959] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 242.140960] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 242.231991] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 242.232011] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 242.232030] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 242.232032] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 243.071322] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 243.071422] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 243.071424] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 243.141124] % rmmod test_klp_callbacks_demo
[ 243.282256] livepatch: kernel.ftrace_enabled = 1
[ 243.290569] ===== TEST: basic function patching =====
[ 243.293596] % modprobe test_klp_livepatch
[ 243.295013] livepatch: enabling patch 'test_klp_livepatch'
[ 243.295016] livepatch: 'test_klp_livepatch': initializing patching transition
[ 243.296162] livepatch: 'test_klp_livepatch': starting patching transition
[ 244.911383] livepatch: 'test_klp_livepatch': completing patching transition
[ 244.911489] livepatch: 'test_klp_livepatch': patching complete
[ 244.924091] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 244.924112] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 244.924134] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 245.871319] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 245.872799] livepatch: 'test_klp_livepatch': unpatching complete
[ 245.934000] % rmmod test_klp_livepatch
[ 246.029530] ===== TEST: multiple livepatches =====
[ 246.032436] % modprobe test_klp_livepatch
[ 246.033861] livepatch: enabling patch 'test_klp_livepatch'
[ 246.033863] livepatch: 'test_klp_livepatch': initializing patching transition
[ 246.034968] livepatch: 'test_klp_livepatch': starting patching transition
[ 247.711339] livepatch: 'test_klp_livepatch': completing patching transition
[ 247.711489] livepatch: 'test_klp_livepatch': patching complete
[ 247.763427] test_klp_livepatch: this has been live patched
[ 247.767396] % modprobe test_klp_atomic_replace replace=0
[ 247.768853] livepatch: enabling patch 'test_klp_atomic_replace'
[ 247.768854] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 247.769960] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 248.751335] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 248.751471] livepatch: 'test_klp_atomic_replace': patching complete
[ 248.788134] test_klp_livepatch: this has been live patched
[ 248.789014] test_klp_atomic_replace: this has been live patched
[ 248.789161] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 248.789181] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 248.789197] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 249.711272] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 249.712588] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 249.798070] % rmmod test_klp_atomic_replace
[ 249.851728] test_klp_livepatch: this has been live patched
[ 249.852707] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 249.852727] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 249.852745] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 250.751345] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 250.752836] livepatch: 'test_klp_livepatch': unpatching complete
[ 250.761513] % rmmod test_klp_livepatch
[ 250.851360] ===== TEST: atomic replace livepatch =====
[ 250.854431] % modprobe test_klp_livepatch
[ 250.855791] livepatch: enabling patch 'test_klp_livepatch'
[ 250.855793] livepatch: 'test_klp_livepatch': initializing patching transition
[ 250.856996] livepatch: 'test_klp_livepatch': starting patching transition
[ 251.711343] livepatch: 'test_klp_livepatch': completing patching transition
[ 251.711461] livepatch: 'test_klp_livepatch': patching complete
[ 251.773219] test_klp_livepatch: this has been live patched
[ 251.777357] % modprobe test_klp_atomic_replace replace=1
[ 251.778873] livepatch: enabling patch 'test_klp_atomic_replace'
[ 251.778875] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 251.780049] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 252.911301] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 252.912669] livepatch: 'test_klp_atomic_replace': patching complete
[ 253.001881] test_klp_atomic_replace: this has been live patched
[ 253.002864] % rmmod test_klp_livepatch
[ 253.052447] test_klp_atomic_replace: this has been live patched
[ 253.052561] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 253.052580] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 253.052597] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 253.871341] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 253.872934] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 253.961071] % rmmod test_klp_atomic_replace
[ 254.075347] livepatch: kernel.ftrace_enabled = 1
[ 254.083375] ===== TEST: target module before livepatch =====
[ 254.086470] % modprobe test_klp_callbacks_mod
[ 254.087750] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 254.091112] % modprobe test_klp_callbacks_demo
[ 254.092572] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 254.092574] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 254.092593] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 254.092594] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 254.092595] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 254.911372] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 254.911470] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 254.911472] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 254.911474] livepatch: 'test_klp_callbacks_demo': patching complete
[ 255.008950] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 255.008969] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 255.009000] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 255.009002] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 255.009020] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 255.951355] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 255.951452] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 255.951454] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 255.951456] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 256.018607] % rmmod test_klp_callbacks_demo
[ 256.091916] % rmmod test_klp_callbacks_mod
[ 256.093014] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 256.169237] ===== TEST: module_coming notifier =====
[ 256.172297] % modprobe test_klp_callbacks_demo
[ 256.173751] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 256.173753] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 256.173772] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 256.173774] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 257.871420] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 257.871550] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 257.871552] livepatch: 'test_klp_callbacks_demo': patching complete
[ 257.906694] % modprobe test_klp_callbacks_mod
[ 257.907956] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 257.907958] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 257.907959] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 257.907977] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 257.908350] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 257.908367] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 257.908387] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 257.908388] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 257.908390] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 258.911396] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 258.911552] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 258.911554] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 258.911556] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 258.918270] % rmmod test_klp_callbacks_demo
[ 259.001970] % rmmod test_klp_callbacks_mod
[ 259.002953] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 259.118512] ===== TEST: module_going notifier =====
[ 259.121469] % modprobe test_klp_callbacks_mod
[ 259.122753] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 259.125852] % modprobe test_klp_callbacks_demo
[ 259.127258] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 259.127259] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 259.127280] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 259.127281] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 259.127282] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 260.191345] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 260.191448] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 260.191449] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 260.191451] livepatch: 'test_klp_callbacks_demo': patching complete
[ 260.248083] % rmmod test_klp_callbacks_mod
[ 260.249312] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 260.249330] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 260.249332] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 260.249333] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 260.311104] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 260.311123] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 260.311150] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 260.311151] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 261.151436] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 261.151581] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 261.151583] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 261.220008] % rmmod test_klp_callbacks_demo
[ 261.309304] ===== TEST: module_coming and module_going notifiers =====
[ 261.312251] % modprobe test_klp_callbacks_demo
[ 261.313722] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 261.313724] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 261.313762] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 261.313763] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 262.671500] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 262.671624] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 262.671626] livepatch: 'test_klp_callbacks_demo': patching complete
[ 262.742090] % modprobe test_klp_callbacks_mod
[ 262.743321] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 262.743324] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 262.743326] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 262.743344] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 262.744479] % rmmod test_klp_callbacks_mod
[ 262.745567] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 262.745582] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 262.745584] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 262.745585] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 262.811091] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 262.811109] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 262.811130] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 262.811131] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 263.951430] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 263.951537] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 263.951539] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 264.022343] % rmmod test_klp_callbacks_demo
[ 264.179776] ===== TEST: target module not present =====
[ 264.182883] % modprobe test_klp_callbacks_demo
[ 264.184345] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 264.184347] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 264.184367] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 264.184368] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 265.081369] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 265.081514] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 265.081516] livepatch: 'test_klp_callbacks_demo': patching complete
[ 265.101043] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 265.101062] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 265.101083] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 265.101084] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 266.191411] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 266.191510] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 266.191512] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 266.211817] % rmmod test_klp_callbacks_demo
[ 266.279575] ===== TEST: pre-patch callback -ENODEV =====
[ 266.282491] % modprobe test_klp_callbacks_mod
[ 266.283760] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 266.284111] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 266.285525] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 266.285527] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 266.285548] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 266.285549] livepatch: pre-patch callback failed for object 'vmlinux'
[ 266.285550] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 266.285551] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 266.285552] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 266.285659] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 266.481071] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 266.482054] % rmmod test_klp_callbacks_mod
[ 266.483170] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 266.569358] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 266.572523] % modprobe test_klp_callbacks_demo
[ 266.573921] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 266.573924] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 266.573963] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 266.573965] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 268.031434] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 268.031535] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 268.031537] livepatch: 'test_klp_callbacks_demo': patching complete
[ 268.100668] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 268.101662] % modprobe test_klp_callbacks_mod
[ 268.102985] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 268.102988] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 268.102990] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 268.102991] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 268.231087] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 268.231141] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 268.231156] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 268.231176] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 268.231177] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 269.951417] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 269.951520] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 269.951522] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 270.048128] % rmmod test_klp_callbacks_demo
[ 270.110260] ===== TEST: multiple target modules =====
[ 270.113377] % modprobe test_klp_callbacks_busy block_transition=N
[ 270.114847] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 270.114851] test_klp_callbacks_busy: busymod_work_func enter
[ 270.114853] test_klp_callbacks_busy: busymod_work_func exit
[ 270.118456] % modprobe test_klp_callbacks_demo
[ 270.119920] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 270.119922] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 270.119941] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 270.119943] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 270.121350] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 271.871484] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 271.871585] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 271.871587] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 271.871589] livepatch: 'test_klp_callbacks_demo': patching complete
[ 271.957226] % modprobe test_klp_callbacks_mod
[ 271.958646] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 271.958665] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 271.958667] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 271.958683] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 271.960010] % rmmod test_klp_callbacks_mod
[ 271.961127] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 271.961141] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 271.961143] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 271.961145] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 272.031267] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 272.031285] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 272.031303] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 272.031304] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 272.031306] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 272.831467] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 272.833230] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 272.833232] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 272.833233] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 272.839688] % rmmod test_klp_callbacks_demo
[ 272.912113] % rmmod test_klp_callbacks_busy
[ 272.913268] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 272.989731] ===== TEST: busy target module =====
[ 272.992863] % modprobe test_klp_callbacks_busy block_transition=Y
[ 272.994427] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 272.994433] test_klp_callbacks_busy: busymod_work_func enter
[ 272.997897] % modprobe test_klp_callbacks_demo
[ 272.999390] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 272.999391] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 272.999413] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 272.999415] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 273.000863] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 273.006166] % modprobe test_klp_callbacks_mod
[ 273.007622] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 273.007624] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 273.007651] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 273.009014] % rmmod test_klp_callbacks_mod
[ 273.010123] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 273.010139] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 273.010141] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 273.091251] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 273.091269] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 273.091425] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 275.791451] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 275.793206] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 275.793209] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 275.793210] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 275.815309] % rmmod test_klp_callbacks_demo
[ 275.882051] % rmmod test_klp_callbacks_busy
[ 275.890764] test_klp_callbacks_busy: busymod_work_func exit
[ 275.890773] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 275.959816] ===== TEST: multiple livepatches =====
[ 275.963029] % modprobe test_klp_callbacks_demo
[ 275.964604] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 275.964606] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 275.964628] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 275.964629] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 277.641504] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 277.641611] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 277.641613] livepatch: 'test_klp_callbacks_demo': patching complete
[ 277.698468] % modprobe test_klp_callbacks_demo2
[ 277.700098] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 277.700100] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 277.700119] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 277.700120] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 278.681475] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 278.681615] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 278.681617] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 278.719462] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 278.719482] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 278.719504] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 278.719505] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 279.791389] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 279.791487] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 279.791489] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 279.829592] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 279.829612] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 279.829629] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 279.829630] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 280.831497] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 280.831602] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 280.831604] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 280.839540] % rmmod test_klp_callbacks_demo2
[ 280.912127] % rmmod test_klp_callbacks_demo
[ 280.989065] ===== TEST: atomic replace =====
[ 280.991951] % modprobe test_klp_callbacks_demo
[ 280.993414] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 280.993416] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 280.993436] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 280.993437] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 281.871479] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 281.871579] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 281.871581] livepatch: 'test_klp_callbacks_demo': patching complete
[ 281.912919] % modprobe test_klp_callbacks_demo2 replace=1
[ 281.914353] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 281.914356] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 281.914376] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 281.914377] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 283.071478] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 283.071583] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 283.071585] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 283.135341] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 283.135361] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 283.135381] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 283.135382] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 284.031462] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 284.031579] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 284.031580] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 284.044328] % rmmod test_klp_callbacks_demo2
[ 284.112113] % rmmod test_klp_callbacks_demo
[ 284.224335] livepatch: kernel.ftrace_enabled = 1

[-- Attachment #7: dmesg1.txt --]
[-- Type: text/plain, Size: 132388 bytes --]

[ 100.031067] livepatch: 'test_klp_state2': completing patching transition
[ 100.031184] test_klp_state2: post_patch_callback: vmlinux
[ 100.031185] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 100.031187] livepatch: 'test_klp_state2': patching complete
[ 100.045573] % modprobe test_klp_state3
[ 100.047069] livepatch: enabling patch 'test_klp_state3'
[ 100.047072] livepatch: 'test_klp_state3': initializing patching transition
[ 100.047093] test_klp_state3: pre_patch_callback: vmlinux
[ 100.047094] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 100.047095] livepatch: 'test_klp_state3': starting patching transition
[ 101.711037] livepatch: 'test_klp_state3': completing patching transition
[ 101.711204] test_klp_state3: post_patch_callback: vmlinux
[ 101.711206] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 101.711207] livepatch: 'test_klp_state3': patching complete
[ 101.778205] % rmmod test_klp_state2
[ 101.853923] % modprobe test_klp_state2
[ 101.855447] livepatch: enabling patch 'test_klp_state2'
[ 101.855449] livepatch: 'test_klp_state2': initializing patching transition
[ 101.855470] test_klp_state2: pre_patch_callback: vmlinux
[ 101.855472] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 101.855473] livepatch: 'test_klp_state2': starting patching transition
[ 103.630965] livepatch: 'test_klp_state2': completing patching transition
[ 103.631070] test_klp_state2: post_patch_callback: vmlinux
[ 103.631071] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 103.631073] livepatch: 'test_klp_state2': patching complete
[ 103.686892] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 103.686911] livepatch: 'test_klp_state2': initializing unpatching transition
[ 103.686932] test_klp_state2: pre_unpatch_callback: vmlinux
[ 103.686933] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 103.686935] livepatch: 'test_klp_state2': starting unpatching transition
[ 105.150996] livepatch: 'test_klp_state2': completing unpatching transition
[ 105.151097] test_klp_state2: post_unpatch_callback: vmlinux
[ 105.151099] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 105.151100] livepatch: 'test_klp_state2': unpatching complete
[ 105.199966] % rmmod test_klp_state2
[ 105.281410] % rmmod test_klp_state3
[ 105.355459] ===== TEST: incompatible cumulative livepatches =====
[ 105.358650] % modprobe test_klp_state2
[ 105.360034] livepatch: enabling patch 'test_klp_state2'
[ 105.360035] livepatch: 'test_klp_state2': initializing patching transition
[ 105.360056] test_klp_state2: pre_patch_callback: vmlinux
[ 105.360057] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 105.360058] livepatch: 'test_klp_state2': starting patching transition
[ 107.071045] livepatch: 'test_klp_state2': completing patching transition
[ 107.071145] test_klp_state2: post_patch_callback: vmlinux
[ 107.071147] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 107.071148] livepatch: 'test_klp_state2': patching complete
[ 107.087110] % modprobe test_klp_state
[ 107.088695] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 107.190677] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 107.190716] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 107.190734] livepatch: 'test_klp_state2': initializing unpatching transition
[ 107.190753] test_klp_state2: pre_unpatch_callback: vmlinux
[ 107.190754] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 107.190755] livepatch: 'test_klp_state2': starting unpatching transition
[ 108.111015] livepatch: 'test_klp_state2': completing unpatching transition
[ 108.111118] test_klp_state2: post_unpatch_callback: vmlinux
[ 108.111120] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 108.111121] livepatch: 'test_klp_state2': unpatching complete
[ 108.200035] % rmmod test_klp_state2
[ 108.301787] livepatch: kernel.ftrace_enabled = 1
[ 108.308056] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 108.309828] livepatch: kernel.ftrace_enabled = 0
[ 108.309890] % modprobe test_klp_livepatch
[ 108.311242] livepatch: enabling patch 'test_klp_livepatch'
[ 108.311244] livepatch: 'test_klp_livepatch': initializing patching transition
[ 108.311267] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 108.311270] livepatch: failed to patch object 'vmlinux'
[ 108.311271] livepatch: failed to enable patch 'test_klp_livepatch'
[ 108.311272] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 108.311273] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 108.311382] livepatch: 'test_klp_livepatch': unpatching complete
[ 108.500681] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 108.502529] livepatch: kernel.ftrace_enabled = 1
[ 108.505528] % modprobe test_klp_livepatch
[ 108.506881] livepatch: enabling patch 'test_klp_livepatch'
[ 108.506882] livepatch: 'test_klp_livepatch': initializing patching transition
[ 108.508030] livepatch: 'test_klp_livepatch': starting patching transition
[ 109.790992] livepatch: 'test_klp_livepatch': completing patching transition
[ 109.791146] livepatch: 'test_klp_livepatch': patching complete
[ 109.834645] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 109.835658] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 109.835676] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 109.835692] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 110.831016] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 110.832521] livepatch: 'test_klp_livepatch': unpatching complete
[ 110.845082] % rmmod test_klp_livepatch
[ 110.962324] livepatch: kernel.ftrace_enabled = 1
[ 110.969070] ===== TEST: sysfs test =====
[ 110.972147] % modprobe test_klp_livepatch
[ 110.973575] livepatch: enabling patch 'test_klp_livepatch'
[ 110.973578] livepatch: 'test_klp_livepatch': initializing patching transition
[ 110.974676] livepatch: 'test_klp_livepatch': starting patching transition
[ 112.671034] livepatch: 'test_klp_livepatch': completing patching transition
[ 112.671137] livepatch: 'test_klp_livepatch': patching complete
[ 112.711815] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 112.711832] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 112.711853] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 113.711046] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 113.712556] livepatch: 'test_klp_livepatch': unpatching complete
[ 113.721666] % rmmod test_klp_livepatch
[ 113.786348] ===== TEST: sysfs test object/patched =====
[ 113.789508] % modprobe test_klp_callbacks_demo
[ 113.791059] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 113.791061] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 113.791082] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 113.791083] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 114.831046] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 114.831155] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 114.831157] livepatch: 'test_klp_callbacks_demo': patching complete
[ 114.915700] % modprobe test_klp_callbacks_mod
[ 114.917199] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 114.917201] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 114.917203] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 114.917220] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 114.919407] % rmmod test_klp_callbacks_mod
[ 114.920563] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 114.920578] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 114.920580] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 114.920582] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 114.991648] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 114.991667] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 114.991690] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 114.991692] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 116.671055] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 116.671159] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 116.671177] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 116.706610] % rmmod test_klp_callbacks_demo
[ 116.853345] livepatch: kernel.ftrace_enabled = 1
[ 116.860222] ===== TEST: basic function patching =====
[ 116.863329] % modprobe test_klp_livepatch
[ 116.864936] livepatch: enabling patch 'test_klp_livepatch'
[ 116.864938] livepatch: 'test_klp_livepatch': initializing patching transition
[ 116.866224] livepatch: 'test_klp_livepatch': starting patching transition
[ 117.791071] livepatch: 'test_klp_livepatch': completing patching transition
[ 117.791193] livepatch: 'test_klp_livepatch': patching complete
[ 117.885360] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 117.885397] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 117.885424] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 118.750980] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 118.752543] livepatch: 'test_klp_livepatch': unpatching complete
[ 118.794530] % rmmod test_klp_livepatch
[ 118.897157] ===== TEST: multiple livepatches =====
[ 118.900009] % modprobe test_klp_livepatch
[ 118.901338] livepatch: enabling patch 'test_klp_livepatch'
[ 118.901341] livepatch: 'test_klp_livepatch': initializing patching transition
[ 118.902413] livepatch: 'test_klp_livepatch': starting patching transition
[ 119.711012] livepatch: 'test_klp_livepatch': completing patching transition
[ 119.711114] livepatch: 'test_klp_livepatch': patching complete
[ 119.718796] test_klp_livepatch: this has been live patched
[ 119.723001] % modprobe test_klp_atomic_replace replace=0
[ 119.724612] livepatch: enabling patch 'test_klp_atomic_replace'
[ 119.724614] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 119.725833] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 120.751022] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 120.751130] livepatch: 'test_klp_atomic_replace': patching complete
[ 120.847005] test_klp_livepatch: this has been live patched
[ 120.847986] test_klp_atomic_replace: this has been live patched
[ 120.848118] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 120.848138] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 120.848158] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 121.710988] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 121.712378] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 121.757104] % rmmod test_klp_atomic_replace
[ 121.801514] test_klp_livepatch: this has been live patched
[ 121.802520] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 121.802538] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 121.802554] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 122.761006] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 122.762405] livepatch: 'test_klp_livepatch': unpatching complete
[ 122.812386] % rmmod test_klp_livepatch
[ 122.888229] ===== TEST: atomic replace livepatch =====
[ 122.891365] % modprobe test_klp_livepatch
[ 122.892757] livepatch: enabling patch 'test_klp_livepatch'
[ 122.892759] livepatch: 'test_klp_livepatch': initializing patching transition
[ 122.893900] livepatch: 'test_klp_livepatch': starting patching transition
[ 123.871073] livepatch: 'test_klp_livepatch': completing patching transition
[ 123.871179] livepatch: 'test_klp_livepatch': patching complete
[ 123.913201] test_klp_livepatch: this has been live patched
[ 123.917508] % modprobe test_klp_atomic_replace replace=1
[ 123.918994] livepatch: enabling patch 'test_klp_atomic_replace'
[ 123.918996] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 123.920106] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 124.751016] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 124.752390] livepatch: 'test_klp_atomic_replace': patching complete
[ 124.838483] test_klp_atomic_replace: this has been live patched
[ 124.839576] % rmmod test_klp_livepatch
[ 124.892319] test_klp_atomic_replace: this has been live patched
[ 124.892494] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 124.892513] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 124.892529] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 125.711010] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 125.712510] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 125.801651] % rmmod test_klp_atomic_replace
[ 125.905407] livepatch: kernel.ftrace_enabled = 1
[ 125.912644] ===== TEST: target module before livepatch =====
[ 125.915835] % modprobe test_klp_callbacks_mod
[ 125.917236] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 125.920790] % modprobe test_klp_callbacks_demo
[ 125.922345] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 125.922347] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 125.922366] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 125.922367] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 125.922369] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 127.711053] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 127.711189] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 127.711191] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 127.711193] livepatch: 'test_klp_callbacks_demo': patching complete
[ 127.755072] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 127.755091] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 127.755106] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 127.755107] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 127.755109] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 128.671068] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 128.671171] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 128.671172] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 128.671174] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 128.765224] % rmmod test_klp_callbacks_demo
[ 128.811614] % rmmod test_klp_callbacks_mod
[ 128.812787] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 128.887174] ===== TEST: module_coming notifier =====
[ 128.890422] % modprobe test_klp_callbacks_demo
[ 128.892042] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 128.892045] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 128.892067] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 128.892068] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 129.791064] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 129.791173] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 129.791175] livepatch: 'test_klp_callbacks_demo': patching complete
[ 129.812482] % modprobe test_klp_callbacks_mod
[ 129.813968] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 129.813971] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 129.813973] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 129.813990] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 129.814364] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 129.814383] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 129.814404] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 129.814405] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 129.814407] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 130.671041] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 130.671174] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 130.671176] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 130.671178] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 130.723905] % rmmod test_klp_callbacks_demo
[ 130.771625] % rmmod test_klp_callbacks_mod
[ 130.772641] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 130.826909] ===== TEST: module_going notifier =====
[ 130.830202] % modprobe test_klp_callbacks_mod
[ 130.831538] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 130.834984] % modprobe test_klp_callbacks_demo
[ 130.836549] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 130.836552] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 130.836573] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 130.836574] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 130.836576] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 131.710974] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 131.711075] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 131.711077] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 131.711079] livepatch: 'test_klp_callbacks_demo': patching complete
[ 131.754244] % rmmod test_klp_callbacks_mod
[ 131.755454] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 131.755471] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 131.755473] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 131.755475] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 131.800736] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 131.800754] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 131.800775] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 131.800776] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 133.071027] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 133.071132] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 133.071134] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 133.113297] % rmmod test_klp_callbacks_demo
[ 133.177434] ===== TEST: module_coming and module_going notifiers =====
[ 133.180622] % modprobe test_klp_callbacks_demo
[ 133.182228] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 133.182231] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 133.182251] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 133.182252] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 134.751073] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 134.751184] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 134.751187] livepatch: 'test_klp_callbacks_demo': patching complete
[ 134.813811] % modprobe test_klp_callbacks_mod
[ 134.815280] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 134.815282] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 134.815284] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 134.815302] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 134.816526] % rmmod test_klp_callbacks_mod
[ 134.817758] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 134.817773] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 134.817775] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 134.817776] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 134.940787] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 134.940806] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 134.940828] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 134.940829] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 135.950967] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 135.951069] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 135.951071] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 136.051536] % rmmod test_klp_callbacks_demo
[ 136.117597] ===== TEST: target module not present =====
[ 136.120836] % modprobe test_klp_callbacks_demo
[ 136.122441] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 136.122444] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 136.122476] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 136.122477] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 137.871054] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 137.871179] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 137.871181] livepatch: 'test_klp_callbacks_demo': patching complete
[ 137.952610] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 137.952631] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 137.952666] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 137.952668] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 139.071051] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 139.071152] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 139.071154] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 139.164250] % rmmod test_klp_callbacks_demo
[ 139.257782] ===== TEST: pre-patch callback -ENODEV =====
[ 139.260610] % modprobe test_klp_callbacks_mod
[ 139.261932] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 139.262266] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 139.263690] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 139.263692] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 139.263711] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 139.263712] livepatch: pre-patch callback failed for object 'vmlinux'
[ 139.263713] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 139.263714] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 139.263715] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 139.263820] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 139.410666] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 139.411683] % rmmod test_klp_callbacks_mod
[ 139.412838] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 139.477858] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 139.480794] % modprobe test_klp_callbacks_demo
[ 139.482279] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 139.482282] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 139.482303] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 139.482304] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 140.831122] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 140.831279] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 140.831281] livepatch: 'test_klp_callbacks_demo': patching complete
[ 140.908032] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 140.908963] % modprobe test_klp_callbacks_mod
[ 140.910243] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 140.910246] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 140.910248] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 140.910249] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 141.030671] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 141.030722] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 141.030738] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 141.030776] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 141.030777] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 141.789613] crw_info : CRW reports slct=0, oflw=0, chn=0, rsc=B, anc=0, erc=0, rsid=0
[ 142.031077] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 142.031196] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 142.031198] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 142.041387] % rmmod test_klp_callbacks_demo
[ 142.108391] ===== TEST: multiple target modules =====
[ 142.111495] % modprobe test_klp_callbacks_busy block_transition=N
[ 142.112950] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 142.112954] test_klp_callbacks_busy: busymod_work_func enter
[ 142.112956] test_klp_callbacks_busy: busymod_work_func exit
[ 142.116379] % modprobe test_klp_callbacks_demo
[ 142.117801] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 142.117802] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 142.117840] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 142.117841] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 142.119215] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 143.070935] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 143.071035] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 143.071037] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 143.071039] livepatch: 'test_klp_callbacks_demo': patching complete
[ 143.141657] % modprobe test_klp_callbacks_mod
[ 143.143195] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 143.143198] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.143200] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 143.143236] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 143.144563] % rmmod test_klp_callbacks_mod
[ 143.145857] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 143.145873] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.145875] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 143.145876] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 143.220815] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 143.220851] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 143.220872] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 143.220873] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 143.220875] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 144.031007] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 144.032819] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 144.032821] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 144.032822] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 144.130433] % rmmod test_klp_callbacks_demo
[ 144.211697] % rmmod test_klp_callbacks_busy
[ 144.213003] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 144.308603] ===== TEST: busy target module =====
[ 144.311786] % modprobe test_klp_callbacks_busy block_transition=Y
[ 144.313186] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 144.313190] test_klp_callbacks_busy: busymod_work_func enter
[ 144.316644] % modprobe test_klp_callbacks_demo
[ 144.318094] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 144.318095] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 144.318115] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 144.318116] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 144.319516] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 144.324787] % modprobe test_klp_callbacks_mod
[ 144.326157] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 144.326159] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 144.326174] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 144.327454] % rmmod test_klp_callbacks_mod
[ 144.328546] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 144.328561] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 144.328563] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 144.410842] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 144.410861] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 144.410966] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 146.990932] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 146.992683] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 146.992685] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 146.992687] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 147.033638] % rmmod test_klp_callbacks_demo
[ 147.121645] % rmmod test_klp_callbacks_busy
[ 147.130314] test_klp_callbacks_busy: busymod_work_func exit
[ 147.130323] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 147.208177] ===== TEST: multiple livepatches =====
[ 147.211079] % modprobe test_klp_callbacks_demo
[ 147.212707] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 147.212710] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 147.212730] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 147.212731] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 148.031059] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 148.031160] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 148.031162] livepatch: 'test_klp_callbacks_demo': patching complete
[ 148.132098] % modprobe test_klp_callbacks_demo2
[ 148.133641] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 148.133644] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 148.133664] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 148.133666] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 149.151067] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 149.151184] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 149.151186] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 149.152975] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 149.152995] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 149.153015] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 149.153016] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 149.951022] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 149.951125] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 149.951127] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 149.960854] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 149.960873] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 149.960888] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 149.960890] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 150.991050] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 150.991152] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 150.991154] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 151.071631] % rmmod test_klp_callbacks_demo2
[ 151.131726] % rmmod test_klp_callbacks_demo
[ 151.229250] ===== TEST: atomic replace =====
[ 151.232455] % modprobe test_klp_callbacks_demo
[ 151.234085] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 151.234087] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 151.234107] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 151.234108] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 152.031077] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 152.031231] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 152.031233] livepatch: 'test_klp_callbacks_demo': patching complete
[ 152.052914] % modprobe test_klp_callbacks_demo2 replace=1
[ 152.054593] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 152.054595] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 152.054616] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 152.054618] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 153.071103] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 153.071224] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 153.071226] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 153.073798] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 153.073819] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 153.073840] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 153.073841] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 154.031008] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 154.031113] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 154.031116] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 154.084458] % rmmod test_klp_callbacks_demo2
[ 154.161744] % rmmod test_klp_callbacks_demo
[ 154.245192] livepatch: kernel.ftrace_enabled = 1
[ 154.253557] ===== TEST: basic shadow variable API =====
[ 154.256693] % modprobe test_klp_shadow_vars
[ 154.258215] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 154.258218] test_klp_shadow_vars: got expected NULL result
[ 154.258220] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 154.258221] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 154.258224] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 154.258226] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 154.258228] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 154.258229] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 154.258232] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 154.258233] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 154.258235] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 154.258236] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 154.258239] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 154.258240] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 154.258242] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 154.258243] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 154.258244] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 154.258246] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 154.258268] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 154.258269] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 154.258270] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 154.258271] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 154.258273] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 154.258274] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 154.258275] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 154.258276] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 154.258278] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 154.258280] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 154.258281] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 154.258283] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 154.258284] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 154.258286] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 154.258287] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 154.258289] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 154.258290] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 154.258292] test_klp_shadow_vars: got expected NULL result
[ 154.258292] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 154.258294] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 154.258295] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 154.258297] test_klp_shadow_vars: got expected NULL result
[ 154.258297] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 154.258299] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 154.258300] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 154.258301] test_klp_shadow_vars: got expected NULL result
[ 154.258302] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 154.258303] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 154.258304] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 154.258306] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 154.258307] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 154.258308] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 154.258317] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 154.258318] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 154.258319] test_klp_shadow_vars: got expected NULL result
[ 154.258320] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 154.258321] test_klp_shadow_vars: got expected NULL result
[ 154.258322] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 154.258323] test_klp_shadow_vars: got expected NULL result
[ 154.259549] % rmmod test_klp_shadow_vars
[ 154.364539] livepatch: kernel.ftrace_enabled = 1
[ 154.373051] ===== TEST: system state modification =====
[ 154.376288] % modprobe test_klp_state
[ 154.377808] livepatch: enabling patch 'test_klp_state'
[ 154.377810] livepatch: 'test_klp_state': initializing patching transition
[ 154.377832] test_klp_state: pre_patch_callback: vmlinux
[ 154.377833] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 154.377834] livepatch: 'test_klp_state': starting patching transition
[ 155.951098] livepatch: 'test_klp_state': completing patching transition
[ 155.951196] test_klp_state: post_patch_callback: vmlinux
[ 155.951198] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 155.951199] livepatch: 'test_klp_state': patching complete
[ 156.005967] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 156.005986] livepatch: 'test_klp_state': initializing unpatching transition
[ 156.006003] test_klp_state: pre_unpatch_callback: vmlinux
[ 156.006004] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 156.006005] livepatch: 'test_klp_state': starting unpatching transition
[ 156.991099] livepatch: 'test_klp_state': completing unpatching transition
[ 156.991197] test_klp_state: post_unpatch_callback: vmlinux
[ 156.991199] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 156.991201] livepatch: 'test_klp_state': unpatching complete
[ 157.016096] % rmmod test_klp_state
[ 157.119439] ===== TEST: taking over system state modification =====
[ 157.122658] % modprobe test_klp_state
[ 157.124299] livepatch: enabling patch 'test_klp_state'
[ 157.124302] livepatch: 'test_klp_state': initializing patching transition
[ 157.124324] test_klp_state: pre_patch_callback: vmlinux
[ 157.124325] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 157.124326] livepatch: 'test_klp_state': starting patching transition
[ 158.031004] livepatch: 'test_klp_state': completing patching transition
[ 158.031105] test_klp_state: post_patch_callback: vmlinux
[ 158.031107] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 158.031109] livepatch: 'test_klp_state': patching complete
[ 158.044647] % modprobe test_klp_state2
[ 158.046174] livepatch: enabling patch 'test_klp_state2'
[ 158.046176] livepatch: 'test_klp_state2': initializing patching transition
[ 158.046194] test_klp_state2: pre_patch_callback: vmlinux
[ 158.046195] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 158.046197] livepatch: 'test_klp_state2': starting patching transition
[ 158.991060] livepatch: 'test_klp_state2': completing patching transition
[ 158.991184] test_klp_state2: post_patch_callback: vmlinux
[ 158.991185] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 158.991186] livepatch: 'test_klp_state2': patching complete
[ 159.065518] % rmmod test_klp_state
[ 159.130779] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 159.130797] livepatch: 'test_klp_state2': initializing unpatching transition
[ 159.130818] test_klp_state2: pre_unpatch_callback: vmlinux
[ 159.130819] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 159.130820] livepatch: 'test_klp_state2': starting unpatching transition
[ 160.911085] livepatch: 'test_klp_state2': completing unpatching transition
[ 160.911224] test_klp_state2: post_unpatch_callback: vmlinux
[ 160.911226] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 160.911227] livepatch: 'test_klp_state2': unpatching complete
[ 160.948036] % rmmod test_klp_state2
[ 161.059424] ===== TEST: compatible cumulative livepatches =====
[ 161.062474] % modprobe test_klp_state2
[ 161.063931] livepatch: enabling patch 'test_klp_state2'
[ 161.063934] livepatch: 'test_klp_state2': initializing patching transition
[ 161.063957] test_klp_state2: pre_patch_callback: vmlinux
[ 161.063958] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 161.063959] livepatch: 'test_klp_state2': starting patching transition
[ 162.671079] livepatch: 'test_klp_state2': completing patching transition
[ 162.671184] test_klp_state2: post_patch_callback: vmlinux
[ 162.671186] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 162.671188] livepatch: 'test_klp_state2': patching complete
[ 162.694355] % modprobe test_klp_state3
[ 162.695852] livepatch: enabling patch 'test_klp_state3'
[ 162.695855] livepatch: 'test_klp_state3': initializing patching transition
[ 162.695877] test_klp_state3: pre_patch_callback: vmlinux
[ 162.695878] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 162.695879] livepatch: 'test_klp_state3': starting patching transition
[ 163.951036] livepatch: 'test_klp_state3': completing patching transition
[ 163.951139] test_klp_state3: post_patch_callback: vmlinux
[ 163.951141] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 163.951142] livepatch: 'test_klp_state3': patching complete
[ 164.019372] % rmmod test_klp_state2
[ 164.093821] % modprobe test_klp_state2
[ 164.095460] livepatch: enabling patch 'test_klp_state2'
[ 164.095463] livepatch: 'test_klp_state2': initializing patching transition
[ 164.095484] test_klp_state2: pre_patch_callback: vmlinux
[ 164.095485] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 164.095487] livepatch: 'test_klp_state2': starting patching transition
[ 165.871122] livepatch: 'test_klp_state2': completing patching transition
[ 165.871280] test_klp_state2: post_patch_callback: vmlinux
[ 165.871281] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 165.871283] livepatch: 'test_klp_state2': patching complete
[ 165.926447] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 165.926486] livepatch: 'test_klp_state2': initializing unpatching transition
[ 165.926507] test_klp_state2: pre_unpatch_callback: vmlinux
[ 165.926508] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 165.926509] livepatch: 'test_klp_state2': starting unpatching transition
[ 166.831076] livepatch: 'test_klp_state2': completing unpatching transition
[ 166.831199] test_klp_state2: post_unpatch_callback: vmlinux
[ 166.831201] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 166.831203] livepatch: 'test_klp_state2': unpatching complete
[ 166.835243] % rmmod test_klp_state2
[ 166.901777] % rmmod test_klp_state3
[ 166.969742] ===== TEST: incompatible cumulative livepatches =====
[ 166.972899] % modprobe test_klp_state2
[ 166.974399] livepatch: enabling patch 'test_klp_state2'
[ 166.974401] livepatch: 'test_klp_state2': initializing patching transition
[ 166.974420] test_klp_state2: pre_patch_callback: vmlinux
[ 166.974422] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 166.974423] livepatch: 'test_klp_state2': starting patching transition
[ 168.681063] livepatch: 'test_klp_state2': completing patching transition
[ 168.681165] test_klp_state2: post_patch_callback: vmlinux
[ 168.681167] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 168.681169] livepatch: 'test_klp_state2': patching complete
[ 168.703685] % modprobe test_klp_state
[ 168.705124] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 168.860784] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 168.860833] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 168.860851] livepatch: 'test_klp_state2': initializing unpatching transition
[ 168.860909] test_klp_state2: pre_unpatch_callback: vmlinux
[ 168.860910] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 168.860911] livepatch: 'test_klp_state2': starting unpatching transition
[ 169.871047] livepatch: 'test_klp_state2': completing unpatching transition
[ 169.871186] test_klp_state2: post_unpatch_callback: vmlinux
[ 169.871188] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 169.871189] livepatch: 'test_klp_state2': unpatching complete
[ 169.971989] % rmmod test_klp_state2
[ 170.114423] livepatch: kernel.ftrace_enabled = 1
[ 170.122713] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 170.124491] livepatch: kernel.ftrace_enabled = 0
[ 170.124552] % modprobe test_klp_livepatch
[ 170.125916] livepatch: enabling patch 'test_klp_livepatch'
[ 170.125918] livepatch: 'test_klp_livepatch': initializing patching transition
[ 170.125942] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 170.125945] livepatch: failed to patch object 'vmlinux'
[ 170.125946] livepatch: failed to enable patch 'test_klp_livepatch'
[ 170.125947] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 170.125948] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 170.126056] livepatch: 'test_klp_livepatch': unpatching complete
[ 170.260823] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 170.262584] livepatch: kernel.ftrace_enabled = 1
[ 170.265470] % modprobe test_klp_livepatch
[ 170.266711] livepatch: enabling patch 'test_klp_livepatch'
[ 170.266712] livepatch: 'test_klp_livepatch': initializing patching transition
[ 170.267782] livepatch: 'test_klp_livepatch': starting patching transition
[ 171.791076] livepatch: 'test_klp_livepatch': completing patching transition
[ 171.791226] livepatch: 'test_klp_livepatch': patching complete
[ 171.797053] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 171.798001] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 171.798020] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 171.798035] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 172.831042] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 172.832563] livepatch: 'test_klp_livepatch': unpatching complete
[ 172.908336] % rmmod test_klp_livepatch
[ 172.983414] livepatch: kernel.ftrace_enabled = 1
[ 172.991780] ===== TEST: sysfs test =====
[ 172.994796] % modprobe test_klp_livepatch
[ 172.996248] livepatch: enabling patch 'test_klp_livepatch'
[ 172.996250] livepatch: 'test_klp_livepatch': initializing patching transition
[ 172.997482] livepatch: 'test_klp_livepatch': starting patching transition
[ 174.671056] livepatch: 'test_klp_livepatch': completing patching transition
[ 174.671194] livepatch: 'test_klp_livepatch': patching complete
[ 174.734417] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 174.734432] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 174.734466] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 175.711081] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 175.712575] livepatch: 'test_klp_livepatch': unpatching complete
[ 175.744085] % rmmod test_klp_livepatch
[ 175.808160] ===== TEST: sysfs test object/patched =====
[ 175.810980] % modprobe test_klp_callbacks_demo
[ 175.812208] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 175.812210] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 175.812230] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 175.812231] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 176.911051] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 176.911161] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 176.911163] livepatch: 'test_klp_callbacks_demo': patching complete
[ 176.934731] % modprobe test_klp_callbacks_mod
[ 176.935992] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 176.935994] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 176.935996] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 176.936013] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 176.937945] % rmmod test_klp_callbacks_mod
[ 176.938946] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 176.938961] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 176.938963] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 176.938964] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 176.991789] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 176.991808] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 176.991828] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 176.991830] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 178.191025] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 178.191124] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 178.191126] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 178.202777] % rmmod test_klp_callbacks_demo
[ 178.318263] livepatch: kernel.ftrace_enabled = 1
[ 178.326039] ===== TEST: basic function patching =====
[ 178.328835] % modprobe test_klp_livepatch
[ 178.330156] livepatch: enabling patch 'test_klp_livepatch'
[ 178.330158] livepatch: 'test_klp_livepatch': initializing patching transition
[ 178.331256] livepatch: 'test_klp_livepatch': starting patching transition
[ 179.711061] livepatch: 'test_klp_livepatch': completing patching transition
[ 179.711168] livepatch: 'test_klp_livepatch': patching complete
[ 179.757176] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 179.757196] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 179.757219] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 180.751089] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 180.752537] livepatch: 'test_klp_livepatch': unpatching complete
[ 180.767212] % rmmod test_klp_livepatch
[ 180.830459] ===== TEST: multiple livepatches =====
[ 180.833537] % modprobe test_klp_livepatch
[ 180.834932] livepatch: enabling patch 'test_klp_livepatch'
[ 180.834933] livepatch: 'test_klp_livepatch': initializing patching transition
[ 180.836072] livepatch: 'test_klp_livepatch': starting patching transition
[ 181.711030] livepatch: 'test_klp_livepatch': completing patching transition
[ 181.711129] livepatch: 'test_klp_livepatch': patching complete
[ 181.753931] test_klp_livepatch: this has been live patched
[ 181.758075] % modprobe test_klp_atomic_replace replace=0
[ 181.759630] livepatch: enabling patch 'test_klp_atomic_replace'
[ 181.759632] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 181.760761] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 182.751097] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 182.751210] livepatch: 'test_klp_atomic_replace': patching complete
[ 182.779987] test_klp_livepatch: this has been live patched
[ 182.780949] test_klp_atomic_replace: this has been live patched
[ 182.781132] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 182.781152] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 182.781172] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 183.711178] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 183.712627] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 183.791173] % rmmod test_klp_atomic_replace
[ 183.881579] test_klp_livepatch: this has been live patched
[ 183.882598] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 183.882616] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 183.882634] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 184.751183] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 184.752715] livepatch: 'test_klp_livepatch': unpatching complete
[ 184.791884] % rmmod test_klp_livepatch
[ 184.921013] ===== TEST: atomic replace livepatch =====
[ 184.924117] % modprobe test_klp_livepatch
[ 184.925507] livepatch: enabling patch 'test_klp_livepatch'
[ 184.925509] livepatch: 'test_klp_livepatch': initializing patching transition
[ 184.926666] livepatch: 'test_klp_livepatch': starting patching transition
[ 185.791155] livepatch: 'test_klp_livepatch': completing patching transition
[ 185.791263] livepatch: 'test_klp_livepatch': patching complete
[ 185.844460] test_klp_livepatch: this has been live patched
[ 185.848202] % modprobe test_klp_atomic_replace replace=1
[ 185.849784] livepatch: enabling patch 'test_klp_atomic_replace'
[ 185.849786] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 185.850899] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 186.751268] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 186.752724] livepatch: 'test_klp_atomic_replace': patching complete
[ 186.769820] test_klp_atomic_replace: this has been live patched
[ 186.771001] % rmmod test_klp_livepatch
[ 186.842577] test_klp_atomic_replace: this has been live patched
[ 186.842713] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 186.842732] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 186.842752] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 187.711155] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 187.712686] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 187.751949] % rmmod test_klp_atomic_replace
[ 187.875356] livepatch: kernel.ftrace_enabled = 1
[ 187.883440] ===== TEST: target module before livepatch =====
[ 187.886603] % modprobe test_klp_callbacks_mod
[ 187.887986] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 187.891200] % modprobe test_klp_callbacks_demo
[ 187.892630] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 187.892632] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 187.892658] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 187.892659] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 187.892660] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 189.071175] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 189.071347] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 189.071350] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 189.071351] livepatch: 'test_klp_callbacks_demo': patching complete
[ 189.113416] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 189.113437] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 189.113459] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 189.113460] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 189.113461] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 190.831161] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 190.831300] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 190.831303] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 190.831304] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 190.928590] % rmmod test_klp_callbacks_demo
[ 190.981743] % rmmod test_klp_callbacks_mod
[ 190.982844] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 191.068717] ===== TEST: module_coming notifier =====
[ 191.071881] % modprobe test_klp_callbacks_demo
[ 191.073324] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 191.073326] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 191.073345] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 191.073347] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 192.761063] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 192.761166] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 192.761168] livepatch: 'test_klp_callbacks_demo': patching complete
[ 192.804600] % modprobe test_klp_callbacks_mod
[ 192.806035] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 192.806038] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 192.806040] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 192.806058] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 192.806411] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 192.806429] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 192.806450] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 192.806452] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 192.806453] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 193.951153] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 193.951254] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 193.951256] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 193.951257] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 194.016717] % rmmod test_klp_callbacks_demo
[ 194.111640] % rmmod test_klp_callbacks_mod
[ 194.112834] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 194.179536] ===== TEST: module_going notifier =====
[ 194.182529] % modprobe test_klp_callbacks_mod
[ 194.183902] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 194.186979] % modprobe test_klp_callbacks_demo
[ 194.188306] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 194.188308] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 194.188334] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 194.188336] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 194.188337] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 195.871146] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 195.871247] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 195.871248] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 195.871250] livepatch: 'test_klp_callbacks_demo': patching complete
[ 195.917690] % rmmod test_klp_callbacks_mod
[ 195.918839] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 195.918874] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 195.918876] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 195.918877] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 196.000811] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 196.000829] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 196.000847] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 196.000848] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 196.831134] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 196.831258] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 196.831276] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 196.909237] % rmmod test_klp_callbacks_demo
[ 196.999252] ===== TEST: module_coming and module_going notifiers =====
[ 197.002219] % modprobe test_klp_callbacks_demo
[ 197.003720] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 197.003722] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 197.003761] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 197.003762] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 197.951097] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 197.951197] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 197.951199] livepatch: 'test_klp_callbacks_demo': patching complete
[ 198.023498] % modprobe test_klp_callbacks_mod
[ 198.024865] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 198.024868] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 198.024870] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 198.024887] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 198.026043] % rmmod test_klp_callbacks_mod
[ 198.027153] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 198.027169] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 198.027171] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 198.027172] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 198.110789] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 198.110807] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 198.110828] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 198.110830] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 199.881138] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 199.881237] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 199.881239] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 199.925505] % rmmod test_klp_callbacks_demo
[ 199.999151] ===== TEST: target module not present =====
[ 200.002145] % modprobe test_klp_callbacks_demo
[ 200.003699] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 200.003701] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 200.003721] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 200.003723] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 200.911124] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 200.911242] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 200.911244] livepatch: 'test_klp_callbacks_demo': patching complete
[ 200.919249] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 200.919267] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 200.919288] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 200.919289] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 201.951160] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 201.951277] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 201.951279] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 202.028867] % rmmod test_klp_callbacks_demo
[ 202.119054] ===== TEST: pre-patch callback -ENODEV =====
[ 202.122040] % modprobe test_klp_callbacks_mod
[ 202.123508] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 202.123862] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 202.125317] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 202.125319] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 202.125341] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 202.125342] livepatch: pre-patch callback failed for object 'vmlinux'
[ 202.125343] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 202.125344] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 202.125345] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 202.125496] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 202.250789] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 202.251582] % rmmod test_klp_callbacks_mod
[ 202.252724] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 202.348771] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 202.351804] % modprobe test_klp_callbacks_demo
[ 202.353355] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 202.353357] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 202.353392] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 202.353393] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 203.951197] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 203.951351] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 203.951353] livepatch: 'test_klp_callbacks_demo': patching complete
[ 203.979670] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 203.980548] % modprobe test_klp_callbacks_mod
[ 203.981920] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 203.981922] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 203.981924] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 203.981925] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 204.130800] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 204.130845] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 204.130862] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 204.130882] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 204.130884] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 205.951235] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 205.951341] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 205.951343] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 206.046975] % rmmod test_klp_callbacks_demo
[ 206.128457] ===== TEST: multiple target modules =====
[ 206.131336] % modprobe test_klp_callbacks_busy block_transition=N
[ 206.132672] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 206.132677] test_klp_callbacks_busy: busymod_work_func enter
[ 206.132679] test_klp_callbacks_busy: busymod_work_func exit
[ 206.135860] % modprobe test_klp_callbacks_demo
[ 206.137206] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 206.137207] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 206.137228] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 206.137229] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 206.138577] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 207.871214] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 207.871314] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 207.871316] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 207.871318] livepatch: 'test_klp_callbacks_demo': patching complete
[ 207.969934] % modprobe test_klp_callbacks_mod
[ 207.971401] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 207.971404] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 207.971406] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 207.971423] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 207.972674] % rmmod test_klp_callbacks_mod
[ 207.973849] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 207.973866] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 207.973868] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 207.973870] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 208.050976] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 208.050996] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 208.051017] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 208.051018] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 208.051020] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 208.911216] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 208.912965] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 208.912967] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 208.912969] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 208.959486] % rmmod test_klp_callbacks_demo
[ 209.071781] % rmmod test_klp_callbacks_busy
[ 209.072943] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 209.149873] ===== TEST: busy target module =====
[ 209.152833] % modprobe test_klp_callbacks_busy block_transition=Y
[ 209.154258] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 209.154262] test_klp_callbacks_busy: busymod_work_func enter
[ 209.157628] % modprobe test_klp_callbacks_demo
[ 209.159018] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 209.159020] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 209.159040] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 209.159041] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 209.160430] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 209.165518] % modprobe test_klp_callbacks_mod
[ 209.166893] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 209.166896] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 209.166914] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 209.168092] % rmmod test_klp_callbacks_mod
[ 209.169182] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 209.169198] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 209.169200] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 209.250960] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 209.250978] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 209.251083] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 211.871203] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 211.872965] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 211.872967] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 211.872969] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 211.971835] % rmmod test_klp_callbacks_demo
[ 212.051698] % rmmod test_klp_callbacks_busy
[ 212.090506] test_klp_callbacks_busy: busymod_work_func exit
[ 212.090513] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 212.169096] ===== TEST: multiple livepatches =====
[ 212.172221] % modprobe test_klp_callbacks_demo
[ 212.173625] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 212.173627] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 212.173645] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 212.173646] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 213.881119] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 213.881238] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 213.881240] livepatch: 'test_klp_callbacks_demo': patching complete
[ 213.904735] % modprobe test_klp_callbacks_demo2
[ 213.906252] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 213.906254] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 213.906291] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 213.906292] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 214.911228] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 214.911330] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 214.911332] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 214.923290] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 214.923309] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 214.923323] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 214.923324] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 215.951189] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 215.951289] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 215.951291] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 216.032305] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 216.032322] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 216.032338] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 216.032339] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 216.911208] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 216.911327] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 216.911329] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 216.941200] % rmmod test_klp_callbacks_demo2
[ 217.011815] % rmmod test_klp_callbacks_demo
[ 217.089875] ===== TEST: atomic replace =====
[ 217.092945] % modprobe test_klp_callbacks_demo
[ 217.094433] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 217.094436] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 217.094455] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 217.094457] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 217.951266] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 217.951371] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 217.951372] livepatch: 'test_klp_callbacks_demo': patching complete
[ 218.014048] % modprobe test_klp_callbacks_demo2 replace=1
[ 218.015488] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 218.015491] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 218.015512] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 218.015514] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 219.631259] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 219.631381] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 219.631383] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 219.643212] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 219.643241] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 219.643273] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 219.643274] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 220.831217] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 220.831316] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 220.831318] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 220.853623] % rmmod test_klp_callbacks_demo2
[ 220.931690] % rmmod test_klp_callbacks_demo
[ 221.032866] livepatch: kernel.ftrace_enabled = 1
[ 221.041249] ===== TEST: basic shadow variable API =====
[ 221.044342] % modprobe test_klp_shadow_vars
[ 221.046005] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 221.046008] test_klp_shadow_vars: got expected NULL result
[ 221.046010] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 221.046011] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 221.046015] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 221.046016] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 221.046019] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 221.046020] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 221.046022] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 221.046024] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 221.046026] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 221.046028] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 221.046030] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 221.046031] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 221.046034] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 221.046035] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 221.046036] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 221.046038] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 221.046039] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 221.046041] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 221.046042] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 221.046043] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 221.046045] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 221.046046] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 221.046047] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 221.046049] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 221.046050] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 221.046052] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 221.046054] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 221.046056] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 221.046057] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 221.046059] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 221.046061] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 221.046063] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 221.046064] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 221.046066] test_klp_shadow_vars: got expected NULL result
[ 221.046067] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 221.046068] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 221.046070] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 221.046071] test_klp_shadow_vars: got expected NULL result
[ 221.046072] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 221.046073] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 221.046075] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 221.046076] test_klp_shadow_vars: got expected NULL result
[ 221.046077] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 221.046079] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 221.046080] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 221.046081] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 221.046083] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 221.046084] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 221.046092] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 221.046093] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 221.046094] test_klp_shadow_vars: got expected NULL result
[ 221.046095] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 221.046097] test_klp_shadow_vars: got expected NULL result
[ 221.046098] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 221.046099] test_klp_shadow_vars: got expected NULL result
[ 221.047460] % rmmod test_klp_shadow_vars
[ 221.132199] livepatch: kernel.ftrace_enabled = 1
[ 221.140198] ===== TEST: system state modification =====
[ 221.143166] % modprobe test_klp_state
[ 221.144614] livepatch: enabling patch 'test_klp_state'
[ 221.144616] livepatch: 'test_klp_state': initializing patching transition
[ 221.144637] test_klp_state: pre_patch_callback: vmlinux
[ 221.144638] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 221.144639] livepatch: 'test_klp_state': starting patching transition
[ 222.111272] livepatch: 'test_klp_state': completing patching transition
[ 222.111377] test_klp_state: post_patch_callback: vmlinux
[ 222.111379] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 222.111381] livepatch: 'test_klp_state': patching complete
[ 222.162434] % echo 0 > /sys/kernel/livepatch/test_klp_state/enabled
[ 222.162453] livepatch: 'test_klp_state': initializing unpatching transition
[ 222.162474] test_klp_state: pre_unpatch_callback: vmlinux
[ 222.162476] test_klp_state: restore_console_loglevel: restoring console_loglevel
[ 222.162477] livepatch: 'test_klp_state': starting unpatching transition
[ 223.951243] livepatch: 'test_klp_state': completing unpatching transition
[ 223.951343] test_klp_state: post_unpatch_callback: vmlinux
[ 223.951345] test_klp_state: free_loglevel_state: freeing space for the stored console_loglevel
[ 223.951346] livepatch: 'test_klp_state': unpatching complete
[ 223.978524] % rmmod test_klp_state
[ 224.049861] ===== TEST: taking over system state modification =====
[ 224.052982] % modprobe test_klp_state
[ 224.054535] livepatch: enabling patch 'test_klp_state'
[ 224.054537] livepatch: 'test_klp_state': initializing patching transition
[ 224.054558] test_klp_state: pre_patch_callback: vmlinux
[ 224.054559] test_klp_state: allocate_loglevel_state: allocating space to store console_loglevel
[ 224.054561] livepatch: 'test_klp_state': starting patching transition
[ 224.921252] livepatch: 'test_klp_state': completing patching transition
[ 224.921353] test_klp_state: post_patch_callback: vmlinux
[ 224.921355] test_klp_state: fix_console_loglevel: fixing console_loglevel
[ 224.921357] livepatch: 'test_klp_state': patching complete
[ 224.974637] % modprobe test_klp_state2
[ 224.976246] livepatch: enabling patch 'test_klp_state2'
[ 224.976248] livepatch: 'test_klp_state2': initializing patching transition
[ 224.976275] test_klp_state2: pre_patch_callback: vmlinux
[ 224.976276] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 224.976278] livepatch: 'test_klp_state2': starting patching transition
[ 226.031256] livepatch: 'test_klp_state2': completing patching transition
[ 226.031388] test_klp_state2: post_patch_callback: vmlinux
[ 226.031389] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 226.031390] livepatch: 'test_klp_state2': patching complete
[ 226.097150] % rmmod test_klp_state
[ 226.170953] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 226.170972] livepatch: 'test_klp_state2': initializing unpatching transition
[ 226.170994] test_klp_state2: pre_unpatch_callback: vmlinux
[ 226.170995] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 226.170996] livepatch: 'test_klp_state2': starting unpatching transition
[ 227.951209] livepatch: 'test_klp_state2': completing unpatching transition
[ 227.951314] test_klp_state2: post_unpatch_callback: vmlinux
[ 227.951317] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 227.951318] livepatch: 'test_klp_state2': unpatching complete
[ 227.987229] % rmmod test_klp_state2
[ 228.048401] ===== TEST: compatible cumulative livepatches =====
[ 228.051472] % modprobe test_klp_state2
[ 228.052836] livepatch: enabling patch 'test_klp_state2'
[ 228.052839] livepatch: 'test_klp_state2': initializing patching transition
[ 228.052858] test_klp_state2: pre_patch_callback: vmlinux
[ 228.052860] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 228.052861] livepatch: 'test_klp_state2': starting patching transition
[ 229.071292] livepatch: 'test_klp_state2': completing patching transition
[ 229.071407] test_klp_state2: post_patch_callback: vmlinux
[ 229.071409] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 229.071410] livepatch: 'test_klp_state2': patching complete
[ 229.174501] % modprobe test_klp_state3
[ 229.175964] livepatch: enabling patch 'test_klp_state3'
[ 229.175966] livepatch: 'test_klp_state3': initializing patching transition
[ 229.175984] test_klp_state3: pre_patch_callback: vmlinux
[ 229.175985] test_klp_state3: allocate_loglevel_state: space to store console_loglevel already allocated
[ 229.175986] livepatch: 'test_klp_state3': starting patching transition
[ 230.031287] livepatch: 'test_klp_state3': completing patching transition
[ 230.031407] test_klp_state3: post_patch_callback: vmlinux
[ 230.031409] test_klp_state3: fix_console_loglevel: taking over the console_loglevel change
[ 230.031410] livepatch: 'test_klp_state3': patching complete
[ 230.092633] % rmmod test_klp_state2
[ 230.174017] % modprobe test_klp_state2
[ 230.175415] livepatch: enabling patch 'test_klp_state2'
[ 230.175416] livepatch: 'test_klp_state2': initializing patching transition
[ 230.175437] test_klp_state2: pre_patch_callback: vmlinux
[ 230.175438] test_klp_state2: allocate_loglevel_state: space to store console_loglevel already allocated
[ 230.175453] livepatch: 'test_klp_state2': starting patching transition
[ 231.871289] livepatch: 'test_klp_state2': completing patching transition
[ 231.871392] test_klp_state2: post_patch_callback: vmlinux
[ 231.871393] test_klp_state2: fix_console_loglevel: taking over the console_loglevel change
[ 231.871394] livepatch: 'test_klp_state2': patching complete
[ 231.902873] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 231.902893] livepatch: 'test_klp_state2': initializing unpatching transition
[ 231.902909] test_klp_state2: pre_unpatch_callback: vmlinux
[ 231.902910] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 231.902911] livepatch: 'test_klp_state2': starting unpatching transition
[ 232.831270] livepatch: 'test_klp_state2': completing unpatching transition
[ 232.831371] test_klp_state2: post_unpatch_callback: vmlinux
[ 232.831373] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 232.831374] livepatch: 'test_klp_state2': unpatching complete
[ 232.912312] % rmmod test_klp_state2
[ 232.961704] % rmmod test_klp_state3
[ 233.039460] ===== TEST: incompatible cumulative livepatches =====
[ 233.042189] % modprobe test_klp_state2
[ 233.043520] livepatch: enabling patch 'test_klp_state2'
[ 233.043522] livepatch: 'test_klp_state2': initializing patching transition
[ 233.043542] test_klp_state2: pre_patch_callback: vmlinux
[ 233.043543] test_klp_state2: allocate_loglevel_state: allocating space to store console_loglevel
[ 233.043545] livepatch: 'test_klp_state2': starting patching transition
[ 234.191241] livepatch: 'test_klp_state2': completing patching transition
[ 234.191348] test_klp_state2: post_patch_callback: vmlinux
[ 234.191365] test_klp_state2: fix_console_loglevel: fixing console_loglevel
[ 234.191368] livepatch: 'test_klp_state2': patching complete
[ 234.263631] % modprobe test_klp_state
[ 234.265068] livepatch: Livepatch patch (test_klp_state) is not compatible with the already installed livepatches.
[ 234.380932] modprobe: ERROR: could not insert 'test_klp_state': Invalid argument
[ 234.380979] % echo 0 > /sys/kernel/livepatch/test_klp_state2/enabled
[ 234.380997] livepatch: 'test_klp_state2': initializing unpatching transition
[ 234.381018] test_klp_state2: pre_unpatch_callback: vmlinux
[ 234.381019] test_klp_state2: restore_console_loglevel: restoring console_loglevel
[ 234.381020] livepatch: 'test_klp_state2': starting unpatching transition
[ 235.951273] livepatch: 'test_klp_state2': completing unpatching transition
[ 235.951373] test_klp_state2: post_unpatch_callback: vmlinux
[ 235.951375] test_klp_state2: free_loglevel_state: freeing space for the stored console_loglevel
[ 235.951376] livepatch: 'test_klp_state2': unpatching complete
[ 235.994953] % rmmod test_klp_state2
[ 236.093180] livepatch: kernel.ftrace_enabled = 1
[ 236.101310] ===== TEST: livepatch interaction with ftrace_enabled sysctl =====
[ 236.102950] livepatch: kernel.ftrace_enabled = 0
[ 236.103030] % modprobe test_klp_livepatch
[ 236.104411] livepatch: enabling patch 'test_klp_livepatch'
[ 236.104414] livepatch: 'test_klp_livepatch': initializing patching transition
[ 236.104437] livepatch: failed to register ftrace handler for function 'cmdline_proc_show' (-16)
[ 236.104439] livepatch: failed to patch object 'vmlinux'
[ 236.104440] livepatch: failed to enable patch 'test_klp_livepatch'
[ 236.104441] livepatch: 'test_klp_livepatch': canceling patching transition, going to unpatch
[ 236.104442] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 236.104560] livepatch: 'test_klp_livepatch': unpatching complete
[ 236.260929] modprobe: ERROR: could not insert 'test_klp_livepatch': Device or resource busy
[ 236.262507] livepatch: kernel.ftrace_enabled = 1
[ 236.265215] % modprobe test_klp_livepatch
[ 236.266486] livepatch: enabling patch 'test_klp_livepatch'
[ 236.266488] livepatch: 'test_klp_livepatch': initializing patching transition
[ 236.267596] livepatch: 'test_klp_livepatch': starting patching transition
[ 237.791212] livepatch: 'test_klp_livepatch': completing patching transition
[ 237.791310] livepatch: 'test_klp_livepatch': patching complete
[ 237.797154] livepatch: sysctl: setting key "kernel.ftrace_enabled": Device or resource busy
[ 237.798043] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 237.798095] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 237.798109] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 238.831322] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 238.832826] livepatch: 'test_klp_livepatch': unpatching complete
[ 238.908640] % rmmod test_klp_livepatch
[ 238.992263] livepatch: kernel.ftrace_enabled = 1
[ 238.999933] ===== TEST: sysfs test =====
[ 239.002807] % modprobe test_klp_livepatch
[ 239.004110] livepatch: enabling patch 'test_klp_livepatch'
[ 239.004111] livepatch: 'test_klp_livepatch': initializing patching transition
[ 239.005181] livepatch: 'test_klp_livepatch': starting patching transition
[ 240.111262] livepatch: 'test_klp_livepatch': completing patching transition
[ 240.111381] livepatch: 'test_klp_livepatch': patching complete
[ 240.132783] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 240.132799] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 240.132815] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 241.081328] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 241.082831] livepatch: 'test_klp_livepatch': unpatching complete
[ 241.142598] % rmmod test_klp_livepatch
[ 241.210158] ===== TEST: sysfs test object/patched =====
[ 241.213283] % modprobe test_klp_callbacks_demo
[ 241.214762] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 241.214764] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 241.214784] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 241.214785] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 242.031320] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 242.031449] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 242.031451] livepatch: 'test_klp_callbacks_demo': patching complete
[ 242.136182] % modprobe test_klp_callbacks_mod
[ 242.137515] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 242.137517] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 242.137519] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 242.137535] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 242.139783] % rmmod test_klp_callbacks_mod
[ 242.140942] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 242.140957] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 242.140959] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 242.140960] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 242.231991] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 242.232011] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 242.232030] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 242.232032] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 243.071322] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 243.071422] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 243.071424] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 243.141124] % rmmod test_klp_callbacks_demo
[ 243.282256] livepatch: kernel.ftrace_enabled = 1
[ 243.290569] ===== TEST: basic function patching =====
[ 243.293596] % modprobe test_klp_livepatch
[ 243.295013] livepatch: enabling patch 'test_klp_livepatch'
[ 243.295016] livepatch: 'test_klp_livepatch': initializing patching transition
[ 243.296162] livepatch: 'test_klp_livepatch': starting patching transition
[ 244.911383] livepatch: 'test_klp_livepatch': completing patching transition
[ 244.911489] livepatch: 'test_klp_livepatch': patching complete
[ 244.924091] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 244.924112] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 244.924134] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 245.871319] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 245.872799] livepatch: 'test_klp_livepatch': unpatching complete
[ 245.934000] % rmmod test_klp_livepatch
[ 246.029530] ===== TEST: multiple livepatches =====
[ 246.032436] % modprobe test_klp_livepatch
[ 246.033861] livepatch: enabling patch 'test_klp_livepatch'
[ 246.033863] livepatch: 'test_klp_livepatch': initializing patching transition
[ 246.034968] livepatch: 'test_klp_livepatch': starting patching transition
[ 247.711339] livepatch: 'test_klp_livepatch': completing patching transition
[ 247.711489] livepatch: 'test_klp_livepatch': patching complete
[ 247.763427] test_klp_livepatch: this has been live patched
[ 247.767396] % modprobe test_klp_atomic_replace replace=0
[ 247.768853] livepatch: enabling patch 'test_klp_atomic_replace'
[ 247.768854] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 247.769960] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 248.751335] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 248.751471] livepatch: 'test_klp_atomic_replace': patching complete
[ 248.788134] test_klp_livepatch: this has been live patched
[ 248.789014] test_klp_atomic_replace: this has been live patched
[ 248.789161] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 248.789181] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 248.789197] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 249.711272] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 249.712588] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 249.798070] % rmmod test_klp_atomic_replace
[ 249.851728] test_klp_livepatch: this has been live patched
[ 249.852707] % echo 0 > /sys/kernel/livepatch/test_klp_livepatch/enabled
[ 249.852727] livepatch: 'test_klp_livepatch': initializing unpatching transition
[ 249.852745] livepatch: 'test_klp_livepatch': starting unpatching transition
[ 250.751345] livepatch: 'test_klp_livepatch': completing unpatching transition
[ 250.752836] livepatch: 'test_klp_livepatch': unpatching complete
[ 250.761513] % rmmod test_klp_livepatch
[ 250.851360] ===== TEST: atomic replace livepatch =====
[ 250.854431] % modprobe test_klp_livepatch
[ 250.855791] livepatch: enabling patch 'test_klp_livepatch'
[ 250.855793] livepatch: 'test_klp_livepatch': initializing patching transition
[ 250.856996] livepatch: 'test_klp_livepatch': starting patching transition
[ 251.711343] livepatch: 'test_klp_livepatch': completing patching transition
[ 251.711461] livepatch: 'test_klp_livepatch': patching complete
[ 251.773219] test_klp_livepatch: this has been live patched
[ 251.777357] % modprobe test_klp_atomic_replace replace=1
[ 251.778873] livepatch: enabling patch 'test_klp_atomic_replace'
[ 251.778875] livepatch: 'test_klp_atomic_replace': initializing patching transition
[ 251.780049] livepatch: 'test_klp_atomic_replace': starting patching transition
[ 252.911301] livepatch: 'test_klp_atomic_replace': completing patching transition
[ 252.912669] livepatch: 'test_klp_atomic_replace': patching complete
[ 253.001881] test_klp_atomic_replace: this has been live patched
[ 253.002864] % rmmod test_klp_livepatch
[ 253.052447] test_klp_atomic_replace: this has been live patched
[ 253.052561] % echo 0 > /sys/kernel/livepatch/test_klp_atomic_replace/enabled
[ 253.052580] livepatch: 'test_klp_atomic_replace': initializing unpatching transition
[ 253.052597] livepatch: 'test_klp_atomic_replace': starting unpatching transition
[ 253.871341] livepatch: 'test_klp_atomic_replace': completing unpatching transition
[ 253.872934] livepatch: 'test_klp_atomic_replace': unpatching complete
[ 253.961071] % rmmod test_klp_atomic_replace
[ 254.075347] livepatch: kernel.ftrace_enabled = 1
[ 254.083375] ===== TEST: target module before livepatch =====
[ 254.086470] % modprobe test_klp_callbacks_mod
[ 254.087750] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 254.091112] % modprobe test_klp_callbacks_demo
[ 254.092572] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 254.092574] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 254.092593] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 254.092594] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 254.092595] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 254.911372] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 254.911470] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 254.911472] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 254.911474] livepatch: 'test_klp_callbacks_demo': patching complete
[ 255.008950] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 255.008969] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 255.009000] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 255.009002] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 255.009020] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 255.951355] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 255.951452] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 255.951454] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 255.951456] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 256.018607] % rmmod test_klp_callbacks_demo
[ 256.091916] % rmmod test_klp_callbacks_mod
[ 256.093014] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 256.169237] ===== TEST: module_coming notifier =====
[ 256.172297] % modprobe test_klp_callbacks_demo
[ 256.173751] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 256.173753] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 256.173772] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 256.173774] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 257.871420] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 257.871550] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 257.871552] livepatch: 'test_klp_callbacks_demo': patching complete
[ 257.906694] % modprobe test_klp_callbacks_mod
[ 257.907956] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 257.907958] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 257.907959] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 257.907977] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 257.908350] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 257.908367] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 257.908387] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 257.908388] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 257.908390] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 258.911396] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 258.911552] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 258.911554] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 258.911556] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 258.918270] % rmmod test_klp_callbacks_demo
[ 259.001970] % rmmod test_klp_callbacks_mod
[ 259.002953] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 259.118512] ===== TEST: module_going notifier =====
[ 259.121469] % modprobe test_klp_callbacks_mod
[ 259.122753] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 259.125852] % modprobe test_klp_callbacks_demo
[ 259.127258] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 259.127259] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 259.127280] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 259.127281] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 259.127282] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 260.191345] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 260.191448] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 260.191449] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_LIVE] Normal state
[ 260.191451] livepatch: 'test_klp_callbacks_demo': patching complete
[ 260.248083] % rmmod test_klp_callbacks_mod
[ 260.249312] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 260.249330] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 260.249332] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 260.249333] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 260.311104] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 260.311123] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 260.311150] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 260.311151] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 261.151436] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 261.151581] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 261.151583] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 261.220008] % rmmod test_klp_callbacks_demo
[ 261.309304] ===== TEST: module_coming and module_going notifiers =====
[ 261.312251] % modprobe test_klp_callbacks_demo
[ 261.313722] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 261.313724] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 261.313762] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 261.313763] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 262.671500] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 262.671624] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 262.671626] livepatch: 'test_klp_callbacks_demo': patching complete
[ 262.742090] % modprobe test_klp_callbacks_mod
[ 262.743321] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 262.743324] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 262.743326] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 262.743344] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 262.744479] % rmmod test_klp_callbacks_mod
[ 262.745567] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 262.745582] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 262.745584] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 262.745585] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 262.811091] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 262.811109] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 262.811130] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 262.811131] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 263.951430] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 263.951537] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 263.951539] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 264.022343] % rmmod test_klp_callbacks_demo
[ 264.179776] ===== TEST: target module not present =====
[ 264.182883] % modprobe test_klp_callbacks_demo
[ 264.184345] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 264.184347] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 264.184367] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 264.184368] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 265.081369] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 265.081514] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 265.081516] livepatch: 'test_klp_callbacks_demo': patching complete
[ 265.101043] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 265.101062] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 265.101083] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 265.101084] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 266.191411] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 266.191510] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 266.191512] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 266.211817] % rmmod test_klp_callbacks_demo
[ 266.279575] ===== TEST: pre-patch callback -ENODEV =====
[ 266.282491] % modprobe test_klp_callbacks_mod
[ 266.283760] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 266.284111] % modprobe test_klp_callbacks_demo pre_patch_ret=-19
[ 266.285525] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 266.285527] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 266.285548] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 266.285549] livepatch: pre-patch callback failed for object 'vmlinux'
[ 266.285550] livepatch: failed to enable patch 'test_klp_callbacks_demo'
[ 266.285551] livepatch: 'test_klp_callbacks_demo': canceling patching transition, going to unpatch
[ 266.285552] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 266.285659] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 266.481071] modprobe: ERROR: could not insert 'test_klp_callbacks_demo': No such device
[ 266.482054] % rmmod test_klp_callbacks_mod
[ 266.483170] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 266.569358] ===== TEST: module_coming + pre-patch callback -ENODEV =====
[ 266.572523] % modprobe test_klp_callbacks_demo
[ 266.573921] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 266.573924] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 266.573963] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 266.573965] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 268.031434] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 268.031535] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 268.031537] livepatch: 'test_klp_callbacks_demo': patching complete
[ 268.100668] % echo -19 > /sys/module/test_klp_callbacks_demo/parameters/pre_patch_ret
[ 268.101662] % modprobe test_klp_callbacks_mod
[ 268.102985] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 268.102988] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 268.102990] livepatch: pre-patch callback failed for object 'test_klp_callbacks_mod'
[ 268.102991] livepatch: patch 'test_klp_callbacks_demo' failed for module 'test_klp_callbacks_mod', refusing to load module 'test_klp_callbacks_mod'
[ 268.231087] modprobe: ERROR: could not insert 'test_klp_callbacks_mod': No such device
[ 268.231141] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 268.231156] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 268.231176] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 268.231177] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 269.951417] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 269.951520] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 269.951522] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 270.048128] % rmmod test_klp_callbacks_demo
[ 270.110260] ===== TEST: multiple target modules =====
[ 270.113377] % modprobe test_klp_callbacks_busy block_transition=N
[ 270.114847] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 270.114851] test_klp_callbacks_busy: busymod_work_func enter
[ 270.114853] test_klp_callbacks_busy: busymod_work_func exit
[ 270.118456] % modprobe test_klp_callbacks_demo
[ 270.119920] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 270.119922] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 270.119941] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 270.119943] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 270.121350] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 271.871484] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 271.871585] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 271.871587] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 271.871589] livepatch: 'test_klp_callbacks_demo': patching complete
[ 271.957226] % modprobe test_klp_callbacks_mod
[ 271.958646] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 271.958665] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 271.958667] test_klp_callbacks_demo: post_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 271.958683] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 271.960010] % rmmod test_klp_callbacks_mod
[ 271.961127] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 271.961141] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 271.961143] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 271.961145] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 272.031267] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 272.031285] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 272.031303] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 272.031304] test_klp_callbacks_demo: pre_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 272.031306] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 272.831467] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 272.833230] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 272.833232] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 272.833233] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 272.839688] % rmmod test_klp_callbacks_demo
[ 272.912113] % rmmod test_klp_callbacks_busy
[ 272.913268] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 272.989731] ===== TEST: busy target module =====
[ 272.992863] % modprobe test_klp_callbacks_busy block_transition=Y
[ 272.994427] test_klp_callbacks_busy: test_klp_callbacks_busy_init
[ 272.994433] test_klp_callbacks_busy: busymod_work_func enter
[ 272.997897] % modprobe test_klp_callbacks_demo
[ 272.999390] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 272.999391] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 272.999413] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 272.999415] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 273.000863] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 273.006166] % modprobe test_klp_callbacks_mod
[ 273.007622] livepatch: applying patch 'test_klp_callbacks_demo' to loading module 'test_klp_callbacks_mod'
[ 273.007624] test_klp_callbacks_demo: pre_patch_callback: test_klp_callbacks_mod -> [MODULE_STATE_COMING] Full formed, running module_init
[ 273.007651] test_klp_callbacks_mod: test_klp_callbacks_mod_init
[ 273.009014] % rmmod test_klp_callbacks_mod
[ 273.010123] test_klp_callbacks_mod: test_klp_callbacks_mod_exit
[ 273.010139] livepatch: reverting patch 'test_klp_callbacks_demo' on unloading module 'test_klp_callbacks_mod'
[ 273.010141] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_mod -> [MODULE_STATE_GOING] Going away
[ 273.091251] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 273.091269] livepatch: 'test_klp_callbacks_demo': reversing transition from patching to unpatching
[ 273.091425] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 275.791451] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 275.793206] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 275.793209] test_klp_callbacks_demo: post_unpatch_callback: test_klp_callbacks_busy -> [MODULE_STATE_LIVE] Normal state
[ 275.793210] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 275.815309] % rmmod test_klp_callbacks_demo
[ 275.882051] % rmmod test_klp_callbacks_busy
[ 275.890764] test_klp_callbacks_busy: busymod_work_func exit
[ 275.890773] test_klp_callbacks_busy: test_klp_callbacks_busy_exit
[ 275.959816] ===== TEST: multiple livepatches =====
[ 275.963029] % modprobe test_klp_callbacks_demo
[ 275.964604] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 275.964606] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 275.964628] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 275.964629] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 277.641504] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 277.641611] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 277.641613] livepatch: 'test_klp_callbacks_demo': patching complete
[ 277.698468] % modprobe test_klp_callbacks_demo2
[ 277.700098] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 277.700100] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 277.700119] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 277.700120] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 278.681475] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 278.681615] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 278.681617] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 278.719462] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 278.719482] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 278.719504] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 278.719505] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 279.791389] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 279.791487] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 279.791489] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 279.829592] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo/enabled
[ 279.829612] livepatch: 'test_klp_callbacks_demo': initializing unpatching transition
[ 279.829629] test_klp_callbacks_demo: pre_unpatch_callback: vmlinux
[ 279.829630] livepatch: 'test_klp_callbacks_demo': starting unpatching transition
[ 280.831497] livepatch: 'test_klp_callbacks_demo': completing unpatching transition
[ 280.831602] test_klp_callbacks_demo: post_unpatch_callback: vmlinux
[ 280.831604] livepatch: 'test_klp_callbacks_demo': unpatching complete
[ 280.839540] % rmmod test_klp_callbacks_demo2
[ 280.912127] % rmmod test_klp_callbacks_demo
[ 280.989065] ===== TEST: atomic replace =====
[ 280.991951] % modprobe test_klp_callbacks_demo
[ 280.993414] livepatch: enabling patch 'test_klp_callbacks_demo'
[ 280.993416] livepatch: 'test_klp_callbacks_demo': initializing patching transition
[ 280.993436] test_klp_callbacks_demo: pre_patch_callback: vmlinux
[ 280.993437] livepatch: 'test_klp_callbacks_demo': starting patching transition
[ 281.871479] livepatch: 'test_klp_callbacks_demo': completing patching transition
[ 281.871579] test_klp_callbacks_demo: post_patch_callback: vmlinux
[ 281.871581] livepatch: 'test_klp_callbacks_demo': patching complete
[ 281.912919] % modprobe test_klp_callbacks_demo2 replace=1
[ 281.914353] livepatch: enabling patch 'test_klp_callbacks_demo2'
[ 281.914356] livepatch: 'test_klp_callbacks_demo2': initializing patching transition
[ 281.914376] test_klp_callbacks_demo2: pre_patch_callback: vmlinux
[ 281.914377] livepatch: 'test_klp_callbacks_demo2': starting patching transition
[ 283.071478] livepatch: 'test_klp_callbacks_demo2': completing patching transition
[ 283.071583] test_klp_callbacks_demo2: post_patch_callback: vmlinux
[ 283.071585] livepatch: 'test_klp_callbacks_demo2': patching complete
[ 283.135341] % echo 0 > /sys/kernel/livepatch/test_klp_callbacks_demo2/enabled
[ 283.135361] livepatch: 'test_klp_callbacks_demo2': initializing unpatching transition
[ 283.135381] test_klp_callbacks_demo2: pre_unpatch_callback: vmlinux
[ 283.135382] livepatch: 'test_klp_callbacks_demo2': starting unpatching transition
[ 284.031462] livepatch: 'test_klp_callbacks_demo2': completing unpatching transition
[ 284.031579] test_klp_callbacks_demo2: post_unpatch_callback: vmlinux
[ 284.031580] livepatch: 'test_klp_callbacks_demo2': unpatching complete
[ 284.044328] % rmmod test_klp_callbacks_demo2
[ 284.112113] % rmmod test_klp_callbacks_demo
[ 284.224335] livepatch: kernel.ftrace_enabled = 1
[ 284.232921] ===== TEST: basic shadow variable API =====
[ 284.235963] % modprobe test_klp_shadow_vars
[ 284.237528] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 284.237531] test_klp_shadow_vars: got expected NULL result
[ 284.237533] test_klp_shadow_vars: shadow_ctor: PTR3 -> PTR2
[ 284.237535] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 284.237538] test_klp_shadow_vars: shadow_ctor: PTR6 -> PTR5
[ 284.237539] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR1, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR5 = PTR6
[ 284.237542] test_klp_shadow_vars: shadow_ctor: PTR8 -> PTR7
[ 284.237543] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 284.237545] test_klp_shadow_vars: shadow_ctor: PTR11 -> PTR10
[ 284.237547] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR9, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR10 = PTR11
[ 284.237549] test_klp_shadow_vars: shadow_ctor: PTR13 -> PTR12
[ 284.237550] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 284.237553] test_klp_shadow_vars: shadow_ctor: PTR16 -> PTR15
[ 284.237554] test_klp_shadow_vars: klp_shadow_alloc(obj=PTR14, id=0x1235, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR15 = PTR16
[ 284.237556] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR3
[ 284.237558] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 284.237559] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 284.237561] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 284.237562] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR8
[ 284.237564] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 284.237565] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 284.237566] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 284.237567] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR13
[ 284.237569] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 284.237570] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 284.237571] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 284.237573] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR1, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR2 = PTR3
[ 284.237575] test_klp_shadow_vars: got expected PTR3 -> PTR2 result
[ 284.237576] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR9, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR7 = PTR8
[ 284.237579] test_klp_shadow_vars: got expected PTR8 -> PTR7 result
[ 284.237580] test_klp_shadow_vars: klp_shadow_get_or_alloc(obj=PTR14, id=0x1234, size=8, gfp_flags=GFP_KERNEL), ctor=PTR4, ctor_data=PTR12 = PTR13
[ 284.237582] test_klp_shadow_vars: got expected PTR13 -> PTR12 result
[ 284.237583] test_klp_shadow_vars: shadow_dtor(obj=PTR1, shadow_data=PTR3)
[ 284.237585] test_klp_shadow_vars: klp_shadow_free(obj=PTR1, id=0x1234, dtor=PTR17)
[ 284.237587] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1234) = PTR0
[ 284.237588] test_klp_shadow_vars: got expected NULL result
[ 284.237589] test_klp_shadow_vars: shadow_dtor(obj=PTR9, shadow_data=PTR8)
[ 284.237590] test_klp_shadow_vars: klp_shadow_free(obj=PTR9, id=0x1234, dtor=PTR17)
[ 284.237592] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1234) = PTR0
[ 284.237593] test_klp_shadow_vars: got expected NULL result
[ 284.237594] test_klp_shadow_vars: shadow_dtor(obj=PTR14, shadow_data=PTR13)
[ 284.237596] test_klp_shadow_vars: klp_shadow_free(obj=PTR14, id=0x1234, dtor=PTR17)
[ 284.237597] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1234) = PTR0
[ 284.237598] test_klp_shadow_vars: got expected NULL result
[ 284.237599] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR6
[ 284.237601] test_klp_shadow_vars: got expected PTR6 -> PTR5 result
[ 284.237602] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR11
[ 284.237603] test_klp_shadow_vars: got expected PTR11 -> PTR10 result
[ 284.237604] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR16
[ 284.237606] test_klp_shadow_vars: got expected PTR16 -> PTR15 result
[ 284.237615] test_klp_shadow_vars: klp_shadow_free_all(id=0x1235, dtor=PTR0)
[ 284.237616] test_klp_shadow_vars: klp_shadow_get(obj=PTR1, id=0x1235) = PTR0
[ 284.237617] test_klp_shadow_vars: got expected NULL result
[ 284.237618] test_klp_shadow_vars: klp_shadow_get(obj=PTR9, id=0x1235) = PTR0
[ 284.237620] test_klp_shadow_vars: got expected NULL result
[ 284.237620] test_klp_shadow_vars: klp_shadow_get(obj=PTR14, id=0x1235) = PTR0
[ 284.237622] test_klp_shadow_vars: got expected NULL result
[ 284.238829] % rmmod test_klp_shadow_vars

[-- Attachment #8: dmesg-saved1-rep.txt --]
[-- Type: text/plain, Size: 202 bytes --]

[ 98.820331] livepatch: 'test_klp_state2': starting patching transition
[ 100.031067] livepatch: 'test_klp_state2': completing patching transition
[ 284.224335] livepatch: kernel.ftrace_enabled = 1

[-- Attachment #9: dmesg1-rep.txt --]
[-- Type: text/plain, Size: 187 bytes --]

[ 100.031067] livepatch: 'test_klp_state2': completing patching transition
[ 284.224335] livepatch: kernel.ftrace_enabled = 1
[ 284.232921] ===== TEST: basic shadow variable API =====