Hi Krzysztof, On 19.04.2016 16:44, Krzysztof Kozlowski wrote: > The driver makes copies of memory (input or output scatterlists) if they > are not aligned. In s5p_aes_crypt_start() error path (on unsuccessful > initialization of output scatterlist), if input scatterlist was not > aligned, the driver first freed copied input memory and then unmapped it > from the device, instead of doing otherwise (unmap and then free). > > This was wrong in two ways: > 1. Freed pages were still mapped to the device. > 2. The dma_unmap_sg() iterated over freed scatterlist structure. > > The call to s5p_free_sg_cpy() in this error path is not needed because > the copied scatterlists will be freed by s5p_aes_complete(). > > Fixes: 9e4a1100a445 ("crypto: s5p-sss - Handle unaligned buffers") > Signed-off-by: Krzysztof Kozlowski <k.kozlowski@xxxxxxxxxxx> I see that Herbert have just applied the changes, but anyway I reviewed them and they are good in my opinion. Acked-by: Vladimir Zapolskiy <vz@xxxxxxxxx> > --- > drivers/crypto/s5p-sss.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c > index 4f6d5b3ec418..b0484d4d68d9 100644 > --- a/drivers/crypto/s5p-sss.c > +++ b/drivers/crypto/s5p-sss.c > @@ -577,7 +577,6 @@ static void s5p_aes_crypt_start(struct s5p_aes_dev *dev, unsigned long mode) > return; > > outdata_error: > - s5p_free_sg_cpy(dev, &dev->sg_src_cpy); > s5p_unset_indata(dev); > > indata_error: > -- With best wishes, Vladimir -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html