This discussion is archived
2 Replies Latest reply: Oct 18, 2011 7:33 AM by 894901 RSS

VN_DISPOSE & extern kvp

894901 Newbie
Currently Being Moderated
Hi,

I'm not a solaris developer so please forgive me in advance if this is a noob question or if I goof up the nomenclature.

We've got a device driver released which uses: extern struct vnode kvp; in it's "dispose" vnode operation handler. From what I understand, this symbol is no longer exported by the kernel (customer states they applied "update 9") and so now modload fails for obvious reasons.

For versions >= update 9 I will need a dispose handler that does not reference kvp. I'm sure this is doable, but what I'm wondering is: how are other people dealing with the fact that a single version of the OS may or may not have this symbol defined? If I need to have code that supports the case when kvp is there, as well as code that supports when kvp is not there, how is this done?

If the code to support the case where kvp does not exist is backwards compatible, then I suppose this is a moot point, but I doubt that is the case. Any help would be appreciated. Thank you.

~billy
  • 1. Re: VN_DISPOSE & extern kvp
    abrante Pro
    Currently Being Moderated
    Well, VN_DISPOSE is still there in Update 9/Update 10, but it doesn't use the vnode kvp structure, apart from that it stills expect the same arguments, so I feel it should work still in Update 9..

    Normally systemcalls should be consistent across updates, so its not normal for modules to break because of an update, AFAIK.

    .7/M.
  • 2. Re: VN_DISPOSE & extern kvp
    894901 Newbie
    Currently Being Moderated
    Hi,

    Thanks for the reply. The problem I have is: if it works one way in >= update 9, and another way in < update 9, how to release a single driver that supports both methods? Since this is a symbol reference it precludes the driver from loading so I can't check versions. If the fix for >= update 9 is backwards compatible, then ok, that works. Otherwise, aside from releasing 2 different drivers, I can't see an easy way to manage this. Thanks.

    ~billy

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points