Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F160196020
D57435.id179193.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
14 KB
Referenced Files
None
Subscribers
None
D57435.id179193.diff
View Options
diff --git a/sys/dev/aq/aq_common.h b/sys/dev/aq/aq_common.h
--- a/sys/dev/aq/aq_common.h
+++ b/sys/dev/aq/aq_common.h
@@ -38,9 +38,6 @@
#include <sys/types.h>
-#define ETIME ETIMEDOUT
-#define EOK 0
-
#define BIT(nr) (1UL << (nr))
#define usec_delay(x) DELAY(x)
@@ -50,16 +47,12 @@
#define msec_delay_irq(x) DELAY(x*1000)
#endif
-#define AQ_HW_WAIT_FOR(_B_, _US_, _N_) \
-do { \
- unsigned int i; \
- for (i = _N_; (!(_B_)) && i; --i) { \
+#define AQ_HW_WAIT_FOR(_B_, _US_, _N_) ({ \
+ unsigned int _i; \
+ for (_i = (_N_); !(_B_) && _i; --_i) \
usec_delay(_US_); \
- } \
- if (!i) { \
- err = -1; \
- } \
-} while (0)
+ (_i == 0) ? ETIMEDOUT : 0; \
+})
#define LOWORD(a) ((uint16_t)(a))
diff --git a/sys/dev/aq/aq_fw.c b/sys/dev/aq/aq_fw.c
--- a/sys/dev/aq/aq_fw.c
+++ b/sys/dev/aq/aq_fw.c
@@ -112,7 +112,7 @@
if (k == 1000) {
aq_log_error("Neither RBL nor FLB started");
- return (-EBUSY);
+ return (EBUSY);
}
hw->rbl_enabled = bootExitCode != 0;
@@ -133,7 +133,7 @@
aq_fw_bootloader_mode mode = boot_mode_unknown;
int err = mac_soft_reset_(hw, &mode);
- if (err < 0) {
+ if (err != 0) {
aq_log_error("MAC reset failed: %d", err);
return (err);
}
@@ -151,12 +151,12 @@
case boot_mode_unknown:
aq_log_error("F/W bootload error: unknown bootloader type");
- return (-ENOTSUP);
+ return (ENOTSUP);
case boot_mode_rbl_host_bootload:
#if AQ_CFG_HOST_BOOT_DISABLE
aq_log_error("RBL> Host Bootload mode: this driver does not support Host Boot");
- return (-ENOTSUP);
+ return (ENOTSUP);
#else
trace(dbg_init, "RBL> Host Bootload mode");
break;
@@ -168,7 +168,7 @@
*/
aq_log_error("RBL> F/W Host Bootload not implemented");
- return (-ENOTSUP);
+ return (ENOTSUP);
}
int
@@ -184,16 +184,16 @@
if (hw->fw_version.major_version == 1) {
trace(dbg_init, "using F/W ops v1.x");
hw->fw_ops = &aq_fw1x_ops;
- return (EOK);
+ return (0);
} else if (hw->fw_version.major_version >= 2) {
trace(dbg_init, "using F/W ops v2.x");
hw->fw_ops = &aq_fw2x_ops;
- return (EOK);
+ return (0);
}
aq_log_error("aq_fw_ops_init(): invalid F/W version %#x",
hw->fw_version.raw);
- return (-ENOTSUP);
+ return (ENOTSUP);
}
@@ -260,7 +260,7 @@
if (flb_status == 0) {
trace_error(dbg_init,
"FLB> MAC kickstart failed: timed out");
- return (false);
+ return (ETIMEDOUT);
}
trace(dbg_init, "FLB> MAC kickstart done, %d ms", k);
@@ -290,11 +290,11 @@
if (!restart_completed) {
trace_error(dbg_init, "FLB> Global Soft Reset failed");
- return (false);
+ return (ETIMEDOUT);
}
trace(dbg_init, "FLB> F/W restart: %d ms", k * 10);
- return (true);
+ return (0);
}
int
@@ -331,7 +331,7 @@
if (rbl_status == 0 || rbl_status == 0xDEAD) {
trace_error(dbg_init, "RBL> RBL restart failed: timeout");
- return (-EBUSY);
+ return (EBUSY);
}
if (rbl_status == RBL_STATUS_SUCCESS) {
@@ -344,10 +344,10 @@
trace(dbg_init, "RBL> reset complete! [Host Bootload]");
} else {
trace_error(dbg_init, "unknown RBL status 0x%x", rbl_status);
- return (-EBUSY);
+ return (EBUSY);
}
- return (EOK);
+ return (0);
}
int
@@ -355,12 +355,12 @@
{
for (int i = 0; i < MAC_FW_START_TIMEOUT_MS; ++i) {
if ((hw->fw_version.raw = AQ_READ_REG(hw, 0x18)) != 0)
- return (EOK);
+ return (0);
msec_delay(1);
}
trace_error(dbg_init,
"timeout waiting for reg 0x18. MAC f/w NOT READY");
- return (-EBUSY);
+ return (EBUSY);
}
diff --git a/sys/dev/aq/aq_fw1x.c b/sys/dev/aq/aq_fw1x.c
--- a/sys/dev/aq/aq_fw1x.c
+++ b/sys/dev/aq/aq_fw1x.c
@@ -186,7 +186,7 @@
* Compare transaction ID to initial value.
* If it's different means f/w is alive. We're done.
*/
- return (EOK);
+ return (0);
}
/*
@@ -197,7 +197,7 @@
}
trace_error(dbg_init, "F/W 1.x reset finalize timeout");
- return (-EBUSY);
+ return (EBUSY);
}
int
@@ -213,7 +213,7 @@
AQ_WRITE_REG(hw, FW1X_MPI_CONTROL_ADR, state.val);
- return (EOK);
+ return (0);
}
int
@@ -250,15 +250,15 @@
*fc = aq_fw_fc_none;
- AQ_DBG_EXIT(EOK);
- return (EOK);
+ AQ_DBG_EXIT(0);
+ return (0);
}
int
fw1x_get_mac_addr(struct aq_hw* hw, uint8_t* mac)
{
- int err = -EFAULT;
+ int err = EFAULT;
uint32_t mac_addr[2];
AQ_DBG_ENTER();
@@ -266,13 +266,13 @@
uint32_t efuse_shadow_addr = AQ_READ_REG(hw, 0x374);
if (efuse_shadow_addr == 0) {
trace_error(dbg_init, "couldn't read eFUSE Shadow Address");
- AQ_DBG_EXIT(-EFAULT);
- return (-EFAULT);
+ AQ_DBG_EXIT(EFAULT);
+ return (EFAULT);
}
err = aq_hw_fw_downld_dwords(hw, efuse_shadow_addr + (40 * 4),
mac_addr, ARRAY_SIZE(mac_addr));
- if (err < 0) {
+ if (err != 0) {
mac_addr[0] = 0;
mac_addr[1] = 0;
AQ_DBG_EXIT(err);
@@ -287,8 +287,8 @@
trace(dbg_init, "fw1x> eFUSE MAC addr -> %02x-%02x-%02x-%02x-%02x-%02x",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
- AQ_DBG_EXIT(EOK);
- return (EOK);
+ AQ_DBG_EXIT(0);
+ return (0);
}
int
@@ -300,7 +300,7 @@
err = aq_hw_fw_downld_dwords(hw, hw->mbox_addr,
(uint32_t*)(void*)&hw->mbox, sizeof hw->mbox / sizeof(uint32_t));
- if (err >= 0) {
+ if (err == 0) {
if (stats != &hw->mbox.stats)
memcpy(stats, &hw->mbox.stats, sizeof *stats);
diff --git a/sys/dev/aq/aq_fw2x.c b/sys/dev/aq/aq_fw2x.c
--- a/sys/dev/aq/aq_fw2x.c
+++ b/sys/dev/aq/aq_fw2x.c
@@ -240,7 +240,7 @@
int err = aq_hw_fw_downld_dwords(hw,
hw->mbox_addr + offsetof(fw2x_mailbox, caps),
(uint32_t*)&caps, sizeof caps/sizeof(uint32_t));
- if (err == EOK) {
+ if (err == 0) {
hw->fw_caps = caps.caps_lo | ((uint64_t)caps.caps_hi << 32);
trace(dbg_init,
"fw2x> F/W capabilities mask = %llx",
@@ -250,8 +250,8 @@
"fw2x> can't get F/W capabilities mask, error %d", err);
}
- AQ_DBG_EXIT(EOK);
- return (EOK);
+ AQ_DBG_EXIT(err);
+ return (err);
}
@@ -310,12 +310,12 @@
default:
trace_error(dbg_init, "fw2x> unknown MPI state %d", mode);
- return (-EINVAL);
+ return (EINVAL);
}
set_mpi_ctrl_(hw, mpi_ctrl);
- AQ_DBG_EXIT(EOK);
- return (EOK);
+ AQ_DBG_EXIT(0);
+ return (0);
}
int
@@ -355,14 +355,14 @@
(32 + CAPS_HI_PAUSE);
// AQ_DBG_EXIT(0);
- return (EOK);
+ return (0);
}
int
fw2x_get_mac_addr(struct aq_hw* hw, uint8_t* mac)
{
- int err = -EFAULT;
+ int err = EFAULT;
uint32_t mac_addr[2];
AQ_DBG_ENTER();
@@ -370,13 +370,13 @@
uint32_t efuse_shadow_addr = AQ_READ_REG(hw, 0x364);
if (efuse_shadow_addr == 0) {
trace_error(dbg_init, "couldn't read eFUSE Shadow Address");
- AQ_DBG_EXIT(-EFAULT);
- return (-EFAULT);
+ AQ_DBG_EXIT(EFAULT);
+ return (EFAULT);
}
err = aq_hw_fw_downld_dwords(hw, efuse_shadow_addr + (40 * 4), mac_addr,
ARRAY_SIZE(mac_addr));
- if (err < 0) {
+ if (err != 0) {
mac_addr[0] = 0;
mac_addr[1] = 0;
AQ_DBG_EXIT(err);
@@ -388,8 +388,8 @@
memcpy(mac, (uint8_t*)mac_addr, ETHER_ADDR_LEN);
- AQ_DBG_EXIT(EOK);
- return (EOK);
+ AQ_DBG_EXIT(0);
+ return (0);
}
static inline void
@@ -468,14 +468,14 @@
if ((hw->fw_caps & FW2X_CAP_STATISTICS) == 0) {
trace_warn(dbg_fw, "fw2x> statistics not supported by F/W");
- return (-ENOTSUP);
+ return (ENOTSUP);
}
// Tell F/W to update the statistics.
if (!toggle_mpi_ctrl_and_wait_(hw, FW2X_CAP_STATISTICS, 1, 25)) {
trace_error(dbg_fw, "fw2x> statistics update timeout");
- AQ_DBG_EXIT(-ETIME);
- return (-ETIME);
+ AQ_DBG_EXIT(ETIMEDOUT);
+ return (ETIMEDOUT);
}
err = aq_hw_fw_downld_dwords(hw,
@@ -484,7 +484,7 @@
fw2x_stats_to_fw_stats_(stats, &fw2x_stats);
- if (err != EOK)
+ if (err != 0)
trace_error(dbg_fw,
"fw2x> download statistics data FAILED, error %d", err);
diff --git a/sys/dev/aq/aq_hw.c b/sys/dev/aq/aq_hw.c
--- a/sys/dev/aq/aq_hw.c
+++ b/sys/dev/aq/aq_hw.c
@@ -81,16 +81,16 @@
int err = 0;
// AQ_DBG_ENTER();
- AQ_HW_WAIT_FOR(reg_glb_cpu_sem_get(hw, AQ_HW_FW_SM_RAM) == 1U, 1U,
+ err = AQ_HW_WAIT_FOR(reg_glb_cpu_sem_get(hw, AQ_HW_FW_SM_RAM) == 1U, 1U,
10000U);
- if (err < 0) {
+ if (err != 0) {
bool is_locked;
reg_glb_cpu_sem_set(hw, 1U, AQ_HW_FW_SM_RAM);
is_locked = reg_glb_cpu_sem_get(hw, AQ_HW_FW_SM_RAM);
if (!is_locked) {
- err = -ETIME;
+ err = ETIMEDOUT;
goto err_exit;
}
}
@@ -101,10 +101,10 @@
mif_mcp_up_mailbox_execute_operation_set(hw, 1);
if (IS_CHIP_FEATURE(hw, REVISION_B1))
- AQ_HW_WAIT_FOR(a != mif_mcp_up_mailbox_addr_get(hw),
+ err = AQ_HW_WAIT_FOR(a != mif_mcp_up_mailbox_addr_get(hw),
1U, 1000U);
else
- AQ_HW_WAIT_FOR(!mif_mcp_up_mailbox_busy_get(hw), 1,
+ err = AQ_HW_WAIT_FOR(!mif_mcp_up_mailbox_busy_get(hw), 1,
1000U);
*(p++) = mif_mcp_up_mailbox_data_get(hw);
@@ -142,16 +142,16 @@
hw->fw_version.raw = 0;
err = aq_fw_reset(hw);
- if (err != EOK) {
+ if (err != 0) {
aq_log_error("aq_hw_init_ucp(): F/W reset failed, err %d", err);
return (err);
}
aq_hw_chip_features_init(hw, &hw->chip_features);
err = aq_fw_ops_init(hw);
- if (err < 0) {
+ if (err != 0) {
aq_log_error("could not initialize F/W ops, err %d", err);
- return (-1);
+ return (err);
}
if (hw->fw_version.major_version == 1) {
@@ -169,7 +169,7 @@
}
/* check 10 times by 1ms */
- AQ_HW_WAIT_FOR((hw->mbox_addr = AQ_READ_REG(hw, 0x360)) != 0, 400U, 20);
+ err = AQ_HW_WAIT_FOR((hw->mbox_addr = AQ_READ_REG(hw, 0x360)) != 0, 400U, 20);
aq_hw_fw_version ver_expected = { .raw = AQ_CFG_FW_MIN_VER_EXPECTED };
if (!aq_hw_ver_match(&ver_expected, &hw->fw_version))
@@ -187,7 +187,7 @@
AQ_DBG_ENTER();
err = aq_hw_init_ucp(hw);
- if (err < 0)
+ if (err != 0)
goto err_exit;
err_exit:
@@ -204,11 +204,11 @@
if (hw->fw_ops && hw->fw_ops->get_stats) {
err = hw->fw_ops->get_stats(hw, &pmbox->stats);
} else {
- err = -ENOTSUP;
+ err = ENOTSUP;
aq_log_error("get_stats() not supported by F/W");
}
- if (err == EOK) {
+ if (err == 0) {
pmbox->stats.dpc = reg_rx_dma_stat_counter7get(hw);
pmbox->stats.cprc = stats_rx_lro_coalesced_pkt_count0_get(hw);
}
@@ -220,7 +220,7 @@
static int
aq_hw_mpi_set(struct aq_hw *hw, enum aq_hw_fw_mpi_state_e state, uint32_t speed)
{
- int err = -ENOTSUP;
+ int err = ENOTSUP;
AQ_DBG_ENTERA("speed %d", speed);
if (hw->fw_ops && hw->fw_ops->set_mode) {
@@ -242,7 +242,7 @@
int
aq_hw_get_link_state(struct aq_hw *hw, uint32_t *link_speed, struct aq_hw_fc_info *fc_neg)
{
- int err = EOK;
+ int err = 0;
// AQ_DBG_ENTER();
@@ -254,11 +254,11 @@
err = hw->fw_ops->get_mode(hw, &mode, &speed, &fc);
} else {
aq_log_error("get_mode() not supported by F/W");
- AQ_DBG_EXIT(-ENOTSUP);
- return (-ENOTSUP);
+ AQ_DBG_EXIT(ENOTSUP);
+ return (ENOTSUP);
}
- if (err < 0) {
+ if (err != 0) {
aq_log_error("get_mode() failed, err %d", err);
AQ_DBG_EXIT(err);
return (err);
@@ -298,7 +298,7 @@
int
aq_hw_get_mac_permanent(struct aq_hw *hw, uint8_t *mac)
{
- int err = -ENOTSUP;
+ int err = ENOTSUP;
AQ_DBG_ENTER();
if (hw->fw_ops && hw->fw_ops->get_mac_addr)
@@ -330,7 +330,7 @@
h >>= 8;
mac[0] = (uint8_t)(0xFFU & h);
- err = EOK;
+ err = 0;
}
AQ_DBG_EXIT(err);
@@ -366,15 +366,15 @@
AQ_DBG_ENTER();
err = aq_fw_reset(hw);
- if (err < 0)
+ if (err != 0)
goto err_exit;
itr_irq_reg_res_dis_set(hw, 0);
itr_res_irq_set(hw, 1);
/* check 10 times by 1ms */
- AQ_HW_WAIT_FOR(itr_res_irq_get(hw) == 0, 1000, 10);
- if (err < 0) {
+ err = AQ_HW_WAIT_FOR(itr_res_irq_get(hw) == 0, 1000, 10);
+ if (err != 0) {
printf("atlantic: IRQ reset failed: %d", err);
goto err_exit;
}
@@ -451,21 +451,14 @@
/* TX checksums offloads*/
tpo_ipv4header_crc_offload_en_set(hw, 1);
tpo_tcp_udp_crc_offload_en_set(hw, 1);
- if (err < 0)
- goto err_exit;
/* RX checksums offloads*/
rpo_ipv4header_crc_offload_en_set(hw, 1);
rpo_tcp_udp_crc_offload_en_set(hw, 1);
- if (err < 0)
- goto err_exit;
/* LSO offloads*/
tdm_large_send_offload_en_set(hw, 0xFFFFFFFFU);
- if (err < 0)
- goto err_exit;
-/* LRO offloads */
{
uint32_t i = 0;
uint32_t val = (8U < HW_ATL_B0_LRO_RXD_MAX) ? 0x3U :
@@ -500,7 +493,6 @@
err = aq_hw_err_from_flags(hw);
-err_exit:
AQ_DBG_EXIT(err);
return (err);
}
@@ -601,7 +593,7 @@
AQ_DBG_ENTER();
if (!mac_addr) {
- err = -EINVAL;
+ err = EINVAL;
goto err_exit;
}
h = (mac_addr[0] << 8) | (mac_addr[1]);
@@ -649,7 +641,7 @@
aq_hw_qos_set(hw);
err = aq_hw_err_from_flags(hw);
- if (err < 0)
+ if (err != 0)
goto err_exit;
/* Interrupts */
@@ -830,9 +822,9 @@
rpf_rss_key_wr_data_set(self, key_data);
rpf_rss_key_addr_set(self, addr);
rpf_rss_key_wr_en_set(self, 1U);
- AQ_HW_WAIT_FOR(rpf_rss_key_wr_en_get(self) == 0,
+ err = AQ_HW_WAIT_FOR(rpf_rss_key_wr_en_get(self) == 0,
1000U, 10U);
- if (err < 0)
+ if (err != 0)
goto err_exit;
}
@@ -894,9 +886,9 @@
rpf_rss_redir_tbl_wr_data_set(self, bitary[i]);
rpf_rss_redir_tbl_addr_set(self, i);
rpf_rss_redir_wr_en_set(self, 1U);
- AQ_HW_WAIT_FOR(rpf_rss_redir_wr_en_get(self) == 0,
+ err = AQ_HW_WAIT_FOR(rpf_rss_redir_wr_en_get(self) == 0,
1000U, 10U);
- if (err < 0)
+ if (err != 0)
goto err_exit;
}
diff --git a/sys/dev/aq/aq_main.c b/sys/dev/aq/aq_main.c
--- a/sys/dev/aq/aq_main.c
+++ b/sys/dev/aq/aq_main.c
@@ -363,7 +363,7 @@
/* Look up ops and caps. */
rc = aq_hw_mpi_create(hw);
- if (rc < 0) {
+ if (rc != 0) {
AQ_DBG_ERROR(" %s: aq_hw_mpi_create fail err=%d", __func__, rc);
goto fail;
}
@@ -375,10 +375,11 @@
aq_hw_reset(&softc->hw);
aq_hw_capabilities(softc);
- if (aq_hw_get_mac_permanent(hw, hw->mac_addr) < 0) {
+ rc = aq_hw_get_mac_permanent(hw, hw->mac_addr);
+ if (rc != 0) {
AQ_DBG_ERROR("Unable to get mac addr from hw");
goto fail;
- };
+ }
softc->admin_ticks = 0;
@@ -417,7 +418,11 @@
/* iflib will map and release this bar */
scctx->isc_msix_bar = pci_msix_table_bar(softc->dev);
- softc->vlan_tags = bit_alloc(4096, M_AQ, M_NOWAIT);
+ softc->vlan_tags = bit_alloc(4096, M_AQ, M_NOWAIT);
+ if (softc->vlan_tags == NULL) {
+ rc = ENOMEM;
+ goto fail;
+ }
AQ_DBG_EXIT(rc);
return (rc);
@@ -428,7 +433,7 @@
softc->mmio_rid, softc->mmio_res);
AQ_DBG_EXIT(rc);
- return (ENXIO);
+ return (rc);
}
@@ -670,7 +675,7 @@
err = aq_hw_init(&softc->hw, softc->hw.mac_addr, softc->msix,
softc->scctx->isc_intr == IFLIB_INTR_MSIX);
- if (err != EOK) {
+ if (err != 0) {
device_printf(softc->dev, "atlantic: aq_hw_init: %d", err);
}
@@ -686,7 +691,7 @@
"atlantic: aq_ring_tx_init: %d", err);
}
err = aq_ring_tx_start(hw, ring);
- if (err != EOK) {
+ if (err != 0) {
device_printf(softc->dev,
"atlantic: aq_ring_tx_start: %d", err);
}
@@ -699,7 +704,7 @@
"atlantic: aq_ring_rx_init: %d", err);
}
err = aq_ring_rx_start(hw, ring);
- if (err != EOK) {
+ if (err != 0) {
device_printf(softc->dev,
"atlantic: aq_ring_rx_start: %d", err);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Jun 23, 2:13 AM (12 h, 36 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34187016
Default Alt Text
D57435.id179193.diff (14 KB)
Attached To
Mode
D57435: aq(4): adopt native FreeBSD errno convention
Attached
Detach File
Event Timeline
Log In to Comment