Re: [RFC][PATCH 1/6] Storing ipcs into IDRs

From: Andrew Morton
Date: Mon Sep 10 2007 - 16:10:32 EST


On Fri, 31 Aug 2007 13:24:46 +0200 Nadia.Derbey@xxxxxxxx wrote:

> [PATCH 01/06]
>
>
> This patch introduces ipcs storage into IDRs. The main changes are:
> . This ipc_ids structure is changed: the entries array is changed into a
> root idr structure.
> . The grow_ary() routine is removed: it is not needed anymore when adding
> an ipc structure, since we are now using the IDR facility.
> . The ipc_rmid() routine interface is changed:
> . there is no need for this routine to return the pointer passed in as
> argument: it is now declared as a void
> . since the id is now part of the kern_ipc_perm structure, no need to
> have it as an argument to the routine
>
>

This is a large patch, and I have neither the time nor competence to review
it :(

I hope that someone will find the time to do a detailed review-n-test of
this code, because the IPC code is pretty touchy and isn't well-maintained,
as I'm sure you have noticed.

Meanwhile I'll queue the patches up for a bit of compile-time and runtime
testing, thanks.


> ...
>
> + msq = (struct msg_queue *) ipc_findkey(&msg_ids(ns), key);

As a separate cleanup: the code casts the ipc_findkey to some outer struct
in all cases. It would be nicer to convert this to container_of(). It'll
generate the same code, but it actually represents what the code is doing
and perhaps means that the code will continue to work if the `struct
kern_ipc_perm' is not at the start of the containing struct.


-
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/