Messages in this thread |  | | | From | Hank Janssen <> | | Subject | RE: [patch] Staging: hv: Fix vmbus load hang caused by wrong data packing | | Date | Mon, 12 Oct 2009 20:10:40 +0000 |
| |
>Odd quoting style :(
We like to keep things lively :)
>> Based on our testing, the #pragma pack(push,1) can pack the data >> correctly for the HyperV to use, but __attribute__((packed)) couldn't >> do this right. > >Why? What does gcc generate differently? This should be identical.
It should, but in practice in this case it does not seem to behave the same Way.
>> These data structures are moved by someone from the original file, >> ChannelMessages.h, which contains structures used for messaging to >> host. > >I moved them as they did not need to be in that file, right?
Moving them was not a problem.
>Ideally, we don't deal with packed structures at all, but with offsets >in memory and pick out the proper fields and put them into new >structures if you want to use them that way. How hard would that be to >do here instead?
It is something that I want to look at in the future. Our primary focus Is to get the bug fixed. We cannot do the offset way in the time we Have before 2.6.32 closes and still be comfortable we have gone through The extensive testing cycle we do on our side.
>I still want to figure out what the real difference here is. Especially >as I removed a lot of the #pragma pack(push,1) lines from the hv code. >If it really is different, all of those patches should be reverted, >right?
Not sure yet if they need to be reverted, after we fixed this bug last week We are getting another one, it was masked by the one we just fixed. We are checking into that right now;
BUG: unable to handle kernel NULL pointer dereference at (null)
Thanks,
Hank.
|  |