Re: [PATCH] synclink_gt use dynamic tty device registration

2007-05-03 Thread Paul Fulghum
On Thu, 2007-05-03 at 00:05 -0700, Andrew Morton wrote:
> On Wed, 02 May 2007 11:17:33 -0500 Paul Fulghum <[EMAIL PROTECTED]> wrote:
> 
> > Change synclink_gt driver to use dynamic tty device registration.
> > 
> > ...
> >
> > +   for (i=0; i < port_count; ++i)
> > +   tty_register_device(serial_driver, port_array[i]->line, 
> > &(port_array[i]->pdev->dev));
> > ...
> > +   for (info=slgt_device_list ; info != NULL ; 
> > info=info->next_device)
> > +   tty_unregister_device(serial_driver, info->line);
> > ...
> > +   if ((rc = pci_register_driver(_driver)) < 0) {
> 
> hm, not a big fan of kernel coding style, I see.

It varies. If this idiom bothers you, I can split it into 2 lines.

> What's going to happen here if tty_register_device() fails?

Then the device will not be accessible as a tty device.
It may still be accessible as a network device.
On driver unload, tty_unregister_device() does nothing because
the device was never created.

In this case, tracking the return value does not change anything.
I could add a printk on error to better inform the user that the
kernel's plumbing went south.

-- 
Paul Fulghum
Microgate Systems, Ltd

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] synclink_gt use dynamic tty device registration

2007-05-03 Thread Andrew Morton
On Wed, 02 May 2007 11:17:33 -0500 Paul Fulghum <[EMAIL PROTECTED]> wrote:

> Change synclink_gt driver to use dynamic tty device registration.
> 
> ...
>
> + for (i=0; i < port_count; ++i)
> + tty_register_device(serial_driver, port_array[i]->line, 
> &(port_array[i]->pdev->dev));
> ...
> + for (info=slgt_device_list ; info != NULL ; 
> info=info->next_device)
> + tty_unregister_device(serial_driver, info->line);
> ...
> + if ((rc = pci_register_driver(_driver)) < 0) {

hm, not a big fan of kernel coding style, I see.

What's going to happen here if tty_register_device() fails?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] synclink_gt use dynamic tty device registration

2007-05-03 Thread Andrew Morton
On Wed, 02 May 2007 11:17:33 -0500 Paul Fulghum [EMAIL PROTECTED] wrote:

 Change synclink_gt driver to use dynamic tty device registration.
 
 ...

 + for (i=0; i  port_count; ++i)
 + tty_register_device(serial_driver, port_array[i]-line, 
 (port_array[i]-pdev-dev));
 ...
 + for (info=slgt_device_list ; info != NULL ; 
 info=info-next_device)
 + tty_unregister_device(serial_driver, info-line);
 ...
 + if ((rc = pci_register_driver(pci_driver))  0) {

hm, not a big fan of kernel coding style, I see.

What's going to happen here if tty_register_device() fails?
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] synclink_gt use dynamic tty device registration

2007-05-03 Thread Paul Fulghum
On Thu, 2007-05-03 at 00:05 -0700, Andrew Morton wrote:
 On Wed, 02 May 2007 11:17:33 -0500 Paul Fulghum [EMAIL PROTECTED] wrote:
 
  Change synclink_gt driver to use dynamic tty device registration.
  
  ...
 
  +   for (i=0; i  port_count; ++i)
  +   tty_register_device(serial_driver, port_array[i]-line, 
  (port_array[i]-pdev-dev));
  ...
  +   for (info=slgt_device_list ; info != NULL ; 
  info=info-next_device)
  +   tty_unregister_device(serial_driver, info-line);
  ...
  +   if ((rc = pci_register_driver(pci_driver))  0) {
 
 hm, not a big fan of kernel coding style, I see.

It varies. If this idiom bothers you, I can split it into 2 lines.

 What's going to happen here if tty_register_device() fails?

Then the device will not be accessible as a tty device.
It may still be accessible as a network device.
On driver unload, tty_unregister_device() does nothing because
the device was never created.

In this case, tracking the return value does not change anything.
I could add a printk on error to better inform the user that the
kernel's plumbing went south.

-- 
Paul Fulghum
Microgate Systems, Ltd

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] synclink_gt use dynamic tty device registration

2007-05-02 Thread Paul Fulghum
Change synclink_gt driver to use dynamic tty device registration.

Signed-off-by: Paul Fulghum <[EMAIL PROTECTED]>


--- a/drivers/char/synclink_gt.c2007-04-25 22:08:32.0 -0500
+++ b/drivers/char/synclink_gt.c2007-05-02 11:11:34.0 -0500
@@ -3415,6 +3415,9 @@ static void device_init(int adapter_num,
}
}
}
+
+   for (i=0; i < port_count; ++i)
+   tty_register_device(serial_driver, port_array[i]->line, 
&(port_array[i]->pdev->dev));
 }
 
 static int __devinit init_one(struct pci_dev *dev,
@@ -3466,6 +3469,8 @@ static void slgt_cleanup(void)
printk("unload %s %s\n", driver_name, driver_version);
 
if (serial_driver) {
+   for (info=slgt_device_list ; info != NULL ; 
info=info->next_device)
+   tty_unregister_device(serial_driver, info->line);
if ((rc = tty_unregister_driver(serial_driver)))
DBGERR(("tty_unregister_driver error=%d\n", rc));
put_tty_driver(serial_driver);
@@ -3506,23 +3511,10 @@ static int __init slgt_init(void)
 
printk("%s %s\n", driver_name, driver_version);
 
-   slgt_device_count = 0;
-   if ((rc = pci_register_driver(_driver)) < 0) {
-   printk("%s pci_register_driver error=%d\n", driver_name, rc);
-   return rc;
-   }
-   pci_registered = 1;
-
-   if (!slgt_device_list) {
-   printk("%s no devices found\n",driver_name);
-   pci_unregister_driver(_driver);
-   return -ENODEV;
-   }
-
serial_driver = alloc_tty_driver(MAX_DEVICES);
if (!serial_driver) {
-   rc = -ENOMEM;
-   goto error;
+   printk("%s can't allocate tty driver\n", driver_name);
+   return -ENOMEM;
}
 
/* Initialize the tty_driver structure */
@@ -3539,7 +3531,7 @@ static int __init slgt_init(void)
B9600 | CS8 | CREAD | HUPCL | CLOCAL;
serial_driver->init_termios.c_ispeed = 9600;
serial_driver->init_termios.c_ospeed = 9600;
-   serial_driver->flags = TTY_DRIVER_REAL_RAW;
+   serial_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
tty_set_operations(serial_driver, );
if ((rc = tty_register_driver(serial_driver)) < 0) {
DBGERR(("%s can't register serial driver\n", driver_name));
@@ -3552,6 +3544,16 @@ static int __init slgt_init(void)
driver_name, driver_version,
serial_driver->major);
 
+   slgt_device_count = 0;
+   if ((rc = pci_register_driver(_driver)) < 0) {
+   printk("%s pci_register_driver error=%d\n", driver_name, rc);
+   goto error;
+   }
+   pci_registered = 1;
+
+   if (!slgt_device_list)
+   printk("%s no devices found\n",driver_name);
+
return 0;
 
 error:


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] synclink_gt use dynamic tty device registration

2007-05-02 Thread Paul Fulghum
Change synclink_gt driver to use dynamic tty device registration.

Signed-off-by: Paul Fulghum [EMAIL PROTECTED]


--- a/drivers/char/synclink_gt.c2007-04-25 22:08:32.0 -0500
+++ b/drivers/char/synclink_gt.c2007-05-02 11:11:34.0 -0500
@@ -3415,6 +3415,9 @@ static void device_init(int adapter_num,
}
}
}
+
+   for (i=0; i  port_count; ++i)
+   tty_register_device(serial_driver, port_array[i]-line, 
(port_array[i]-pdev-dev));
 }
 
 static int __devinit init_one(struct pci_dev *dev,
@@ -3466,6 +3469,8 @@ static void slgt_cleanup(void)
printk(unload %s %s\n, driver_name, driver_version);
 
if (serial_driver) {
+   for (info=slgt_device_list ; info != NULL ; 
info=info-next_device)
+   tty_unregister_device(serial_driver, info-line);
if ((rc = tty_unregister_driver(serial_driver)))
DBGERR((tty_unregister_driver error=%d\n, rc));
put_tty_driver(serial_driver);
@@ -3506,23 +3511,10 @@ static int __init slgt_init(void)
 
printk(%s %s\n, driver_name, driver_version);
 
-   slgt_device_count = 0;
-   if ((rc = pci_register_driver(pci_driver))  0) {
-   printk(%s pci_register_driver error=%d\n, driver_name, rc);
-   return rc;
-   }
-   pci_registered = 1;
-
-   if (!slgt_device_list) {
-   printk(%s no devices found\n,driver_name);
-   pci_unregister_driver(pci_driver);
-   return -ENODEV;
-   }
-
serial_driver = alloc_tty_driver(MAX_DEVICES);
if (!serial_driver) {
-   rc = -ENOMEM;
-   goto error;
+   printk(%s can't allocate tty driver\n, driver_name);
+   return -ENOMEM;
}
 
/* Initialize the tty_driver structure */
@@ -3539,7 +3531,7 @@ static int __init slgt_init(void)
B9600 | CS8 | CREAD | HUPCL | CLOCAL;
serial_driver-init_termios.c_ispeed = 9600;
serial_driver-init_termios.c_ospeed = 9600;
-   serial_driver-flags = TTY_DRIVER_REAL_RAW;
+   serial_driver-flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV;
tty_set_operations(serial_driver, ops);
if ((rc = tty_register_driver(serial_driver))  0) {
DBGERR((%s can't register serial driver\n, driver_name));
@@ -3552,6 +3544,16 @@ static int __init slgt_init(void)
driver_name, driver_version,
serial_driver-major);
 
+   slgt_device_count = 0;
+   if ((rc = pci_register_driver(pci_driver))  0) {
+   printk(%s pci_register_driver error=%d\n, driver_name, rc);
+   goto error;
+   }
+   pci_registered = 1;
+
+   if (!slgt_device_list)
+   printk(%s no devices found\n,driver_name);
+
return 0;
 
 error:


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/