USB: serial: metro-usb: fix up usb_serial_register calls

The usb serial core has changed how the driver is to be registered and
unregistered recently.  Make these changes to the driver so that it will
properly build and work.

Cc: Aleksey Babahin <tamerlan311@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/usb/serial/metro-usb.c b/drivers/usb/serial/metro-usb.c
index 5b8ed50..bb68389 100644
--- a/drivers/usb/serial/metro-usb.c
+++ b/drivers/usb/serial/metro-usb.c
@@ -92,7 +92,6 @@
 	},
 	.description 		= "Metrologic USB to serial converter.",
 	.id_table 		= id_table,
-	.usb_driver		= &metrousb_driver,
 	.num_ports 		= 1,
 	.open 			= metrousb_open,
 	.close 			= metrousb_close,
@@ -105,6 +104,11 @@
 	.tiocmset          	= metrousb_tiocmset,
 };
 
+static struct usb_serial_driver * const serial_drivers[] = {
+	&metrousb_device,
+	NULL,
+};
+
 /* ----------------------------------------------------------------------------------------------
   Description:
 	Clean up any urbs and port information.
@@ -163,10 +167,7 @@
 */
 static void __exit metrousb_exit(void)
 {
-	dbg("METRO-USB - %s", __FUNCTION__);
-
-	usb_deregister(&metrousb_driver);
-	usb_serial_deregister(&metrousb_device);
+	usb_serial_deregister_drivers(&metrousb_driver, serial_drivers);
 }
 
 /* ----------------------------------------------------------------------------------------------
@@ -203,15 +204,10 @@
 	}
 
 	/* Register the devices. */
-	retval = usb_serial_register(&metrousb_device);
+	retval = usb_serial_register_drivers(&metrousb_driver, serial_drivers);
 	if (retval)
 		return retval;
 
-	/* Register the driver. */
-	retval = usb_register(&metrousb_driver);
-	if (retval)
-		usb_serial_deregister(&metrousb_device);
-
 	printk(KERN_INFO DRIVER_DESC " : " DRIVER_VERSION);
 
 	return retval;