On Wed, Jun 23, 2010 at 03:16:16PM -0700, Greg Kroah-Hartman wrote:
> 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?
Yes, no problem, although won't just changing these to u32 for the first
case take the problem elsewhere in the driver?
>
> thanks,
>
> greg k-h
--
Charles Clément
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel