From eed048ad9e3ce531ebacc3e4d2fbd400d1e66cd6 Mon Sep 17 00:00:00 2001 From: Honggang Li Date: Tue, 16 Apr 2019 00:20:42 -0400 Subject: [PATCH] Rebase mstflint to latest upstream release v4.11.0-4 Signed-off-by: Honggang Li --- .gitignore | 1 + 0001-Fix-shebang-for-python-scripts.patch | 119 ------------ ...hen-compiled-with-CXXFLAGS-Wp-D_GLIB.patch | 26 --- ...format-for-mlxfwreset_status_checker.patch | 180 ------------------ mstflint.spec | 13 +- ...-with-mstfwreset-in-mstflint-message.patch | 16 +- sources | 2 +- 7 files changed, 15 insertions(+), 342 deletions(-) delete mode 100644 0001-Fix-shebang-for-python-scripts.patch delete mode 100644 0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch delete mode 100644 convert-format-for-mlxfwreset_status_checker.patch diff --git a/.gitignore b/.gitignore index 863e77a..7bc0487 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ noarch/ /mstflint-4.10.0.tar.gz /mstflint-4.11.0-2.tar.gz /mstflint-4.11.0-3.tar.gz +/mstflint-4.11.0-4.tar.gz diff --git a/0001-Fix-shebang-for-python-scripts.patch b/0001-Fix-shebang-for-python-scripts.patch deleted file mode 100644 index 22bd73b..0000000 --- a/0001-Fix-shebang-for-python-scripts.patch +++ /dev/null @@ -1,119 +0,0 @@ -From f355d4902890e5b4db15b87903a299697764bc8a Mon Sep 17 00:00:00 2001 -From: Honggang Li -Date: Fri, 8 Feb 2019 21:26:39 -0500 -Subject: [PATCH] Fix shebang for python scripts - -rhel-8 does not support python2. User '#!/usr/bin/python3' for all -python scripts which with a shebang. - -The substitution was done with following bash script. - -==== - -pys=$(find . -type f -name '*.py') - -for f in $pys; do - sed -ne '1p' $f | grep -q -E '^#!/usr/bin' - if [ $? -eq 0 ]; then - echo $f - sed -e '/^#!\/usr\/bin/d' -i $f - sed -e '1 i\#!/usr/bin/python3' -i $f - fi -done -=== - -Signed-off-by: Honggang Li ---- - mtcr_py/test.py | 2 +- - small_utils/mlxfwresetlib/mcra.py | 2 +- - small_utils/mlxfwresetlib/mlnx_peripheral_components.py | 2 +- - small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py | 2 +- - small_utils/mlxfwresetlib/mlxfwreset_status_checker.py | 2 +- - small_utils/mlxfwresetlib/mlxfwreset_utils.py | 2 +- - small_utils/mlxfwresetlib/pci_device.py | 2 +- - small_utils/mstfwreset.py | 2 +- - 8 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/mtcr_py/test.py b/mtcr_py/test.py -index 74c5d28..1e44232 100755 ---- a/mtcr_py/test.py -+++ b/mtcr_py/test.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3 - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # - # This software is available to you under a choice of one of two -diff --git a/small_utils/mlxfwresetlib/mcra.py b/small_utils/mlxfwresetlib/mcra.py -index 2144d43..bc44356 100644 ---- a/small_utils/mlxfwresetlib/mcra.py -+++ b/small_utils/mlxfwresetlib/mcra.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # -diff --git a/small_utils/mlxfwresetlib/mlnx_peripheral_components.py b/small_utils/mlxfwresetlib/mlnx_peripheral_components.py -index 0ddf8d9..469e24b 100644 ---- a/small_utils/mlxfwresetlib/mlnx_peripheral_components.py -+++ b/small_utils/mlxfwresetlib/mlnx_peripheral_components.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # -diff --git a/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py b/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py -index 4971b00..1f34925 100755 ---- a/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py -+++ b/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # -diff --git a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py -index 1d614ac..153c87b 100755 ---- a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py -+++ b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # -diff --git a/small_utils/mlxfwresetlib/mlxfwreset_utils.py b/small_utils/mlxfwresetlib/mlxfwreset_utils.py -index 9b07328..2c64044 100755 ---- a/small_utils/mlxfwresetlib/mlxfwreset_utils.py -+++ b/small_utils/mlxfwresetlib/mlxfwreset_utils.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # -diff --git a/small_utils/mlxfwresetlib/pci_device.py b/small_utils/mlxfwresetlib/pci_device.py -index 69a65ed..04a6c9a 100644 ---- a/small_utils/mlxfwresetlib/pci_device.py -+++ b/small_utils/mlxfwresetlib/pci_device.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # -diff --git a/small_utils/mstfwreset.py b/small_utils/mstfwreset.py -index 6d45200..f764de3 100755 ---- a/small_utils/mstfwreset.py -+++ b/small_utils/mstfwreset.py -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - - # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. - # --- -2.20.1 - diff --git a/0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch b/0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch deleted file mode 100644 index 2908b4b..0000000 --- a/0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/mlxfwops/lib/fs2_ops.cpp b/mlxfwops/lib/fs2_ops.cpp -index 775e242..4af0b9f 100644 ---- a/mlxfwops/lib/fs2_ops.cpp -+++ b/mlxfwops/lib/fs2_ops.cpp -@@ -369,7 +369,7 @@ bool Fs2Operations::checkGen(u_int32_t beg, u_int32_t offs, u_int32_t& next, con - // CRC - Crc16 crc; - std::vector buffv(size); -- u_int32_t *buff = (u_int32_t*)(&(buffv[0])); -+ u_int32_t *buff = (u_int32_t*)(buffv.size() ? (&(buffv[0])) : NULL); - - readBufAux((*_ioAccess), offs + sizeof(gph), buff, size, pr); - -diff --git a/mlxfwops/lib/fs4_ops.cpp b/mlxfwops/lib/fs4_ops.cpp -index eb0ca29..4b10307 100644 ---- a/mlxfwops/lib/fs4_ops.cpp -+++ b/mlxfwops/lib/fs4_ops.cpp -@@ -403,7 +403,7 @@ bool Fs4Operations::verifyTocEntries(u_int32_t tocAddr, bool show_itoc, bool isD - - // Only when we have full verify or the info of this section should be collected for query - std::vector buffv(entrySizeInBytes); -- u_int8_t *buff = (u_int8_t *)(&(buffv[0])); -+ u_int8_t *buff = (u_int8_t *)(buffv.size() ? (&(buffv[0])) : NULL); - - if (show_itoc) { - cx5fw_itoc_entry_dump(&tocEntry, stdout); diff --git a/convert-format-for-mlxfwreset_status_checker.patch b/convert-format-for-mlxfwreset_status_checker.patch deleted file mode 100644 index 52a8f39..0000000 --- a/convert-format-for-mlxfwreset_status_checker.patch +++ /dev/null @@ -1,180 +0,0 @@ -diff --git a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py -index 36b82ff..1d614ac 100755 ---- a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py -+++ b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py -@@ -1,87 +1,87 @@ --#!/usr/bin/python -- --# Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. --# --# This software is available to you under a choice of one of two --# licenses. You may choose to be licensed under the terms of the GNU --# General Public License (GPL) Version 2, available from the file --# COPYING in the main directory of this source tree, or the --# OpenIB.org BSD license below: --# --# Redistribution and use in source and binary forms, with or --# without modification, are permitted provided that the following --# conditions are met: --# --# - Redistributions of source code must retain the above --# copyright notice, this list of conditions and the following --# disclaimer. --# --# - Redistributions in binary form must reproduce the above --# copyright notice, this list of conditions and the following --# disclaimer in the documentation and/or other materials --# provided with the distribution. --# --# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, --# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND --# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS --# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN --# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN --# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE --# SOFTWARE. --#-- -- --""" --* $Id : fwreset_status_checker.py 2017-11-28 --* $Authors : Ahmad Soboh (ahmads@mellanox.com) --""" -- --###################################################################### --# Description: FirmwareResetStatusChecker --# OS Support : Linux/Windows. --###################################################################### -- -- --class FirmwareResetStatusChecker(object): -- -- FirmwareUptimeStatusInit = 0x0 -- FirmwareUptimeStatusBeforeDone = 0x1 -- FirmwareUptimeStatusAfterDone = 0x2 -- FirmwareUptimeStatusError = 0x3 -- -- FirmwareResetStatusDone = 0x0 -- FirmwareResetStatusFailed = 0x1 -- FirmwareResetStatusUnknown = 0x2 -- -- def __init__(self, regAccessObj): -- self._RegAccessObj = regAccessObj -- self._UptimeBeforeReset = 0x0 -- self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit -- self._UptimeAfterReset = 0x0 -- self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit -- -- def UpdateUptimeBeforeReset(self): -- try: -- self._UptimeBeforeReset = self._RegAccessObj.getFWUptime() -- self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone -- except Exception as e: -- self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError -- -- def UpdateUptimeAfterReset(self): -- try: -- self._UptimeAfterReset = self._RegAccessObj.getFWUptime() -- self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone -- except Exception as e: -- self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError -- -- def GetStatus(self): -- if self._UptimeBeforeStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone and\ -- self._UptimeAfterStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone: -- if self._UptimeAfterReset < self._UptimeBeforeReset: -- return FirmwareResetStatusChecker.FirmwareResetStatusDone -- else: -- if self._UptimeBeforeReset > 5: #5 seconds -- return FirmwareResetStatusChecker.FirmwareResetStatusFailed -- else: -- return FirmwareResetStatusChecker.FirmwareResetStatusUnknown -- return FirmwareResetStatusChecker.FirmwareResetStatusUnknown -\ No newline at end of file -+#!/usr/bin/python -+ -+# Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. -+# -+# This software is available to you under a choice of one of two -+# licenses. You may choose to be licensed under the terms of the GNU -+# General Public License (GPL) Version 2, available from the file -+# COPYING in the main directory of this source tree, or the -+# OpenIB.org BSD license below: -+# -+# Redistribution and use in source and binary forms, with or -+# without modification, are permitted provided that the following -+# conditions are met: -+# -+# - Redistributions of source code must retain the above -+# copyright notice, this list of conditions and the following -+# disclaimer. -+# -+# - Redistributions in binary form must reproduce the above -+# copyright notice, this list of conditions and the following -+# disclaimer in the documentation and/or other materials -+# provided with the distribution. -+# -+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+# SOFTWARE. -+#-- -+ -+""" -+* $Id : fwreset_status_checker.py 2017-11-28 -+* $Authors : Ahmad Soboh (ahmads@mellanox.com) -+""" -+ -+###################################################################### -+# Description: FirmwareResetStatusChecker -+# OS Support : Linux/Windows. -+###################################################################### -+ -+ -+class FirmwareResetStatusChecker(object): -+ -+ FirmwareUptimeStatusInit = 0x0 -+ FirmwareUptimeStatusBeforeDone = 0x1 -+ FirmwareUptimeStatusAfterDone = 0x2 -+ FirmwareUptimeStatusError = 0x3 -+ -+ FirmwareResetStatusDone = 0x0 -+ FirmwareResetStatusFailed = 0x1 -+ FirmwareResetStatusUnknown = 0x2 -+ -+ def __init__(self, regAccessObj): -+ self._RegAccessObj = regAccessObj -+ self._UptimeBeforeReset = 0x0 -+ self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit -+ self._UptimeAfterReset = 0x0 -+ self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit -+ -+ def UpdateUptimeBeforeReset(self): -+ try: -+ self._UptimeBeforeReset = self._RegAccessObj.getFWUptime() -+ self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone -+ except Exception as e: -+ self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError -+ -+ def UpdateUptimeAfterReset(self): -+ try: -+ self._UptimeAfterReset = self._RegAccessObj.getFWUptime() -+ self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone -+ except Exception as e: -+ self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError -+ -+ def GetStatus(self): -+ if self._UptimeBeforeStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone and\ -+ self._UptimeAfterStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone: -+ if self._UptimeAfterReset < self._UptimeBeforeReset: -+ return FirmwareResetStatusChecker.FirmwareResetStatusDone -+ else: -+ if self._UptimeBeforeReset > 5: #5 seconds -+ return FirmwareResetStatusChecker.FirmwareResetStatusFailed -+ else: -+ return FirmwareResetStatusChecker.FirmwareResetStatusUnknown -+ return FirmwareResetStatusChecker.FirmwareResetStatusUnknown diff --git a/mstflint.spec b/mstflint.spec index 1ba8804..49be89d 100644 --- a/mstflint.spec +++ b/mstflint.spec @@ -3,15 +3,12 @@ Name: mstflint Summary: Mellanox firmware burning tool Version: 4.11.0 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2+ or BSD Group: Applications/System -Source: https://github.com/Mellanox/mstflint/releases/download/v4.11.0-3/mstflint-4.11.0-3.tar.gz -Patch1: convert-format-for-mlxfwreset_status_checker.patch -Patch2: 0001-Fix-shebang-for-python-scripts.patch +Source: https://github.com/Mellanox/mstflint/releases/download/v4.11.0-4/mstflint-4.11.0-4.tar.gz Patch3: extend-buffer.patch Patch4: add-default-link-flags-for-shared-libraries.patch -Patch5: 0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch Patch6: replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch Url: https://github.com/Mellanox/mstflint BuildRequires: libstdc++-devel, zlib-devel, libibmad-devel, gcc-c++, gcc @@ -29,11 +26,8 @@ for network adapters based on Mellanox Technologies chips. %prep %setup -q -%patch1 -p1 -%patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 %patch6 -p1 find . -type f -iname '*.[ch]' -exec chmod a-x '{}' ';' find . -type f -iname '*.cpp' -exec chmod a-x '{}' ';' @@ -71,6 +65,9 @@ find %{buildroot} -type f -name pci_device.py -exec chmod -v a+x '{}' ';' %{_mandir}/man1/* %changelog +* Mon Apr 15 2019 Honggang Li - 4.11.0-5 +- Rebase mstflint to latest upstream release v4.11.0-4 + * Fri Feb 22 2019 Honggang Li - 4.11.0-4 - Fix mstflint segment fault issue for ConnectX-5 HCA - Resolves: 1679844 diff --git a/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch b/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch index ca4201f..48c32d8 100644 --- a/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch +++ b/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch @@ -1,8 +1,8 @@ diff --git a/flint/subcommands.cpp b/flint/subcommands.cpp -index 8c85e55..0822e8b 100644 +index 3840579..3d2680b 100644 --- a/flint/subcommands.cpp +++ b/flint/subcommands.cpp -@@ -2997,7 +2997,7 @@ FlintStatus SgSubCommand::sgFs2() +@@ -3018,7 +3018,7 @@ FlintStatus SgSubCommand::sgFs2() return FLINT_SUCCESS; } @@ -12,15 +12,15 @@ index 8c85e55..0822e8b 100644 FlintStatus SgSubCommand::sgFs3() { diff --git a/mlxfwops/lib/flint_base.h b/mlxfwops/lib/flint_base.h -index eb434dc..e851085 100644 +index be7a913..e7e7b64 100644 --- a/mlxfwops/lib/flint_base.h +++ b/mlxfwops/lib/flint_base.h -@@ -394,7 +394,7 @@ struct BOARD_ID { - #define TLV_FORMAT_SECT "TLVs format section" +@@ -395,7 +395,7 @@ struct BOARD_ID { #define TRACER_HASH_SECT "Tracer Hash section" #define REBOOT_REQUIRED_STR "To load new FW run reboot machine." + #ifndef MST_UL -#define REBOOT_OR_FWRESET_REQUIRED_STR "To load new FW run mlxfwreset or reboot machine." +#define REBOOT_OR_FWRESET_REQUIRED_STR "To load new FW run mstfwreset or reboot machine." - #define numbel(x) (sizeof(x) / sizeof((x)[0])) - - void report(const char *format, ...); + #else + #define REBOOT_OR_FWRESET_REQUIRED_STR "To load new FW run mstfwreset or reboot machine." + #endif diff --git a/sources b/sources index 66955ea..874bf36 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mstflint-4.11.0-3.tar.gz) = a7482442df08f97a6e225f8352ce17d361abda1ebe1cff6e9350ece31aaa36c1a7fb1d28751acef7a40ef9f53801aa9b4bfe97f210a9a97c3d2030961dc99da3 +SHA512 (mstflint-4.11.0-4.tar.gz) = cdcae2ccf2dc5b24f03fe80b9abc3c8f198254b77eb4f20e48b9473e21b817305f800758147e9bd61642e53698bf9e1d22397c0cae6d8eb1a759f68626d499a2