On Wed, Jun 23, 2010 at 09:47:44AM +0200, Jiri Slaby wrote:
> On 06/23/2010 01:56 AM, Charles Clément wrote:
> > Replace all occurrences with unsigned long type.
>
> At least this:
>
> > --- a/drivers/staging/vt6655/desc.h
> > +++ b/drivers/staging/vt6655/desc.h
> ...
> > @@ -391,13 +391,13 @@ typedef const STxDesc *PCSTxDesc;
> > typedef struct tagSTxSyncDesc {
> > volatile STDES0 m_td0TD0;
> > volatile STDES1 m_td1TD1;
> > - volatile DWORD buff_addr; // pointer to logical buffer
> > - volatile DWORD next_desc; // pointer to next logical descriptor
> > + volatile unsigned long buff_addr; // pointer to logical buffer
> > + volatile unsigned long next_desc; // pointer to next logical
> > descriptor
> > volatile WORD m_wFIFOCtl;
> > volatile WORD m_wTimeStamp;
> > struct tagSTxSyncDesc* next; //4 bytes
> > volatile PDEVICE_TD_INFO pTDInfo;//4 bytes
> > - volatile DWORD m_dwReserved2;
> > + volatile unsigned long m_dwReserved2;
> > } __attribute__ ((__packed__))
>
> and this:
>
> > --- a/drivers/staging/vt6655/ttype.h
> > +++ b/drivers/staging/vt6655/ttype.h
> > @@ -70,15 +70,14 @@ typedef int BOOL;
> >
> > typedef unsigned char BYTE; // 8-bit
> > typedef unsigned short WORD; // 16-bit
> > -typedef unsigned long DWORD; // 32-bit
> >
> > // QWORD is for those situation that we want
> > // an 8-byte-aligned 8 byte long structure
> > // which is NOT really a floating point number.
> > typedef union tagUQuadWord {
> > struct {
> > - DWORD dwLowDword;
> > - DWORD dwHighDword;
> > + unsigned long dwLowDword;
> > + unsigned long dwHighDword;
> > } u;
> > double DoNotUseThisField;
> > } UQuadWord;
>
> is wrong. DWORD should be replaced by u32 or unsigned int. Not long.
> Otherwise it doesn't make sense. For the former, it's a packed structure
> so it changes size on 64-bit, for the latter the union is not anymore
> the same on 64-bit. One of the u members contains the whole double there.
Yeah, but unfortunatly, this is just preserving the problems that were
already there for the 64-bit version of this driver. We ran into this
before with this type of thing, which makes me believe that the driver
was never run on a 64bit processor (which makes sense as via doesn't
have them.)
Charles, care to fix this up and resend this series?
thanks,
greg k-h
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel