ses is also a pointer to struct session which is passed into this particular
function "verify_packet".

int verify_packet(struct session *ses, struct pppoe_packet *p)

This function uses TAG_DATA to set hu_val, which is also a pointer to struct
session, and then it compares hu_val to ses which always fails.

hu_val = *TAG_DATA(struct session *, p->tags[TAG_HOST_UNIQ];

if (hu_val != ses)
. . .This is the error case generating the message....

TAG_DATA behaves differently under arm versus x86.

#define TAG_DATA(type, tag_ptr) ((type *) tag_ptr+1)


Thanks,
David
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Russell King
- ARM Linux
Sent: Wednesday, April 04, 2001 8:41 AM
To: David Milburn
Cc: Doug Dunlop; [EMAIL PROTECTED]
Subject: Re: pppoe using 2.4 kernel


David Milburn writes:
> Russell,

I'm sorry, I still don't see the problem - what is 'ses'?  This doesn't
seem to be part of the kernel, so I don't have the sources to hand.

> > This is causing the failure in verify_packet where hu_val is set, if you
> > printf the value of 'ses' you will probably see that the f1a0 is
correct,
> it
> > is the 0400 causing the miscompare.

   _____
  |_____| ------------------------------------------------- ---+---+-
  |   |        Russell King       [EMAIL PROTECTED]      --- ---
  | | | |            http://www.arm.linux.org.uk/            /  /  |
  | +-+-+                                                     --- -+-
  /   |               THE developer of ARM Linux              |+| /|\
 /  | | |                                                     ---  |
    +-+-+ -------------------------------------------------  /\\\  |

_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
Please visit the above address for information on this list.


_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
Please visit the above address for information on this list.

Reply via email to