coresight: Fixes for v6.6
Couple of fixes for the CoreSight self-hosted tracing targeting v6.6. Includes : - Fix runtime warnings while reusing the TMC-ETR buffer - Fix (disable) warning when a large buffer is allocated in the flat mode. -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEuFy0byloRoXZHaWBxcXRZPKyBqEFAmUKwnoACgkQxcXRZPKy BqEHYA/9GEg3unx/X+3tJzOFx/OXT9wZYXVoTNK8shjvi7kprjGncPbE+xn5irTO CSwQgLPeV3bVxk/mBJPFrWt9PNS6OSNZ+tSD3YF3eQo0IfXa/MuPgOY5EzOUWl/9 GX7K/9A97gzdseoderowjlyQ+IS/JDYSctI6xSKH2ojrC2gM5uqKq++LTAHbKade ClGyj1n/VEAPIxTqib/dJoMiQwg8KENMhlkjG516Hct3HIPSZYg7kL6m4vwWW7tR hOT5bBHZUpGqn0uCQiV6TqhKXgyU3WrozLMJMKr6/WgpDXJV6K94CSlFKNV0fg4n 34ZHOmhYVnvwdXomF0W1d3ZOk9vaFWeYqKD736dMrWQFonhQCPPNBtJXwKv3n0gD 7KSNM6VjXZSZadWL9lmYAwNNdZDkRFjHxR3Gn9IgttHgHPvlmLcPa8QGWrKEZLTx Lkb7EKSxXX3+7NqMEkkYF6auoMA6oFtEndo1bUE6UVtWbEBkTiCM/pEvFqhB0Vke Vo5oOiZpAN3iJnsmXetJYZPn1OJTD31R0KGYWI3G8jhBDmVn9sXAYP642Vb7NtWb po9Jt6MLaLOE4MURkkeL2qvC080Kss4Obn+QAFZNANbTS8yvlnekObFJBF/tgx7o k3RnbKc8g8RNPRsWQY6BgPf2PHQ7U+R/hRatfx6enkqWcxf2pfA= =mLe+ -----END PGP SIGNATURE----- Merge tag 'coresight-fixes-v6.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux into char-misc-linus Suzuki writes: coresight: Fixes for v6.6 Couple of fixes for the CoreSight self-hosted tracing targeting v6.6. Includes : - Fix runtime warnings while reusing the TMC-ETR buffer - Fix (disable) warning when a large buffer is allocated in the flat mode. * tag 'coresight-fixes-v6.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux: coresight: tmc-etr: Disable warnings for allocation failures coresight: Fix run time warnings while reusing ETR buffer
This commit is contained in:
commit
fc5bf78b1a
@ -610,7 +610,8 @@ static int tmc_etr_alloc_flat_buf(struct tmc_drvdata *drvdata,
|
||||
|
||||
flat_buf->vaddr = dma_alloc_noncoherent(real_dev, etr_buf->size,
|
||||
&flat_buf->daddr,
|
||||
DMA_FROM_DEVICE, GFP_KERNEL);
|
||||
DMA_FROM_DEVICE,
|
||||
GFP_KERNEL | __GFP_NOWARN);
|
||||
if (!flat_buf->vaddr) {
|
||||
kfree(flat_buf);
|
||||
return -ENOMEM;
|
||||
@ -1173,16 +1174,6 @@ static struct etr_buf *tmc_etr_get_sysfs_buffer(struct coresight_device *csdev)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* In sysFS mode we can have multiple writers per sink. Since this
|
||||
* sink is already enabled no memory is needed and the HW need not be
|
||||
* touched, even if the buffer size has changed.
|
||||
*/
|
||||
if (drvdata->mode == CS_MODE_SYSFS) {
|
||||
atomic_inc(&csdev->refcnt);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we don't have a buffer or it doesn't match the requested size,
|
||||
* use the buffer allocated above. Otherwise reuse the existing buffer.
|
||||
@ -1204,7 +1195,7 @@ out:
|
||||
|
||||
static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev)
|
||||
{
|
||||
int ret;
|
||||
int ret = 0;
|
||||
unsigned long flags;
|
||||
struct tmc_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
|
||||
struct etr_buf *sysfs_buf = tmc_etr_get_sysfs_buffer(csdev);
|
||||
@ -1213,12 +1204,24 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev)
|
||||
return PTR_ERR(sysfs_buf);
|
||||
|
||||
spin_lock_irqsave(&drvdata->spinlock, flags);
|
||||
|
||||
/*
|
||||
* In sysFS mode we can have multiple writers per sink. Since this
|
||||
* sink is already enabled no memory is needed and the HW need not be
|
||||
* touched, even if the buffer size has changed.
|
||||
*/
|
||||
if (drvdata->mode == CS_MODE_SYSFS) {
|
||||
atomic_inc(&csdev->refcnt);
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = tmc_etr_enable_hw(drvdata, sysfs_buf);
|
||||
if (!ret) {
|
||||
drvdata->mode = CS_MODE_SYSFS;
|
||||
atomic_inc(&csdev->refcnt);
|
||||
}
|
||||
|
||||
out:
|
||||
spin_unlock_irqrestore(&drvdata->spinlock, flags);
|
||||
|
||||
if (!ret)
|
||||
|
Loading…
Reference in New Issue
Block a user