On Mon, Jul 15, 2013 at 6:03 PM, Saket Sinha <[email protected]>wrote:
> Mandeep: > > Even this hasnt helped..though it was a btight idea. :( > And what _exact_ error does the compiler give if you use the new (modified) macro? The re-def error should not be there as the variable "new1" is within the local scope now. -mandeep > > > P.S.-I can give my system on remote via Team Viewer, if you want to try. > > Regards, > Saket Sinha > > > On Mon, Jul 15, 2013 at 5:39 PM, Mandeep Sandhu < > [email protected]> wrote: > >> 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 <[email protected]>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 < >>> [email protected]> wrote: >>> >>>> >>>> On Mon, Jul 15, 2013 at 4:50 PM, Saket Sinha >>>> <[email protected]>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 >>>>> >>>>> >>>> >>> >> >
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
