1. 22 Jan, 2023 2 commits
    • Vineeth Vijayan's avatar
      s390/cio: evaluate devices with non-operational paths · ca34cda7
      Vineeth Vijayan authored
      css_schedule_reprobe() function calls the evaluation for CSS_EVAL_UNREG
      which is specific to the idset of unregistered subchannels. This
      evaluation was introduced because, previously, if the underlying device
      become not-accessible, the subchannel was unregistered. But, in the recent
      changes in cio,with the commit '2297791c s390/cio: dont unregister
      subchannel from child-drivers', we no  longer unregister the subchannels
      just because of a non-operational device. This allows to have subchannels
      without any operational device connected on it. So, a css_schedule_reprobe
      function on unregistered subchannel does not have any effect.
      
      Change this functionality to evaluate the subchannels which does not
      have a working path to the device. This could be due the erroneous
      device or due to the erraneous path. Evaluate based on the values of OPM
      and PAM&POM.
      Here we introduced a new idset function,to keep I/O subchannels in the
      idset when the last seen status indicates that the device has no working
      path. A device has no working path if all available paths have been tried
      without success.A failed I/O attempt on a path is indicated as a 0 bit
      value in the POM mask. By looking at the POM mask bit values of available
      paths (1 in PAM) that Linux is supposed to use (1 in vary mask OPM), we
      can identify a non-working device as a device where the bit-wise and of
      the PAM, POM and OPM mask return 0.
      
      css_schedule_reprobe() is being used by dasd-driver and chsc-cio
      component. dasd driver, when it detects a change in the pathgroup, invokes
      the re-evaluation of the subchannel. And chsc-cio component upon a CRW
      event, (resource accessibility event). In both the cases, it makes much
      better sense to re-evalute the subchannel with no-valid path.
      Signed-off-by: default avatarVineeth Vijayan <vneethv@linux.ibm.com>
      Reported-by: default avatarEric Farman <farman@linux.ibm.com>
      Reviewed-by: default avatarPeter Oberparleiter <oberpar@linux.ibm.com>
      Tested-by: default avatarEric Farman <farman@linux.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      ca34cda7
    • Christophe JAILLET's avatar
      s390/ipl: use kstrtobool() instead of strtobool() · c3130944
      Christophe JAILLET authored
      strtobool() is the same as kstrtobool().
      However, the latter is more used within the kernel.
      
      In order to remove strtobool() and slightly simplify kstrtox.h, switch to
      the other function name.
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Link: https://lore.kernel.org/r/58a3ed2e21903a93dfd742943b1e6936863ca037.1673708887.git.christophe.jaillet@wanadoo.frSigned-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      c3130944
  2. 17 Jan, 2023 2 commits
  3. 13 Jan, 2023 17 commits
  4. 11 Jan, 2023 4 commits
  5. 10 Jan, 2023 3 commits
    • Heiko Carstens's avatar
      s390/archrandom: add missing header include · e7b48169
      Heiko Carstens authored
      Add missing header include to get rid of
      
      arch/s390/crypto/arch_random.c:15:1:
       warning: symbol 's390_arch_random_available' was not declared. Should it be static?
      arch/s390/crypto/arch_random.c:17:12:
       warning: symbol 's390_arch_random_counter' was not declared. Should it be static?
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      e7b48169
    • Heiko Carstens's avatar
      s390/con3270: move condev definition · 9cab4f7d
      Heiko Carstens authored
      Fix this for allmodconfig:
      
      drivers/s390/char/con3270.c:43:24: error: 'condev' defined but not used [-Werror=unused-variable]
       static struct tty3270 *condev;
                              ^~~~~~
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Fixes: c17fe081 ("s390/3270: unify con3270 + tty3270")
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      9cab4f7d
    • Alexander Egorenkov's avatar
      s390/kexec: fix ipl report address for kdump · c2337a40
      Alexander Egorenkov authored
      This commit addresses the following erroneous situation with file-based
      kdump executed on a system with a valid IPL report.
      
      On s390, a kdump kernel, its initrd and IPL report if present are loaded
      into a special and reserved on boot memory region - crashkernel. When
      a system crashes and kdump was activated before, the purgatory code
      is entered first which swaps the crashkernel and [0 - crashkernel size]
      memory regions. Only after that the kdump kernel is entered. For this
      reason, the pointer to an IPL report in lowcore must point to the IPL report
      after the swap and not to the address of the IPL report that was located in
      crashkernel memory region before the swap. Failing to do so, makes the
      kdump's decompressor try to read memory from the crashkernel memory region
      which already contains the production's kernel memory.
      
      The situation described above caused spontaneous kdump failures/hangs
      on systems where the Secure IPL is activated because on such systems
      an IPL report is always present. In that case kdump's decompressor tried
      to parse an IPL report which frequently lead to illegal memory accesses
      because an IPL report contains addresses to various data.
      
      Cc: <stable@vger.kernel.org>
      Fixes: 99feaa71 ("s390/kexec_file: Create ipl report and pass to next kernel")
      Reviewed-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      Signed-off-by: default avatarAlexander Egorenkov <egorenar@linux.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      c2337a40
  6. 09 Jan, 2023 12 commits