* Re: [PATCH] coresight: tmc-etr: Check if page is valid before dma_map_page() [not found] <20201123102133.18979-1-saiprakash.ranjan@codeaurora.org> @ 2020-11-23 10:46 ` Suzuki K Poulose 2020-11-23 18:10 ` Mathieu Poirier 0 siblings, 1 reply; 2+ messages in thread From: Suzuki K Poulose @ 2020-11-23 10:46 UTC (permalink / raw) To: Sai Prakash Ranjan, Mathieu Poirier, Mike Leach Cc: linux-arm-msm, coresight, Mao Jinlong, linux-kernel, stable, Stephen Boyd, linux-arm-kernel On 11/23/20 10:21 AM, Sai Prakash Ranjan wrote: > From: Mao Jinlong <jinlmao@codeaurora.org> > > alloc_pages_node() return should be checked before calling > dma_map_page() to make sure that valid page is mapped or > else it can lead to aborts as below: > > Unable to handle kernel paging request at virtual address ffffffc008000000 > Mem abort info: > <snip>... > pc : __dma_inv_area+0x40/0x58 > lr : dma_direct_map_page+0xd8/0x1c8 > > Call trace: > __dma_inv_area > tmc_pages_alloc > tmc_alloc_data_pages > tmc_alloc_sg_table > tmc_init_etr_sg_table > tmc_alloc_etr_buf > tmc_enable_etr_sink_sysfs > tmc_enable_etr_sink > coresight_enable_path > coresight_enable > enable_source_store > dev_attr_store > sysfs_kf_write > > Fixes: 99443ea19e8b ("coresight: Add generic TMC sg table framework") > Cc: stable@vger.kernel.org > Signed-off-by: Mao Jinlong <jinlmao@codeaurora.org> > Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com> > --- > drivers/hwtracing/coresight/coresight-tmc-etr.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c > index 525f0ecc129c..a31a4d7ae25e 100644 > --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c > +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c > @@ -217,6 +217,8 @@ static int tmc_pages_alloc(struct tmc_pages *tmc_pages, > } else { > page = alloc_pages_node(node, > GFP_KERNEL | __GFP_ZERO, 0); > + if (!page) > + goto err; > } > paddr = dma_map_page(real_dev, page, 0, PAGE_SIZE, dir); > if (dma_mapping_error(real_dev, paddr)) > > base-commit: c04e5d7bbf6f92a346d6b36770705e7f034df42d > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] coresight: tmc-etr: Check if page is valid before dma_map_page() 2020-11-23 10:46 ` [PATCH] coresight: tmc-etr: Check if page is valid before dma_map_page() Suzuki K Poulose @ 2020-11-23 18:10 ` Mathieu Poirier 0 siblings, 0 replies; 2+ messages in thread From: Mathieu Poirier @ 2020-11-23 18:10 UTC (permalink / raw) To: Suzuki K Poulose Cc: Sai Prakash Ranjan, linux-arm-msm, coresight, Mao Jinlong, linux-kernel, stable, Stephen Boyd, linux-arm-kernel, Mike Leach On Mon, Nov 23, 2020 at 10:46:56AM +0000, Suzuki K Poulose wrote: > On 11/23/20 10:21 AM, Sai Prakash Ranjan wrote: > > From: Mao Jinlong <jinlmao@codeaurora.org> > > > > alloc_pages_node() return should be checked before calling > > dma_map_page() to make sure that valid page is mapped or > > else it can lead to aborts as below: > > > > Unable to handle kernel paging request at virtual address ffffffc008000000 > > Mem abort info: > > <snip>... > > pc : __dma_inv_area+0x40/0x58 > > lr : dma_direct_map_page+0xd8/0x1c8 > > > > Call trace: > > __dma_inv_area > > tmc_pages_alloc > > tmc_alloc_data_pages > > tmc_alloc_sg_table > > tmc_init_etr_sg_table > > tmc_alloc_etr_buf > > tmc_enable_etr_sink_sysfs > > tmc_enable_etr_sink > > coresight_enable_path > > coresight_enable > > enable_source_store > > dev_attr_store > > sysfs_kf_write > > > > Fixes: 99443ea19e8b ("coresight: Add generic TMC sg table framework") > > Cc: stable@vger.kernel.org > > Signed-off-by: Mao Jinlong <jinlmao@codeaurora.org> > > Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org> > > Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com> > Applied - thanks Mathieu > > --- > > drivers/hwtracing/coresight/coresight-tmc-etr.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c > > index 525f0ecc129c..a31a4d7ae25e 100644 > > --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c > > +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c > > @@ -217,6 +217,8 @@ static int tmc_pages_alloc(struct tmc_pages *tmc_pages, > > } else { > > page = alloc_pages_node(node, > > GFP_KERNEL | __GFP_ZERO, 0); > > + if (!page) > > + goto err; > > } > > paddr = dma_map_page(real_dev, page, 0, PAGE_SIZE, dir); > > if (dma_mapping_error(real_dev, paddr)) > > > > base-commit: c04e5d7bbf6f92a346d6b36770705e7f034df42d > > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-11-23 18:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20201123102133.18979-1-saiprakash.ranjan@codeaurora.org>
2020-11-23 10:46 ` [PATCH] coresight: tmc-etr: Check if page is valid before dma_map_page() Suzuki K Poulose
2020-11-23 18:10 ` Mathieu Poirier
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox