]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - include/net/sctp/command.h
[SCTP]: Set sk_err so that poll wakes up after a non-blocking connect failure.
[net-next-2.6.git] / include / net / sctp / command.h
index dc107ffad483f0c1863f77a5a415050435c1dd8d..807d6f1ef4b505bd302de0281aee75fc71a2b50a 100644 (file)
@@ -99,6 +99,7 @@ typedef enum {
        SCTP_CMD_DEL_NON_PRIMARY, /* Removes non-primary peer transports. */
        SCTP_CMD_T3_RTX_TIMERS_STOP, /* Stops T3-rtx pending timers */
        SCTP_CMD_FORCE_PRIM_RETRAN,  /* Forces retrans. over primary path. */
+       SCTP_CMD_SET_SK_ERR,     /* Set sk_err */
        SCTP_CMD_LAST
 } sctp_verb_t;
 
@@ -120,6 +121,7 @@ typedef union {
        int error;
        sctp_state_t state;
        sctp_event_timeout_t to;
+       unsigned long zero;
        void *ptr;
        struct sctp_chunk *chunk;
        struct sctp_association *asoc;
@@ -148,17 +150,17 @@ static inline sctp_arg_t SCTP_NULL(void)
 }
 static inline sctp_arg_t SCTP_NOFORCE(void)
 {
-       sctp_arg_t retval; retval.i32 = 0; return retval;
+       sctp_arg_t retval = {.zero = 0UL}; retval.i32 = 0; return retval;
 }
 static inline sctp_arg_t SCTP_FORCE(void)
 {
-       sctp_arg_t retval; retval.i32 = 1; return retval;
+       sctp_arg_t retval = {.zero = 0UL}; retval.i32 = 1; return retval;
 }
 
 #define SCTP_ARG_CONSTRUCTOR(name, type, elt) \
 static inline sctp_arg_t       \
 SCTP_## name (type arg)                \
-{ sctp_arg_t retval; retval.elt = arg; return retval; }
+{ sctp_arg_t retval = {.zero = 0UL}; retval.elt = arg; return retval; }
 
 SCTP_ARG_CONSTRUCTOR(I32,      __s32, i32)
 SCTP_ARG_CONSTRUCTOR(U32,      __u32, u32)