tree a4e7e04989b5f305b22d83c4c7391601cc95fcbb
parent 45c2da62199bcea380273b2fba7fa16c1ff27a30
author Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1348038921 +0100
committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1348038921 +0100

USB: serial: fix up bug with missing {}

As reported by Fengguang:

FYI, coccinelle warns about

drivers/usb/serial/usb-serial.c:1415:3-51: code aligned with following code on line 1416

vim +1415 drivers/usb/serial/usb-serial.c

  1412          /* we only set the reset_resume field if the serial_driver has one */
  1413          for (sd = serial_drivers; *sd; ++sd) {
  1414                  if ((*sd)->reset_resume)
> 1415                          udriver->reset_resume = usb_serial_reset_resume;
> 1416                          break;
  1417          }

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Cc: stable <stable@vger.kernel.org> [3.5]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
