Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1334616

[PATCH 08/20] intel_th: sth: Sanitize packet callback's return values

From Alexander Shishkin <alexander.shishkin@linux.intel.com>
Newsgroups linux.kernel
Subject [PATCH 08/20] intel_th: sth: Sanitize packet callback's return values
Date 2016-02-15 18:20 +0100
Message-ID <r2uYy-41S-7@gated-at.bofh.it> (permalink)
References <r2uvw-3zL-21@gated-at.bofh.it> <r2uYx-41S-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


According to the stm class interface, the packet callback should return
an error if it is asked to generate packets that it doesn't support.
When it succeeds, it should return number of bytes consumed from its
payload. Currently, for FLAG packet it mistakenly returns 1.

This patch addresses these issues.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
---
 drivers/hwtracing/intel_th/sth.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/hwtracing/intel_th/sth.c b/drivers/hwtracing/intel_th/sth.c
index 56101c33e1..e1aee61dd7 100644
--- a/drivers/hwtracing/intel_th/sth.c
+++ b/drivers/hwtracing/intel_th/sth.c
@@ -94,10 +94,13 @@ static ssize_t sth_stm_packet(struct stm_data *stm_data, unsigned int master,
 	case STP_PACKET_TRIG:
 		if (flags & STP_PACKET_TIMESTAMPED)
 			reg += 4;
-		iowrite8(*payload, sth->base + reg);
+		writeb_relaxed(*payload, sth->base + reg);
 		break;
 
 	case STP_PACKET_MERR:
+		if (size > 4)
+			size = 4;
+
 		sth_iowrite(&out->MERR, payload, size);
 		break;
 
@@ -107,8 +110,8 @@ static ssize_t sth_stm_packet(struct stm_data *stm_data, unsigned int master,
 		else
 			outp = (u64 __iomem *)&out->FLAG;
 
-		size = 1;
-		sth_iowrite(outp, payload, size);
+		size = 0;
+		writeb_relaxed(0, outp);
 		break;
 
 	case STP_PACKET_USER:
@@ -129,6 +132,8 @@ static ssize_t sth_stm_packet(struct stm_data *stm_data, unsigned int master,
 
 		sth_iowrite(outp, payload, size);
 		break;
+	default:
+		return -ENOTSUPP;
 	}
 
 	return size;
-- 
2.7.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[git pull] stm class/intel_th: Updates for char-misc-next Alexander Shishkin <alexander.shishkin@intel.com> - 2016-02-15 17:10 +0100
  Re: [git pull] stm class/intel_th: Updates for char-misc-next Greg KH <gregkh@linuxfoundation.org> - 2016-02-15 17:50 +0100
    [PATCH 07/20] intel_th: msu: Release resources on read error Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
    [PATCH 10/20] intel_th: Use real device index in the node names Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
    [PATCH 08/20] intel_th: sth: Sanitize packet callback's return values Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
    [PATCH 20/20] stm class: dummy_stm: Add link callback for fault injection Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
    [PATCH 00/20] stm class/intel_th: Updates for char-misc-next Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 12/20] stm class: Support devices with multiple instances Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 11/20] stm class: Use driver's packet callback return value Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 01/20] stm class: Use a signed return type for stm_find_master_chan Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 14/20] stm class: Add heartbeat stm source device Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 09/20] intel_th: Set root device's drvdata early Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 18/20] stm class: Fix a race in unlinking Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 13/20] stm class: dummy_stm: Create multiple devices Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 19/20] stm class: Plug stm device's unlink callback Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 04/20] intel_th: gth: Remove commented-out code Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 03/20] intel_th: Depend on HAS_IOMEM Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 15/20] stm class: Fix unlocking braino in the error path Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 16/20] stm class: Guard output assignment against concurrency Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 17/20] stm class: Fix unbalanced module/device refcounting Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 05/20] intel_th: Update scratchpad bits according to enabled output activity Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 06/20] intel_th: msu: Fix offset for wrapped block Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
      [PATCH 02/20] stm class: Fix master deallocation in device unregistering Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-15 18:20 +0100
    Re: [git pull] stm class/intel_th: Updates for char-misc-next Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2016-02-16 13:30 +0100

csiph-web