On Tue, Mar 28, 2017 at 4:15 PM, Gary R Hook <ghook@xxxxxxx> wrote: >> A more drastic refactoring of the driver might be needed to reduce the >> stack usage more substantially, but this patch is fairly simple and >> at least addresses the third one of the problems I mentioned, reducing the >> stack size by about 150 bytes and bringing it below the warning limit >> I picked. > > > Again, I'll devote some time to this. > >> diff --git a/drivers/crypto/ccp/ccp-dev.h b/drivers/crypto/ccp/ccp-dev.h >> index 3a45c2af2fbd..c5ea0796a891 100644 >> --- a/drivers/crypto/ccp/ccp-dev.h >> +++ b/drivers/crypto/ccp/ccp-dev.h >> @@ -432,24 +432,24 @@ struct ccp_dma_info { >> unsigned int offset; >> unsigned int length; >> enum dma_data_direction dir; >> -}; >> +} __packed __aligned(4); > > > My gcc 4.8 doesn't understand __aligned(). Shouldn't we use > #pragma(4) here? >> struct ccp_dm_workarea { >> struct device *dev; >> struct dma_pool *dma_pool; >> - unsigned int length; >> >> u8 *address; >> struct ccp_dma_info dma; >> + unsigned int length; >> }; >> >> struct ccp_sg_workarea { >> struct scatterlist *sg; >> int nents; >> + unsigned int dma_count; >> >> struct scatterlist *dma_sg; >> struct device *dma_dev; >> - unsigned int dma_count; >> enum dma_data_direction dma_dir; >> >> unsigned int sg_used; > > > I'm okay with rearranging, but I'm going to submit an alternative patch. Ok, thanks a lot!