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-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 23 Jan 2022 15:44:51 +0000
From:   Jessica Clarke <jrtc27@...c27.com>
To:     "Michael T. Kloos" <michael@...haelkloos.com>
Cc:     Paul Walmsley <paul.walmsley@...ive.com>,
        Palmer Dabbelt <palmer@...belt.com>,
        Albert Ou <aou@...s.berkeley.edu>,
        linux-riscv <linux-riscv@...ts.infradead.org>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] Fixed: Misaligned memory access. Fixed pointer
 comparison.

On 23 Jan 2022, at 03:45, Michael T. Kloos <michael@...haelkloos.com> wrote:
> 
> Rewrote the riscv memmove() assembly implementation.  The
> previous implementation did not check memory alignment and it
> compared 2 pointers with a signed comparison.  The misaligned
> memory access would cause the kernel to crash on systems that
> did not emulate it in firmware and did not support it in hardware.
> Firmware emulation is slow and may not exist.  Additionally,
> hardware support may not exist and would likely still run slower
> than aligned accesses even if it did.  The RISC-V spec does not
> guarantee that support for misaligned memory accesses will exist.
> It should not be depended on.
> 
> This patch now checks for the maximum granularity of co-alignment
> between the pointers and copies them with that, using single-byte
> copy for any unaligned data at their terminations.  It also now uses
> unsigned comparison for the pointers.
> 
> Added half-word and, if built for 64-bit, double-word copy.
> 
> Migrated to the	newer assembler annotations from the now deprecated
> ones.
> 
> Commit Message Edited on Jan 22 2022: Fixed some typos.
> 
> [v2]
> 
> Per kernel test robot, I have fixed the build under clang.  This
> was broken due to a difference between gcc and clang, clang requiring
> explict zero offsets the jalr instruction. gcc allowed them to be
> omitted if zero.

Unlike LLVM, GCC does not have an assembler, that’s binutils’s GNU as.

Jess

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ