Commit aaf2af1e authored by Dave Penkler's avatar Dave Penkler Committed by Greg Kroah-Hartman
Browse files

staging: gpib: Return -EINTR on device clear



When the ATN (Attention) line is asserted during a read we get a
NIUSB_ATN_STATE_ERROR during a read. For the controller to send a
device clear it asserts ATN. Normally this is an error but in the case
of a device clear it should be regarded as an interrupt.

Return -EINTR when the Device Clear Active State (DCAS) is entered
else signal an error with dev_dbg with status instead of just dev_err.

Signed-off-by: default avatarDave Penkler <dpenkler@gmail.com>
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 92a2b74a
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -697,8 +697,12 @@ static int ni_usb_read(struct gpib_board *board, u8 *buffer, size_t length,
		 */
		break;
	case NIUSB_ATN_STATE_ERROR:
		if (status.ibsta & DCAS) {
			retval = -EINTR;
		} else {
			retval = -EIO;
		dev_err(&usb_dev->dev, "read when ATN set\n");
			dev_dbg(&usb_dev->dev, "read when ATN set stat: 0x%06x\n", status.ibsta);
		}
		break;
	case NIUSB_ADDRESSING_ERROR:
		retval = -EIO;