Messages in this thread | | | From | OGAWA Hirofumi <> | Subject | Re: [PATCH] filldir write data missing size | Date | Sun, 20 Jul 2008 05:11:29 +0900 |
| |
Yoshinori Sato <ysato@users.sourceforge.jp> writes:
>> > - if (__put_user(offset, &dirent->d_off)) >> > + if (__put_user((unsigned long)offset, &dirent->d_off)) >> >> Um.. __put_user() should be already doing it automatically.. > > I'm mistake. > > I checked object, and found bad code. > This problem fix __put_user.
Um.. Could you explain the detail of problem? Is this a workaround or something for the bug of some compiler? If so, shouldn't we fix __put_user() instead of caller?
E.g. the following or something fixes it? (btw, this is for x86)
#define __put_user(x, ptr) ({ \ /* Since some compiler generates wrong code, we need __v.?? */ \ __typeof__(*(ptr)) __v = (x); \ __put_user_nocheck(__v, (ptr), sizeof(*(ptr))); \ }) -- OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
| |