|
@@ -719,6 +719,9 @@ static void dvb_net_ule_check_crc(struct dvb_net_ule_handle *h,
|
|
skb_copy_from_linear_data(h->priv->ule_skb, dest_addr,
|
|
skb_copy_from_linear_data(h->priv->ule_skb, dest_addr,
|
|
ETH_ALEN);
|
|
ETH_ALEN);
|
|
skb_pull(h->priv->ule_skb, ETH_ALEN);
|
|
skb_pull(h->priv->ule_skb, ETH_ALEN);
|
|
|
|
+ } else {
|
|
|
|
+ /* dest_addr buffer is only valid if h->priv->ule_dbit == 0 */
|
|
|
|
+ eth_zero_addr(dest_addr);
|
|
}
|
|
}
|
|
|
|
|
|
/* Handle ULE Extension Headers. */
|
|
/* Handle ULE Extension Headers. */
|
|
@@ -750,16 +753,8 @@ static void dvb_net_ule_check_crc(struct dvb_net_ule_handle *h,
|
|
if (!h->priv->ule_bridged) {
|
|
if (!h->priv->ule_bridged) {
|
|
skb_push(h->priv->ule_skb, ETH_HLEN);
|
|
skb_push(h->priv->ule_skb, ETH_HLEN);
|
|
h->ethh = (struct ethhdr *)h->priv->ule_skb->data;
|
|
h->ethh = (struct ethhdr *)h->priv->ule_skb->data;
|
|
- if (!h->priv->ule_dbit) {
|
|
|
|
- /*
|
|
|
|
- * dest_addr buffer is only valid if
|
|
|
|
- * h->priv->ule_dbit == 0
|
|
|
|
- */
|
|
|
|
- memcpy(h->ethh->h_dest, dest_addr, ETH_ALEN);
|
|
|
|
- eth_zero_addr(h->ethh->h_source);
|
|
|
|
- } else /* zeroize source and dest */
|
|
|
|
- memset(h->ethh, 0, ETH_ALEN * 2);
|
|
|
|
-
|
|
|
|
|
|
+ memcpy(h->ethh->h_dest, dest_addr, ETH_ALEN);
|
|
|
|
+ eth_zero_addr(h->ethh->h_source);
|
|
h->ethh->h_proto = htons(h->priv->ule_sndu_type);
|
|
h->ethh->h_proto = htons(h->priv->ule_sndu_type);
|
|
}
|
|
}
|
|
/* else: skb is in correct state; nothing to do. */
|
|
/* else: skb is in correct state; nothing to do. */
|