question about kill PIDTYPE_TGID patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux