#ifndef _NET_MRP_H #define _NET_MRP_H #define MRP_END_MARK 0x0 struct mrp_pdu_hdr { u8 version; }; struct mrp_msg_hdr { u8 attrtype; u8 attrlen; }; struct mrp_vecattr_hdr { __be16 lenflags; unsigned char firstattrvalue[]; #define MRP_VECATTR_HDR_LEN_MASK cpu_to_be16(0x1FFF) #define MRP_VECATTR_HDR_FLAG_LA cpu_to_be16(0x2000) }; enum mrp_vecattr_event { MRP_VECATTR_EVENT_NEW, MRP_VECATTR_EVENT_JOIN_IN, MRP_VECATTR_EVENT_IN, MRP_VECATTR_EVENT_JOIN_MT, MRP_VECATTR_EVENT_MT, MRP_VECATTR_EVENT_LV, __MRP_VECATTR_EVENT_MAX }; struct mrp_skb_cb { struct mrp_msg_hdr *mh; struct mrp_vecattr_hdr *vah; unsigned char attrvalue[]; }; static inline struct mrp_skb_cb *mrp_cb(struct sk_buff *skb) { BUILD_BUG_ON(sizeof(struct mrp_skb_cb) > FIELD_SIZEOF(struct sk_buff, cb)); return (struct mrp_skb_cb *)skb->cb; } enum mrp_applicant_state { MRP_APPLICANT_INVALID, MRP_APPLICANT_VO, MRP_APPLICANT_VP, MRP_APPLICANT_VN, MRP_APPLICANT_AN, MRP_APPLICANT_AA, MRP_APPLICANT_QA, MRP_APPLICANT_LA, MRP_APPLICANT_AO, MRP_APPLICANT_QO, MRP_APPLICANT_AP, MRP_APPLICANT_QP, __MRP_APPLICANT_MAX }; #define MRP_APPLICANT_MAX (__MRP_APPLICANT_MAX - 1) enum mrp_event { MRP_EVENT_NEW, MRP_EVENT_JOIN, MRP_EVENT_LV, MRP_EVENT_TX, MRP_EVENT_R_NEW, MRP_EVENT_R_JOIN_IN, MRP_EVENT_R_IN, MRP_EVENT_R_JOIN_MT, MRP_EVENT_R_MT, MRP_EVENT_R_LV, MRP_EVENT_R_LA, MRP_EVENT_REDECLARE, MRP_EVENT_PERIODIC, __MRP_EVENT_MAX }; #define MRP_EVENT_MAX (__MRP_EVENT_MAX - 1) enum mrp_tx_action { MRP_TX_ACTION_NONE, MRP_TX_ACTION_S_NEW, MRP_TX_ACTION_S_JOIN_IN, MRP_TX_ACTION_S_JOIN_IN_OPTIONAL, MRP_TX_ACTION_S_IN_OPTIONAL, MRP_TX_ACTION_S_LV, }; struct mrp_attr { struct rb_node node; enum mrp_applicant_state state; u8 type; u8 len; unsigned char value[]; }; enum mrp_applications { MRP_APPLICATION_MVRP, __MRP_APPLICATION_MAX }; #define MRP_APPLICATION_MAX (__MRP_APPLICATION_MAX - 1) struct mrp_application { enum mrp_applications type; unsigned int maxattr; struct packet_type pkttype; unsigned char group_address[ETH_ALEN]; u8 version; }; struct mrp_applicant { struct mrp_application *app; struct net_device *dev; struct timer_list join_timer; struct timer_list periodic_timer; spinlock_t lock; struct sk_buff_head queue; struct sk_buff *pdu; struct rb_root mad; struct rcu_head rcu; }; struct mrp_port { struct mrp_applicant __rcu *applicants[MRP_APPLICATION_MAX + 1]; struct rcu_head rcu; }; int mrp_register_application(struct mrp_application *app); void mrp_unregister_application(struct mrp_application *app); int mrp_init_applicant(struct net_device *dev, struct mrp_application *app); void mrp_uninit_applicant(struct net_device *dev, struct mrp_application *app); int mrp_request_join(const struct net_device *dev, const struct mrp_application *app, const void *value, u8 len, u8 type); void mrp_request_leave(const struct net_device *dev, const struct mrp_application *app, const void *value, u8 len, u8 type); #endif /* _NET_MRP_H */ href='/cgit.cgi/linux/net-next.git/commit/include?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>include</a>/<a href='/cgit.cgi/linux/net-next.git/commit/include/dt-bindings?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>dt-bindings</a>/<a href='/cgit.cgi/linux/net-next.git/commit/include/dt-bindings/display?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>display</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='33e962c8871f015f5c8978384553dddcf5b81b22'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'> <tr><th>author</th><td>Stanislaw Gruszka <sgruszka@redhat.com></td><td class='right'>2017-01-29 12:40:52 +0100</td></tr> <tr><th>committer</th><td>Kalle Valo <kvalo@codeaurora.org></td><td class='right'>2017-01-31 09:08:52 +0200</td></tr> <tr><th>commit</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/dt-bindings/display?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>33e962c8871f015f5c8978384553dddcf5b81b22</a> (<a href='/cgit.cgi/linux/net-next.git/patch/include/dt-bindings/display?id=33e962c8871f015f5c8978384553dddcf5b81b22'>patch</a>)</td></tr> <tr><th>tree</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/tree/?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>43aff96c2ee21d9e0fa2018457778a4de52053cd</a> /<a href='/cgit.cgi/linux/net-next.git/tree/include/dt-bindings/display?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>include/dt-bindings/display</a></td></tr> <tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/dt-bindings/display?h=nds-private-remove&id=575ddce0507789bf9830d089557d2199d2f91865'>575ddce0507789bf9830d089557d2199d2f91865</a> (<a href='/cgit.cgi/linux/net-next.git/diff/include/dt-bindings/display?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22&id2=575ddce0507789bf9830d089557d2199d2f91865'>diff</a>)</td></tr></table> <div class='commit-subject'>rt2x00: fix clk_get call</div><div class='commit-msg'>clk_get() takes two arguments and might return ERR_PTR(), so we have to nullify pointer on that case, to do not break further call to clk_get_rate(). Reported-by: Felix Fietkau <nbd@nbd.name> Fixes: 34db70b92fae ("rt2x00: add copy of clk for soc devices") Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> </div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?h=nds-private-remove&id=33e962c8871f015f5c8978384553dddcf5b81b22'>Diffstat</a> (limited to 'include/dt-bindings/display')</div><table summary='diffstat' class='diffstat'>