Module Name: src
Committed By: ryo
Date: Thu Sep 24 05:13:03 UTC 2020
Modified Files:
src/sys/dev/pci: if_aq.c
Log Message:
add __aligned() to all __packed structures.
suppress warnings, and allow to compiler to generate more efficent code.
To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 src/sys/dev/pci/if_aq.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/if_aq.c
diff -u src/sys/dev/pci/if_aq.c:1.18 src/sys/dev/pci/if_aq.c:1.19
--- src/sys/dev/pci/if_aq.c:1.18 Thu Sep 24 05:09:46 2020
+++ src/sys/dev/pci/if_aq.c Thu Sep 24 05:13:03 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: if_aq.c,v 1.18 2020/09/24 05:09:46 ryo Exp $ */
+/* $NetBSD: if_aq.c,v 1.19 2020/09/24 05:13:03 ryo Exp $ */
/**
* aQuantia Corporation Network Driver
@@ -62,7 +62,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_aq.c,v 1.18 2020/09/24 05:09:46 ryo Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_aq.c,v 1.19 2020/09/24 05:13:03 ryo Exp $");
#ifdef _KERNEL_OPT
#include "opt_if_aq.h"
@@ -653,7 +653,7 @@ typedef struct aq_mailbox_header {
uint32_t version;
uint32_t transaction_id;
int32_t error;
-} __packed aq_mailbox_header_t;
+} __packed __aligned(4) aq_mailbox_header_t;
typedef struct aq_hw_stats_s {
uint32_t uprc;
@@ -674,12 +674,12 @@ typedef struct aq_hw_stats_s {
uint32_t prc;
uint32_t dpc; /* not exists in fw2x_msm_statistics */
uint32_t cprc; /* not exists in fw2x_msm_statistics */
-} __packed aq_hw_stats_s_t;
+} __packed __aligned(4) aq_hw_stats_s_t;
typedef struct fw1x_mailbox {
aq_mailbox_header_t header;
aq_hw_stats_s_t msm;
-} __packed fw1x_mailbox_t;
+} __packed __aligned(4) fw1x_mailbox_t;
typedef struct fw2x_msm_statistics {
uint32_t uprc;
@@ -698,16 +698,16 @@ typedef struct fw2x_msm_statistics {
uint32_t ubtc;
uint32_t ptc;
uint32_t prc;
-} __packed fw2x_msm_statistics_t;
+} __packed __aligned(4) fw2x_msm_statistics_t;
typedef struct fw2x_phy_cable_diag_data {
uint32_t lane_data[4];
-} __packed fw2x_phy_cable_diag_data_t;
+} __packed __aligned(4) fw2x_phy_cable_diag_data_t;
typedef struct fw2x_capabilities {
uint32_t caps_lo;
uint32_t caps_hi;
-} __packed fw2x_capabilities_t;
+} __packed __aligned(4) fw2x_capabilities_t;
typedef struct fw2x_mailbox { /* struct fwHostInterface */
aq_mailbox_header_t header;
@@ -726,7 +726,7 @@ typedef struct fw2x_mailbox { /* struct
fw2x_capabilities_t caps;
/* ... */
-} __packed fw2x_mailbox_t;
+} __packed __aligned(4) fw2x_mailbox_t;
typedef enum aq_link_speed {
AQ_LINK_NONE = 0,
@@ -768,7 +768,7 @@ enum aq_media_type {
struct aq_rx_desc_read {
uint64_t buf_addr;
uint64_t hdr_addr;
-} __packed;
+} __packed __aligned(8);
struct aq_rx_desc_wb {
uint32_t type;
@@ -814,12 +814,12 @@ struct aq_rx_desc_wb {
uint16_t pkt_len;
uint16_t next_desc_ptr;
uint16_t vlan;
-} __packed;
+} __packed __aligned(4);
typedef union aq_rx_desc {
struct aq_rx_desc_read read;
struct aq_rx_desc_wb wb;
-} __packed aq_rx_desc_t;
+} __packed __aligned(8) aq_rx_desc_t;
typedef struct aq_tx_desc {
uint64_t buf_addr;
@@ -844,7 +844,7 @@ typedef struct aq_tx_desc {
#define AQ_TXDESC_CTL2_LEN __BITS(31,14)
#define AQ_TXDESC_CTL2_CTX_EN __BIT(13)
#define AQ_TXDESC_CTL2_CTX_IDX __BIT(12)
-} __packed aq_tx_desc_t;
+} __packed __aligned(8) aq_tx_desc_t;
struct aq_txring {
struct aq_softc *txr_sc;