lkml.org 
[lkml]   [2002]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Serial Driver Name Question (kernels 2.4.x)
    Ivan Passos writes:
    >
    > Andrew Morton wrote:
    > >
    > > "Michael H. Warfield" wrote:
    > > >
    > > > The trouble there is the problem with conventional lock files under
    > > > /var/lock which only use the base name of the device name so cua/42
    > > > and cuf/42 both have the same lock file of /var/lock/LCK..42 and
    > > > would collide.
    > >
    > > OK, thanks. So it looks like we stick with
    > >
    > > http://www.zip.com.au/~akpm/linux/2.4/2.4.18-pre2/tty_name.patch
    > >
    > > Which just puts %d's at the end of all the device names in the
    > > non-devfs case.
    > >
    > > I'll have another go at that patch, check for missed drivers,
    > > then send it out again. OK?
    >
    > OK, just two comments:
    > - As you'll have to patch all drivers anyway, in case Richard Gooch
    > doesn't have a problem with this suggestion, I'd suggest you patch
    > the kernel as follows:
    >
    > (1) drivers/char/tty_io.c
    > ---------------------
    > @@ -193,10 +193,13 @@ _tty_make_name(struct tty_struct *tty, c
    >
    > if (!tty) /* Hmm. NULL pointer. That's fun. */
    > strcpy(buf, "NULL tty");
    > else
    > - sprintf(buf, name,
    > - idx + tty->driver.name_base);
    > + sprintf(buf, "%s%d", name, idx + tty->driver.name_base);
    >
    > return buf;
    > }
    >
    > (2) drivers/char/serial.c
    > ---------------------
    > @@ -5387,7 +5387,7 @@ static int __init rs_init(void)
    > serial_driver.driver_name = "serial";
    > #endif
    > #if (LINUX_VERSION_CODE > 0x2032D && defined(CONFIG_DEVFS_FS))
    > - serial_driver.name = "tts/%d";
    > + serial_driver.name = "tts/";
    > #else
    > serial_driver.name = "ttyS";
    > #endif
    >
    >
    > (3) drivers/char/whatever_other_driver.c
    > ------------------------------------
    > @@ -5387,7 +5387,7 @@ static int __init wod_init(void)
    > wod_driver.driver_name = "whatever_other_driver";
    > #endif
    > #ifdef CONFIG_DEVFS_FS
    > - wod_driver.name = "tts/N%d";
    > + wod_driver.name = "tts/N";
    > #else
    > wod_driver.name = "ttyN";
    > #endif
    >
    > I've already suggested this in a previous msg, but nobody gave
    > feedback. I believe this is cleaner, as it removes the %d from
    > the driver.name field, while fixes the problem I reported.

    Since you have to change all the drivers anyway, I'd prefer if
    _tty_make_name() was left unchanged, and instead you put the "%d" in
    each driver.name, thusly:
    #ifdef CONFIG_DEVFS_FS
    wod_driver.name = "tts/N%d";
    #else
    wod_driver.name = "ttyN%d";
    #endif

    The reason: maximum flexibility in the kinds of names we can
    support. If for some reason we want a name like "tts/N%d_A" and
    "tts/N%d_B" (say a driver with linked ttys, like the pty driver), we
    don't need to make a global change.

    Regards,

    Richard....
    Permanent: rgooch@atnf.csiro.au
    Current: rgooch@ras.ucalgary.ca
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:15    [W:0.025 / U:1.112 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site