question about kill PIDTYPE_TGID patch



Hello,

I'm trying to compile IBM GPFS(2.3.0-15) Portability Layer with a 2.6.16
kernel (2.6.16-1.2289_FC6-xen-i686). The compiler stops with
the error message below:

kdump-kern.c:163: error: `PIDTYPE_TGID' undeclared (first use in this
function)

As I think, this is because of the PIDTYPE_TGID patch.

I don't want to get out that patch from the kernel , if there's
a more simple solution.

I hope you can suggest me a solution for the three lines where PIDTYPE_TGID
appears (see below) in the source code.

I'm not subscribed, please CC me the answer!
Thank you very much.
Michael HÉDER

Here comes a part of /usr/lpp/mmfs/src/gpl-linux/kdump-kern.c, this is the
only function where PIDTYPE_TGID appears.
===========================================
/* Step to next thread in current task. If no more threads, step to
next task. If no more tasks, return false. */
static Boolean tiNext(struct threadIter *ti)
{
#if LINUX_KERNEL_VERSION >= 2060000

#if LINUX_KERNEL_VERSION < 2060900
unsigned long pidAddr, headAddr, nextAddr;
struct pid_link *linkP;

assert(ti->taskP != NULL);
linkP = &ti->threadP->pids[PIDTYPE_TGID];

pidAddr = (unsigned long) linkP->pidptr;
headAddr = pidAddr + offsetof(struct pid, task_list);

nextAddr = (unsigned long) linkP->pid_chain.next;

if (nextAddr == headAddr)
{
struct pid *pidP = GenericGet(pidAddr, sizeof(struct pid));
nextAddr = (unsigned long) pidP->task_list.next;
kFree(pidP);
}
#else
unsigned long nextAddr;
nextAddr = ti->threadP->pids[PIDTYPE_TGID].pid_list.next;
#endif

ti->threadAddr = (unsigned long) pid_task((struct list_head *) nextAddr,
PIDTYPE_TGID);
if (ti->threadAddr != ti->taskAddr)
{
if (ti->threadP != ti->taskP)
kFree(ti->threadP);
ti->threadP = GetTaskStruct(ti->threadAddr);
}
else
{
ti->taskAddr = ti->threadAddr = (unsigned long) NEXT_TASK(ti->taskP);
kFree(ti->taskP);
if (ti->threadP != ti->taskP)
kFree(ti->threadP);
ti->taskP = ti->threadP = (ti->taskAddr == TaskAddress) ?
NULL : GetTaskStruct(ti->taskAddr);
}

return ti->threadP != NULL;
#else
assert(ti->taskP != NULL);
ti->taskAddr = ti->threadAddr = (unsigned long) NEXT_TASK(ti->taskP);
kFree(ti->taskP);
ti->taskP = ti->threadP = (ti->taskAddr == TaskAddress) ?
NULL : GetTaskStruct(ti->taskAddr);

return ti->threadP != NULL;
#endif
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: [PATCH] a few small mconf improvements
    ... conf.c and qconf.cc do the same, it's a personal preference. ... The patch adds a check of the return value and bails out if ... That error message is as useful to the normal user as a segfault - mconf ... report of a crash or if you get a report that mconf spewed an error ...
    (Linux-Kernel)
  • Re: unspecified spotential security flaw
    ... I have uninstalled the patch and the error message went away. ... Microsoft Product Support Services at 1-866-PCSAFETY. ... charge for support calls that are associated with security updates. ...
    (microsoft.public.windows.inetexplorer.ie6.browser)
  • Re: If you cant tell me how to update MSO 2003, can you tell me..
    ... Patch could not be applied is all I've ... Please, TaurArian, at this point, all I want to do is remove the update ... Error message when you try to install some of the Office 2003 or Office XP ...
    (microsoft.public.officeupdate)
  • Re: AUTHENTICATION TO APPLY SP3
    ... When I apply the patch it asks me to choose ... I only have one instance of SQL ... >error message at all, ... >> These accounts and passwords are good because I can get ...
    (microsoft.public.sqlserver.security)