[PATCH][INFINIBAND]: Make ipath_portdata work with struct pid * not pid_t.

Previous thread: [PATCH] NTP: Make the RTC sync mode 11-minute again by Maciej W. Rozycki on Monday, May 12, 2008 - 10:28 am. (1 message)

Next thread: Linux 2.6.26-rc2 by Linus Torvalds on Monday, May 12, 2008 - 10:55 am. (6 messages)
To: Roland Dreier <rolandd@...>, Sean Hefty <sean.hefty@...>, Hal Rosenstock <hal.rosenstock@...>
Cc: John Gregor <john.gregor@...>, <general@...>, Linux Kernel Mailing List <linux-kernel@...>
Date: Monday, May 12, 2008 - 10:43 am

The official reason is "with the presence of pid namespaces in the
kernel using pid_t-s inside one is no longer safe".

But the reason I fix exactly the infiniband right now is the following.

About a month ago (when the 2.6.25 was not yet released) there still
was a one last caller of a to-be-deprecated-soon function find_pid() -
the kill_proc() function, which in turn was only used by nfs callback
code.

During the last merge window, this last caller was finally eliminated
by some NFS patch(es) and I was about to finally kill this kill_proc()
and find_pid(), but found, that I was late and the kill_proc is now
called from the infiniband driver (commit 58411d1c).

So here's the patch, that turns this code to use struct pid * and (!)
the kill_pid routine. If it is possible to have this one in 2.6.26, I
would appreciate this A LOT and be able to close one more hole in pid
namespaces.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>

---

diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index ce7b7c3..258e66c 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -2616,7 +2616,7 @@ int ipath_reset_device(int unit)
ipath_dbg("unit %u port %d is in use "
"(PID %u cmd %s), can't reset\n",
unit, i,
- dd->ipath_pd[i]->port_pid,
+ pid_nr(dd->ipath_pd[i]->port_pid),
dd->ipath_pd[i]->port_comm);
ret = -EBUSY;
goto bail;
@@ -2654,19 +2654,21 @@ bail:
static int ipath_signal_procs(struct ipath_devdata *dd, int sig)
{
int i, sub, any = 0;
- pid_t pid;
+ struct pid *pid;

if (!dd->ipath_pd)
return 0;
for (i = 1; i < dd->ipath_cfgports; i++) {
- if (!dd->ipath_pd[i] || !dd->ipath_pd[i]->port_cnt ||
- !dd->ipath_pd[i]->port_pid)
+ if (!dd->ipath_pd[i] || !dd->ipath_pd[i]->port_cnt)
continue;
pid = dd->ipath_pd[i]->port_pid;
+ if (!p...

To: Pavel Emelyanov <xemul@...>
Cc: Roland Dreier <rolandd@...>, Sean Hefty <sean.hefty@...>, Hal Rosenstock <hal.rosenstock@...>, John Gregor <john.gregor@...>, <general@...>, Linux Kernel Mailing List <linux-kernel@...>
Date: Tuesday, May 13, 2008 - 2:46 pm

thanks, applied
--

To: Pavel Emelyanov <xemul@...>, <infinipath@...>, <ralph.campbell@...>
Cc: Roland Dreier <rolandd@...>, Sean Hefty <sean.hefty@...>, Hal Rosenstock <hal.rosenstock@...>, John Gregor <john.gregor@...>, <general@...>, Linux Kernel Mailing List <linux-kernel@...>
Date: Monday, May 12, 2008 - 11:41 am

Seems fine to me... ipath guys, any comment? I think it would be
reasonale to include this with the other ipath fixes when I ask Linus to
pull in a day or two.
--

To: Roland Dreier <rdreier@...>
Cc: Pavel Emelyanov <xemul@...>, <infinipath@...>, <ralph.campbell@...>, Roland Dreier <rolandd@...>, Sean Hefty <sean.hefty@...>, Hal Rosenstock <hal.rosenstock@...>, John Gregor <john.gregor@...>, <general@...>, Linux Kernel Mailing List <linux-kernel@...>
Date: Monday, May 12, 2008 - 11:48 am

On Mon, 12 May 2008, Roland Dreier wrote:

| Seems fine to me... ipath guys, any comment? I think it would be
| reasonale to include this with the other ipath fixes when I ask Linus to
| pull in a day or two.

I looked at the original patch, and it looks fine to me.

Should be fairly easy to cover in ofed 1.4 backport patches for the
older kernels.

Dave Olson
dave.olson@qlogic.com
--

Previous thread: [PATCH] NTP: Make the RTC sync mode 11-minute again by Maciej W. Rozycki on Monday, May 12, 2008 - 10:28 am. (1 message)

Next thread: Linux 2.6.26-rc2 by Linus Torvalds on Monday, May 12, 2008 - 10:55 am. (6 messages)