Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[firefly-linux-kernel-4.4.55.git] / net / sctp / ssnmap.c
index 825ea94415b39818f637b54c5abe112394edc322..da860352380872ad1964af228906178bf8b56531 100644 (file)
@@ -74,7 +74,6 @@ struct sctp_ssnmap *sctp_ssnmap_new(__u16 in, __u16 out,
        if (!sctp_ssnmap_init(retval, in, out))
                goto fail_map;
 
-       retval->malloced = 1;
        SCTP_DBG_OBJCNT_INC(ssnmap);
 
        return retval;
@@ -118,14 +117,16 @@ void sctp_ssnmap_clear(struct sctp_ssnmap *map)
 /* Dispose of a ssnmap.  */
 void sctp_ssnmap_free(struct sctp_ssnmap *map)
 {
-       if (map && map->malloced) {
-               int size;
-
-               size = sctp_ssnmap_size(map->in.len, map->out.len);
-               if (size <= KMALLOC_MAX_SIZE)
-                       kfree(map);
-               else
-                       free_pages((unsigned long)map, get_order(size));
-               SCTP_DBG_OBJCNT_DEC(ssnmap);
-       }
+       int size;
+
+       if (unlikely(!map))
+               return;
+
+       size = sctp_ssnmap_size(map->in.len, map->out.len);
+       if (size <= KMALLOC_MAX_SIZE)
+               kfree(map);
+       else
+               free_pages((unsigned long)map, get_order(size));
+
+       SCTP_DBG_OBJCNT_DEC(ssnmap);
 }