mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 20:10:23 +09:00
Merge 5.15.123 into android14-5.15-lts
Changes in 5.15.123 ALSA: hda/realtek - remove 3k pull low procedure ALSA: hda/realtek: Add quirk for Clevo NS70AU ALSA: hda/realtek: Enable Mute LED on HP Laptop 15s-eq2xxx keys: Fix linking a duplicate key to a keyring's assoc_array perf probe: Add test for regression introduced by switch to die_get_decl_file() btrfs: fix warning when putting transaction with qgroups enabled after abort fuse: revalidate: don't invalidate if interrupted btrfs: zoned: fix memory leak after finding block group with super blocks fuse: ioctl: translate ENOSYS in outarg selftests: tc: set timeout to 15 minutes selftests: tc: add 'ct' action kconfig dep regmap: Drop initial version of maximum transfer length fixes regmap: Account for register length in SMBus I/O limits can: bcm: Fix UAF in bcm_proc_show() selftests: tc: add ConnTrack procfs kconfig drm/client: Fix memory leak in drm_client_target_cloned drm/client: Fix memory leak in drm_client_modeset_probe drm/amd/display: Disable MPC split by default on special asic drm/amd/display: Keep PHY active for DP displays on DCN31 ASoC: fsl_sai: Disable bit clock with transmitter ASoC: codecs: wcd938x: fix missing clsh ctrl error handling ASoC: codecs: wcd-mbhc-v2: fix resource leaks on component remove ASoC: codecs: wcd938x: fix resource leaks on component remove ASoC: codecs: wcd938x: fix missing mbhc init error handling ASoC: codecs: wcd934x: fix resource leaks on component remove ASoC: codecs: wcd938x: fix codec initialisation race ASoC: codecs: wcd938x: fix soundwire initialisation race ext4: correct inline offset when handling xattrs in inode body drm/radeon: Fix integer overflow in radeon_cs_parser_init ALSA: emu10k1: roll up loops in DSP setup code for Audigy quota: Properly disable quotas when add_dquot_ref() fails quota: fix warning in dqgrab() udf: Fix uninitialized array access for some pathnames fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev MIPS: dec: prom: Address -Warray-bounds warning FS: JFS: Fix null-ptr-deref Read in txBegin FS: JFS: Check for read-only mounted filesystem in txBegin spi: bcm63xx: fix max prepend length fbdev: imxfb: warn about invalid left/right margin perf build: Fix library not found error when using CSLIBS pinctrl: amd: Use amd_pinconf_set() for all config options net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field() bridge: Add extack warning when enabling STP in netns. ethernet: use eth_hw_addr_set() instead of ether_addr_copy() of: net: add a helper for loading netdev->dev_addr ethernet: use of_get_ethdev_address() net: ethernet: mtk_eth_soc: handle probe deferral net: sched: cls_bpf: Undo tcf_bind_filter in case of an error iavf: Fix use-after-free in free_netdev iavf: Fix out-of-bounds when setting channels on remove security: keys: Modify mismatched function name octeontx2-pf: Dont allocate BPIDs for LBK interfaces bpf: Fix subprog idx logic in check_max_stack_depth igc: Prevent garbled TX queue with XDP ZEROCOPY tcp: annotate data-races around tcp_rsk(req)->ts_recent net: ipv4: Use kfree_sensitive instead of kfree net:ipv6: check return value of pskb_trim() Revert "tcp: avoid the lookup process failing to get sk in ehash table" fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe llc: Don't drop packet from non-root netns. netfilter: nf_tables: fix spurious set element insertion failure netfilter: nft_set_pipapo: fix improper element removal netfilter: nf_tables: skip bound chain in netns release path netfilter: nf_tables: skip bound chain on rule flush tcp: annotate data-races around tp->tcp_tx_delay tcp: annotate data-races around tp->keepalive_time tcp: annotate data-races around tp->keepalive_intvl tcp: annotate data-races around tp->keepalive_probes tcp: annotate data-races around icsk->icsk_syn_retries tcp: annotate data-races around tp->linger2 tcp: annotate data-races around rskq_defer_accept tcp: annotate data-races around tp->notsent_lowat tcp: annotate data-races around icsk->icsk_user_timeout tcp: annotate data-races around fastopenq.max_qlen net: phy: prevent stale pointer dereference in phy_init() jbd2: recheck chechpointing non-dirty buffer tracing/histograms: Return an error if we fail to add histogram to hist_vars list nixge: fix mac address error handling again Revert "drm/amd/display: edp do not add non-edid timings" Linux 5.15.123 Change-Id: I3162dc1d106295097e8075b29bab3646b7167e7b Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
2
Makefile
2
Makefile
@@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 5
|
||||
PATCHLEVEL = 15
|
||||
SUBLEVEL = 122
|
||||
SUBLEVEL = 123
|
||||
EXTRAVERSION =
|
||||
NAME = Trick or Treat
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ static inline bool prom_is_rex(u32 magic)
|
||||
*/
|
||||
typedef struct {
|
||||
int pagesize;
|
||||
unsigned char bitmap[0];
|
||||
unsigned char bitmap[];
|
||||
} memmap;
|
||||
|
||||
|
||||
|
||||
@@ -242,8 +242,8 @@ static int regmap_i2c_smbus_i2c_read(void *context, const void *reg,
|
||||
static const struct regmap_bus regmap_i2c_smbus_i2c_block = {
|
||||
.write = regmap_i2c_smbus_i2c_write,
|
||||
.read = regmap_i2c_smbus_i2c_read,
|
||||
.max_raw_read = I2C_SMBUS_BLOCK_MAX,
|
||||
.max_raw_write = I2C_SMBUS_BLOCK_MAX,
|
||||
.max_raw_read = I2C_SMBUS_BLOCK_MAX - 1,
|
||||
.max_raw_write = I2C_SMBUS_BLOCK_MAX - 1,
|
||||
};
|
||||
|
||||
static int regmap_i2c_smbus_i2c_write_reg16(void *context, const void *data,
|
||||
@@ -299,8 +299,8 @@ static int regmap_i2c_smbus_i2c_read_reg16(void *context, const void *reg,
|
||||
static const struct regmap_bus regmap_i2c_smbus_i2c_block_reg16 = {
|
||||
.write = regmap_i2c_smbus_i2c_write_reg16,
|
||||
.read = regmap_i2c_smbus_i2c_read_reg16,
|
||||
.max_raw_read = I2C_SMBUS_BLOCK_MAX,
|
||||
.max_raw_write = I2C_SMBUS_BLOCK_MAX,
|
||||
.max_raw_read = I2C_SMBUS_BLOCK_MAX - 2,
|
||||
.max_raw_write = I2C_SMBUS_BLOCK_MAX - 2,
|
||||
};
|
||||
|
||||
static const struct regmap_bus *regmap_get_i2c_bus(struct i2c_client *i2c,
|
||||
|
||||
@@ -666,7 +666,7 @@ static const struct regmap_bus regmap_spi_avmm_bus = {
|
||||
.reg_format_endian_default = REGMAP_ENDIAN_NATIVE,
|
||||
.val_format_endian_default = REGMAP_ENDIAN_NATIVE,
|
||||
.max_raw_read = SPI_AVMM_VAL_SIZE * MAX_READ_CNT,
|
||||
.max_raw_write = SPI_AVMM_REG_SIZE + SPI_AVMM_VAL_SIZE * MAX_WRITE_CNT,
|
||||
.max_raw_write = SPI_AVMM_VAL_SIZE * MAX_WRITE_CNT,
|
||||
.free_context = spi_avmm_bridge_ctx_free,
|
||||
};
|
||||
|
||||
|
||||
@@ -2041,8 +2041,6 @@ int _regmap_raw_write(struct regmap *map, unsigned int reg,
|
||||
size_t val_count = val_len / val_bytes;
|
||||
size_t chunk_count, chunk_bytes;
|
||||
size_t chunk_regs = val_count;
|
||||
size_t max_data = map->max_raw_write - map->format.reg_bytes -
|
||||
map->format.pad_bytes;
|
||||
int ret, i;
|
||||
|
||||
if (!val_count)
|
||||
@@ -2050,8 +2048,8 @@ int _regmap_raw_write(struct regmap *map, unsigned int reg,
|
||||
|
||||
if (map->use_single_write)
|
||||
chunk_regs = 1;
|
||||
else if (map->max_raw_write && val_len > max_data)
|
||||
chunk_regs = max_data / val_bytes;
|
||||
else if (map->max_raw_write && val_len > map->max_raw_write)
|
||||
chunk_regs = map->max_raw_write / val_bytes;
|
||||
|
||||
chunk_count = val_count / chunk_regs;
|
||||
chunk_bytes = chunk_regs * val_bytes;
|
||||
|
||||
@@ -8209,13 +8209,7 @@ static int amdgpu_dm_connector_get_modes(struct drm_connector *connector)
|
||||
drm_add_modes_noedid(connector, 640, 480);
|
||||
} else {
|
||||
amdgpu_dm_connector_ddc_get_modes(connector, edid);
|
||||
/* most eDP supports only timings from its edid,
|
||||
* usually only detailed timings are available
|
||||
* from eDP edid. timings which are not from edid
|
||||
* may damage eDP
|
||||
*/
|
||||
if (connector->connector_type != DRM_MODE_CONNECTOR_eDP)
|
||||
amdgpu_dm_connector_add_common_modes(encoder, connector);
|
||||
amdgpu_dm_connector_add_common_modes(encoder, connector);
|
||||
amdgpu_dm_connector_add_freesync_modes(connector, edid);
|
||||
}
|
||||
amdgpu_dm_fbc_init(connector);
|
||||
|
||||
@@ -81,6 +81,11 @@ int dcn31_get_active_display_cnt_wa(
|
||||
stream->signal == SIGNAL_TYPE_DVI_SINGLE_LINK ||
|
||||
stream->signal == SIGNAL_TYPE_DVI_DUAL_LINK)
|
||||
tmds_present = true;
|
||||
|
||||
/* Checking stream / link detection ensuring that PHY is active*/
|
||||
if (dc_is_dp_signal(stream->signal) && !stream->dpms_off)
|
||||
display_count++;
|
||||
|
||||
}
|
||||
|
||||
for (i = 0; i < dc->link_count; i++) {
|
||||
|
||||
@@ -193,7 +193,7 @@ static const struct dc_debug_options debug_defaults_drv = {
|
||||
.timing_trace = false,
|
||||
.clock_trace = true,
|
||||
.disable_pplib_clock_request = true,
|
||||
.pipe_split_policy = MPC_SPLIT_DYNAMIC,
|
||||
.pipe_split_policy = MPC_SPLIT_AVOID,
|
||||
.force_single_disp_pipe_split = false,
|
||||
.disable_dcc = DCC_ENABLE,
|
||||
.vsr_support = true,
|
||||
|
||||
@@ -309,6 +309,9 @@ static bool drm_client_target_cloned(struct drm_device *dev,
|
||||
can_clone = true;
|
||||
dmt_mode = drm_mode_find_dmt(dev, 1024, 768, 60, false);
|
||||
|
||||
if (!dmt_mode)
|
||||
goto fail;
|
||||
|
||||
for (i = 0; i < connector_count; i++) {
|
||||
if (!enabled[i])
|
||||
continue;
|
||||
@@ -324,11 +327,13 @@ static bool drm_client_target_cloned(struct drm_device *dev,
|
||||
if (!modes[i])
|
||||
can_clone = false;
|
||||
}
|
||||
kfree(dmt_mode);
|
||||
|
||||
if (can_clone) {
|
||||
DRM_DEBUG_KMS("can clone using 1024x768\n");
|
||||
return true;
|
||||
}
|
||||
fail:
|
||||
DRM_INFO("kms: can't enable cloning when we probably wanted to.\n");
|
||||
return false;
|
||||
}
|
||||
@@ -860,6 +865,7 @@ int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width,
|
||||
break;
|
||||
}
|
||||
|
||||
kfree(modeset->mode);
|
||||
modeset->mode = drm_mode_duplicate(dev, mode);
|
||||
drm_connector_get(connector);
|
||||
modeset->connectors[modeset->num_connectors++] = connector;
|
||||
|
||||
@@ -270,7 +270,8 @@ int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data)
|
||||
{
|
||||
struct drm_radeon_cs *cs = data;
|
||||
uint64_t *chunk_array_ptr;
|
||||
unsigned size, i;
|
||||
u64 size;
|
||||
unsigned i;
|
||||
u32 ring = RADEON_CS_RING_GFX;
|
||||
s32 priority = 0;
|
||||
|
||||
|
||||
@@ -3863,7 +3863,7 @@ static int et131x_change_mtu(struct net_device *netdev, int new_mtu)
|
||||
|
||||
et131x_init_send(adapter);
|
||||
et131x_hwaddr_init(adapter);
|
||||
ether_addr_copy(netdev->dev_addr, adapter->addr);
|
||||
eth_hw_addr_set(netdev, adapter->addr);
|
||||
|
||||
/* Init the device with the new settings */
|
||||
et131x_adapter_setup(adapter);
|
||||
@@ -3966,7 +3966,7 @@ static int et131x_pci_setup(struct pci_dev *pdev,
|
||||
|
||||
netif_napi_add(netdev, &adapter->napi, et131x_poll, 64);
|
||||
|
||||
ether_addr_copy(netdev->dev_addr, adapter->addr);
|
||||
eth_hw_addr_set(netdev, adapter->addr);
|
||||
|
||||
rc = -ENOMEM;
|
||||
|
||||
|
||||
@@ -1660,7 +1660,7 @@ static int slic_read_eeprom(struct slic_device *sdev)
|
||||
goto free_eeprom;
|
||||
}
|
||||
/* set mac address */
|
||||
ether_addr_copy(sdev->netdev->dev_addr, mac[devfn]);
|
||||
eth_hw_addr_set(sdev->netdev, mac[devfn]);
|
||||
free_eeprom:
|
||||
dma_free_coherent(&sdev->pdev->dev, SLIC_EEPROM_SIZE, eeprom, paddr);
|
||||
|
||||
|
||||
@@ -852,7 +852,7 @@ static int emac_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
/* Read MAC-address from DT */
|
||||
ret = of_get_mac_address(np, ndev->dev_addr);
|
||||
ret = of_get_ethdev_address(np, ndev);
|
||||
if (ret) {
|
||||
/* if the MAC address is invalid get a random one */
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
@@ -1531,7 +1531,7 @@ static int altera_tse_probe(struct platform_device *pdev)
|
||||
priv->rx_dma_buf_sz = ALTERA_RXDMABUFFER_SIZE;
|
||||
|
||||
/* get default MAC address from device tree */
|
||||
ret = of_get_mac_address(pdev->dev.of_node, ndev->dev_addr);
|
||||
ret = of_get_ethdev_address(pdev->dev.of_node, ndev);
|
||||
if (ret)
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
|
||||
@@ -4119,7 +4119,7 @@ static void ena_set_conf_feat_params(struct ena_adapter *adapter,
|
||||
ether_addr_copy(adapter->mac_addr, netdev->dev_addr);
|
||||
} else {
|
||||
ether_addr_copy(adapter->mac_addr, feat->dev_attr.mac_addr);
|
||||
ether_addr_copy(netdev->dev_addr, adapter->mac_addr);
|
||||
eth_hw_addr_set(netdev, adapter->mac_addr);
|
||||
}
|
||||
|
||||
/* Set offload features */
|
||||
|
||||
@@ -330,7 +330,7 @@ int aq_nic_ndev_register(struct aq_nic_s *self)
|
||||
{
|
||||
static u8 mac_addr_permanent[] = AQ_CFG_MAC_ADDR_PERMANENT;
|
||||
|
||||
ether_addr_copy(self->ndev->dev_addr, mac_addr_permanent);
|
||||
eth_hw_addr_set(self->ndev, mac_addr_permanent);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -941,7 +941,7 @@ int arc_emac_probe(struct net_device *ndev, int interface)
|
||||
}
|
||||
|
||||
/* Get MAC address from device tree */
|
||||
err = of_get_mac_address(dev->of_node, ndev->dev_addr);
|
||||
err = of_get_ethdev_address(dev->of_node, ndev);
|
||||
if (err)
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
|
||||
@@ -1964,7 +1964,7 @@ static int ag71xx_probe(struct platform_device *pdev)
|
||||
ag->stop_desc->ctrl = 0;
|
||||
ag->stop_desc->next = (u32)ag->stop_desc_dma;
|
||||
|
||||
err = of_get_mac_address(np, ndev->dev_addr);
|
||||
err = of_get_ethdev_address(np, ndev);
|
||||
if (err) {
|
||||
netif_err(ag, probe, ndev, "invalid MAC address, using random address\n");
|
||||
eth_random_addr(ndev->dev_addr);
|
||||
|
||||
@@ -719,7 +719,7 @@ static int bcm4908_enet_probe(struct platform_device *pdev)
|
||||
return err;
|
||||
|
||||
SET_NETDEV_DEV(netdev, &pdev->dev);
|
||||
err = of_get_mac_address(dev->of_node, netdev->dev_addr);
|
||||
err = of_get_ethdev_address(dev->of_node, netdev);
|
||||
if (err)
|
||||
eth_hw_addr_random(netdev);
|
||||
netdev->netdev_ops = &bcm4908_enet_netdev_ops;
|
||||
|
||||
@@ -2561,7 +2561,7 @@ static int bcm_sysport_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
/* Initialize netdevice members */
|
||||
ret = of_get_mac_address(dn, dev->dev_addr);
|
||||
ret = of_get_ethdev_address(dn, dev);
|
||||
if (ret) {
|
||||
dev_warn(&pdev->dev, "using random Ethernet MAC\n");
|
||||
eth_hw_addr_random(dev);
|
||||
|
||||
@@ -128,7 +128,7 @@ static int bgmac_probe(struct bcma_device *core)
|
||||
|
||||
bcma_set_drvdata(core, bgmac);
|
||||
|
||||
err = of_get_mac_address(bgmac->dev->of_node, bgmac->net_dev->dev_addr);
|
||||
err = of_get_ethdev_address(bgmac->dev->of_node, bgmac->net_dev);
|
||||
if (err == -EPROBE_DEFER)
|
||||
return err;
|
||||
|
||||
@@ -150,7 +150,7 @@ static int bgmac_probe(struct bcma_device *core)
|
||||
err = -ENOTSUPP;
|
||||
goto err;
|
||||
}
|
||||
ether_addr_copy(bgmac->net_dev->dev_addr, mac);
|
||||
eth_hw_addr_set(bgmac->net_dev, mac);
|
||||
}
|
||||
|
||||
/* On BCM4706 we need common core to access PHY */
|
||||
|
||||
@@ -192,7 +192,7 @@ static int bgmac_probe(struct platform_device *pdev)
|
||||
bgmac->dev = &pdev->dev;
|
||||
bgmac->dma_dev = &pdev->dev;
|
||||
|
||||
ret = of_get_mac_address(np, bgmac->net_dev->dev_addr);
|
||||
ret = of_get_ethdev_address(np, bgmac->net_dev);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
return ret;
|
||||
|
||||
|
||||
@@ -1241,7 +1241,7 @@ static int bgmac_set_mac_address(struct net_device *net_dev, void *addr)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ether_addr_copy(net_dev->dev_addr, sa->sa_data);
|
||||
eth_hw_addr_set(net_dev, sa->sa_data);
|
||||
bgmac_write_mac_address(bgmac, net_dev->dev_addr);
|
||||
|
||||
eth_commit_mac_addr_change(net_dev, addr);
|
||||
|
||||
@@ -475,7 +475,7 @@ static void bnxt_vf_rep_netdev_init(struct bnxt *bp, struct bnxt_vf_rep *vf_rep,
|
||||
dev->features |= pf_dev->features;
|
||||
bnxt_vf_rep_eth_addr_gen(bp->pf.mac_addr, vf_rep->vf_idx,
|
||||
dev->perm_addr);
|
||||
ether_addr_copy(dev->dev_addr, dev->perm_addr);
|
||||
eth_hw_addr_set(dev, dev->perm_addr);
|
||||
/* Set VF-Rep's max-mtu to the corresponding VF's max-mtu */
|
||||
if (!bnxt_hwrm_vfr_qcfg(bp, vf_rep, &max_mtu))
|
||||
dev->max_mtu = max_mtu;
|
||||
|
||||
@@ -3610,7 +3610,7 @@ static int bcmgenet_set_mac_addr(struct net_device *dev, void *p)
|
||||
if (netif_running(dev))
|
||||
return -EBUSY;
|
||||
|
||||
ether_addr_copy(dev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(dev, addr->sa_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -4060,7 +4060,7 @@ static int bcmgenet_probe(struct platform_device *pdev)
|
||||
bcmgenet_power_up(priv, GENET_POWER_PASSIVE);
|
||||
|
||||
if (pd && !IS_ERR_OR_NULL(pd->mac_address))
|
||||
ether_addr_copy(dev->dev_addr, pd->mac_address);
|
||||
eth_hw_addr_set(dev, pd->mac_address);
|
||||
else
|
||||
if (!device_get_mac_address(&pdev->dev, dev->dev_addr, ETH_ALEN))
|
||||
if (has_acpi_companion(&pdev->dev))
|
||||
|
||||
@@ -875,7 +875,7 @@ bnad_set_netdev_perm_addr(struct bnad *bnad)
|
||||
|
||||
ether_addr_copy(netdev->perm_addr, bnad->perm_addr);
|
||||
if (is_zero_ether_addr(netdev->dev_addr))
|
||||
ether_addr_copy(netdev->dev_addr, bnad->perm_addr);
|
||||
eth_hw_addr_set(netdev, bnad->perm_addr);
|
||||
}
|
||||
|
||||
/* Control Path Handlers */
|
||||
@@ -3249,7 +3249,7 @@ bnad_set_mac_address(struct net_device *netdev, void *addr)
|
||||
|
||||
err = bnad_mac_addr_set_locked(bnad, sa->sa_data);
|
||||
if (!err)
|
||||
ether_addr_copy(netdev->dev_addr, sa->sa_data);
|
||||
eth_hw_addr_set(netdev, sa->sa_data);
|
||||
|
||||
spin_unlock_irqrestore(&bnad->bna_lock, flags);
|
||||
|
||||
|
||||
@@ -4835,7 +4835,7 @@ static int macb_probe(struct platform_device *pdev)
|
||||
if (bp->caps & MACB_CAPS_NEEDS_RSTONUBR)
|
||||
bp->rx_intr_mask |= MACB_BIT(RXUBR);
|
||||
|
||||
err = of_get_mac_address(np, bp->dev->dev_addr);
|
||||
err = of_get_ethdev_address(np, bp->dev);
|
||||
if (err == -EPROBE_DEFER)
|
||||
goto err_out_free_netdev;
|
||||
else if (err)
|
||||
|
||||
@@ -411,7 +411,7 @@ void octeon_pf_changed_vf_macaddr(struct octeon_device *oct, u8 *mac)
|
||||
|
||||
if (!ether_addr_equal(netdev->dev_addr, mac)) {
|
||||
macaddr_changed = true;
|
||||
ether_addr_copy(netdev->dev_addr, mac);
|
||||
eth_hw_addr_set(netdev, mac);
|
||||
ether_addr_copy(((u8 *)&lio->linfo.hw_addr) + 2, mac);
|
||||
call_netdevice_notifiers(NETDEV_CHANGEADDR, netdev);
|
||||
}
|
||||
|
||||
@@ -3650,7 +3650,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
|
||||
|
||||
/* Copy MAC Address to OS network device structure */
|
||||
|
||||
ether_addr_copy(netdev->dev_addr, mac);
|
||||
eth_hw_addr_set(netdev, mac);
|
||||
|
||||
/* By default all interfaces on a single Octeon uses the same
|
||||
* tx and rx queues
|
||||
|
||||
@@ -2148,7 +2148,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
|
||||
mac[j] = *((u8 *)(((u8 *)&lio->linfo.hw_addr) + 2 + j));
|
||||
|
||||
/* Copy MAC Address to OS network device structure */
|
||||
ether_addr_copy(netdev->dev_addr, mac);
|
||||
eth_hw_addr_set(netdev, mac);
|
||||
|
||||
if (liquidio_setup_io_queues(octeon_dev, i,
|
||||
lio->linfo.num_txpciq,
|
||||
|
||||
@@ -1501,7 +1501,7 @@ static int octeon_mgmt_probe(struct platform_device *pdev)
|
||||
netdev->min_mtu = 64 - OCTEON_MGMT_RX_HEADROOM;
|
||||
netdev->max_mtu = 16383 - OCTEON_MGMT_RX_HEADROOM - VLAN_HLEN;
|
||||
|
||||
result = of_get_mac_address(pdev->dev.of_node, netdev->dev_addr);
|
||||
result = of_get_ethdev_address(pdev->dev.of_node, netdev);
|
||||
if (result)
|
||||
eth_hw_addr_random(netdev);
|
||||
|
||||
|
||||
@@ -221,8 +221,7 @@ static void nicvf_handle_mbx_intr(struct nicvf *nic)
|
||||
nic->tns_mode = mbx.nic_cfg.tns_mode & 0x7F;
|
||||
nic->node = mbx.nic_cfg.node_id;
|
||||
if (!nic->set_mac_pending)
|
||||
ether_addr_copy(nic->netdev->dev_addr,
|
||||
mbx.nic_cfg.mac_addr);
|
||||
eth_hw_addr_set(nic->netdev, mbx.nic_cfg.mac_addr);
|
||||
nic->sqs_mode = mbx.nic_cfg.sqs_mode;
|
||||
nic->loopback_supported = mbx.nic_cfg.loopback_supported;
|
||||
nic->link_up = false;
|
||||
|
||||
@@ -369,7 +369,7 @@ static int be_mac_addr_set(struct net_device *netdev, void *p)
|
||||
/* Remember currently programmed MAC */
|
||||
ether_addr_copy(adapter->dev_mac, addr->sa_data);
|
||||
done:
|
||||
ether_addr_copy(netdev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(netdev, addr->sa_data);
|
||||
dev_info(dev, "MAC address changed to %pM\n", addr->sa_data);
|
||||
return 0;
|
||||
err:
|
||||
|
||||
@@ -1148,10 +1148,10 @@ static int ethoc_probe(struct platform_device *pdev)
|
||||
|
||||
/* Allow the platform setup code to pass in a MAC address. */
|
||||
if (pdata) {
|
||||
ether_addr_copy(netdev->dev_addr, pdata->hwaddr);
|
||||
eth_hw_addr_set(netdev, pdata->hwaddr);
|
||||
priv->phy_id = pdata->phy_id;
|
||||
} else {
|
||||
of_get_mac_address(pdev->dev.of_node, netdev->dev_addr);
|
||||
of_get_ethdev_address(pdev->dev.of_node, netdev);
|
||||
priv->phy_id = -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -421,7 +421,7 @@ static s32 nps_enet_set_mac_address(struct net_device *ndev, void *p)
|
||||
|
||||
res = eth_mac_addr(ndev, p);
|
||||
if (!res) {
|
||||
ether_addr_copy(ndev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(ndev, addr->sa_data);
|
||||
nps_enet_set_hw_mac_address(ndev);
|
||||
}
|
||||
|
||||
@@ -601,7 +601,7 @@ static s32 nps_enet_probe(struct platform_device *pdev)
|
||||
dev_dbg(dev, "Registers base address is 0x%p\n", priv->regs_base);
|
||||
|
||||
/* set kernel MAC address to dev */
|
||||
err = of_get_mac_address(dev->of_node, ndev->dev_addr);
|
||||
err = of_get_ethdev_address(dev->of_node, ndev);
|
||||
if (err)
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ static void ftgmac100_initial_mac(struct ftgmac100 *priv)
|
||||
|
||||
addr = device_get_mac_address(priv->dev, mac, ETH_ALEN);
|
||||
if (addr) {
|
||||
ether_addr_copy(priv->netdev->dev_addr, mac);
|
||||
eth_hw_addr_set(priv->netdev, mac);
|
||||
dev_info(priv->dev, "Read MAC address %pM from device tree\n",
|
||||
mac);
|
||||
return;
|
||||
@@ -203,7 +203,7 @@ static void ftgmac100_initial_mac(struct ftgmac100 *priv)
|
||||
mac[5] = l & 0xff;
|
||||
|
||||
if (is_valid_ether_addr(mac)) {
|
||||
ether_addr_copy(priv->netdev->dev_addr, mac);
|
||||
eth_hw_addr_set(priv->netdev, mac);
|
||||
dev_info(priv->dev, "Read MAC address %pM from chip\n", mac);
|
||||
} else {
|
||||
eth_hw_addr_random(priv->netdev);
|
||||
|
||||
@@ -890,7 +890,7 @@ static int mpc52xx_fec_probe(struct platform_device *op)
|
||||
*
|
||||
* First try to read MAC address from DT
|
||||
*/
|
||||
rv = of_get_mac_address(np, ndev->dev_addr);
|
||||
rv = of_get_ethdev_address(np, ndev);
|
||||
if (rv) {
|
||||
struct mpc52xx_fec __iomem *fec = priv->fec;
|
||||
|
||||
|
||||
@@ -1005,7 +1005,7 @@ static int fs_enet_probe(struct platform_device *ofdev)
|
||||
spin_lock_init(&fep->lock);
|
||||
spin_lock_init(&fep->tx_lock);
|
||||
|
||||
of_get_mac_address(ofdev->dev.of_node, ndev->dev_addr);
|
||||
of_get_ethdev_address(ofdev->dev.of_node, ndev);
|
||||
|
||||
ret = fep->ops->allocate_bd(ndev);
|
||||
if (ret)
|
||||
|
||||
@@ -753,7 +753,7 @@ static int gfar_of_init(struct platform_device *ofdev, struct net_device **pdev)
|
||||
if (stash_len || stash_idx)
|
||||
priv->device_flags |= FSL_GIANFAR_DEV_HAS_BUF_STASHING;
|
||||
|
||||
err = of_get_mac_address(np, dev->dev_addr);
|
||||
err = of_get_ethdev_address(np, dev);
|
||||
if (err) {
|
||||
eth_hw_addr_random(dev);
|
||||
dev_info(&ofdev->dev, "Using random MAC address: %pM\n", dev->dev_addr);
|
||||
|
||||
@@ -3731,7 +3731,7 @@ static int ucc_geth_probe(struct platform_device* ofdev)
|
||||
goto err_free_netdev;
|
||||
}
|
||||
|
||||
of_get_mac_address(np, dev->dev_addr);
|
||||
of_get_ethdev_address(np, dev);
|
||||
|
||||
ugeth->ug_info = ug_info;
|
||||
ugeth->dev = device;
|
||||
|
||||
@@ -733,7 +733,7 @@ int gve_adminq_describe_device(struct gve_priv *priv)
|
||||
}
|
||||
priv->dev->max_mtu = mtu;
|
||||
priv->num_event_counters = be16_to_cpu(descriptor->counters);
|
||||
ether_addr_copy(priv->dev->dev_addr, descriptor->mac);
|
||||
eth_hw_addr_set(priv->dev, descriptor->mac);
|
||||
mac = descriptor->mac;
|
||||
dev_info(&priv->pdev->dev, "MAC addr: %pM\n", mac);
|
||||
priv->tx_pages_per_qpl = be16_to_cpu(descriptor->tx_pages_per_qpl);
|
||||
|
||||
@@ -841,7 +841,7 @@ static int hisi_femac_drv_probe(struct platform_device *pdev)
|
||||
(unsigned long)phy->phy_id,
|
||||
phy_modes(phy->interface));
|
||||
|
||||
ret = of_get_mac_address(node, ndev->dev_addr);
|
||||
ret = of_get_ethdev_address(node, ndev);
|
||||
if (ret) {
|
||||
eth_hw_addr_random(ndev);
|
||||
dev_warn(dev, "using random MAC address %pM\n",
|
||||
|
||||
@@ -1219,7 +1219,7 @@ static int hix5hd2_dev_probe(struct platform_device *pdev)
|
||||
goto out_phy_node;
|
||||
}
|
||||
|
||||
ret = of_get_mac_address(node, ndev->dev_addr);
|
||||
ret = of_get_ethdev_address(node, ndev);
|
||||
if (ret) {
|
||||
eth_hw_addr_random(ndev);
|
||||
netdev_warn(ndev, "using random MAC address %pM\n",
|
||||
|
||||
@@ -2251,7 +2251,7 @@ static int hns3_nic_net_set_mac_address(struct net_device *netdev, void *p)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ether_addr_copy(netdev->dev_addr, mac_addr->sa_data);
|
||||
eth_hw_addr_set(netdev, mac_addr->sa_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -4921,7 +4921,7 @@ static int hns3_init_mac_addr(struct net_device *netdev)
|
||||
dev_warn(priv->dev, "using random MAC address %s\n",
|
||||
format_mac_addr);
|
||||
} else if (!ether_addr_equal(netdev->dev_addr, mac_addr_temp)) {
|
||||
ether_addr_copy(netdev->dev_addr, mac_addr_temp);
|
||||
eth_hw_addr_set(netdev, mac_addr_temp);
|
||||
ether_addr_copy(netdev->perm_addr, mac_addr_temp);
|
||||
} else {
|
||||
return 0;
|
||||
|
||||
@@ -1620,7 +1620,7 @@ static int ibmveth_set_mac_addr(struct net_device *dev, void *p)
|
||||
return rc;
|
||||
}
|
||||
|
||||
ether_addr_copy(dev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(dev, addr->sa_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -4689,8 +4689,7 @@ static int handle_change_mac_rsp(union ibmvnic_crq *crq,
|
||||
/* crq->change_mac_addr.mac_addr is the requested one
|
||||
* crq->change_mac_addr_rsp.mac_addr is the returned valid one.
|
||||
*/
|
||||
ether_addr_copy(netdev->dev_addr,
|
||||
&crq->change_mac_addr_rsp.mac_addr[0]);
|
||||
eth_hw_addr_set(netdev, &crq->change_mac_addr_rsp.mac_addr[0]);
|
||||
ether_addr_copy(adapter->mac_addr,
|
||||
&crq->change_mac_addr_rsp.mac_addr[0]);
|
||||
out:
|
||||
@@ -5658,7 +5657,7 @@ static int ibmvnic_probe(struct vio_dev *dev, const struct vio_device_id *id)
|
||||
adapter->login_pending = false;
|
||||
|
||||
ether_addr_copy(adapter->mac_addr, mac_addr_p);
|
||||
ether_addr_copy(netdev->dev_addr, adapter->mac_addr);
|
||||
eth_hw_addr_set(netdev, adapter->mac_addr);
|
||||
netdev->irq = dev->irq;
|
||||
netdev->netdev_ops = &ibmvnic_netdev_ops;
|
||||
netdev->ethtool_ops = &ibmvnic_ethtool_ops;
|
||||
|
||||
@@ -990,7 +990,7 @@ static int fm10k_set_mac(struct net_device *dev, void *p)
|
||||
}
|
||||
|
||||
if (!err) {
|
||||
ether_addr_copy(dev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(dev, addr->sa_data);
|
||||
ether_addr_copy(hw->mac.addr, addr->sa_data);
|
||||
dev->addr_assign_type &= ~NET_ADDR_RANDOM;
|
||||
}
|
||||
|
||||
@@ -300,7 +300,7 @@ static int fm10k_handle_reset(struct fm10k_intfc *interface)
|
||||
if (is_valid_ether_addr(hw->mac.perm_addr)) {
|
||||
ether_addr_copy(hw->mac.addr, hw->mac.perm_addr);
|
||||
ether_addr_copy(netdev->perm_addr, hw->mac.perm_addr);
|
||||
ether_addr_copy(netdev->dev_addr, hw->mac.perm_addr);
|
||||
eth_hw_addr_set(netdev, hw->mac.perm_addr);
|
||||
netdev->addr_assign_type &= ~NET_ADDR_RANDOM;
|
||||
}
|
||||
|
||||
@@ -2045,7 +2045,7 @@ static int fm10k_sw_init(struct fm10k_intfc *interface,
|
||||
netdev->addr_assign_type |= NET_ADDR_RANDOM;
|
||||
}
|
||||
|
||||
ether_addr_copy(netdev->dev_addr, hw->mac.addr);
|
||||
eth_hw_addr_set(netdev, hw->mac.addr);
|
||||
ether_addr_copy(netdev->perm_addr, hw->mac.addr);
|
||||
|
||||
if (!is_valid_ether_addr(netdev->perm_addr)) {
|
||||
|
||||
@@ -1686,7 +1686,7 @@ static int i40e_set_mac(struct net_device *netdev, void *p)
|
||||
*/
|
||||
spin_lock_bh(&vsi->mac_filter_hash_lock);
|
||||
i40e_del_mac_filter(vsi, netdev->dev_addr);
|
||||
ether_addr_copy(netdev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(netdev, addr->sa_data);
|
||||
i40e_add_mac_filter(vsi, netdev->dev_addr);
|
||||
spin_unlock_bh(&vsi->mac_filter_hash_lock);
|
||||
|
||||
@@ -13659,7 +13659,7 @@ static int i40e_config_netdev(struct i40e_vsi *vsi)
|
||||
i40e_add_mac_filter(vsi, broadcast);
|
||||
spin_unlock_bh(&vsi->mac_filter_hash_lock);
|
||||
|
||||
ether_addr_copy(netdev->dev_addr, mac_addr);
|
||||
eth_hw_addr_set(netdev, mac_addr);
|
||||
ether_addr_copy(netdev->perm_addr, mac_addr);
|
||||
|
||||
/* i40iw_net_event() reads 16 bytes from neigh->primary_key */
|
||||
|
||||
@@ -1855,7 +1855,7 @@ static int iavf_set_channels(struct net_device *netdev,
|
||||
}
|
||||
if (i == IAVF_RESET_WAIT_COMPLETE_COUNT) {
|
||||
adapter->flags &= ~IAVF_FLAG_REINIT_ITR_NEEDED;
|
||||
adapter->num_active_queues = num_req;
|
||||
adapter->num_req_queues = 0;
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
|
||||
@@ -1507,19 +1507,16 @@ static int iavf_alloc_q_vectors(struct iavf_adapter *adapter)
|
||||
static void iavf_free_q_vectors(struct iavf_adapter *adapter)
|
||||
{
|
||||
int q_idx, num_q_vectors;
|
||||
int napi_vectors;
|
||||
|
||||
if (!adapter->q_vectors)
|
||||
return;
|
||||
|
||||
num_q_vectors = adapter->num_msix_vectors - NONQ_VECS;
|
||||
napi_vectors = adapter->num_active_queues;
|
||||
|
||||
for (q_idx = 0; q_idx < num_q_vectors; q_idx++) {
|
||||
struct iavf_q_vector *q_vector = &adapter->q_vectors[q_idx];
|
||||
|
||||
if (q_idx < napi_vectors)
|
||||
netif_napi_del(&q_vector->napi);
|
||||
netif_napi_del(&q_vector->napi);
|
||||
}
|
||||
kfree(adapter->q_vectors);
|
||||
adapter->q_vectors = NULL;
|
||||
@@ -1963,7 +1960,7 @@ static void iavf_init_get_resources(struct iavf_adapter *adapter)
|
||||
eth_hw_addr_random(netdev);
|
||||
ether_addr_copy(adapter->hw.mac.addr, netdev->dev_addr);
|
||||
} else {
|
||||
ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr);
|
||||
eth_hw_addr_set(netdev, adapter->hw.mac.addr);
|
||||
ether_addr_copy(netdev->perm_addr, adapter->hw.mac.addr);
|
||||
}
|
||||
|
||||
|
||||
@@ -1726,7 +1726,7 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
|
||||
if (!v_retval)
|
||||
iavf_mac_add_ok(adapter);
|
||||
if (!ether_addr_equal(netdev->dev_addr, adapter->hw.mac.addr))
|
||||
ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr);
|
||||
eth_hw_addr_set(netdev, adapter->hw.mac.addr);
|
||||
break;
|
||||
case VIRTCHNL_OP_GET_STATS: {
|
||||
struct iavf_eth_stats *stats =
|
||||
@@ -1757,7 +1757,7 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,
|
||||
ether_addr_copy(adapter->hw.mac.addr, netdev->dev_addr);
|
||||
} else {
|
||||
/* refresh current mac address if changed */
|
||||
ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr);
|
||||
eth_hw_addr_set(netdev, adapter->hw.mac.addr);
|
||||
ether_addr_copy(netdev->perm_addr,
|
||||
adapter->hw.mac.addr);
|
||||
}
|
||||
|
||||
@@ -3183,7 +3183,7 @@ static int ice_cfg_netdev(struct ice_vsi *vsi)
|
||||
if (vsi->type == ICE_VSI_PF) {
|
||||
SET_NETDEV_DEV(netdev, ice_pf_to_dev(vsi->back));
|
||||
ether_addr_copy(mac_addr, vsi->port_info->mac.perm_addr);
|
||||
ether_addr_copy(netdev->dev_addr, mac_addr);
|
||||
eth_hw_addr_set(netdev, mac_addr);
|
||||
ether_addr_copy(netdev->perm_addr, mac_addr);
|
||||
}
|
||||
|
||||
@@ -5225,7 +5225,7 @@ err_update_filters:
|
||||
netdev_err(netdev, "can't set MAC %pM. filter update failed\n",
|
||||
mac);
|
||||
netif_addr_lock_bh(netdev);
|
||||
ether_addr_copy(netdev->dev_addr, old_mac);
|
||||
eth_hw_addr_set(netdev, old_mac);
|
||||
netif_addr_unlock_bh(netdev);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -2748,15 +2748,15 @@ static void igc_xdp_xmit_zc(struct igc_ring *ring)
|
||||
struct netdev_queue *nq = txring_txq(ring);
|
||||
union igc_adv_tx_desc *tx_desc = NULL;
|
||||
int cpu = smp_processor_id();
|
||||
u16 ntu = ring->next_to_use;
|
||||
struct xdp_desc xdp_desc;
|
||||
u16 budget;
|
||||
u16 budget, ntu;
|
||||
|
||||
if (!netif_carrier_ok(ring->netdev))
|
||||
return;
|
||||
|
||||
__netif_tx_lock(nq, cpu);
|
||||
|
||||
ntu = ring->next_to_use;
|
||||
budget = igc_desc_unused(ring);
|
||||
|
||||
while (xsk_tx_peek_desc(pool, &xdp_desc) && budget--) {
|
||||
|
||||
@@ -2541,7 +2541,7 @@ void ixgbevf_reset(struct ixgbevf_adapter *adapter)
|
||||
}
|
||||
|
||||
if (is_valid_ether_addr(adapter->hw.mac.addr)) {
|
||||
ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr);
|
||||
eth_hw_addr_set(netdev, adapter->hw.mac.addr);
|
||||
ether_addr_copy(netdev->perm_addr, adapter->hw.mac.addr);
|
||||
}
|
||||
|
||||
@@ -3055,7 +3055,7 @@ static int ixgbevf_sw_init(struct ixgbevf_adapter *adapter)
|
||||
else if (is_zero_ether_addr(adapter->hw.mac.addr))
|
||||
dev_info(&pdev->dev,
|
||||
"MAC address not assigned by administrator.\n");
|
||||
ether_addr_copy(netdev->dev_addr, hw->mac.addr);
|
||||
eth_hw_addr_set(netdev, hw->mac.addr);
|
||||
}
|
||||
|
||||
if (!is_valid_ether_addr(netdev->dev_addr)) {
|
||||
@@ -4232,7 +4232,7 @@ static int ixgbevf_set_mac(struct net_device *netdev, void *p)
|
||||
|
||||
ether_addr_copy(hw->mac.addr, addr->sa_data);
|
||||
ether_addr_copy(hw->mac.perm_addr, addr->sa_data);
|
||||
ether_addr_copy(netdev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(netdev, addr->sa_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1297,8 +1297,8 @@ static int korina_probe(struct platform_device *pdev)
|
||||
lp = netdev_priv(dev);
|
||||
|
||||
if (mac_addr)
|
||||
ether_addr_copy(dev->dev_addr, mac_addr);
|
||||
else if (of_get_mac_address(pdev->dev.of_node, dev->dev_addr) < 0)
|
||||
eth_hw_addr_set(dev, mac_addr);
|
||||
else if (of_get_ethdev_address(pdev->dev.of_node, dev) < 0)
|
||||
eth_hw_addr_random(dev);
|
||||
|
||||
clk = devm_clk_get_optional(&pdev->dev, "mdioclk");
|
||||
|
||||
@@ -474,7 +474,7 @@ static int xrx200_probe(struct platform_device *pdev)
|
||||
return PTR_ERR(priv->clk);
|
||||
}
|
||||
|
||||
err = of_get_mac_address(np, net_dev->dev_addr);
|
||||
err = of_get_ethdev_address(np, net_dev);
|
||||
if (err)
|
||||
eth_hw_addr_random(net_dev);
|
||||
|
||||
|
||||
@@ -266,7 +266,7 @@ static int liteeth_probe(struct platform_device *pdev)
|
||||
priv->tx_base = buf_base + priv->num_rx_slots * priv->slot_size;
|
||||
priv->tx_slot = 0;
|
||||
|
||||
err = of_get_mac_address(pdev->dev.of_node, netdev->dev_addr);
|
||||
err = of_get_ethdev_address(pdev->dev.of_node, netdev);
|
||||
if (err)
|
||||
eth_hw_addr_random(netdev);
|
||||
|
||||
|
||||
@@ -5242,7 +5242,7 @@ static int mvneta_probe(struct platform_device *pdev)
|
||||
goto err_free_ports;
|
||||
}
|
||||
|
||||
err = of_get_mac_address(dn, dev->dev_addr);
|
||||
err = of_get_ethdev_address(dn, dev);
|
||||
if (!err) {
|
||||
mac_from = "device tree";
|
||||
} else {
|
||||
|
||||
@@ -6087,7 +6087,7 @@ static void mvpp2_port_copy_mac_addr(struct net_device *dev, struct mvpp2 *priv,
|
||||
|
||||
if (fwnode_get_mac_address(fwnode, fw_mac_addr, ETH_ALEN)) {
|
||||
*mac_from = "firmware node";
|
||||
ether_addr_copy(dev->dev_addr, fw_mac_addr);
|
||||
eth_hw_addr_set(dev, fw_mac_addr);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6095,7 +6095,7 @@ static void mvpp2_port_copy_mac_addr(struct net_device *dev, struct mvpp2 *priv,
|
||||
mvpp21_get_mac_address(port, hw_mac_addr);
|
||||
if (is_valid_ether_addr(hw_mac_addr)) {
|
||||
*mac_from = "hardware";
|
||||
ether_addr_copy(dev->dev_addr, hw_mac_addr);
|
||||
eth_hw_addr_set(dev, hw_mac_addr);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2333,7 +2333,7 @@ int mvpp2_prs_update_mac_da(struct net_device *dev, const u8 *da)
|
||||
return err;
|
||||
|
||||
/* Set addr in the device */
|
||||
ether_addr_copy(dev->dev_addr, da);
|
||||
eth_hw_addr_set(dev, da);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -188,7 +188,7 @@ static int otx2_hw_get_mac_addr(struct otx2_nic *pfvf,
|
||||
return PTR_ERR(msghdr);
|
||||
}
|
||||
rsp = (struct nix_get_mac_addr_rsp *)msghdr;
|
||||
ether_addr_copy(netdev->dev_addr, rsp->mac_addr);
|
||||
eth_hw_addr_set(netdev, rsp->mac_addr);
|
||||
mutex_unlock(&pfvf->mbox.lock);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1430,8 +1430,9 @@ static int otx2_init_hw_resources(struct otx2_nic *pf)
|
||||
if (err)
|
||||
goto err_free_npa_lf;
|
||||
|
||||
/* Enable backpressure */
|
||||
otx2_nix_config_bp(pf, true);
|
||||
/* Enable backpressure for CGX mapped PF/VFs */
|
||||
if (!is_otx2_lbkvf(pf->pdev))
|
||||
otx2_nix_config_bp(pf, true);
|
||||
|
||||
/* Init Auras and pools used by NIX RQ, for free buffer ptrs */
|
||||
err = otx2_rq_aura_pool_init(pf);
|
||||
|
||||
@@ -141,7 +141,7 @@ static int prestera_port_set_mac_address(struct net_device *dev, void *p)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
ether_addr_copy(dev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(dev, addr->sa_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1434,7 +1434,7 @@ static int pxa168_eth_probe(struct platform_device *pdev)
|
||||
|
||||
INIT_WORK(&pep->tx_timeout_task, pxa168_eth_tx_timeout_task);
|
||||
|
||||
err = of_get_mac_address(pdev->dev.of_node, dev->dev_addr);
|
||||
err = of_get_ethdev_address(pdev->dev.of_node, dev);
|
||||
if (err) {
|
||||
/* try reading the mac address, if set by the bootloader */
|
||||
pxa168_eth_get_mac_address(dev, dev->dev_addr);
|
||||
|
||||
@@ -4802,7 +4802,7 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port,
|
||||
* 1) from device tree data
|
||||
* 2) from internal registers set by bootloader
|
||||
*/
|
||||
ret = of_get_mac_address(hw->pdev->dev.of_node, dev->dev_addr);
|
||||
ret = of_get_ethdev_address(hw->pdev->dev.of_node, dev);
|
||||
if (ret)
|
||||
memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8,
|
||||
ETH_ALEN);
|
||||
|
||||
@@ -2612,23 +2612,6 @@ static int mtk_hw_deinit(struct mtk_eth *eth)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init mtk_init(struct net_device *dev)
|
||||
{
|
||||
struct mtk_mac *mac = netdev_priv(dev);
|
||||
struct mtk_eth *eth = mac->hw;
|
||||
int ret;
|
||||
|
||||
ret = of_get_mac_address(mac->of_node, dev->dev_addr);
|
||||
if (ret) {
|
||||
/* If the mac address is invalid, use random mac address */
|
||||
eth_hw_addr_random(dev);
|
||||
dev_err(eth->dev, "generated random MAC address %pM\n",
|
||||
dev->dev_addr);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void mtk_uninit(struct net_device *dev)
|
||||
{
|
||||
struct mtk_mac *mac = netdev_priv(dev);
|
||||
@@ -2956,7 +2939,6 @@ static const struct ethtool_ops mtk_ethtool_ops = {
|
||||
};
|
||||
|
||||
static const struct net_device_ops mtk_netdev_ops = {
|
||||
.ndo_init = mtk_init,
|
||||
.ndo_uninit = mtk_uninit,
|
||||
.ndo_open = mtk_open,
|
||||
.ndo_stop = mtk_stop,
|
||||
@@ -3010,6 +2992,17 @@ static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
||||
mac->hw = eth;
|
||||
mac->of_node = np;
|
||||
|
||||
err = of_get_ethdev_address(mac->of_node, eth->netdev[id]);
|
||||
if (err == -EPROBE_DEFER)
|
||||
return err;
|
||||
|
||||
if (err) {
|
||||
/* If the mac address is invalid, use random mac address */
|
||||
eth_hw_addr_random(eth->netdev[id]);
|
||||
dev_err(eth->dev, "generated random MAC address %pM\n",
|
||||
eth->netdev[id]->dev_addr);
|
||||
}
|
||||
|
||||
memset(mac->hwlro_ip, 0, sizeof(mac->hwlro_ip));
|
||||
mac->hwlro_ip_cnt = 0;
|
||||
|
||||
|
||||
@@ -3224,7 +3224,7 @@ static int mlx5e_set_mac(struct net_device *netdev, void *addr)
|
||||
return -EADDRNOTAVAIL;
|
||||
|
||||
netif_addr_lock_bh(netdev);
|
||||
ether_addr_copy(netdev->dev_addr, saddr->sa_data);
|
||||
eth_hw_addr_set(netdev, saddr->sa_data);
|
||||
netif_addr_unlock_bh(netdev);
|
||||
|
||||
mlx5e_nic_set_rx_mode(priv);
|
||||
|
||||
@@ -75,7 +75,7 @@ static void mlxbf_gige_initial_mac(struct mlxbf_gige *priv)
|
||||
u64_to_ether_addr(local_mac, mac);
|
||||
|
||||
if (is_valid_ether_addr(mac)) {
|
||||
ether_addr_copy(priv->netdev->dev_addr, mac);
|
||||
eth_hw_addr_set(priv->netdev, mac);
|
||||
} else {
|
||||
/* Provide a random MAC if for some reason the device has
|
||||
* not been configured with a valid MAC address already.
|
||||
|
||||
@@ -195,7 +195,7 @@ static void ks8851_init_mac(struct ks8851_net *ks, struct device_node *np)
|
||||
struct net_device *dev = ks->netdev;
|
||||
int ret;
|
||||
|
||||
ret = of_get_mac_address(np, dev->dev_addr);
|
||||
ret = of_get_ethdev_address(np, dev);
|
||||
if (!ret) {
|
||||
ks8851_write_mac_addr(dev);
|
||||
return;
|
||||
|
||||
@@ -517,7 +517,7 @@ static int enc28j60_set_mac_address(struct net_device *dev, void *addr)
|
||||
if (!is_valid_ether_addr(address->sa_data))
|
||||
return -EADDRNOTAVAIL;
|
||||
|
||||
ether_addr_copy(dev->dev_addr, address->sa_data);
|
||||
eth_hw_addr_set(dev, address->sa_data);
|
||||
return enc28j60_set_hw_macaddr(dev);
|
||||
}
|
||||
|
||||
@@ -1573,7 +1573,7 @@ static int enc28j60_probe(struct spi_device *spi)
|
||||
}
|
||||
|
||||
if (device_get_mac_address(&spi->dev, macaddr, sizeof(macaddr)))
|
||||
ether_addr_copy(dev->dev_addr, macaddr);
|
||||
eth_hw_addr_set(dev, macaddr);
|
||||
else
|
||||
eth_hw_addr_random(dev);
|
||||
enc28j60_set_hw_macaddr(dev);
|
||||
|
||||
@@ -829,7 +829,7 @@ static int lan743x_mac_init(struct lan743x_adapter *adapter)
|
||||
eth_random_addr(adapter->mac_address);
|
||||
}
|
||||
lan743x_mac_set_address(adapter, adapter->mac_address);
|
||||
ether_addr_copy(netdev->dev_addr, adapter->mac_address);
|
||||
eth_hw_addr_set(netdev, adapter->mac_address);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2677,7 +2677,7 @@ static int lan743x_netdev_set_mac_address(struct net_device *netdev,
|
||||
ret = eth_prepare_mac_addr_change(netdev, sock_addr);
|
||||
if (ret)
|
||||
return ret;
|
||||
ether_addr_copy(netdev->dev_addr, sock_addr->sa_data);
|
||||
eth_hw_addr_set(netdev, sock_addr->sa_data);
|
||||
lan743x_mac_set_address(adapter, sock_addr->sa_data);
|
||||
lan743x_rfe_update_mac_address(adapter);
|
||||
return 0;
|
||||
|
||||
@@ -172,7 +172,7 @@ static int sparx5_set_mac_address(struct net_device *dev, void *p)
|
||||
sparx5_mact_learn(sparx5, PGID_CPU, addr->sa_data, port->pvid);
|
||||
|
||||
/* Record the address */
|
||||
ether_addr_copy(dev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(dev, addr->sa_data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1619,7 +1619,7 @@ static int mana_init_port(struct net_device *ndev)
|
||||
if (apc->num_queues > apc->max_queues)
|
||||
apc->num_queues = apc->max_queues;
|
||||
|
||||
ether_addr_copy(ndev->dev_addr, apc->mac_addr);
|
||||
eth_hw_addr_set(ndev, apc->mac_addr);
|
||||
|
||||
return 0;
|
||||
|
||||
|
||||
@@ -606,7 +606,7 @@ static int ocelot_port_set_mac_address(struct net_device *dev, void *p)
|
||||
/* Then forget the previous one. */
|
||||
ocelot_mact_forget(ocelot, dev->dev_addr, ocelot_port->pvid_vlan.vid);
|
||||
|
||||
ether_addr_copy(dev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(dev, addr->sa_data);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -305,7 +305,7 @@ nfp_abm_vnic_set_mac(struct nfp_pf *pf, struct nfp_abm *abm, struct nfp_net *nn,
|
||||
return;
|
||||
}
|
||||
|
||||
ether_addr_copy(nn->dp.netdev->dev_addr, mac_addr);
|
||||
eth_hw_addr_set(nn->dp.netdev, mac_addr);
|
||||
ether_addr_copy(nn->dp.netdev->perm_addr, mac_addr);
|
||||
}
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ nfp_net_get_mac_addr(struct nfp_pf *pf, struct net_device *netdev,
|
||||
return;
|
||||
}
|
||||
|
||||
ether_addr_copy(netdev->dev_addr, eth_port->mac_addr);
|
||||
eth_hw_addr_set(netdev, eth_port->mac_addr);
|
||||
ether_addr_copy(netdev->perm_addr, eth_port->mac_addr);
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ static void nfp_netvf_get_mac_addr(struct nfp_net *nn)
|
||||
return;
|
||||
}
|
||||
|
||||
ether_addr_copy(nn->dp.netdev->dev_addr, mac_addr);
|
||||
eth_hw_addr_set(nn->dp.netdev, mac_addr);
|
||||
ether_addr_copy(nn->dp.netdev->perm_addr, mac_addr);
|
||||
}
|
||||
|
||||
|
||||
@@ -1211,7 +1211,7 @@ static void *nixge_get_nvmem_address(struct device *dev)
|
||||
|
||||
cell = nvmem_cell_get(dev, "address");
|
||||
if (IS_ERR(cell))
|
||||
return NULL;
|
||||
return cell;
|
||||
|
||||
mac = nvmem_cell_read(cell, &cell_size);
|
||||
nvmem_cell_put(cell);
|
||||
@@ -1284,8 +1284,8 @@ static int nixge_probe(struct platform_device *pdev)
|
||||
ndev->max_mtu = NIXGE_JUMBO_MTU;
|
||||
|
||||
mac_addr = nixge_get_nvmem_address(&pdev->dev);
|
||||
if (mac_addr && is_valid_ether_addr(mac_addr)) {
|
||||
ether_addr_copy(ndev->dev_addr, mac_addr);
|
||||
if (!IS_ERR(mac_addr) && is_valid_ether_addr(mac_addr)) {
|
||||
eth_hw_addr_set(ndev, mac_addr);
|
||||
kfree(mac_addr);
|
||||
} else {
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
@@ -1349,7 +1349,7 @@ static int lpc_eth_drv_probe(struct platform_device *pdev)
|
||||
__lpc_get_mac(pldat, ndev->dev_addr);
|
||||
|
||||
if (!is_valid_ether_addr(ndev->dev_addr)) {
|
||||
of_get_mac_address(np, ndev->dev_addr);
|
||||
of_get_ethdev_address(np, ndev);
|
||||
}
|
||||
if (!is_valid_ether_addr(ndev->dev_addr))
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
@@ -557,7 +557,7 @@ void qede_force_mac(void *dev, u8 *mac, bool forced)
|
||||
return;
|
||||
}
|
||||
|
||||
ether_addr_copy(edev->ndev->dev_addr, mac);
|
||||
eth_hw_addr_set(edev->ndev, mac);
|
||||
__qede_unlock(edev);
|
||||
}
|
||||
|
||||
@@ -1101,7 +1101,7 @@ int qede_set_mac_addr(struct net_device *ndev, void *p)
|
||||
goto out;
|
||||
}
|
||||
|
||||
ether_addr_copy(ndev->dev_addr, addr->sa_data);
|
||||
eth_hw_addr_set(ndev, addr->sa_data);
|
||||
DP_INFO(edev, "Setting device MAC to %pM\n", addr->sa_data);
|
||||
|
||||
if (edev->state != QEDE_STATE_OPEN) {
|
||||
|
||||
@@ -843,7 +843,7 @@ static void qede_init_ndev(struct qede_dev *edev)
|
||||
ndev->max_mtu = QEDE_MAX_JUMBO_PACKET_SIZE;
|
||||
|
||||
/* Set network device HW mac */
|
||||
ether_addr_copy(edev->ndev->dev_addr, edev->dev_info.common.hw_mac);
|
||||
eth_hw_addr_set(edev->ndev, edev->dev_info.common.hw_mac);
|
||||
|
||||
ndev->mtu = edev->dev_info.common.mtu;
|
||||
}
|
||||
|
||||
@@ -550,7 +550,7 @@ static int emac_probe_resources(struct platform_device *pdev,
|
||||
|
||||
/* get mac address */
|
||||
if (device_get_mac_address(&pdev->dev, maddr, ETH_ALEN))
|
||||
ether_addr_copy(netdev->dev_addr, maddr);
|
||||
eth_hw_addr_set(netdev, maddr);
|
||||
else
|
||||
eth_hw_addr_random(netdev);
|
||||
|
||||
|
||||
@@ -967,7 +967,7 @@ qca_spi_probe(struct spi_device *spi)
|
||||
|
||||
spi_set_drvdata(spi, qcaspi_devs);
|
||||
|
||||
ret = of_get_mac_address(spi->dev.of_node, qca->net_dev->dev_addr);
|
||||
ret = of_get_ethdev_address(spi->dev.of_node, qca->net_dev);
|
||||
if (ret) {
|
||||
eth_hw_addr_random(qca->net_dev);
|
||||
dev_info(&spi->dev, "Using random MAC address: %pM\n",
|
||||
|
||||
@@ -347,7 +347,7 @@ static int qca_uart_probe(struct serdev_device *serdev)
|
||||
|
||||
of_property_read_u32(serdev->dev.of_node, "current-speed", &speed);
|
||||
|
||||
ret = of_get_mac_address(serdev->dev.of_node, qca->net_dev->dev_addr);
|
||||
ret = of_get_ethdev_address(serdev->dev.of_node, qca->net_dev);
|
||||
if (ret) {
|
||||
eth_hw_addr_random(qca->net_dev);
|
||||
dev_info(&serdev->dev, "Using random MAC address: %pM\n",
|
||||
|
||||
@@ -114,7 +114,7 @@ static void ravb_read_mac_address(struct device_node *np,
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = of_get_mac_address(np, ndev->dev_addr);
|
||||
ret = of_get_ethdev_address(np, ndev);
|
||||
if (ret) {
|
||||
u32 mahr = ravb_read(ndev, MAHR);
|
||||
u32 malr = ravb_read(ndev, MALR);
|
||||
|
||||
@@ -118,7 +118,7 @@ static int sxgbe_platform_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
/* Get MAC address if available (DT) */
|
||||
of_get_mac_address(node, priv->dev->dev_addr);
|
||||
of_get_ethdev_address(node, priv->dev);
|
||||
|
||||
/* Get the TX/RX IRQ numbers */
|
||||
for (i = 0, chan = 1; i < SXGBE_TX_QUEUES; i++) {
|
||||
|
||||
@@ -527,7 +527,7 @@ int efx_ef10_sriov_set_vf_mac(struct efx_nic *efx, int vf_i, u8 *mac)
|
||||
goto fail;
|
||||
|
||||
if (vf->efx)
|
||||
ether_addr_copy(vf->efx->net_dev->dev_addr, mac);
|
||||
eth_hw_addr_set(vf->efx->net_dev, mac);
|
||||
}
|
||||
|
||||
ether_addr_copy(vf->mac, mac);
|
||||
|
||||
@@ -128,7 +128,7 @@ static int efx_probe_port(struct efx_nic *efx)
|
||||
return rc;
|
||||
|
||||
/* Initialise MAC address to permanent address */
|
||||
ether_addr_copy(efx->net_dev->dev_addr, efx->net_dev->perm_addr);
|
||||
eth_hw_addr_set(efx->net_dev, efx->net_dev->perm_addr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -181,11 +181,11 @@ int efx_set_mac_address(struct net_device *net_dev, void *data)
|
||||
|
||||
/* save old address */
|
||||
ether_addr_copy(old_addr, net_dev->dev_addr);
|
||||
ether_addr_copy(net_dev->dev_addr, new_addr);
|
||||
eth_hw_addr_set(net_dev, new_addr);
|
||||
if (efx->type->set_mac_address) {
|
||||
rc = efx->type->set_mac_address(efx);
|
||||
if (rc) {
|
||||
ether_addr_copy(net_dev->dev_addr, old_addr);
|
||||
eth_hw_addr_set(net_dev, old_addr);
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1044,7 +1044,7 @@ static int ef4_probe_port(struct ef4_nic *efx)
|
||||
return rc;
|
||||
|
||||
/* Initialise MAC address to permanent address */
|
||||
ether_addr_copy(efx->net_dev->dev_addr, efx->net_dev->perm_addr);
|
||||
eth_hw_addr_set(efx->net_dev, efx->net_dev->perm_addr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2162,11 +2162,11 @@ static int ef4_set_mac_address(struct net_device *net_dev, void *data)
|
||||
|
||||
/* save old address */
|
||||
ether_addr_copy(old_addr, net_dev->dev_addr);
|
||||
ether_addr_copy(net_dev->dev_addr, new_addr);
|
||||
eth_hw_addr_set(net_dev, new_addr);
|
||||
if (efx->type->set_mac_address) {
|
||||
rc = efx->type->set_mac_address(efx);
|
||||
if (rc) {
|
||||
ether_addr_copy(net_dev->dev_addr, old_addr);
|
||||
eth_hw_addr_set(net_dev, old_addr);
|
||||
return rc;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2041,7 +2041,7 @@ static int netsec_probe(struct platform_device *pdev)
|
||||
|
||||
mac = device_get_mac_address(&pdev->dev, macbuf, sizeof(macbuf));
|
||||
if (mac)
|
||||
ether_addr_copy(ndev->dev_addr, mac);
|
||||
eth_hw_addr_set(ndev, mac);
|
||||
|
||||
if (priv->eeprom_base &&
|
||||
(!mac || !is_valid_ether_addr(ndev->dev_addr))) {
|
||||
|
||||
@@ -1601,7 +1601,7 @@ static int ave_probe(struct platform_device *pdev)
|
||||
|
||||
ndev->max_mtu = AVE_MAX_ETHFRAME - (ETH_HLEN + ETH_FCS_LEN);
|
||||
|
||||
ret = of_get_mac_address(np, ndev->dev_addr);
|
||||
ret = of_get_ethdev_address(np, ndev);
|
||||
if (ret) {
|
||||
/* if the mac address is invalid, use random mac address */
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
@@ -1981,7 +1981,7 @@ am65_cpsw_nuss_init_port_ndev(struct am65_cpsw_common *common, u32 port_idx)
|
||||
ndev_priv->msg_enable = AM65_CPSW_DEBUG;
|
||||
SET_NETDEV_DEV(port->ndev, dev);
|
||||
|
||||
ether_addr_copy(port->ndev->dev_addr, port->slave.mac_addr);
|
||||
eth_hw_addr_set(port->ndev, port->slave.mac_addr);
|
||||
|
||||
port->ndev->min_mtu = AM65_CPSW_MIN_PACKET_SIZE;
|
||||
port->ndev->max_mtu = AM65_CPSW_MAX_PACKET_SIZE;
|
||||
|
||||
@@ -104,23 +104,37 @@ struct cpsw_ale_dev_id {
|
||||
|
||||
static inline int cpsw_ale_get_field(u32 *ale_entry, u32 start, u32 bits)
|
||||
{
|
||||
int idx;
|
||||
int idx, idx2;
|
||||
u32 hi_val = 0;
|
||||
|
||||
idx = start / 32;
|
||||
idx2 = (start + bits - 1) / 32;
|
||||
/* Check if bits to be fetched exceed a word */
|
||||
if (idx != idx2) {
|
||||
idx2 = 2 - idx2; /* flip */
|
||||
hi_val = ale_entry[idx2] << ((idx2 * 32) - start);
|
||||
}
|
||||
start -= idx * 32;
|
||||
idx = 2 - idx; /* flip */
|
||||
return (ale_entry[idx] >> start) & BITMASK(bits);
|
||||
return (hi_val + (ale_entry[idx] >> start)) & BITMASK(bits);
|
||||
}
|
||||
|
||||
static inline void cpsw_ale_set_field(u32 *ale_entry, u32 start, u32 bits,
|
||||
u32 value)
|
||||
{
|
||||
int idx;
|
||||
int idx, idx2;
|
||||
|
||||
value &= BITMASK(bits);
|
||||
idx = start / 32;
|
||||
idx = start / 32;
|
||||
idx2 = (start + bits - 1) / 32;
|
||||
/* Check if bits to be set exceed a word */
|
||||
if (idx != idx2) {
|
||||
idx2 = 2 - idx2; /* flip */
|
||||
ale_entry[idx2] &= ~(BITMASK(bits + start - (idx2 * 32)));
|
||||
ale_entry[idx2] |= (value >> ((idx2 * 32) - start));
|
||||
}
|
||||
start -= idx * 32;
|
||||
idx = 2 - idx; /* flip */
|
||||
idx = 2 - idx; /* flip */
|
||||
ale_entry[idx] &= ~(BITMASK(bits) << start);
|
||||
ale_entry[idx] |= (value << start);
|
||||
}
|
||||
|
||||
@@ -1000,7 +1000,7 @@ static int cpsw_ndo_set_mac_address(struct net_device *ndev, void *p)
|
||||
flags, vid);
|
||||
|
||||
ether_addr_copy(priv->mac_addr, addr->sa_data);
|
||||
ether_addr_copy(ndev->dev_addr, priv->mac_addr);
|
||||
eth_hw_addr_set(ndev, priv->mac_addr);
|
||||
cpsw_set_slave_mac(&cpsw->slaves[slave_no], priv);
|
||||
|
||||
pm_runtime_put(cpsw->dev);
|
||||
@@ -1404,7 +1404,7 @@ static int cpsw_create_ports(struct cpsw_common *cpsw)
|
||||
dev_info(cpsw->dev, "Random MACID = %pM\n",
|
||||
priv->mac_addr);
|
||||
}
|
||||
ether_addr_copy(ndev->dev_addr, slave_data->mac_addr);
|
||||
eth_hw_addr_set(ndev, slave_data->mac_addr);
|
||||
ether_addr_copy(priv->mac_addr, slave_data->mac_addr);
|
||||
|
||||
cpsw->slaves[i].ndev = ndev;
|
||||
|
||||
@@ -1911,7 +1911,7 @@ static int davinci_emac_probe(struct platform_device *pdev)
|
||||
|
||||
rc = davinci_emac_try_get_mac(pdev, res_ctrl ? 0 : 1, priv->mac_addr);
|
||||
if (!rc)
|
||||
ether_addr_copy(ndev->dev_addr, priv->mac_addr);
|
||||
eth_hw_addr_set(ndev, priv->mac_addr);
|
||||
|
||||
if (!is_valid_ether_addr(priv->mac_addr)) {
|
||||
/* Use random MAC if still none obtained. */
|
||||
|
||||
@@ -2028,14 +2028,14 @@ static int netcp_create_interface(struct netcp_device *netcp_device,
|
||||
|
||||
emac_arch_get_mac_addr(efuse_mac_addr, efuse, efuse_mac);
|
||||
if (is_valid_ether_addr(efuse_mac_addr))
|
||||
ether_addr_copy(ndev->dev_addr, efuse_mac_addr);
|
||||
eth_hw_addr_set(ndev, efuse_mac_addr);
|
||||
else
|
||||
eth_random_addr(ndev->dev_addr);
|
||||
|
||||
devm_iounmap(dev, efuse);
|
||||
devm_release_mem_region(dev, res.start, size);
|
||||
} else {
|
||||
ret = of_get_mac_address(node_interface, ndev->dev_addr);
|
||||
ret = of_get_ethdev_address(node_interface, ndev);
|
||||
if (ret)
|
||||
eth_random_addr(ndev->dev_addr);
|
||||
}
|
||||
|
||||
@@ -1151,7 +1151,7 @@ static int xemaclite_of_probe(struct platform_device *ofdev)
|
||||
lp->tx_ping_pong = get_bool(ofdev, "xlnx,tx-ping-pong");
|
||||
lp->rx_ping_pong = get_bool(ofdev, "xlnx,rx-ping-pong");
|
||||
|
||||
rc = of_get_mac_address(ofdev->dev.of_node, ndev->dev_addr);
|
||||
rc = of_get_ethdev_address(ofdev->dev.of_node, ndev);
|
||||
if (rc) {
|
||||
dev_warn(dev, "No MAC address found, using random\n");
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
@@ -3253,23 +3253,30 @@ static int __init phy_init(void)
|
||||
{
|
||||
int rc;
|
||||
|
||||
ethtool_set_ethtool_phy_ops(&phy_ethtool_phy_ops);
|
||||
|
||||
rc = mdio_bus_init();
|
||||
if (rc)
|
||||
return rc;
|
||||
goto err_ethtool_phy_ops;
|
||||
|
||||
ethtool_set_ethtool_phy_ops(&phy_ethtool_phy_ops);
|
||||
features_init();
|
||||
|
||||
rc = phy_driver_register(&genphy_c45_driver, THIS_MODULE);
|
||||
if (rc)
|
||||
goto err_c45;
|
||||
goto err_mdio_bus;
|
||||
|
||||
rc = phy_driver_register(&genphy_driver, THIS_MODULE);
|
||||
if (rc) {
|
||||
phy_driver_unregister(&genphy_c45_driver);
|
||||
if (rc)
|
||||
goto err_c45;
|
||||
|
||||
return 0;
|
||||
|
||||
err_c45:
|
||||
mdio_bus_exit();
|
||||
}
|
||||
phy_driver_unregister(&genphy_c45_driver);
|
||||
err_mdio_bus:
|
||||
mdio_bus_exit();
|
||||
err_ethtool_phy_ops:
|
||||
ethtool_set_ethtool_phy_ops(NULL);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user