lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 20 Aug 2019 14:07:08 +0000 (UTC)
From:   Christophe Leroy <christophe.leroy@....fr>
To:     Benjamin Herrenschmidt <benh@...nel.crashing.org>,
        Paul Mackerras <paulus@...ba.org>,
        Michael Ellerman <mpe@...erman.id.au>, npiggin@...il.com,
        hch@....de
Cc:     linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Subject: [PATCH v2 00/12] powerpc/mm: cleanup and refactoring in ioremap

The purpose of this series is to cleanup and refactor ioremap.

At the time being, ioremap is duplicated in PPC32 and PPC64.
In addition, some additional duplication also appear within PPC64.

First part of this series drops as much as unused functions.
Then io-workaround is reworked to avoid indirect function call.
Then common parts of PPC32 and PPC64 are regrouped into a new file
called ioremap.c
Then other parts linked to ioremap are respectively moved out of
pgtable_32/64.c
The last part of the series tries to refactor ioremap_range() and
make use of ioremap_page_range() for all, then separates the early
path from the regular ioremap.

A future follow-up of this series will be to try and eliminate the
early ioremap part and use the generic early_ioremap instead.

v2:
- dropped the change of ioremap_bot growing direction for PPC64 and
  kept separate __ioremap_caller() and friends.
- separating more clearly early_ioremap() from regular ioremap()
- addressed received comments.

Christophe Leroy (12):
  powerpc: remove the ppc44x ocm.c file
  powerpc/ps3: replace __ioremap() by ioremap_prot()
  powerpc/mm: drop ppc_md.iounmap() and __iounmap()
  powerpc/mm: drop function __ioremap()
  powerpc/mm: rework io-workaround invocation.
  powerpc/mm: move common 32/64 bits ioremap functions into ioremap.c
  powerpc/mm: move ioremap_prot() into ioremap.c
  powerpc/mm: make ioremap_bot common to all
  powerpc/mm: Move ioremap functions out of pgtable_32/64.c
  powerpc/mm: refactor ioremap_range() and use ioremap_page_range()
  powerpc/mm: refactor ioremap vm area setup.
  powerpc/mm: split out early ioremap path.

 arch/powerpc/configs/ppc40x_defconfig        |   1 -
 arch/powerpc/include/asm/book3s/32/pgtable.h |   6 +-
 arch/powerpc/include/asm/book3s/64/pgtable.h |   2 +-
 arch/powerpc/include/asm/book3s/64/radix.h   |   3 -
 arch/powerpc/include/asm/io-workarounds.h    |  20 ++
 arch/powerpc/include/asm/io.h                |  16 +-
 arch/powerpc/include/asm/machdep.h           |   4 -
 arch/powerpc/include/asm/nohash/32/pgtable.h |   6 +-
 arch/powerpc/include/asm/nohash/64/pgtable.h |   1 +
 arch/powerpc/include/asm/pgtable.h           |   2 +
 arch/powerpc/include/asm/ppc4xx_ocm.h        |  31 ---
 arch/powerpc/kernel/io-workarounds.c         |  13 +-
 arch/powerpc/mm/Makefile                     |   2 +-
 arch/powerpc/mm/book3s64/pgtable.c           |  21 --
 arch/powerpc/mm/book3s64/radix_pgtable.c     |  20 --
 arch/powerpc/mm/ioremap.c                    |  99 +++++++
 arch/powerpc/mm/ioremap_32.c                 |  92 +++++++
 arch/powerpc/mm/ioremap_64.c                 | 113 ++++++++
 arch/powerpc/mm/mmu_decl.h                   |   1 -
 arch/powerpc/mm/nohash/tlb.c                 |   2 +
 arch/powerpc/mm/pgtable_32.c                 | 153 -----------
 arch/powerpc/mm/pgtable_64.c                 | 203 +-------------
 arch/powerpc/platforms/44x/Kconfig           |   8 -
 arch/powerpc/platforms/4xx/Makefile          |   1 -
 arch/powerpc/platforms/4xx/ocm.c             | 390 ---------------------------
 arch/powerpc/platforms/ps3/spu.c             |  10 +-
 26 files changed, 353 insertions(+), 867 deletions(-)
 delete mode 100644 arch/powerpc/include/asm/ppc4xx_ocm.h
 create mode 100644 arch/powerpc/mm/ioremap.c
 create mode 100644 arch/powerpc/mm/ioremap_32.c
 create mode 100644 arch/powerpc/mm/ioremap_64.c
 delete mode 100644 arch/powerpc/platforms/4xx/ocm.c

-- 
2.13.3

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ