From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.14 062/109] coresight: Fix handling of sinks
Date: Sat, 9 Nov 2019 21:44:54 -0500 [thread overview]
Message-ID: <20191110024541.31567-62-sashal@kernel.org> (raw)
In-Reply-To: <20191110024541.31567-1-sashal@kernel.org>
From: Suzuki K Poulose <suzuki.poulose@arm.com>
[ Upstream commit c71369de02b285d9da526a526d8f2affc7b17c59 ]
The coresight components could be operated either in sysfs mode or in perf
mode. For some of the components, the mode of operation doesn't matter as
they simply relay the data to the next component in the trace path. But for
sinks, they need to be able to provide the trace data back to the user.
Thus we need to make sure that "mode" is handled appropriately. e.g,
the sysfs mode could have multiple sources driving the trace data, while
perf mode doesn't allow sharing the sink.
The coresight_enable_sink() however doesn't really allow this check to
trigger as it skips the "enable_sink" callback if the component is
already enabled, irrespective of the mode. This could cause mixing
of data from different modes or even same mode (in perf), if the
sources are different. Also, if we fail to enable the sink while
enabling a path (where sink is the first component enabled),
we could end up in disabling the components in the "entire"
path which were not enabled in this trial, causing disruptions
in the existing trace paths.
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/hwtracing/coresight/coresight.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c
index e571e4010dff0..366c1d493af35 100644
--- a/drivers/hwtracing/coresight/coresight.c
+++ b/drivers/hwtracing/coresight/coresight.c
@@ -140,12 +140,14 @@ static int coresight_enable_sink(struct coresight_device *csdev, u32 mode)
{
int ret;
- if (!csdev->enable) {
- if (sink_ops(csdev)->enable) {
- ret = sink_ops(csdev)->enable(csdev, mode);
- if (ret)
- return ret;
- }
+ /*
+ * We need to make sure the "new" session is compatible with the
+ * existing "mode" of operation.
+ */
+ if (sink_ops(csdev)->enable) {
+ ret = sink_ops(csdev)->enable(csdev, mode);
+ if (ret)
+ return ret;
csdev->enable = true;
}
@@ -347,8 +349,14 @@ int coresight_enable_path(struct list_head *path, u32 mode)
switch (type) {
case CORESIGHT_DEV_TYPE_SINK:
ret = coresight_enable_sink(csdev, mode);
+ /*
+ * Sink is the first component turned on. If we
+ * failed to enable the sink, there are no components
+ * that need disabling. Disabling the path here
+ * would mean we could disrupt an existing session.
+ */
if (ret)
- goto err;
+ goto out;
break;
case CORESIGHT_DEV_TYPE_SOURCE:
/* sources are enabled from either sysFS or Perf */
--
2.20.1
next prev parent reply other threads:[~2019-11-10 2:59 UTC|newest]
Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-10 2:43 [PATCH AUTOSEL 4.14 001/109] s390/qeth: invoke softirqs after napi_schedule() Sasha Levin
2019-11-10 2:43 ` [PATCH AUTOSEL 4.14 002/109] PCI/ACPI: Correct error message for ASPM disabling Sasha Levin
2019-11-10 2:43 ` [PATCH AUTOSEL 4.14 003/109] serial: uartps: Fix suspend functionality Sasha Levin
2019-11-10 2:43 ` [PATCH AUTOSEL 4.14 004/109] serial: samsung: Enable baud clock for UART reset procedure in resume Sasha Levin
2019-11-10 2:43 ` [PATCH AUTOSEL 4.14 005/109] serial: mxs-auart: Fix potential infinite loop Sasha Levin
2019-11-10 2:43 ` [PATCH AUTOSEL 4.14 006/109] samples/bpf: fix a compilation failure Sasha Levin
2019-11-10 2:43 ` [PATCH AUTOSEL 4.14 007/109] spi: mediatek: Don't modify spi_transfer when transfer Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 008/109] ipmi:dmi: Ignore IPMI SMBIOS entries with a zero base address Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 009/109] net: hns3: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 010/109] powerpc/iommu: Avoid derefence before pointer check Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 011/109] powerpc/64s/hash: Fix stab_rr off by one initialization Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 012/109] powerpc/pseries: Disable CPU hotplug across migrations Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 013/109] powerpc: Fix duplicate const clang warning in user access code Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 014/109] RDMA/i40iw: Fix incorrect iterator type Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 015/109] OPP: Protect dev_list with opp_table lock Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 016/109] libfdt: Ensure INT_MAX is defined in libfdt_env.h Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 017/109] power: supply: twl4030_charger: fix charging current out-of-bounds Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 018/109] power: supply: twl4030_charger: disable eoc interrupt on linear charge Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 019/109] net: toshiba: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 020/109] net: xilinx: " Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 021/109] net: broadcom: " Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 022/109] net: amd: " Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 023/109] net: sun: " Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 024/109] net: hns3: Fix for setting speed for phy failed problem Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 025/109] net: hns3: Fix parameter type for q_id in hclge_tm_q_to_qs_map_cfg() Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 026/109] nfp: provide a better warning when ring allocation fails Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 027/109] usb: chipidea: imx: enable OTG overcurrent in case USB subsystem is already started Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 028/109] usb: chipidea: Fix otg event handler Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 029/109] mlxsw: spectrum: Init shaper for TCs 8..15 Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 030/109] ARM: dts: am335x-evm: fix number of cpsw Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 031/109] f2fs: fix to recover inode's uid/gid during POR Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 032/109] ARM: dts: ux500: Correct SCU unit address Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 033/109] ARM: dts: ux500: Fix LCDA clock line muxing Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 034/109] ARM: dts: ste: Fix SPI controller node names Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 035/109] spi: pic32: Use proper enum in dmaengine_prep_slave_rg Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 036/109] cpufeature: avoid warning when compiling with clang Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 037/109] crypto: arm/crc32 - avoid warning when compiling with Clang Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 038/109] ARM: dts: marvell: Fix SPI and I2C bus warnings Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 039/109] x86/mce-inject: Reset injection struct after injection Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 040/109] ARM: dts: clearfog: fix sdhci supply property name Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 041/109] bnx2x: Ignore bandwidth attention in single function mode Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 042/109] samples/bpf: fix compilation failure Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 043/109] net: phy: mdio-bcm-unimac: Allow configuring MDIO clock divider Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 044/109] net: micrel: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 045/109] net: freescale: " Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 046/109] x86/CPU: Use correct macros for Cyrix calls Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 047/109] x86/CPU: Change query logic so CPUID is enabled before testing Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 048/109] MIPS: kexec: Relax memory restriction Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 049/109] arm64: dts: rockchip: Fix microSD in rk3399 sapphire board Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 050/109] media: pci: ivtv: Fix a sleep-in-atomic-context bug in ivtv_yuv_init() Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 051/109] media: au0828: Fix incorrect error messages Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 052/109] media: davinci: Fix implicit enum conversion warning Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 053/109] ARM: dts: rockchip: explicitly set vcc_sd0 pin to gpio on rk3188-radxarock Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 054/109] usb: gadget: uvc: configfs: Drop leaked references to config items Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 055/109] usb: gadget: uvc: configfs: Prevent format changes after linking header Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 056/109] i2c: aspeed: fix invalid clock parameters for very large divisors Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 057/109] phy: brcm-sata: allow PHY_BRCM_SATA driver to be built for DSL SoCs Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 058/109] phy: renesas: rcar-gen3-usb2: fix vbus_ctrl for role sysfs Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 059/109] phy: phy-twl4030-usb: fix denied runtime access Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 060/109] usb: gadget: uvc: Factor out video USB request queueing Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 061/109] usb: gadget: uvc: Only halt video streaming endpoint in bulk mode Sasha Levin
2019-11-10 2:44 ` Sasha Levin [this message]
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 063/109] coresight: perf: Fix per cpu path management Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 064/109] coresight: perf: Disable trace path upon source error Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 065/109] coresight: etm4x: Configure EL2 exception level when kernel is running in HYP Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 066/109] coresight: tmc: Fix byte-address alignment for RRP Sasha Levin
2019-11-10 2:44 ` [PATCH AUTOSEL 4.14 067/109] misc: kgdbts: Fix restrict error Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 068/109] misc: genwqe: should return proper error value Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 069/109] vfio/pci: Fix potential memory leak in vfio_msi_cap_len Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 070/109] vfio/pci: Mask buggy SR-IOV VF INTx support Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 071/109] scsi: libsas: always unregister the old device if going to discover new Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 072/109] phy: lantiq: Fix compile warning Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 073/109] ARM: dts: tegra30: fix xcvr-setup-use-fuses Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 074/109] ARM: tegra: apalis_t30: fix mmc1 cmd pull-up Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 075/109] ARM: dts: paz00: fix wakeup gpio keycode Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 076/109] net: smsc: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 077/109] net: faraday: " Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 078/109] f2fs: fix to recover inode's project id during POR Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 079/109] f2fs: mark inode dirty explicitly in recover_inode() Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 080/109] EDAC: Raise the maximum number of memory controllers Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 081/109] ARM: dts: realview: Fix SPI controller node names Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 082/109] firmware: dell_rbu: Make payload memory uncachable Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 083/109] Bluetooth: hci_serdev: clear HCI_UART_PROTO_READY to avoid closing proto races Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 084/109] Bluetooth: L2CAP: Detect if remote is not able to use the whole MPS Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 085/109] x86/hyperv: Suppress "PCI: Fatal: No config space access function found" Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 086/109] crypto: s5p-sss: Fix Fix argument list alignment Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 087/109] crypto: fix a memory leak in rsa-kcs1pad's encryption mode Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 088/109] iwlwifi: dbg: don't crash if the firmware crashes in the middle of a debug dump Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 089/109] iwlwifi: api: annotate compressed BA notif array sizes Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 090/109] iwlwifi: mvm: Allow TKIP for AP mode Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 091/109] scsi: NCR5380: Clear all unissued commands on host reset Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 092/109] scsi: NCR5380: Have NCR5380_select() return a bool Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 093/109] scsi: NCR5380: Withhold disconnect privilege for REQUEST SENSE Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 094/109] scsi: NCR5380: Use DRIVER_SENSE to indicate valid sense data Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 095/109] scsi: NCR5380: Check for invalid reselection target Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 096/109] scsi: NCR5380: Don't clear busy flag when abort fails Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 097/109] scsi: NCR5380: Don't call dsprintk() following reselection interrupt Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 098/109] scsi: NCR5380: Handle BUS FREE during reselection Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 099/109] scsi: NCR5380: Check for bus reset Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 100/109] arm64: dts: amd: Fix SPI bus warnings Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 101/109] arm64: dts: lg: Fix SPI controller node names Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 102/109] ARM: dts: lpc32xx: " Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 103/109] arm64: dts: rockchip: enable display nodes on rk3328-rock64 Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 104/109] rtc: armada38x: fix possible race condition Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 105/109] netfilter: masquerade: don't flush all conntracks if only one address deleted on device Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 106/109] usb: xhci-mtk: fix ISOC error when interval is zero Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 107/109] fuse: use READ_ONCE on congestion_threshold and max_background Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 108/109] IB/iser: Fix possible NULL deref at iser_inv_desc() Sasha Levin
2019-11-10 2:45 ` [PATCH AUTOSEL 4.14 109/109] net: phy: mdio-bcm-unimac: mark PM functions as __maybe_unused Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191110024541.31567-62-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.poirier@linaro.org \
--cc=stable@vger.kernel.org \
--cc=suzuki.poulose@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®