1165 struct tty_struct *tty;
1166
1167 dbg("%s", __func__);
1168
1169 switch (status) {
1170 case 0:
1171 break;
1172 case -ECONNRESET:
1173 case -ENOENT:
1174 case -ESHUTDOWN:
1175 dbg("%s - urb shutting down, %d", __func__, status);
1176 tport->tp_tdev->td_urb_error = 1;
1177 wake_up_interruptible(&tport->tp_write_wait);
1178 return;
1179 default:
1180 dev_err(dev, "%s - nonzero urb status, %d\n",
1181 __func__, status);
1182 tport->tp_tdev->td_urb_error = 1;
1183 wake_up_interruptible(&tport->tp_write_wait);
1184 }
1185
1186 if (status == -EPIPE)
1187 goto exit;
1188
1189 if (status) {
1190 dev_err(dev, "%s - stopping read!\n", __func__);
1191 return;
1192 }
1193
1194 tty = tty_port_tty_get(&port->port);
1195 if (tty && urb->actual_length) {
1196 usb_serial_debug_data(debug, dev, __func__,
1197 urb->actual_length, urb->transfer_buffer);
1198
1199 if (!tport->tp_is_open)
1200 dbg("%s - port closed, dropping data", __func__);
1201 else
1202 ti_recv(&urb->dev->dev, tty,
1203 urb->transfer_buffer,
1204 urb->actual_length);
1205