From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1Zk5IM-0007Oy-NN for mharc-grub-devel@gnu.org; Thu, 08 Oct 2015 03:07:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35594) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zjq4u-0006RA-Nf for grub-devel@gnu.org; Wed, 07 Oct 2015 10:52:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zjq4o-0002Zs-Np for grub-devel@gnu.org; Wed, 07 Oct 2015 10:52:24 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:31910) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zjq4o-0002ZJ-GT for grub-devel@gnu.org; Wed, 07 Oct 2015 10:52:18 -0400 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id t97EqGFJ017458 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 7 Oct 2015 14:52:17 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0021.oracle.com (8.13.8/8.13.8) with ESMTP id t97EqGwJ026245 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 7 Oct 2015 14:52:16 GMT Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0121.oracle.com (8.13.8/8.13.8) with ESMTP id t97EqG39022259 for ; Wed, 7 Oct 2015 14:52:16 GMT Received: from [10.162.81.23] (/10.162.81.23) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 07 Oct 2015 07:52:15 -0700 Subject: Re: [PATCH V2] ofnet: Do not set SUFFIX for sun4v network devices References: <55ED6F8A.7050904@oracle.com> <1441624391-27379-1-git-send-email-stanislav.kholmanskikh@oracle.com> To: grub-devel@gnu.org From: Stanislav Kholmanskikh Message-ID: <5615319D.50008@oracle.com> Date: Wed, 7 Oct 2015 17:52:13 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <1441624391-27379-1-git-send-email-stanislav.kholmanskikh@oracle.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: userv0021.oracle.com [156.151.31.71] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 156.151.31.81 Cc: vasily.isaenko@oracle.com, allen.pais@oracle.com X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Oct 2015 14:52:25 -0000 Hi! On 09/07/2015 02:13 PM, Stanislav Kholmanskikh wrote: > sun4v vnet devices do not implement the support of duplex and speed > instance attributes. An attempt to open such a device with > the attributes will fail: > > ok select net:speed=auto,duplex=auto > Unknown key 'speed' > Unknown key 'duplex' > Manual Configuration: Host IP, boot server and filename must be specified > WARNING: /virtual-devices@100/channel-devices@200/network@0: Can't open OBP standard TFTP package > > Can't open device > ok > > Therefore, let's not set SUFFIX for such devices. > > Signed-off-by: Stanislav Kholmanskikh > --- > Changes since V1: > * handle "compatible" property as an array of strings Could anybody look at it, please? Thanks. > > > grub-core/net/drivers/ieee1275/ofnet.c | 41 ++++++++++++++++++++++++++++++- > 1 files changed, 39 insertions(+), 2 deletions(-) > > diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c > index eea8e71..13970bd 100644 > --- a/grub-core/net/drivers/ieee1275/ofnet.c > +++ b/grub-core/net/drivers/ieee1275/ofnet.c > @@ -305,6 +305,7 @@ search_net_devices (struct grub_ieee1275_devalias *alias) > grub_uint64_t prop; > grub_uint8_t *pprop; > char *shortname; > + char need_suffix = 1; > > if (grub_strcmp (alias->type, "network") != 0) > return 0; > @@ -325,7 +326,43 @@ search_net_devices (struct grub_ieee1275_devalias *alias) > > #define SUFFIX ":speed=auto,duplex=auto,1.1.1.1,dummy,1.1.1.1,1.1.1.1,5,5,1.1.1.1,512" > > - if (!grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX)) > + if (grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX)) > + need_suffix = 0; > + > + /* sun4v vnet devices do not support setting duplex/speed */ > + { > + char *ptr; > + > + grub_ieee1275_finddevice (alias->path, &devhandle); > + > + grub_ieee1275_get_property_length (devhandle, "compatible", &prop_size); > + if (prop_size > 0) > + { > + pprop = grub_malloc (prop_size); > + if (!pprop) > + { > + grub_free (card); > + grub_free (ofdata); > + grub_print_error (); > + return 1; > + } > + > + if (!grub_ieee1275_get_property (devhandle, "compatible", > + pprop, prop_size, NULL)) > + { > + for (ptr = (char *) pprop; ptr - (char *) pprop < prop_size; > + ptr += grub_strlen (ptr) + 1) > + { > + if (!grub_strcmp(ptr, "SUNW,sun4v-network")) > + need_suffix = 0; > + } > + } > + > + grub_free (pprop); > + } > + } > + > + if (need_suffix) > ofdata->path = grub_malloc (grub_strlen (alias->path) + sizeof (SUFFIX)); > else > ofdata->path = grub_malloc (grub_strlen (alias->path) + 1); > @@ -335,7 +372,7 @@ search_net_devices (struct grub_ieee1275_devalias *alias) > return 0; > } > ofdata->suffix = grub_stpcpy (ofdata->path, alias->path); > - if (!grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_NO_OFNET_SUFFIX)) > + if (need_suffix) > grub_memcpy (ofdata->suffix, SUFFIX, sizeof (SUFFIX)); > else > *ofdata->suffix = '\0'; >