Re: HEADSUP: Change of makedev() semantics.

From: Greg 'groggy' Lehey (grog_at_FreeBSD.org)
Date: 09/29/03

  • Next message: Brooks Davis: "Re: TEST PLEASE: if_tun patch"
    Date: Mon, 29 Sep 2003 09:29:06 +0930
    To: Robert Watson <rwatson@FreeBSD.org>
    
    
    

    On Sunday, 28 September 2003 at 19:46:20 -0400, Robert Watson wrote:
    >
    > On Mon, 29 Sep 2003, Greg 'groggy' Lehey wrote:
    >
    >> On Sunday, 28 September 2003 at 23:22:07 +0200, Poul-Henning Kamp wrote:
    >>> Basically:
    >>>
    >>> 3. If you do a "normal" device driver, cache the result
    >>> from when you call make_dev().
    >>> ...
    >>>
    >>> ./dev/vinum
    >>> Failure to cache result of make_dev() ?
    >>
    >> Where should this be cached? Can you point to example code?
    >
    > Actually, it looks like Vinum is caching the dev_t's,

    Ah, you mean saving the results rather than calling make_dev() every
    time? Yes, it only calls make_dev() once for any device.

    > but it's not always using them to get back to the dev_t--sometimes
    > it's invoking makedev() instead. However, this appears to happen
    > only in the vinumrevive.c code, so I'm not sure if that's a property
    > of the cached reference being unavailable it looks like it should be
    > available in that context though.

    No, it should always be available. I was going to say "I don't see
    any references to make_dev() in vinumrevive.c, nor any references to
    makedev() at all", but I see that VINUM_SD includes both.

    > I.e., using sd->dev instead of VINUM_SD() -- it looks like there is
    > a valid (struct sd *) reference there to follow, so you can get to
    > the dev_t without doing a makedev().

    Yes, this is a bug (and an indication of the dangers of using macros :-)
    I'll fix it.

    Greg

    --
    See complete headers for address and phone numbers.
    NOTE: Due to the currently active Microsoft-based worms, I am limiting
    all incoming mail to 131,072 bytes.  This is enough for normal mail,
    but not for large attachments.  Please send these as URLs.
    
    



  • Next message: Brooks Davis: "Re: TEST PLEASE: if_tun patch"

    Relevant Pages

    • Re: HEADSUP: Change of makedev() semantics.
      ... you mean saving the results rather than calling make_devevery ... any references to make_devin vinumrevive.c, ... makedev() at all", but I see that VINUM_SD includes both. ... all incoming mail to 131,072 bytes. ...
      (freebsd-arch)
    • No MAKEDEV in /dev
      ... troubleshoot.html tells me to use this command from /dev/: ... these are the only references to MAKEDEV on the entire machine: ... To unsubscribe, ...
      (freebsd-questions)