From: merlin@sztaki.hu
To: linux-kernel@vger.kernel.org
Subject: question about kill PIDTYPE_TGID patch
Date: Wed, 9 Aug 2006 13:23:12 +0200 [thread overview]
Message-ID: <200608091323.12426.merlin@sztaki.hu> (raw)
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
}
next reply other threads:[~2006-08-09 11:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-09 11:23 merlin [this message]
2006-08-09 11:29 ` Christoph Hellwig
2006-08-11 13:58 ` Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200608091323.12426.merlin@sztaki.hu \
--to=merlin@sztaki.hu \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®