Inline Macro issue

Mandeep Sandhu mandeepsandhu.chd at gmail.com
Mon Jul 15 08:09:15 EDT 2013


How about:

#define push_root() \
	recursive_mutex_lock(&context->id_lock);	\
	context->uid = current->fsuid;			\
	context->gid = current->fsgid;			\
        do {                                            \
            struct cred *new1 = prepare_creds();           \
            //make changes to any member of this structure \
            commit_creds(new1);                            \
        } while(0);

HTH,

-mandeep




On Mon, Jul 15, 2013 at 5:27 PM, Saket Sinha <saket.sinha89 at gmail.com>wrote:

> Here is the macro
>
> https://github.com/HeisSpiter/hepunion/blob/master/fs/hepunion/hepunion.h#L393
>
> Now this driver is at 2.6.18 kernel. I have to upgrade it to 3.8.3.
> As I have said
> "current" in kernel is a global macro, that always point to the "struct
> task_struct * " of the currently executing task (for details on
> task_struct, ref Robert Love, pg 24-27).
>
>
> https://github.com/HeisSpiter/hepunion/blob/master/fs/hepunion/hepunion.h#L397
>
> Now if you look at thse two lines-
>
> current->fsuid = 0; \
> current->fsgid = 0
>
> Now task struct does not contain fsuid and fsgid, instead you have
> struct cred containing fsuid and fsgid.
> http://lxr.free-electrons.com/source/include/linux/cred.h#L102
>
> So normal method is
> struct cred *new1;
> new1 =prepare_creds();
> //make changes to any member of this structure
> commit_creds(new1);
>
> Now this above action I need to perform through a macro, in order to bring
> minimal changes to the driver.
>
> Now, I have told everything. Can someone suggest something that might work.
>
> Regards,
> Saket Sinha
>
>
>
>
>
> On Mon, Jul 15, 2013 at 5:07 PM, Mandeep Sandhu <
> mandeepsandhu.chd at gmail.com> wrote:
>
>>
>> On Mon, Jul 15, 2013 at 4:50 PM, Saket Sinha <saket.sinha89 at gmail.com>wrote:
>>
>>> Mandip:
>>> Error is expected error or declaration at the end of input
>>>
>>
>> Without looking at the code, it's difficult to comment further.
>>
>> Can you attach a small compilable example which exhibits the error?
>>
>> -mandeep
>>
>>
>>
>>>  Anish:
>>> that '\' should not be there first of all and even if I put it same error
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130715/9d04fd03/attachment-0001.html 


More information about the Kernelnewbies mailing list