All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Ian Abbott <abbotti@mev.co.uk>
Subject: [PATCH 4.4 11/58] staging: comedi: ni_mio_common: fix E series ni_ai_insn_read() data
Date: Fri,  6 Jan 2017 22:43:56 +0100	[thread overview]
Message-ID: <20170106213906.863792807@linuxfoundation.org> (raw)
In-Reply-To: <20170106213906.290654840@linuxfoundation.org>

4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ian Abbott <abbotti@mev.co.uk>

commit 857a661020a2de3a0304edf33ad656abee100891 upstream.

Commit 0557344e2149 ("staging: comedi: ni_mio_common: fix local var for
32-bit read") changed the type of local variable `d` from `unsigned
short` to `unsigned int` to fix a bug introduced in
commit 9c340ac934db ("staging: comedi: ni_stc.h: add read/write
callbacks to struct ni_private") when reading AI data for NI PCI-6110
and PCI-6111 cards.  Unfortunately, other parts of the function rely on
the variable being `unsigned short` when an offset value in local
variable `signbits` is added to `d` before writing the value to the
`data` array:

			d += signbits;
		  	data[n] = d;

The `signbits` variable will be non-zero in bipolar mode, and is used to
convert the hardware's 2's complement, 16-bit numbers to Comedi's
straight binary sample format (with 0 representing the most negative
voltage).  This breaks because `d` is now 32 bits wide instead of 16
bits wide, so after the addition of `signbits`, `data[n]` ends up being
set to values above 65536 for negative voltages.  This affects all
supported "E series" cards except PCI-6143 (and PXI-6143). Fix it by
ANDing the value written to the `data[n]` with the mask 0xffff.

Fixes: 0557344e2149 ("staging: comedi: ni_mio_common: fix local var for 32-bit read")
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/staging/comedi/drivers/ni_mio_common.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/staging/comedi/drivers/ni_mio_common.c
+++ b/drivers/staging/comedi/drivers/ni_mio_common.c
@@ -1972,7 +1972,7 @@ static int ni_ai_insn_read(struct comedi
 				return -ETIME;
 			}
 			d += signbits;
-			data[n] = d;
+			data[n] = d & 0xffff;
 		}
 	} else if (devpriv->is_6143) {
 		for (n = 0; n < insn->n; n++) {
@@ -2017,8 +2017,8 @@ static int ni_ai_insn_read(struct comedi
 				data[n] = dl;
 			} else {
 				d = ni_readw(dev, NI_E_AI_FIFO_DATA_REG);
-				d += signbits;	/* subtle: needs to be short addition */
-				data[n] = d;
+				d += signbits;
+				data[n] = d & 0xffff;
 			}
 		}
 	}

  parent reply	other threads:[~2017-01-06 22:05 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20170106220400epcas3p1efbe4d9a81e843002529bd6fc2826260@epcas3p1.samsung.com>
2017-01-06 21:43 ` [PATCH 4.4 00/58] 4.4.41-stable review Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 01/58] ssb: Fix error routine when fallback SPROM fails Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 02/58] rtlwifi: Fix enter/exit power_save Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 03/58] cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 04/58] ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 05/58] mmc: sdhci: Fix recovery from tuning timeout Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 06/58] regulator: stw481x-vmmc: fix ages old enable error Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 07/58] timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 08/58] clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 09/58] thermal: hwmon: Properly report critical temperature in sysfs Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 10/58] staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask Greg Kroah-Hartman
2017-01-06 21:43   ` Greg Kroah-Hartman [this message]
2017-01-06 21:43   ` [PATCH 4.4 12/58] ACPI / video: Add force_native quirk for Dell XPS 17 L702X Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 13/58] ACPI / video: Add force_native quirk for HP Pavilion dv6 Greg Kroah-Hartman
2017-01-06 21:43   ` [PATCH 4.4 14/58] drm/nouveau/kms: lvds panel strap moved again on maxwell Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 15/58] drm/nouveau/bios: require checksum to match for fast acpi shadow method Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 16/58] drm/nouveau/ltc: protect clearing of comptags with mutex Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 17/58] drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 18/58] drm/nouveau/i2c/gk110b,gm10x: use the correct implementation Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 21/58] drm/radeon: add additional pci revision to dpm workaround Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 22/58] drm/gma500: Add compat ioctl Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 23/58] drivers/gpu/drm/ast: Fix infinite loop if read fails Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 24/58] mei: request async autosuspend at the end of enumeration Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 25/58] block: protect iterate_bdevs() against concurrent close Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 26/58] vt: fix Scroll Lock LED trigger name Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 27/58] scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs before reset Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 28/58] scsi: megaraid_sas: Do not set MPI2_TYPE_CUDA for JBOD FP path for FW which does not support JBOD sequence map Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 29/58] scsi: zfcp: fix use-after-"free" in FC ingress path after TMF Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 30/58] scsi: zfcp: do not trace pure benign residual HBA responses at default level Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 31/58] scsi: zfcp: fix rport unblock race with LUN recovery Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 32/58] scsi: avoid a permanent stop of the scsi devices request queue Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 33/58] ARC: mm: arc700: Dont assume 2 colours for aliasing VIPT dcache Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 34/58] firmware: fix usermode helper fallback loading Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 35/58] s390/vmlogrdr: fix IUCV buffer allocation Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 36/58] sc16is7xx: Drop bogus use of IRQF_ONESHOT Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 37/58] md/raid5: limit request size according to implementation limits Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 38/58] KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 39/58] KVM: PPC: Book3S HV: Dont lose hardware R/C bit updates in H_PROTECT Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 40/58] kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF) Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 41/58] ftrace/x86_32: Set ftrace_stub to weak to prevent gcc from using short jumps to it Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 42/58] platform/x86: asus-nb-wmi.c: Add X45U quirk Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 43/58] fgraph: Handle a case where a tracer ignores set_graph_notrace Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 44/58] IB/mad: Fix an array index check Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 45/58] IPoIB: Avoid reading an uninitialized member variable Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 46/58] IB/multicast: Check ib_find_pkey() return value Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 47/58] IB/cma: Fix a race condition in iboe_addr_get_sgid() Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 48/58] [media] media: solo6x10: fix lockup by avoiding delayed register write Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 49/58] Input: drv260x - fix input devices parent assignment Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 50/58] PCI: Check for PME in targeted sleep state Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 51/58] libceph: verify authorize reply on connect Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 52/58] nfs_write_end(): fix handling of short copies Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 53/58] powerpc/ps3: Fix system hang with GCC 5 builds Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 54/58] powerpc: Convert cmp to cmpd in idle enter sequence Greg Kroah-Hartman
2017-01-09  9:55     ` Vaidyanathan Srinivasan
2017-01-06 21:44   ` [PATCH 4.4 55/58] target/user: Fix use-after-free of tcmu_cmds if they are expired Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 56/58] kconfig/nconf: Fix hang when editing symbol with a long prompt Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 57/58] sg_write()/bsg_write() is not fit to be called under KERNEL_DS Greg Kroah-Hartman
2017-01-06 21:44   ` [PATCH 4.4 58/58] net: mvpp2: fix dma unmapping of TX buffers for fragments Greg Kroah-Hartman
2017-01-07  2:05   ` [PATCH 4.4 00/58] 4.4.41-stable review Shuah Khan
2017-01-07 15:51   ` Guenter Roeck

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=20170106213906.863792807@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=abbotti@mev.co.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.