net: remove CONFIG_MCAST_TFTP
No mainline board enables CONFIG_MCAST_TFTP and there have been compilation issues with the code for some time. Additionally, it has a potential buffer underrun issue (reported as a side note in CVE-2018-18439). Remove the multicast TFTP code but keep the driver API for the future addition of IPv6. Cc: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Signed-off-by: Chris Packham <judge.packham@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
committed by
Joe Hershberger
parent
1a4af5c562
commit
67bb984249
@@ -183,12 +183,10 @@ static void rtl_reset(struct eth_device *dev);
|
||||
static int rtl_transmit(struct eth_device *dev, void *packet, int length);
|
||||
static int rtl_poll(struct eth_device *dev);
|
||||
static void rtl_disable(struct eth_device *dev);
|
||||
#ifdef CONFIG_MCAST_TFTP/* This driver already accepts all b/mcast */
|
||||
static int rtl_bcast_addr(struct eth_device *dev, const u8 *bcast_mac, u8 set)
|
||||
static int rtl_bcast_addr(struct eth_device *dev, const u8 *bcast_mac, int join)
|
||||
{
|
||||
return (0);
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct pci_device_id supported[] = {
|
||||
{PCI_VENDOR_ID_REALTEK, PCI_DEVICE_ID_REALTEK_8139},
|
||||
@@ -229,9 +227,7 @@ int rtl8139_initialize(bd_t *bis)
|
||||
dev->halt = rtl_disable;
|
||||
dev->send = rtl_transmit;
|
||||
dev->recv = rtl_poll;
|
||||
#ifdef CONFIG_MCAST_TFTP
|
||||
dev->mcast = rtl_bcast_addr;
|
||||
#endif
|
||||
|
||||
eth_register (dev);
|
||||
|
||||
|
||||
@@ -78,8 +78,6 @@ static void tsec_configure_serdes(struct tsec_private *priv)
|
||||
0, TBI_CR, CONFIG_TSEC_TBICR_SETTINGS);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MCAST_TFTP
|
||||
|
||||
/* the 'way' for ethernet-CRC-32. Spliced in from Linux lib/crc32.c
|
||||
* and this is the ethernet-crc method needed for TSEC -- and perhaps
|
||||
* some other adapter -- hash tables
|
||||
@@ -124,9 +122,10 @@ static u32 ether_crc(size_t len, unsigned char const *p)
|
||||
* the entry.
|
||||
*/
|
||||
#ifndef CONFIG_DM_ETH
|
||||
static int tsec_mcast_addr(struct eth_device *dev, const u8 *mcast_mac, u8 set)
|
||||
static int tsec_mcast_addr(struct eth_device *dev, const u8 *mcast_mac,
|
||||
int join)
|
||||
#else
|
||||
static int tsec_mcast_addr(struct udevice *dev, const u8 *mcast_mac, int set)
|
||||
static int tsec_mcast_addr(struct udevice *dev, const u8 *mcast_mac, int join)
|
||||
#endif
|
||||
{
|
||||
struct tsec_private *priv = (struct tsec_private *)dev->priv;
|
||||
@@ -140,14 +139,13 @@ static int tsec_mcast_addr(struct udevice *dev, const u8 *mcast_mac, int set)
|
||||
|
||||
value = BIT(31 - whichbit);
|
||||
|
||||
if (set)
|
||||
if (join)
|
||||
setbits_be32(®s->hash.gaddr0 + whichreg, value);
|
||||
else
|
||||
clrbits_be32(®s->hash.gaddr0 + whichreg, value);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* Multicast TFTP ? */
|
||||
|
||||
/*
|
||||
* Initialized required registers to appropriate values, zeroing
|
||||
@@ -745,9 +743,7 @@ static int tsec_initialize(bd_t *bis, struct tsec_info_struct *tsec_info)
|
||||
dev->halt = tsec_halt;
|
||||
dev->send = tsec_send;
|
||||
dev->recv = tsec_recv;
|
||||
#ifdef CONFIG_MCAST_TFTP
|
||||
dev->mcast = tsec_mcast_addr;
|
||||
#endif
|
||||
|
||||
/* Tell U-Boot to get the addr from the env */
|
||||
for (i = 0; i < 6; i++)
|
||||
@@ -887,9 +883,7 @@ static const struct eth_ops tsec_ops = {
|
||||
.recv = tsec_recv,
|
||||
.free_pkt = tsec_free_pkt,
|
||||
.stop = tsec_halt,
|
||||
#ifdef CONFIG_MCAST_TFTP
|
||||
.mcast = tsec_mcast_addr,
|
||||
#endif
|
||||
};
|
||||
|
||||
static const struct udevice_id tsec_ids[] = {
|
||||
|
||||
@@ -2579,9 +2579,6 @@ int usb_eth_initialize(bd_t *bi)
|
||||
netdev->halt = usb_eth_halt;
|
||||
netdev->priv = l_priv;
|
||||
|
||||
#ifdef CONFIG_MCAST_TFTP
|
||||
#error not supported
|
||||
#endif
|
||||
eth_register(netdev);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user