Merge tag 's390-6.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 fixes from Alexander Gordeev:

- Avoid linker error for randomly generated config file that has
CONFIG_BRANCH_PROFILE_NONE enabled and make it similar to riscv, x86
and also to commit 4bf3ec384edf ("s390: disable branch profiling for
vdso").

- Currently, if the device is offline and all the channel paths are
either configured or varied offline, the associated subchannel gets
unregistered. Don't unregister the subchannel, instead unregister
offline device.

* tag 's390-6.4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390/purgatory: disable branch profiling
s390/cio: unregister device when the only path is gone

Changed files
+5 -1
arch
s390
purgatory
drivers
s390
cio
+1
arch/s390/purgatory/Makefile
··· 26 KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding 27 KBUILD_CFLAGS += -Os -m64 -msoft-float -fno-common 28 KBUILD_CFLAGS += -fno-stack-protector 29 KBUILD_CFLAGS += $(CLANG_FLAGS) 30 KBUILD_CFLAGS += $(call cc-option,-fno-PIE) 31 KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
··· 26 KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding 27 KBUILD_CFLAGS += -Os -m64 -msoft-float -fno-common 28 KBUILD_CFLAGS += -fno-stack-protector 29 + KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING 30 KBUILD_CFLAGS += $(CLANG_FLAGS) 31 KBUILD_CFLAGS += $(call cc-option,-fno-PIE) 32 KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
+4 -1
drivers/s390/cio/device.c
··· 1376 enum io_sch_action { 1377 IO_SCH_UNREG, 1378 IO_SCH_ORPH_UNREG, 1379 IO_SCH_ATTACH, 1380 IO_SCH_UNREG_ATTACH, 1381 IO_SCH_ORPH_ATTACH, ··· 1409 } 1410 if ((sch->schib.pmcw.pam & sch->opm) == 0) { 1411 if (ccw_device_notify(cdev, CIO_NO_PATH) != NOTIFY_OK) 1412 - return IO_SCH_UNREG; 1413 return IO_SCH_DISC; 1414 } 1415 if (device_is_disconnected(cdev)) ··· 1471 case IO_SCH_ORPH_ATTACH: 1472 ccw_device_set_disconnected(cdev); 1473 break; 1474 case IO_SCH_UNREG_ATTACH: 1475 case IO_SCH_UNREG: 1476 if (!cdev) ··· 1505 if (rc) 1506 goto out; 1507 break; 1508 case IO_SCH_UNREG_ATTACH: 1509 spin_lock_irqsave(sch->lock, flags); 1510 sch_set_cdev(sch, NULL);
··· 1376 enum io_sch_action { 1377 IO_SCH_UNREG, 1378 IO_SCH_ORPH_UNREG, 1379 + IO_SCH_UNREG_CDEV, 1380 IO_SCH_ATTACH, 1381 IO_SCH_UNREG_ATTACH, 1382 IO_SCH_ORPH_ATTACH, ··· 1408 } 1409 if ((sch->schib.pmcw.pam & sch->opm) == 0) { 1410 if (ccw_device_notify(cdev, CIO_NO_PATH) != NOTIFY_OK) 1411 + return IO_SCH_UNREG_CDEV; 1412 return IO_SCH_DISC; 1413 } 1414 if (device_is_disconnected(cdev)) ··· 1470 case IO_SCH_ORPH_ATTACH: 1471 ccw_device_set_disconnected(cdev); 1472 break; 1473 + case IO_SCH_UNREG_CDEV: 1474 case IO_SCH_UNREG_ATTACH: 1475 case IO_SCH_UNREG: 1476 if (!cdev) ··· 1503 if (rc) 1504 goto out; 1505 break; 1506 + case IO_SCH_UNREG_CDEV: 1507 case IO_SCH_UNREG_ATTACH: 1508 spin_lock_irqsave(sch->lock, flags); 1509 sch_set_cdev(sch, NULL);