A patch of HPTIOP driver for 7.1-RELEASE

Shaowei Wang (wsw) wsw1wsw2 at gmail.com
Mon Mar 23 23:50:08 PDT 2009


Hi, delphij

The problem about FreeBSD-7.x-amd64's hptiop driver is solved by patching
our RAID-manage software (userland utils).

The hptrr driver is a soft RAID so a 32-bit compatibility ioctl structure is
necessary. The hptiop is a hardware RAID controller, the firmware is 32-bit.


I'm not so familiar with FreeBSD's development community. I'm sorry Posting
the infomation here.

On Sat, Jan 17, 2009 at 6:46 AM, Xin LI <delphij at delphij.net> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hi, Shaowei,
>
> It seems that I can not apply your patch directly, I have tried to do it
> manually, as attached, please let me know if it's Ok.  I can commit for
> you against -HEAD if it looks fine and take care for MFC.
>
> Note that, however, I am more or less concerned about the driver if
> 32-bit utility is running on amd64 platform.  There seems to have three
> pointer style field in hpt_iop_ioctl_param.  I have checked hptrr(4) and
> found that it has defined a 32-bit compatibility ioctl structure.
> According to my understanding to hptiop(4), this could be a problem.
>
> PS.  For faster handling it is probably a good idea to submit patch
> through our PR system: http://www.freebsd.org/send-pr.html
>
> Shaowei Wang (wsw) wrote:
> > Hi, guys
> >
> > hptiop driver in the 7.1 release has a little bug.
> > Because this issue the Raid-manage GUI program which we provided can NOT
> > work anymore.
> >
> > So we give the patch:
> >
> > Index: hptiop.h
> > ===================================================================
> > --- hptiop.h    (revision 186851)
> > +++ hptiop.h    (working copy)
> > @@ -260,7 +260,7 @@
> >      unsigned long    lpOutBuffer;           /* output data buffer */
> >      u_int32_t        nOutBufferSize;        /* size of output data
> buffer
> > */
> >      unsigned long    lpBytesReturned;       /* count of HPT_U8s returned
> */
> > -};
> > +}__attribute__((packed));
> >
> >  #define HPT_IOCTL_FLAG_OPEN 1
> >  #define HPT_CTL_CODE_BSD_TO_IOP(x) ((x)-0xff00)
> >
> > ====================================================================
> >
> > -wsw
> >
> >
> /************************************************************************/
> >
> > 大家好:
> >
> > hptiop的驱动在7.1发行版中有个小错误。
> > 这个小错误导致了我们提供的阵列管理程序无法运行。
> >
> > 我们给出了补丁:
> >
> > Index: hptiop.h
> > ===================================================================
> > --- hptiop.h    (revision 186851)
> > +++ hptiop.h    (working copy)
> > @@ -260,7 +260,7 @@
> >      unsigned long    lpOutBuffer;           /* output data buffer */
> >      u_int32_t        nOutBufferSize;        /* size of output data
> buffer
> > */
> >      unsigned long    lpBytesReturned;       /* count of HPT_U8s returned
> */
> > -};
> > +}__attribute__((packed));
> >
> >  #define HPT_IOCTL_FLAG_OPEN 1
> >  #define HPT_CTL_CODE_BSD_TO_IOP(x) ((x)-0xff00)
> >
> > ====================================================================
> >
> > -wsw
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > freebsd-hackers at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> > To unsubscribe, send any mail to "
> freebsd-hackers-unsubscribe at freebsd.org"
>
>
> - --
> Xin LI <delphij at delphij.net>    http://www.delphij.net/
> FreeBSD - The Power to Serve!
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.10 (FreeBSD)
>
> iEYEARECAAYFAklxDk4ACgkQi+vbBBjt66CvUQCfaAnk0XQTh3Wrn2O4Dy0pEUFW
> oqsAoIvlTSNGRDg71SNyGfZ5VjDh9Z93
> =1xSB
> -----END PGP SIGNATURE-----
>
> Index: sys/dev/hptiop/hptiop.h
> ===================================================================
> --- sys/dev/hptiop/hptiop.h     (版本 187338)
> +++ sys/dev/hptiop/hptiop.h     (工作副本)
> @@ -260,7 +260,7 @@
>        unsigned long    lpOutBuffer;           /* output data buffer */
>        u_int32_t        nOutBufferSize;        /* size of output data
> buffer */
>        unsigned long    lpBytesReturned;       /* count of HPT_U8s returned
> */
> -};
> +} __attribute__((packed));
>
>  #define HPT_IOCTL_FLAG_OPEN 1
>  #define HPT_CTL_CODE_BSD_TO_IOP(x) ((x)-0xff00)
>
>


More information about the freebsd-hackers mailing list