From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932115AbcFCJnx (ORCPT ); Fri, 3 Jun 2016 05:43:53 -0400 Received: from rtits2.realtek.com ([60.250.210.242]:58921 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751585AbcFCJnv convert rfc822-to-8bit (ORCPT ); Fri, 3 Jun 2016 05:43:51 -0400 Authenticated-By: X-SpamFilter-By: BOX Solutions SpamTrap 5.56 with qID u539hY1T001277, This message is accepted by code: ctloc85258 From: Hayes Wang To: Mario Limonciello CC: LKML , Netdev , Linux USB , "pali.rohar@gmail.com" , "anthony.wong@canonical.com" , Greg KH Subject: RE: [PATCH v2] r8152: Add support for setting MAC to system's Auxiliary MAC address Thread-Topic: [PATCH v2] r8152: Add support for setting MAC to system's Auxiliary MAC address Thread-Index: AQHRvO/5POzXFHT4ck+lVy5t0X8n/J/V3+KAgAGX3mA= Date: Fri, 3 Jun 2016 09:43:35 +0000 Message-ID: <0835B3720019904CB8F7AA43166CEEB2FED9B5@RTITMBSV03.realtek.com.tw> References: <1464886687-16284-1-git-send-email-mario_limonciello@dell.com> <1464886687-16284-2-git-send-email-mario_limonciello@dell.com> In-Reply-To: <1464886687-16284-2-git-send-email-mario_limonciello@dell.com> Accept-Language: zh-TW, en-US Content-Language: zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.21.177.128] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Mario Limonciello [mailto:mario_limonciello@dell.com] > Sent: Friday, June 03, 2016 12:58 AM [...] > @@ -500,6 +502,7 @@ enum rtl8152_flags { > SELECTIVE_SUSPEND, > PHY_RESET, > SCHEDULE_NAPI, > + MAC_PASSTHRU = 0, I don't think you have to give this a value. > }; > [...] > static int set_ethernet_addr(struct r8152 *tp) > { > struct net_device *dev = tp->netdev; > @@ -1041,6 +1088,10 @@ static int set_ethernet_addr(struct r8152 *tp) > else > ret = pla_ocp_read(tp, PLA_BACKUP, 8, sa.sa_data); > > + /* if system provides auxiliary MAC address */ > + if (get_auxiliary_addr(tp, &sa)) > + ret = 0; It still has problem when tp->version == RTL_VER_01. First, you would read the current MAC address (MAC1) to sa.sa_data. Then sa.sa_data may be modified by MAC2 after get_auxiliary_addr(). However, the MAC2 wouldn't be set to the device, because if (tp->version == RTL_VER_01) ether_addr_copy(dev->dev_addr, sa.sa_data); Therefore, you would find that dev_addr is MAC2, and the device uses MAC1. Best Regards, Hayes