From: Ben Pfaff Date: Thu, 26 May 2011 16:03:03 +0000 (-0700) Subject: in-band: Avoid "cast increases required alignment of target type" warning. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a75777916820892493ae797e88dafd62317c00a7;p=openvswitch in-band: Avoid "cast increases required alignment of target type" warning. Casting a struct ofp_action_output object's address to type union ofp_action * provokes a warning on sparc. It's easier to just declare the object as having type union ofp_action, even though I don't think that there is a real problem here. --- diff --git a/ofproto/in-band.c b/ofproto/in-band.c index e04ae609..710aadd9 100644 --- a/ofproto/in-band.c +++ b/ofproto/in-band.c @@ -404,19 +404,18 @@ add_rule(struct in_band *ib, const struct cls_rule *rule) { struct { struct nx_action_set_queue nxsq; - struct ofp_action_output oao; + union ofp_action oa; } actions; memset(&actions, 0, sizeof actions); - actions.oao.type = htons(OFPAT_OUTPUT); - actions.oao.len = htons(sizeof actions.oao); - actions.oao.port = htons(OFPP_NORMAL); - actions.oao.max_len = htons(0); + actions.oa.output.type = htons(OFPAT_OUTPUT); + actions.oa.output.len = htons(sizeof actions.oa); + actions.oa.output.port = htons(OFPP_NORMAL); + actions.oa.output.max_len = htons(0); if (ib->queue_id < 0) { - ofproto_add_flow(ib->ofproto, rule, - (union ofp_action *) &actions.oao, 1); + ofproto_add_flow(ib->ofproto, rule, &actions.oa, 1); } else { actions.nxsq.type = htons(OFPAT_VENDOR); actions.nxsq.len = htons(sizeof actions.nxsq);