From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752064AbdE0Pq6 (ORCPT ); Sat, 27 May 2017 11:46:58 -0400 Received: from mail-qt0-f194.google.com ([209.85.216.194]:36343 "EHLO mail-qt0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750890AbdE0Pqz (ORCPT ); Sat, 27 May 2017 11:46:55 -0400 MIME-Version: 1.0 In-Reply-To: <20170526160936.54265-13-mika.westerberg@linux.intel.com> References: <20170526160936.54265-1-mika.westerberg@linux.intel.com> <20170526160936.54265-13-mika.westerberg@linux.intel.com> From: Andy Shevchenko Date: Sat, 27 May 2017 18:46:53 +0300 Message-ID: Subject: Re: [PATCH v2 12/27] thunderbolt: Refactor and fix parsing of port drom entries To: Mika Westerberg Cc: Greg Kroah-Hartman , Andreas Noever , Michael Jamet , Yehezkel Bernat , Lukas Wunner , Amir Levy , Andy Lutomirski , Mario Limonciello , Jared.Dominguez@dell.com, Andy Shevchenko , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, May 26, 2017 at 7:09 PM, Mika Westerberg wrote: > From: Lukas Wunner > > Currently tb_drom_parse_entry() is only able to parse drom entries of > type TB_DROM_ENTRY_PORT. Rename it to tb_drom_parse_entry_port(). > Fold tb_drom_parse_port_entry() into it. > > Its return value is currently ignored. Evaluate it and abort parsing on > error. > > Change tb_drom_parse_entries() to accommodate for parsing of other entry > types than TB_DROM_ENTRY_PORT. > FWIW: Reviewed-by: Andy Shevchenko > Signed-off-by: Lukas Wunner > Signed-off-by: Mika Westerberg > --- > drivers/thunderbolt/eeprom.c | 32 ++++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/drivers/thunderbolt/eeprom.c b/drivers/thunderbolt/eeprom.c > index e2c1f8a45522..5c7d80a109b1 100644 > --- a/drivers/thunderbolt/eeprom.c > +++ b/drivers/thunderbolt/eeprom.c > @@ -295,25 +295,13 @@ int tb_drom_read_uid_only(struct tb_switch *sw, u64 *uid) > return 0; > } > > -static void tb_drom_parse_port_entry(struct tb_port *port, > - struct tb_drom_entry_port *entry) > -{ > - port->link_nr = entry->link_nr; > - if (entry->has_dual_link_port) > - port->dual_link_port = > - &port->sw->ports[entry->dual_link_port_nr]; > -} > - > -static int tb_drom_parse_entry(struct tb_switch *sw, > - struct tb_drom_entry_header *header) > +static int tb_drom_parse_entry_port(struct tb_switch *sw, > + struct tb_drom_entry_header *header) > { > struct tb_port *port; > int res; > enum tb_port_type type; > > - if (header->type != TB_DROM_ENTRY_PORT) > - return 0; > - > port = &sw->ports[header->index]; > port->disabled = header->port_disabled; > if (port->disabled) > @@ -332,7 +320,10 @@ static int tb_drom_parse_entry(struct tb_switch *sw, > header->len, sizeof(struct tb_drom_entry_port)); > return -EIO; > } > - tb_drom_parse_port_entry(port, entry); > + port->link_nr = entry->link_nr; > + if (entry->has_dual_link_port) > + port->dual_link_port = > + &port->sw->ports[entry->dual_link_port_nr]; > } > return 0; > } > @@ -347,6 +338,7 @@ static int tb_drom_parse_entries(struct tb_switch *sw) > struct tb_drom_header *header = (void *) sw->drom; > u16 pos = sizeof(*header); > u16 drom_size = header->data_len + TB_DROM_DATA_START; > + int res; > > while (pos < drom_size) { > struct tb_drom_entry_header *entry = (void *) (sw->drom + pos); > @@ -356,7 +348,15 @@ static int tb_drom_parse_entries(struct tb_switch *sw) > return -EIO; > } > > - tb_drom_parse_entry(sw, entry); > + switch (entry->type) { > + case TB_DROM_ENTRY_GENERIC: > + break; > + case TB_DROM_ENTRY_PORT: > + res = tb_drom_parse_entry_port(sw, entry); > + break; > + } > + if (res) > + return res; > > pos += entry->len; > } > -- > 2.11.0 > -- With Best Regards, Andy Shevchenko