LKML Archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] more s390 updates for 6.9 merge window
@ 2024-03-19 14:12 Heiko Carstens
  2024-03-19 18:54 ` Linus Torvalds
  2024-03-19 19:29 ` pr-tracker-bot
  0 siblings, 2 replies; 3+ messages in thread
From: Heiko Carstens @ 2024-03-19 14:12 UTC (permalink / raw
  To: Linus Torvalds; +Cc: Vasily Gorbik, Alexander Gordeev, linux-s390, linux-kernel

Hi Linus,

please pull more s390 updates for the 6.9 merge window.

Thanks,
Heiko

The following changes since commit b0546776ad3f332e215cebc0b063ba4351971cca:

  Merge tag 'printk-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux (2024-03-12 20:54:50 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.9-2

for you to fetch changes up to 64c3431808bdab2ccef97d7a444018c416b080b5:

  s390/entry: compare gmap asce to determine guest/host fault (2024-03-17 19:08:50 +0100)

----------------------------------------------------------------
more s390 updates for 6.9 merge window

- Various virtual vs physical address usage fixes

- Add new bitwise types and helper functions and use them in s390 specific
  drivers and code to make it easier to find virtual vs physical address
  usage bugs. Right now virtual and physical addresses are identical for
  s390, except for module, vmalloc, and similar areas. This will be
  changed, hopefully with the next merge window, so that e.g. the kernel
  image and modules will be located close to each other, allowing for
  direct branches and also for some other simplifications.

  As a prerequisite this requires to fix all misuses of virtual and
  physical addresses. As it turned out people are so used to the concept
  that virtual and physical addresses are the same, that new bugs got added
  to code which was already fixed. In order to avoid that even more code
  gets merged which adds such bugs add and use new bitwise types, so that
  sparse can be used to find such usage bugs.

  Most likely the new types can go away again after some time

- Provide a simple ARCH_HAS_DEBUG_VIRTUAL implementation

- Fix kprobe branch handling: if an out-of-line single stepped relative
  branch instruction has a target address within a certain address area in
  the entry code, the program check handler may incorrectly execute cleanup
  code as if KVM code was executed, leading to crashes

- Fix reference counting of zcrypt card objects

- Various other small fixes and cleanups

----------------------------------------------------------------
Alexander Gordeev (2):
      s390/sysinfo: allow response buffer in normal memory
      s390/iucv: fix receive buffer virtual vs physical address confusion

Andy Shevchenko (1):
      s390/cio: use while (i--) pattern to clean up

Gerald Schaefer (1):
      s390/dcssblk: fix virtual vs physical address confusion

Halil Pasic (4):
      s390/cio: introduce bitwise dma types and helper functions
      s390/virtio_ccw: fix virtual vs physical address confusion
      s390/virtio_ccw: use DMA handle from DMA API
      s390/virtio_ccw: avoid converting dma addresses / handles

Harald Freudenberger (1):
      s390/zcrypt: fix reference counting on zcrypt card objects

Heiko Carstens (22):
      s390/dasd_eckd: fix virtual vs physical address confusion
      s390/cio: fix virtual vs physical address confusion
      s390/vfio_ccw: fix virtual vs physical address confusion
      s390/cio: use bitwise types to allow for type checking
      s390/dasd: remove superfluous virt_to_phys() conversion
      s390/dasd: use new address translation helpers
      s390/cio,idal: code cleanup
      s390/cio,idal: remove superfluous virt_to_phys() conversion
      s390/cio,idal: fix virtual vs physical address confusion
      s390/cio: use new address translation helpers
      s390/scm: use new address translation helpers
      s390/vmur: use new address translation helpers
      s390/3215: use new address translation helpers
      s390/3270: use new address translation helpers
      s390/tape: fix virtual vs physical address confusion
      s390/zfcp: use new address translation helpers
      s390/qeth: use new address translation helpers
      s390/lcs: use new address translation helpers
      s390/ctcm: use new address translation helpers
      s390/iucv: use new address translation helpers
      s390/vfio_ccw_cp: use new address translation helpers
      s390/mm: provide simple ARCH_HAS_DEBUG_VIRTUAL support

Mete Durlu (1):
      s390/vtime: fix average steal time calculation

Ricardo B. Marliere (6):
      s390/zcrypt: make zcrypt_class constant
      s390/vmur: make vmur_class constant
      s390/vmlogrdr: make vmlogrdr_class constant
      s390/tape: make tape_class constant
      s390/raw3270: improve raw3270_init() readability
      s390/raw3270: make class3270 constant

Sven Schnelle (3):
      s390/entry: add CIF_SIE flag and remove sie64a() address check
      s390/entry: remove OUTSIDE macro
      s390/entry: compare gmap asce to determine guest/host fault

 arch/s390/Kconfig                  |   1 +
 arch/s390/Makefile                 |   1 +
 arch/s390/configs/debug_defconfig  |   1 +
 arch/s390/include/asm/ccwdev.h     |   3 +-
 arch/s390/include/asm/cio.h        |   9 +-
 arch/s390/include/asm/dma-types.h  | 103 ++++++++++++++++++++++
 arch/s390/include/asm/eadm.h       |   5 +-
 arch/s390/include/asm/fcx.h        |  13 +--
 arch/s390/include/asm/idals.h      | 176 ++++++++++++++++++++-----------------
 arch/s390/include/asm/page.h       |  30 ++++++-
 arch/s390/include/asm/processor.h  |   2 +
 arch/s390/include/asm/ptrace.h     |   2 -
 arch/s390/include/asm/qdio.h       |  17 ++--
 arch/s390/include/asm/scsw.h       |   7 +-
 arch/s390/kernel/entry.S           |  73 +++++++--------
 arch/s390/kernel/sysinfo.c         |   2 +-
 arch/s390/kernel/vtime.c           |   4 +-
 arch/s390/mm/Makefile              |   1 +
 arch/s390/mm/fault.c               |   4 +-
 arch/s390/mm/physaddr.c            |  15 ++++
 drivers/s390/block/dasd.c          |   4 +-
 drivers/s390/block/dasd_3990_erp.c |  14 +--
 drivers/s390/block/dasd_alias.c    |   6 +-
 drivers/s390/block/dasd_eckd.c     | 118 ++++++++++++-------------
 drivers/s390/block/dasd_eer.c      |   2 +-
 drivers/s390/block/dasd_fba.c      |  32 +++----
 drivers/s390/block/dcssblk.c       |   2 +-
 drivers/s390/block/scm_blk.c       |   6 +-
 drivers/s390/char/con3215.c        |   4 +-
 drivers/s390/char/fs3270.c         |  14 +--
 drivers/s390/char/raw3270.c        |  42 +++++----
 drivers/s390/char/raw3270.h        |   2 +-
 drivers/s390/char/tape.h           |  12 ++-
 drivers/s390/char/tape_class.c     |  17 ++--
 drivers/s390/char/vmlogrdr.c       |  18 ++--
 drivers/s390/char/vmur.c           |  22 ++---
 drivers/s390/cio/ccwgroup.c        |   4 +-
 drivers/s390/cio/chsc.c            |  12 +--
 drivers/s390/cio/chsc.h            |   6 +-
 drivers/s390/cio/cio.c             |   4 +-
 drivers/s390/cio/css.c             |  25 ++++--
 drivers/s390/cio/device_fsm.c      |   8 +-
 drivers/s390/cio/device_id.c       |   2 +-
 drivers/s390/cio/device_ops.c      |   5 +-
 drivers/s390/cio/device_pgid.c     |   8 +-
 drivers/s390/cio/device_status.c   |   2 +-
 drivers/s390/cio/eadm_sch.c        |   4 +-
 drivers/s390/cio/fcx.c             |  22 ++---
 drivers/s390/cio/orb.h             |   9 +-
 drivers/s390/cio/qdio_main.c       |  12 +--
 drivers/s390/cio/qdio_setup.c      |  10 +--
 drivers/s390/cio/qdio_thinint.c    |   6 +-
 drivers/s390/cio/vfio_ccw_cp.c     |  82 +++++++++--------
 drivers/s390/cio/vfio_ccw_fsm.c    |   2 +-
 drivers/s390/crypto/zcrypt_api.c   |  39 ++++----
 drivers/s390/net/ctcm_fsms.c       |   4 +-
 drivers/s390/net/ctcm_main.c       |   2 +-
 drivers/s390/net/ctcm_mpc.c        |  20 ++---
 drivers/s390/net/lcs.c             |  12 ++-
 drivers/s390/net/qeth_core_main.c  |  24 ++---
 drivers/s390/scsi/zfcp_fsf.c       |   2 +-
 drivers/s390/scsi/zfcp_qdio.c      |   4 +-
 drivers/s390/scsi/zfcp_qdio.h      |   6 +-
 drivers/s390/virtio/virtio_ccw.c   | 170 +++++++++++++++++++++--------------
 include/net/iucv/iucv.h            |   3 +-
 net/iucv/af_iucv.c                 |   8 +-
 net/iucv/iucv.c                    |  23 +++--
 67 files changed, 771 insertions(+), 553 deletions(-)
 create mode 100644 arch/s390/include/asm/dma-types.h
 create mode 100644 arch/s390/mm/physaddr.c

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [GIT PULL] more s390 updates for 6.9 merge window
  2024-03-19 14:12 [GIT PULL] more s390 updates for 6.9 merge window Heiko Carstens
@ 2024-03-19 18:54 ` Linus Torvalds
  2024-03-19 19:29 ` pr-tracker-bot
  1 sibling, 0 replies; 3+ messages in thread
From: Linus Torvalds @ 2024-03-19 18:54 UTC (permalink / raw
  To: Heiko Carstens; +Cc: Vasily Gorbik, Alexander Gordeev, linux-s390, linux-kernel

On Tue, 19 Mar 2024 at 07:12, Heiko Carstens <hca@linux.ibm.com> wrote:
>
> - Add new bitwise types and helper functions and use them in s390 specific
>   drivers and code to make it easier to find virtual vs physical address
>   usage bugs.

Hmm. Because you still want to be able to do arithmetic on them, this
is really what "__nocast" should be used for rather than "__bitwise".

__bitwise was intended (as the name implies) for things that can only
be mixed bitwise with similar types. It was _mainly_ for big-endian vs
little-endian marking, where it's actually perfectly fine to do
bitwise operations on two big-endian values without ever translation
them to "cpu endianness", but you can't for example do normal
arithmetic on them.

So __bitwise has those very specific rules that seem odd until you
realize what the reason for them are.

In contrast, your types actually *would* be fine with arithmetic and
logical operations being done on them, and that is what "__nocast"
really was meant to be.

But we basically never had much use for __nocast in the kernel, and
largely as a result __nocast was never fleshed out to work very well
(and it gets lost *much* too easily), so __bitwise it is.

Oh well.

It looks like it's not a lot of arithmetic you want to allow anyway,
so I guess the fact that __bitwise forces you to do some silly helper
functions for that isn't too much of an issue.

              Linus

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [GIT PULL] more s390 updates for 6.9 merge window
  2024-03-19 14:12 [GIT PULL] more s390 updates for 6.9 merge window Heiko Carstens
  2024-03-19 18:54 ` Linus Torvalds
@ 2024-03-19 19:29 ` pr-tracker-bot
  1 sibling, 0 replies; 3+ messages in thread
From: pr-tracker-bot @ 2024-03-19 19:29 UTC (permalink / raw
  To: Heiko Carstens
  Cc: Linus Torvalds, Vasily Gorbik, Alexander Gordeev, linux-s390,
	linux-kernel

The pull request you sent on Tue, 19 Mar 2024 15:12:30 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.9-2

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/f9c035492f2010e1e7aede1f1bd32181d7cef2dc

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-03-19 19:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-19 14:12 [GIT PULL] more s390 updates for 6.9 merge window Heiko Carstens
2024-03-19 18:54 ` Linus Torvalds
2024-03-19 19:29 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).