On Thursday 24 August 2006 18:07, Johannes Berg wrote:
> new version of this one too...
> --
> Subject: d80211: use nl80211
>
> This patch makes d80211 partially configurable using the
> infrastructure that nl80211 provides. So far, it allows
> packet injection and adding/removing virtual interfaces.
>
> Signed-off-by: Johannes Berg <[EMAIL PROTECTED]>
>
> +static int ieee80211_inject(void *priv, void *frame, int framelen, u32 flags,
> + int queue)
> +{
> + struct ieee80211_local *local = priv;
> + struct ieee80211_tx_packet_data *pkt_data;
> + struct sk_buff *pkt;
> + void *pktdata;
> +
> + pkt = alloc_skb(framelen, GFP_KERNEL);
if (!pkt)
return -ENOMEM;
> + pktdata = skb_put(pkt, framelen);
> + memcpy(pktdata, frame, framelen);
having two variables with almost the same name seems
confusing to me. What about removing void *pktdata; and
doing the following instead of the two lines above?
memcpy(skb_put(pkt, framelen), frame, framelen);
That is also how it's done in lots of other networking code.
> + pkt_data = (struct ieee80211_tx_packet_data *) pkt->cb;
> + pkt_data->ifindex = local->mdev->ifindex;
> + pkt_data->internal_flags = TX_FLAG_INJECTED;
> + pkt_data->flags = flags;
> + /* FIXME: never used, I think? Or could be invalid? */
> + pkt_data->queue = queue;
> +
> + /* FIXME */
> + pkt->priority = 20; /* use hardcoded priority for mgmt TX queue */
> +
> + pkt->dev = local->mdev;
> + dev_queue_xmit(pkt);
> +
> + return 0;
> +}
The other code looks fine to me (the add nl80211 patch, too).
--
Greetings Michael.
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html