Hi John,

It seems I forgot to CC my message to you, so I'll just stick it to to
the commit message as well. Sorry.

* John Baldwin <[EMAIL PROTECTED]> wrote:
> Modified: head/sys/dev/ppbus/lpt.c
> ==============================================================================
> --- head/sys/dev/ppbus/lpt.c  Wed Oct 22 14:58:23 2008        (r184163)
> +++ head/sys/dev/ppbus/lpt.c  Wed Oct 22 15:00:22 2008        (r184164)
> @@ -399,7 +399,7 @@ lpt_attach(device_t dev)
>       sc->cdev_bypass = make_dev(&lpt_cdevsw, unit,
>           UID_ROOT, GID_WHEEL, 0600, LPT_NAME "%d.ctl", unit);
>       sc->cdev_bypass->si_drv1 = sc;
> -     sc->cdev_bypass->si_drv2 = LP_BYPASS;
> +     sc->cdev_bypass->si_drv2 = (void *)LP_BYPASS;
>       return (0);
>  }
>  
> @@ -476,7 +476,7 @@ lptopen(struct cdev *dev, int flags, int
>       } else
>               sc->sc_state |= LPTINIT;
>  
> -     sc->sc_flags = dev->si_drv2;
> +     sc->sc_flags = (uintptr_t)dev->si_drv2;
>  
>       /* Check for open with BYPASS flag set. */
>       if (sc->sc_flags & LP_BYPASS) {

Maybe it's better to just use the device unit number to store these
flags? This value is stored inside si_drv0, which is an integer.
Hopefully we'll get rid of make_dev()'s unit number argument somewhere
in the far future, which means drivers can use si_drv0 directly.

I sent the following patch to current@ this morning:

--- sys/dev/ppbus/lpt.c
+++ sys/dev/ppbus/lpt.c
@@ -392,14 +392,12 @@
        lpt_release_ppbus(dev);
 
        sc->dev = dev;
-       sc->cdev = make_dev(&lpt_cdevsw, unit,
+       sc->cdev = make_dev(&lpt_cdevsw, 0,
            UID_ROOT, GID_WHEEL, 0600, LPT_NAME "%d", unit);
        sc->cdev->si_drv1 = sc;
-       sc->cdev->si_drv2 = 0;
-       sc->cdev_bypass = make_dev(&lpt_cdevsw, unit,
+       sc->cdev_bypass = make_dev(&lpt_cdevsw, LP_BYPASS,
            UID_ROOT, GID_WHEEL, 0600, LPT_NAME "%d.ctl", unit);
        sc->cdev_bypass->si_drv1 = sc;
-       sc->cdev_bypass->si_drv2 = LP_BYPASS;
        return (0);
 }
 
@@ -476,7 +474,7 @@
        } else
                sc->sc_state |= LPTINIT;
 
-       sc->sc_flags = dev->si_drv2;
+       sc->sc_flags = dev2unit(dev);
 
        /* Check for open with BYPASS flag set. */
        if (sc->sc_flags & LP_BYPASS) {

-- 
 Ed Schouten <[EMAIL PROTECTED]>
 WWW: http://80386.nl/

Attachment: pgpG0Uc7ka3Xz.pgp
Description: PGP signature

Reply via email to