sctp: convert to genradix
[linux-2.6-block.git] / include / net / sctp / structs.h
index 58e4b23cecf4352378379f6e2c859d54a00ea17b..140fd836a396735100dee7660b5ece5485cc2a15 100644 (file)
@@ -48,6 +48,7 @@
 #define __sctp_structs_h__
 
 #include <linux/ktime.h>
+#include <linux/generic-radix-tree.h>
 #include <linux/rhashtable-types.h>
 #include <linux/socket.h>      /* linux/in.h needs this!!    */
 #include <linux/in.h>          /* We get struct sockaddr_in. */
@@ -57,7 +58,6 @@
 #include <linux/atomic.h>              /* This gets us atomic counters.  */
 #include <linux/skbuff.h>      /* We need sk_buff_head. */
 #include <linux/workqueue.h>   /* We need tq_struct.    */
-#include <linux/flex_array.h>  /* We need flex_array.   */
 #include <linux/sctp.h>                /* We need sctp* header structs.  */
 #include <net/sctp/auth.h>     /* We need auth specific structs */
 #include <net/ip.h>            /* For inet_skb_parm */
@@ -1449,8 +1449,9 @@ struct sctp_stream_in {
 };
 
 struct sctp_stream {
-       struct flex_array *out;
-       struct flex_array *in;
+       GENRADIX(struct sctp_stream_out) out;
+       GENRADIX(struct sctp_stream_in) in;
+
        __u16 outcnt;
        __u16 incnt;
        /* Current stream being sent, if any */
@@ -1473,17 +1474,17 @@ struct sctp_stream {
 };
 
 static inline struct sctp_stream_out *sctp_stream_out(
-       const struct sctp_stream *stream,
+       struct sctp_stream *stream,
        __u16 sid)
 {
-       return flex_array_get(stream->out, sid);
+       return genradix_ptr(&stream->out, sid);
 }
 
 static inline struct sctp_stream_in *sctp_stream_in(
-       const struct sctp_stream *stream,
+       struct sctp_stream *stream,
        __u16 sid)
 {
-       return flex_array_get(stream->in, sid);
+       return genradix_ptr(&stream->in, sid);
 }
 
 #define SCTP_SO(s, i) sctp_stream_out((s), (i))