> -----Original Message----- > From: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Sent: 14 February, 2023 2:13 PM > To: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > Cc: JiaJie Ho <jiajie.ho@xxxxxxxxxxxxxxxx>; David S . Miller > <davem@xxxxxxxxxxxxx>; Rob Herring <robh+dt@xxxxxxxxxx>; Krzysztof > Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx>; Emil Renner Berthing > <kernel@xxxxxxxx>; Conor Dooley <conor.dooley@xxxxxxxxxxxxx>; linux- > crypto@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx; linux-riscv@xxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH v2 4/4] crypto: starfive - Add hash and HMAC support > > On Thu, Feb 09, 2023 at 05:43:34PM +0800, Herbert Xu wrote: > > On Thu, Feb 09, 2023 at 09:33:06AM +0000, JiaJie Ho wrote: > > > > > > The DMA can only support 32-bit addressing. > > > So, I am copying everything in case kernel allocated memory region >32- > bit for a user app. > > > > Does your hardware support scatter-and-gather? If so you should at > > least allocate individual pages rather than one contiguous buffer. > > > > Then you can allocate them on-demand rather than before-hand. > > > > It would also be nice to not do the copy if the input you were given > > was in low memory (and contiguous if your hardware doesn't do SG). > > All of that is done by the DMA API, or more specifically swiotlb and does not > need to be duplicated in individual drivers. I'll update the driver accordingly. Thanks Christoph and Herbert for the pointers. Regards Jia Jie