--- a/include/net/flow.h +++ b/include/net/flow.h @@ -194,7 +194,7 @@ static inline struct flowi *flowi4_to_fl static inline struct flowi_common *flowi4_to_flowi_common(struct flowi4 *fl4) { - return &(flowi4_to_flowi(fl4)->u.__fl_common); + return &fl4->__fl_common; } static inline struct flowi *flowi6_to_flowi(struct flowi6 *fl6) @@ -204,7 +204,7 @@ static inline struct flowi *flowi6_to_fl static inline struct flowi_common *flowi6_to_flowi_common(struct flowi6 *fl6) { - return &(flowi6_to_flowi(fl6)->u.__fl_common); + return &fl6->__fl_common; } static inline struct flowi *flowidn_to_flowi(struct flowidn *fldn) --- a/net/qrtr/qrtr.c +++ b/net/qrtr/qrtr.c @@ -198,9 +198,10 @@ static void __qrtr_node_release(struct k /* Increment reference to node. */ static struct qrtr_node *qrtr_node_acquire(struct qrtr_node *node) { - if (node) - kref_get(&node->ref); - return node; + if (node && kref_get_unless_zero(&node->ref)) + return node; + else + return NULL; } /* Decrement reference to node and release as necessary. */