|
@@ -1376,6 +1376,7 @@ qeth_l3_add_mc_to_hash(struct qeth_card *card, struct in_device *in4_dev)
|
|
|
|
|
|
tmp->u.a4.addr = be32_to_cpu(im4->multiaddr);
|
|
|
memcpy(tmp->mac, buf, sizeof(tmp->mac));
|
|
|
+ tmp->is_multicast = 1;
|
|
|
|
|
|
ipm = qeth_l3_ip_from_hash(card, tmp);
|
|
|
if (ipm) {
|
|
@@ -2917,6 +2918,7 @@ static const struct net_device_ops qeth_l3_osa_netdev_ops = {
|
|
|
.ndo_stop = qeth_l3_stop,
|
|
|
.ndo_get_stats = qeth_get_stats,
|
|
|
.ndo_start_xmit = qeth_l3_hard_start_xmit,
|
|
|
+ .ndo_features_check = qeth_features_check,
|
|
|
.ndo_validate_addr = eth_validate_addr,
|
|
|
.ndo_set_rx_mode = qeth_l3_set_multicast_list,
|
|
|
.ndo_do_ioctl = qeth_do_ioctl,
|
|
@@ -2957,6 +2959,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card)
|
|
|
card->dev->vlan_features = NETIF_F_SG |
|
|
|
NETIF_F_RXCSUM | NETIF_F_IP_CSUM |
|
|
|
NETIF_F_TSO;
|
|
|
+ card->dev->features |= NETIF_F_SG;
|
|
|
}
|
|
|
}
|
|
|
} else if (card->info.type == QETH_CARD_TYPE_IQD) {
|
|
@@ -2984,8 +2987,8 @@ static int qeth_l3_setup_netdev(struct qeth_card *card)
|
|
|
NETIF_F_HW_VLAN_CTAG_RX |
|
|
|
NETIF_F_HW_VLAN_CTAG_FILTER;
|
|
|
netif_keep_dst(card->dev);
|
|
|
- card->dev->gso_max_size = (QETH_MAX_BUFFER_ELEMENTS(card) - 1) *
|
|
|
- PAGE_SIZE;
|
|
|
+ netif_set_gso_max_size(card->dev, (QETH_MAX_BUFFER_ELEMENTS(card) - 1) *
|
|
|
+ PAGE_SIZE);
|
|
|
|
|
|
SET_NETDEV_DEV(card->dev, &card->gdev->dev);
|
|
|
netif_napi_add(card->dev, &card->napi, qeth_poll, QETH_NAPI_WEIGHT);
|