Bug 216588 - head -r312942 via amd64-xtoolchain-gcc: dev/mlx5/mlx5_en/mlx5_en_ethtool.c:675:9: error: assignment of read-only variable 'entry'
Summary: head -r312942 via amd64-xtoolchain-gcc: dev/mlx5/mlx5_en/mlx5_en_ethtool.c:67...
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: amd64 Any
: --- Affects Only Me
Assignee: Hans Petter Selasky
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-30 00:33 UTC by Mark Millard
Modified: 2017-08-03 14:20 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Millard 2017-01-30 00:33:31 UTC
When I attempted to buildworld buildkernel for
-r312942 via use of amd64-xtoolchain-gcc it
stopped with:

--- all_subdir_mlx5en ---
/usr/src/sys/modules/mlx5en/../../dev/mlx5/mlx5_en/mlx5_en_ethtool.c: In function 'mlx5e_create_diagnostics':
/usr/src/sys/modules/mlx5en/../../dev/mlx5/mlx5_en/mlx5_en_ethtool.c:665:9: error: assignment of read-only variable 'entry'
   entry = mlx5_core_pci_diagnostics_table[x];
         ^
/usr/src/sys/modules/mlx5en/../../dev/mlx5/mlx5_en/mlx5_en_ethtool.c:675:9: error: assignment of read-only variable 'entry'
   entry = mlx5_core_general_diagnostics_table[x];
         ^
*** [mlx5_en_ethtool.o] Error code 1

make[4]: stopped in /usr/src/sys/modules/mlx5en
.ERROR_TARGET='mlx5_en_ethtool.o'
.ERROR_META_FILE='/usr/obj/amd64_xtoolchain/amd64.amd64/usr/src/sys/GENERIC-NODBG/modules/usr/src/sys/modules/mlx5en/mlx5_en_ethtool.o.meta'

/usr/src/sys/dev/mlx5/diagnostics.h shows:

struct mlx5_core_diagnostics_entry {
        const char *const desc;
        u16     counter_id;
};

Note the const between * and desc: the pointer is
declared to be constant.

/usr/src/sys/dev/mlx5/mlx5_en/mlx5_en_ethtool.c
shows:

static void
mlx5e_create_diagnostics(struct mlx5e_priv *priv)
{
        struct mlx5_core_diagnostics_entry entry;
. . .
        for (x = 0; x != MLX5_CORE_PCI_DIAGNOSTICS_NUM; x++) {
                entry = mlx5_core_pci_diagnostics_table[x];
. . .
        }
          
        /* create general diagnostics */
        for (x = 0; x != MLX5_CORE_GENERAL_DIAGNOSTICS_NUM; x++) {
                entry = mlx5_core_general_diagnostics_table[x];
 . .
        }
}

which involves assignments to constant pointers: the
desc value is supposed to be constant.
Comment 1 commit-hook freebsd_committer freebsd_triage 2017-01-30 08:35:51 UTC
A commit references this bug:

Author: hselasky
Date: Mon Jan 30 08:35:15 UTC 2017
New revision: 312983
URL: https://svnweb.freebsd.org/changeset/base/312983

Log:
  Make "desc" pointer non-constant inside the mlx5_core_diagnostics_entry
  structure. This fixes compilation with amd64-xtoolchain-gcc.

  PR:			216588
  MFC after:		1 week
  Sponsored by:		Mellanox Technologies

Changes:
  head/sys/dev/mlx5/diagnostics.h
Comment 2 commit-hook freebsd_committer freebsd_triage 2017-08-03 14:19:54 UTC
A commit references this bug:

Author: hselasky
Date: Thu Aug  3 14:19:27 UTC 2017
New revision: 322010
URL: https://svnweb.freebsd.org/changeset/base/322010

Log:
  MFC r312983:
  Make "desc" pointer non-constant inside the mlx5_core_diagnostics_entry
  structure. This fixes compilation with amd64-xtoolchain-gcc.

  PR:			216588
  Sponsored by:		Mellanox Technologies

Changes:
_U  stable/11/
  stable/11/sys/dev/mlx5/diagnostics.h
Comment 3 commit-hook freebsd_committer freebsd_triage 2017-08-03 14:20:59 UTC
A commit references this bug:

Author: hselasky
Date: Thu Aug  3 14:20:19 UTC 2017
New revision: 322011
URL: https://svnweb.freebsd.org/changeset/base/322011

Log:
  MFC r312983:
  Make "desc" pointer non-constant inside the mlx5_core_diagnostics_entry
  structure. This fixes compilation with amd64-xtoolchain-gcc.

  PR:			216588
  Sponsored by:		Mellanox Technologies

Changes:
_U  stable/10/
  stable/10/sys/dev/mlx5/diagnostics.h