]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drivers: Remove explicit invocations of mmiowb()
authorWill Deacon <will.deacon@arm.com>
Fri, 22 Feb 2019 17:14:59 +0000 (17:14 +0000)
committerWill Deacon <will.deacon@arm.com>
Mon, 8 Apr 2019 11:01:02 +0000 (12:01 +0100)
mmiowb() is now implied by spin_unlock() on architectures that require
it, so there is no reason to call it from driver code. This patch was
generated using coccinelle:

@mmiowb@
@@
- mmiowb();

and invoked as:

$ for d in drivers include/linux/qed sound; do \
spatch --include-headers --sp-file mmiowb.cocci --dir $d --in-place; done

NOTE: mmiowb() has only ever guaranteed ordering in conjunction with
spin_unlock(). However, pairing each mmiowb() removal in this patch with
the corresponding call to spin_unlock() is not at all trivial, so there
is a small chance that this change may regress any drivers incorrectly
relying on mmiowb() to order MMIO writes between CPUs using lock-free
synchronisation. If you've ended up bisecting to this commit, you can
reintroduce the mmiowb() calls using wmb() instead, which should restore
the old behaviour on all architectures other than some esoteric ia64
systems.

Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
123 files changed:
drivers/crypto/cavium/nitrox/nitrox_reqmgr.c
drivers/dma/txx9dmac.c
drivers/firewire/ohci.c
drivers/gpu/drm/i915/intel_hdmi.c
drivers/ide/tx4939ide.c
drivers/infiniband/hw/hfi1/chip.c
drivers/infiniband/hw/hfi1/pio.c
drivers/infiniband/hw/hns/hns_roce_hw_v1.c
drivers/infiniband/hw/mlx4/qp.c
drivers/infiniband/hw/mlx5/qp.c
drivers/infiniband/hw/mthca/mthca_cmd.c
drivers/infiniband/hw/mthca/mthca_cq.c
drivers/infiniband/hw/mthca/mthca_qp.c
drivers/infiniband/hw/mthca/mthca_srq.c
drivers/infiniband/hw/qedr/verbs.c
drivers/infiniband/hw/qib/qib_iba6120.c
drivers/infiniband/hw/qib/qib_iba7220.c
drivers/infiniband/hw/qib/qib_iba7322.c
drivers/infiniband/hw/qib/qib_sd7220.c
drivers/media/pci/dt3155/dt3155.c
drivers/memstick/host/jmb38x_ms.c
drivers/misc/ioc4.c
drivers/misc/mei/hw-me.c
drivers/misc/tifm_7xx1.c
drivers/mmc/host/alcor.c
drivers/mmc/host/sdhci.c
drivers/mmc/host/tifm_sd.c
drivers/mmc/host/via-sdmmc.c
drivers/mtd/nand/raw/r852.c
drivers/mtd/nand/raw/txx9ndfmc.c
drivers/net/ethernet/aeroflex/greth.c
drivers/net/ethernet/alacritech/slicoss.c
drivers/net/ethernet/amazon/ena/ena_com.c
drivers/net/ethernet/atheros/atlx/atl1.c
drivers/net/ethernet/atheros/atlx/atl2.c
drivers/net/ethernet/broadcom/bnx2.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/tg3.c
drivers/net/ethernet/cavium/liquidio/cn66xx_device.c
drivers/net/ethernet/cavium/liquidio/octeon_device.c
drivers/net/ethernet/cavium/liquidio/octeon_droq.c
drivers/net/ethernet/cavium/liquidio/request_manager.c
drivers/net/ethernet/intel/e1000/e1000_main.c
drivers/net/ethernet/intel/e1000e/netdev.c
drivers/net/ethernet/intel/fm10k/fm10k_iov.c
drivers/net/ethernet/intel/fm10k/fm10k_main.c
drivers/net/ethernet/intel/i40e/i40e_txrx.c
drivers/net/ethernet/intel/iavf/iavf_txrx.c
drivers/net/ethernet/intel/ice/ice_txrx.c
drivers/net/ethernet/intel/igb/igb_main.c
drivers/net/ethernet/intel/igbvf/netdev.c
drivers/net/ethernet/intel/igc/igc_main.c
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
drivers/net/ethernet/marvell/sky2.c
drivers/net/ethernet/mellanox/mlx4/catas.c
drivers/net/ethernet/mellanox/mlx4/cmd.c
drivers/net/ethernet/mellanox/mlx5/core/cmd.c
drivers/net/ethernet/myricom/myri10ge/myri10ge.c
drivers/net/ethernet/neterion/s2io.c
drivers/net/ethernet/neterion/vxge/vxge-main.c
drivers/net/ethernet/neterion/vxge/vxge-traffic.c
drivers/net/ethernet/qlogic/qed/qed_int.c
drivers/net/ethernet/qlogic/qed/qed_spq.c
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
drivers/net/ethernet/qlogic/qede/qede_fp.c
drivers/net/ethernet/qlogic/qla3xxx.c
drivers/net/ethernet/qlogic/qlge/qlge.h
drivers/net/ethernet/qlogic/qlge/qlge_main.c
drivers/net/ethernet/renesas/ravb_main.c
drivers/net/ethernet/renesas/ravb_ptp.c
drivers/net/ethernet/renesas/sh_eth.c
drivers/net/ethernet/sfc/falcon/io.h
drivers/net/ethernet/sfc/io.h
drivers/net/ethernet/silan/sc92031.c
drivers/net/ethernet/via/via-rhine.c
drivers/net/ethernet/wiznet/w5100.c
drivers/net/ethernet/wiznet/w5300.c
drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/ath5k/mac80211-ops.c
drivers/net/wireless/broadcom/b43/main.c
drivers/net/wireless/broadcom/b43/sysfs.c
drivers/net/wireless/broadcom/b43legacy/ilt.c
drivers/net/wireless/broadcom/b43legacy/main.c
drivers/net/wireless/broadcom/b43legacy/phy.c
drivers/net/wireless/broadcom/b43legacy/pio.h
drivers/net/wireless/broadcom/b43legacy/radio.c
drivers/net/wireless/broadcom/b43legacy/sysfs.c
drivers/net/wireless/intel/iwlegacy/common.h
drivers/net/wireless/intel/iwlwifi/pcie/trans.c
drivers/ntb/hw/idt/ntb_hw_idt.c
drivers/ntb/test/ntb_perf.c
drivers/scsi/bfa/bfa.h
drivers/scsi/bfa/bfa_hw_cb.c
drivers/scsi/bfa/bfa_hw_ct.c
drivers/scsi/bnx2fc/bnx2fc_hwi.c
drivers/scsi/bnx2i/bnx2i_hwi.c
drivers/scsi/megaraid/megaraid_sas_base.c
drivers/scsi/megaraid/megaraid_sas_fusion.c
drivers/scsi/mpt3sas/mpt3sas_base.c
drivers/scsi/qedf/qedf_io.c
drivers/scsi/qedi/qedi_fw.c
drivers/scsi/qla1280.c
drivers/ssb/pci.c
drivers/ssb/pcmcia.c
drivers/staging/comedi/drivers/mite.c
drivers/staging/comedi/drivers/ni_660x.c
drivers/staging/comedi/drivers/ni_mio_common.c
drivers/staging/comedi/drivers/ni_pcidio.c
drivers/staging/comedi/drivers/ni_tio.c
drivers/staging/comedi/drivers/s626.c
drivers/tty/serial/men_z135_uart.c
drivers/tty/serial/serial_txx9.c
drivers/usb/early/xhci-dbc.c
drivers/usb/host/xhci-dbgcap.c
include/linux/qed/qed_if.h
sound/soc/txx9/txx9aclc-ac97.c

index 4c97478d44bd2a3dec901f96846eb9a944cb57d4..5826c2c98a5074b51490ebd65f709f11d66b1521 100644 (file)
@@ -303,8 +303,6 @@ static void post_se_instr(struct nitrox_softreq *sr,
 
        /* Ring doorbell with count 1 */
        writeq(1, cmdq->dbell_csr_addr);
-       /* orders the doorbell rings */
-       mmiowb();
 
        cmdq->write_idx = incr_index(idx, 1, ndev->qlen);
 
@@ -599,8 +597,6 @@ void pkt_slc_resp_tasklet(unsigned long data)
         * MSI-X interrupt generates if Completion count > Threshold
         */
        writeq(slc_cnts.value, cmdq->compl_cnt_csr_addr);
-       /* order the writes */
-       mmiowb();
 
        if (atomic_read(&cmdq->backlog_count))
                schedule_work(&cmdq->backlog_qflush);
index eb45af71d3a343c08fa9f6c8f6db3336b45d56db..e8d0881b64d8938ba23667b5d822095bb6f74153 100644 (file)
@@ -327,7 +327,6 @@ static void txx9dmac_reset_chan(struct txx9dmac_chan *dc)
        channel_writel(dc, SAIR, 0);
        channel_writel(dc, DAIR, 0);
        channel_writel(dc, CCR, 0);
-       mmiowb();
 }
 
 /* Called with dc->lock held and bh disabled */
@@ -954,7 +953,6 @@ static void txx9dmac_chain_dynamic(struct txx9dmac_chan *dc,
        dma_sync_single_for_device(chan2parent(&dc->chan),
                                   prev->txd.phys, ddev->descsize,
                                   DMA_TO_DEVICE);
-       mmiowb();
        if (!(channel_readl(dc, CSR) & TXX9_DMA_CSR_CHNEN) &&
            channel_read_CHAR(dc) == prev->txd.phys)
                /* Restart chain DMA */
@@ -1080,7 +1078,6 @@ static void txx9dmac_free_chan_resources(struct dma_chan *chan)
 static void txx9dmac_off(struct txx9dmac_dev *ddev)
 {
        dma_writel(ddev, MCR, 0);
-       mmiowb();
 }
 
 static int __init txx9dmac_chan_probe(struct platform_device *pdev)
index 45c048751f3bd8a9527631d26673cc7f603fe85e..7183ab34269eb64822cc383f29bb9bd92b1aa86a 100644 (file)
@@ -2939,7 +2939,6 @@ static void set_multichannel_mask(struct fw_ohci *ohci, u64 channels)
        reg_write(ohci, OHCI1394_IRMultiChanMaskLoClear, ~lo);
        reg_write(ohci, OHCI1394_IRMultiChanMaskHiSet, hi);
        reg_write(ohci, OHCI1394_IRMultiChanMaskLoSet, lo);
-       mmiowb();
        ohci->mc_channels = channels;
 }
 
index f125a62eba8cfe687f613d1aca2c2d03955f4b87..a46bffe2b288fafad1db399b7828f4138cef610c 100644 (file)
@@ -182,7 +182,6 @@ static void g4x_write_infoframe(struct intel_encoder *encoder,
 
        I915_WRITE(VIDEO_DIP_CTL, val);
 
-       mmiowb();
        for (i = 0; i < len; i += 4) {
                I915_WRITE(VIDEO_DIP_DATA, *data);
                data++;
@@ -190,7 +189,6 @@ static void g4x_write_infoframe(struct intel_encoder *encoder,
        /* Write every possible data byte to force correct ECC calculation. */
        for (; i < VIDEO_DIP_DATA_SIZE; i += 4)
                I915_WRITE(VIDEO_DIP_DATA, 0);
-       mmiowb();
 
        val |= g4x_infoframe_enable(type);
        val &= ~VIDEO_DIP_FREQ_MASK;
@@ -237,7 +235,6 @@ static void ibx_write_infoframe(struct intel_encoder *encoder,
 
        I915_WRITE(reg, val);
 
-       mmiowb();
        for (i = 0; i < len; i += 4) {
                I915_WRITE(TVIDEO_DIP_DATA(intel_crtc->pipe), *data);
                data++;
@@ -245,7 +242,6 @@ static void ibx_write_infoframe(struct intel_encoder *encoder,
        /* Write every possible data byte to force correct ECC calculation. */
        for (; i < VIDEO_DIP_DATA_SIZE; i += 4)
                I915_WRITE(TVIDEO_DIP_DATA(intel_crtc->pipe), 0);
-       mmiowb();
 
        val |= g4x_infoframe_enable(type);
        val &= ~VIDEO_DIP_FREQ_MASK;
@@ -298,7 +294,6 @@ static void cpt_write_infoframe(struct intel_encoder *encoder,
 
        I915_WRITE(reg, val);
 
-       mmiowb();
        for (i = 0; i < len; i += 4) {
                I915_WRITE(TVIDEO_DIP_DATA(intel_crtc->pipe), *data);
                data++;
@@ -306,7 +301,6 @@ static void cpt_write_infoframe(struct intel_encoder *encoder,
        /* Write every possible data byte to force correct ECC calculation. */
        for (; i < VIDEO_DIP_DATA_SIZE; i += 4)
                I915_WRITE(TVIDEO_DIP_DATA(intel_crtc->pipe), 0);
-       mmiowb();
 
        val |= g4x_infoframe_enable(type);
        val &= ~VIDEO_DIP_FREQ_MASK;
@@ -352,7 +346,6 @@ static void vlv_write_infoframe(struct intel_encoder *encoder,
 
        I915_WRITE(reg, val);
 
-       mmiowb();
        for (i = 0; i < len; i += 4) {
                I915_WRITE(VLV_TVIDEO_DIP_DATA(intel_crtc->pipe), *data);
                data++;
@@ -360,7 +353,6 @@ static void vlv_write_infoframe(struct intel_encoder *encoder,
        /* Write every possible data byte to force correct ECC calculation. */
        for (; i < VIDEO_DIP_DATA_SIZE; i += 4)
                I915_WRITE(VLV_TVIDEO_DIP_DATA(intel_crtc->pipe), 0);
-       mmiowb();
 
        val |= g4x_infoframe_enable(type);
        val &= ~VIDEO_DIP_FREQ_MASK;
@@ -406,7 +398,6 @@ static void hsw_write_infoframe(struct intel_encoder *encoder,
        val &= ~hsw_infoframe_enable(type);
        I915_WRITE(ctl_reg, val);
 
-       mmiowb();
        for (i = 0; i < len; i += 4) {
                I915_WRITE(hsw_dip_data_reg(dev_priv, cpu_transcoder,
                                            type, i >> 2), *data);
@@ -416,7 +407,6 @@ static void hsw_write_infoframe(struct intel_encoder *encoder,
        for (; i < data_size; i += 4)
                I915_WRITE(hsw_dip_data_reg(dev_priv, cpu_transcoder,
                                            type, i >> 2), 0);
-       mmiowb();
 
        val |= hsw_infoframe_enable(type);
        I915_WRITE(ctl_reg, val);
index 67d4a7d4acc8ae5adeabebe8c971fe870b0ba941..88d132edc4e3048f2e682c691b3e5b476b9ba8b6 100644 (file)
@@ -156,7 +156,6 @@ static u16 tx4939ide_check_error_ints(ide_hwif_t *hwif)
                u16 sysctl = tx4939ide_readw(base, TX4939IDE_Sys_Ctl);
 
                tx4939ide_writew(sysctl | 0x4000, base, TX4939IDE_Sys_Ctl);
-               mmiowb();
                /* wait 12GBUSCLK (typ. 60ns @ GBUS200MHz, max 270ns) */
                ndelay(270);
                tx4939ide_writew(sysctl, base, TX4939IDE_Sys_Ctl);
@@ -396,7 +395,6 @@ static void tx4939ide_init_hwif(ide_hwif_t *hwif)
 
        /* Soft Reset */
        tx4939ide_writew(0x8000, base, TX4939IDE_Sys_Ctl);
-       mmiowb();
        /* at least 20 GBUSCLK (typ. 100ns @ GBUS200MHz, max 450ns) */
        ndelay(450);
        tx4939ide_writew(0x0000, base, TX4939IDE_Sys_Ctl);
index 12e67a91e5781231059f5aae80162c8f0fc3d778..8f270459b63efdc9511e8389728576677666557d 100644 (file)
@@ -8365,7 +8365,6 @@ static inline void clear_recv_intr(struct hfi1_ctxtdata *rcd)
        struct hfi1_devdata *dd = rcd->dd;
        u32 addr = CCE_INT_CLEAR + (8 * rcd->ireg);
 
-       mmiowb();
        write_csr(dd, addr, rcd->imask);
        /* force the above write on the chip and get a value back */
        (void)read_csr(dd, addr);
@@ -11803,12 +11802,10 @@ void update_usrhead(struct hfi1_ctxtdata *rcd, u32 hd, u32 updegr, u32 egrhd,
                        << RCV_EGR_INDEX_HEAD_HEAD_SHIFT;
                write_uctxt_csr(dd, ctxt, RCV_EGR_INDEX_HEAD, reg);
        }
-       mmiowb();
        reg = ((u64)rcv_intr_count << RCV_HDR_HEAD_COUNTER_SHIFT) |
                (((u64)hd & RCV_HDR_HEAD_HEAD_MASK)
                        << RCV_HDR_HEAD_HEAD_SHIFT);
        write_uctxt_csr(dd, ctxt, RCV_HDR_HEAD, reg);
-       mmiowb();
 }
 
 u32 hdrqempty(struct hfi1_ctxtdata *rcd)
index a1de566fe95e42306e3b02781176e26914b4a6ff..16ba9d52e1b9b6edfbeb549b650d0d7efa5eed91 100644 (file)
@@ -1578,7 +1578,6 @@ void hfi1_sc_wantpiobuf_intr(struct send_context *sc, u32 needint)
                sc_del_credit_return_intr(sc);
        trace_hfi1_wantpiointr(sc, needint, sc->credit_ctrl);
        if (needint) {
-               mmiowb();
                sc_return_credits(sc);
        }
 }
index 97515c340134c6514f92ad56276ed2d2b361d420..c8555f7704d84e45c82197a06eba22e7692c1caf 100644 (file)
@@ -1750,8 +1750,6 @@ static int hns_roce_v1_post_mbox(struct hns_roce_dev *hr_dev, u64 in_param,
 
        writel(val, hcr + 5);
 
-       mmiowb();
-
        return 0;
 }
 
index 429a59c5801cc129cc2ac477495fb49c8adbdecc..9426936460f8e19e1458e0b758b2c7b3ad88b6f1 100644 (file)
@@ -3744,12 +3744,6 @@ static int _mlx4_ib_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr,
                writel_relaxed(qp->doorbell_qpn,
                        to_mdev(ibqp->device)->uar_map + MLX4_SEND_DOORBELL);
 
-               /*
-                * Make sure doorbells don't leak out of SQ spinlock
-                * and reach the HCA out of order.
-                */
-               mmiowb();
-
                stamp_send_wqe(qp, ind + qp->sq_spare_wqes - 1);
 
                qp->sq_next_wqe = ind;
index 7cd006da1daef05cd335dc77cda8281e179630c4..b680be1f3f473956dd415235c9d97a3672550fcb 100644 (file)
@@ -5123,7 +5123,6 @@ static int _mlx5_ib_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr,
                /* Make sure doorbells don't leak out of SQ spinlock
                 * and reach the HCA out of order.
                 */
-               mmiowb();
                bf->offset ^= bf->buf_size;
        }
 
index 83aa47eb81a9274110ddb82101c552da32e299d9..bdf5ed38de22054e34fd4b7fccfe0f7b9e4f075f 100644 (file)
@@ -292,12 +292,6 @@ static int mthca_cmd_post(struct mthca_dev *dev,
                err = mthca_cmd_post_hcr(dev, in_param, out_param, in_modifier,
                                         op_modifier, op, token, event);
 
-       /*
-        * Make sure that our HCR writes don't get mixed in with
-        * writes from another CPU starting a FW command.
-        */
-       mmiowb();
-
        mutex_unlock(&dev->cmd.hcr_mutex);
        return err;
 }
index a6531ffe29a6f7afebd52ae41223f7fd7d74d131..877a6daffa98ab36e8b3ee4eb236a6ecea2db68f 100644 (file)
@@ -211,11 +211,6 @@ static inline void update_cons_index(struct mthca_dev *dev, struct mthca_cq *cq,
                mthca_write64(MTHCA_TAVOR_CQ_DB_INC_CI | cq->cqn, incr - 1,
                              dev->kar + MTHCA_CQ_DOORBELL,
                              MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
-               /*
-                * Make sure doorbells don't leak out of CQ spinlock
-                * and reach the HCA out of order:
-                */
-               mmiowb();
        }
 }
 
index 7a5b25d13faa8d79427db32ba622ae92c7902202..d65b189f20ead4e448d11039193ba0233e0c0f1c 100644 (file)
@@ -1809,11 +1809,6 @@ int mthca_tavor_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr,
                              (qp->qpn << 8) | size0,
                              dev->kar + MTHCA_SEND_DOORBELL,
                              MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
-               /*
-                * Make sure doorbells don't leak out of SQ spinlock
-                * and reach the HCA out of order:
-                */
-               mmiowb();
        }
 
        qp->sq.next_ind = ind;
@@ -1924,12 +1919,6 @@ int mthca_tavor_post_receive(struct ib_qp *ibqp, const struct ib_recv_wr *wr,
        qp->rq.next_ind = ind;
        qp->rq.head    += nreq;
 
-       /*
-        * Make sure doorbells don't leak out of RQ spinlock and reach
-        * the HCA out of order:
-        */
-       mmiowb();
-
        spin_unlock_irqrestore(&qp->rq.lock, flags);
        return err;
 }
@@ -2164,12 +2153,6 @@ int mthca_arbel_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr,
                              MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
        }
 
-       /*
-        * Make sure doorbells don't leak out of SQ spinlock and reach
-        * the HCA out of order:
-        */
-       mmiowb();
-
        spin_unlock_irqrestore(&qp->sq.lock, flags);
        return err;
 }
index 06b9203855122fcba23d59a124c14ef010af8bb2..a85935ccce881dfa62ba8a4ad9f92d264df332e1 100644 (file)
@@ -570,12 +570,6 @@ int mthca_tavor_post_srq_recv(struct ib_srq *ibsrq, const struct ib_recv_wr *wr,
                              MTHCA_GET_DOORBELL_LOCK(&dev->doorbell_lock));
        }
 
-       /*
-        * Make sure doorbells don't leak out of SRQ spinlock and
-        * reach the HCA out of order:
-        */
-       mmiowb();
-
        spin_unlock_irqrestore(&srq->lock, flags);
        return err;
 }
index 4dab2b5ffb0ea1d15ffed2a1c97c5a42d4083a65..8686a98e113d3fc5b24e2316c13aa9a0249c24e4 100644 (file)
@@ -773,9 +773,6 @@ static void doorbell_cq(struct qedr_cq *cq, u32 cons, u8 flags)
        cq->db.data.agg_flags = flags;
        cq->db.data.value = cpu_to_le32(cons);
        writeq(cq->db.raw, cq->db_addr);
-
-       /* Make sure write would stick */
-       mmiowb();
 }
 
 int qedr_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags)
@@ -2084,8 +2081,6 @@ static int qedr_update_qp_state(struct qedr_dev *dev,
 
                        if (rdma_protocol_roce(&dev->ibdev, 1)) {
                                writel(qp->rq.db_data.raw, qp->rq.db);
-                               /* Make sure write takes effect */
-                               mmiowb();
                        }
                        break;
                case QED_ROCE_QP_STATE_ERR:
@@ -3502,9 +3497,6 @@ int qedr_post_send(struct ib_qp *ibqp, const struct ib_send_wr *wr,
        smp_wmb();
        writel(qp->sq.db_data.raw, qp->sq.db);
 
-       /* Make sure write sticks */
-       mmiowb();
-
        spin_unlock_irqrestore(&qp->q_lock, flags);
 
        return rc;
@@ -3695,12 +3687,8 @@ int qedr_post_recv(struct ib_qp *ibqp, const struct ib_recv_wr *wr,
 
                writel(qp->rq.db_data.raw, qp->rq.db);
 
-               /* Make sure write sticks */
-               mmiowb();
-
                if (rdma_protocol_iwarp(&dev->ibdev, 1)) {
                        writel(qp->rq.iwarp_db2_data.raw, qp->rq.iwarp_db2);
-                       mmiowb();
                }
 
                wr = wr->next;
index cdbf707fa2671d62574b953c25dd0725745f4ea6..531d8a1db2c3e40c271cd655e0617cc665f1be72 100644 (file)
@@ -1884,7 +1884,6 @@ static void qib_6120_put_tid(struct qib_devdata *dd, u64 __iomem *tidptr,
        qib_write_kreg(dd, kr_scratch, 0xfeeddeaf);
        writel(pa, tidp32);
        qib_write_kreg(dd, kr_scratch, 0xdeadbeef);
-       mmiowb();
        spin_unlock_irqrestore(tidlockp, flags);
 }
 
@@ -1928,7 +1927,6 @@ static void qib_6120_put_tid_2(struct qib_devdata *dd, u64 __iomem *tidptr,
                        pa |= 2 << 29;
        }
        writel(pa, tidp32);
-       mmiowb();
 }
 
 
@@ -2053,9 +2051,7 @@ static void qib_update_6120_usrhead(struct qib_ctxtdata *rcd, u64 hd,
 {
        if (updegr)
                qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
-       mmiowb();
        qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
-       mmiowb();
 }
 
 static u32 qib_6120_hdrqempty(struct qib_ctxtdata *rcd)
index 9fde45538f6e9b309b5e19c57210a59a5a6f29c7..ea3ddb05cbadfec3c58ce32f252587388091af7a 100644 (file)
@@ -2175,7 +2175,6 @@ static void qib_7220_put_tid(struct qib_devdata *dd, u64 __iomem *tidptr,
                pa = chippa;
        }
        writeq(pa, tidptr);
-       mmiowb();
 }
 
 /**
@@ -2704,9 +2703,7 @@ static void qib_update_7220_usrhead(struct qib_ctxtdata *rcd, u64 hd,
 {
        if (updegr)
                qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
-       mmiowb();
        qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
-       mmiowb();
 }
 
 static u32 qib_7220_hdrqempty(struct qib_ctxtdata *rcd)
index 17d6b24b34736a89a832d7df1555e3aa9a6708d8..ac6a84f11ad082d389542a3418d977dfe3f5d168 100644 (file)
@@ -3793,7 +3793,6 @@ static void qib_7322_put_tid(struct qib_devdata *dd, u64 __iomem *tidptr,
                pa = chippa;
        }
        writeq(pa, tidptr);
-       mmiowb();
 }
 
 /**
@@ -4440,10 +4439,8 @@ static void qib_update_7322_usrhead(struct qib_ctxtdata *rcd, u64 hd,
                adjust_rcv_timeout(rcd, npkts);
        if (updegr)
                qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
-       mmiowb();
        qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
        qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
-       mmiowb();
 }
 
 static u32 qib_7322_hdrqempty(struct qib_ctxtdata *rcd)
index 12caf3db8c349c6121ead1fa5dac808ee91fd29a..4f4a09c2dbcd31bd125e333a1357b9c8ee63c5bb 100644 (file)
@@ -1068,7 +1068,6 @@ static int qib_sd_setvals(struct qib_devdata *dd)
        for (idx = 0; idx < NUM_DDS_REGS; ++idx) {
                data = ((dds_reg_map & 0xF) << 4) | TX_FAST_ELT;
                writeq(data, iaddr + idx);
-               mmiowb();
                qib_read_kreg32(dd, kr_scratch);
                dds_reg_map >>= 4;
                for (midx = 0; midx < DDS_ROWS; ++midx) {
@@ -1076,7 +1075,6 @@ static int qib_sd_setvals(struct qib_devdata *dd)
 
                        data = dds_init_vals[midx].reg_vals[idx];
                        writeq(data, daddr);
-                       mmiowb();
                        qib_read_kreg32(dd, kr_scratch);
                } /* End inner for (vals for this reg, each row) */
        } /* end outer for (regs to be stored) */
@@ -1098,13 +1096,11 @@ static int qib_sd_setvals(struct qib_devdata *dd)
                didx = idx + min_idx;
                /* Store the next RXEQ register address */
                writeq(rxeq_init_vals[idx].rdesc, iaddr + didx);
-               mmiowb();
                qib_read_kreg32(dd, kr_scratch);
                /* Iterate through RXEQ values */
                for (vidx = 0; vidx < 4; vidx++) {
                        data = rxeq_init_vals[idx].rdata[vidx];
                        writeq(data, taddr + (vidx << 6) + idx);
-                       mmiowb();
                        qib_read_kreg32(dd, kr_scratch);
                }
        } /* end outer for (Reg-writes for RXEQ) */
index 17d69bd5d7f112f970465e8511602eaa8b8100ac..49677ee889e3f984d18b5aecc2350d235c09a000 100644 (file)
@@ -46,7 +46,6 @@ static int read_i2c_reg(void __iomem *addr, u8 index, u8 *data)
        u32 tmp = index;
 
        iowrite32((tmp << 17) | IIC_READ, addr + IIC_CSR2);
-       mmiowb();
        udelay(45); /* wait at least 43 usec for NEW_CYCLE to clear */
        if (ioread32(addr + IIC_CSR2) & NEW_CYCLE)
                return -EIO; /* error: NEW_CYCLE not cleared */
@@ -77,7 +76,6 @@ static int write_i2c_reg(void __iomem *addr, u8 index, u8 data)
        u32 tmp = index;
 
        iowrite32((tmp << 17) | IIC_WRITE | data, addr + IIC_CSR2);
-       mmiowb();
        udelay(65); /* wait at least 63 usec for NEW_CYCLE to clear */
        if (ioread32(addr + IIC_CSR2) & NEW_CYCLE)
                return -EIO; /* error: NEW_CYCLE not cleared */
@@ -104,7 +102,6 @@ static void write_i2c_reg_nowait(void __iomem *addr, u8 index, u8 data)
        u32 tmp = index;
 
        iowrite32((tmp << 17) | IIC_WRITE | data, addr + IIC_CSR2);
-       mmiowb();
 }
 
 /**
@@ -264,7 +261,6 @@ static irqreturn_t dt3155_irq_handler_even(int irq, void *dev_id)
                                                FLD_DN_ODD | FLD_DN_EVEN |
                                                CAP_CONT_EVEN | CAP_CONT_ODD,
                                                        ipd->regs + CSR1);
-               mmiowb();
        }
 
        spin_lock(&ipd->lock);
@@ -282,7 +278,6 @@ static irqreturn_t dt3155_irq_handler_even(int irq, void *dev_id)
                iowrite32(dma_addr + ipd->width, ipd->regs + ODD_DMA_START);
                iowrite32(ipd->width, ipd->regs + EVEN_DMA_STRIDE);
                iowrite32(ipd->width, ipd->regs + ODD_DMA_STRIDE);
-               mmiowb();
        }
 
        /* enable interrupts, clear all irq flags */
@@ -437,12 +432,10 @@ static int dt3155_init_board(struct dt3155_priv *pd)
        /*  resetting the adapter  */
        iowrite32(ADDR_ERR_ODD | ADDR_ERR_EVEN | FLD_CRPT_ODD | FLD_CRPT_EVEN |
                        FLD_DN_ODD | FLD_DN_EVEN, pd->regs + CSR1);
-       mmiowb();
        msleep(20);
 
        /*  initializing adapter registers  */
        iowrite32(FIFO_EN | SRST, pd->regs + CSR1);
-       mmiowb();
        iowrite32(0xEEEEEE01, pd->regs + EVEN_PIXEL_FMT);
        iowrite32(0xEEEEEE01, pd->regs + ODD_PIXEL_FMT);
        iowrite32(0x00000020, pd->regs + FIFO_TRIGER);
@@ -454,7 +447,6 @@ static int dt3155_init_board(struct dt3155_priv *pd)
        iowrite32(0, pd->regs + MASK_LENGTH);
        iowrite32(0x0005007C, pd->regs + FIFO_FLAG_CNT);
        iowrite32(0x01010101, pd->regs + IIC_CLK_DUR);
-       mmiowb();
 
        /* verifying that we have a DT3155 board (not just a SAA7116 chip) */
        read_i2c_reg(pd->regs, DT_ID, &tmp);
index bcdca9fbef51cc802d34b74a4fab19abd308b1bc..e3a5af65dbce7d731277ee67817e4ae601031fd6 100644 (file)
@@ -644,7 +644,6 @@ static int jmb38x_ms_reset(struct jmb38x_ms_host *host)
        writel(HOST_CONTROL_RESET_REQ | HOST_CONTROL_CLOCK_EN
               | readl(host->addr + HOST_CONTROL),
               host->addr + HOST_CONTROL);
-       mmiowb();
 
        for (cnt = 0; cnt < 20; ++cnt) {
                if (!(HOST_CONTROL_RESET_REQ
@@ -659,7 +658,6 @@ static int jmb38x_ms_reset(struct jmb38x_ms_host *host)
        writel(HOST_CONTROL_RESET | HOST_CONTROL_CLOCK_EN
               | readl(host->addr + HOST_CONTROL),
               host->addr + HOST_CONTROL);
-       mmiowb();
 
        for (cnt = 0; cnt < 20; ++cnt) {
                if (!(HOST_CONTROL_RESET
@@ -672,7 +670,6 @@ static int jmb38x_ms_reset(struct jmb38x_ms_host *host)
        return -EIO;
 
 reset_ok:
-       mmiowb();
        writel(INT_STATUS_ALL, host->addr + INT_SIGNAL_ENABLE);
        writel(INT_STATUS_ALL, host->addr + INT_STATUS_ENABLE);
        return 0;
@@ -1009,7 +1006,6 @@ static void jmb38x_ms_remove(struct pci_dev *dev)
                tasklet_kill(&host->notify);
                writel(0, host->addr + INT_SIGNAL_ENABLE);
                writel(0, host->addr + INT_STATUS_ENABLE);
-               mmiowb();
                dev_dbg(&jm->pdev->dev, "interrupts off\n");
                spin_lock_irqsave(&host->lock, flags);
                if (host->req) {
index ec08322781708171951bd5e76a4406b26ca4fdfa..9d0445a567dba9530de502a3cb870da4b556d863 100644 (file)
@@ -156,7 +156,6 @@ ioc4_clock_calibrate(struct ioc4_driver_data *idd)
 
        /* Reset to power-on state */
        writel(0, &idd->idd_misc_regs->int_out.raw);
-       mmiowb();
 
        /* Set up square wave */
        int_out.raw = 0;
@@ -164,7 +163,6 @@ ioc4_clock_calibrate(struct ioc4_driver_data *idd)
        int_out.fields.mode = IOC4_INT_OUT_MODE_TOGGLE;
        int_out.fields.diag = 0;
        writel(int_out.raw, &idd->idd_misc_regs->int_out.raw);
-       mmiowb();
 
        /* Check square wave period averaged over some number of cycles */
        start = ktime_get_ns();
index 3fbbadfa2ae1524f20db3837398de7cebdcf00f7..8a47a6fc3fc772b9b55633543c52e8c0cc717803 100644 (file)
@@ -350,9 +350,6 @@ static void mei_me_hw_reset_release(struct mei_device *dev)
        hcsr |= H_IG;
        hcsr &= ~H_RST;
        mei_hcsr_set(dev, hcsr);
-
-       /* complete this write before we set host ready on another CPU */
-       mmiowb();
 }
 
 /**
index 9ac95b48ef92474d05681e6d2a1d9546e5b54c72..cc729f7ab32e5c53499193e3fa60659dc28893c9 100644 (file)
@@ -403,7 +403,6 @@ static void tifm_7xx1_remove(struct pci_dev *dev)
        fm->eject = tifm_7xx1_dummy_eject;
        fm->has_ms_pif = tifm_7xx1_dummy_has_ms_pif;
        writel(TIFM_IRQ_SETALL, fm->addr + FM_CLEAR_INTERRUPT_ENABLE);
-       mmiowb();
        free_irq(dev->irq, fm);
 
        tifm_remove_adapter(fm);
index 82a97866e0cf4c857cbb25c5487a3c6f80addfa0..546b1fc30e7d812d050c05570e670de07f5f780b 100644 (file)
@@ -967,7 +967,6 @@ static void alcor_timeout_timer(struct work_struct *work)
                alcor_request_complete(host, 0);
        }
 
-       mmiowb();
        mutex_unlock(&host->cmd_mutex);
 }
 
index a8141ff9be038b4e97aabd16bf63c3ce9b3a2518..42e1bad024f46c7d702bc1ce90bb43f461bf92b3 100644 (file)
@@ -1807,7 +1807,6 @@ void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
                        sdhci_send_command(host, mrq->cmd);
        }
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 }
 EXPORT_SYMBOL_GPL(sdhci_request);
@@ -2010,8 +2009,6 @@ void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
         */
        if (host->quirks & SDHCI_QUIRK_RESET_CMD_DATA_ON_IOS)
                sdhci_do_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
-
-       mmiowb();
 }
 EXPORT_SYMBOL_GPL(sdhci_set_ios);
 
@@ -2105,7 +2102,6 @@ static void sdhci_enable_sdio_irq_nolock(struct sdhci_host *host, int enable)
 
                sdhci_writel(host, host->ier, SDHCI_INT_ENABLE);
                sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE);
-               mmiowb();
        }
 }
 
@@ -2353,7 +2349,6 @@ void sdhci_send_tuning(struct sdhci_host *host, u32 opcode)
 
        host->tuning_done = 0;
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 
        /* Wait for Buffer Read Ready interrupt */
@@ -2705,7 +2700,6 @@ static bool sdhci_request_done(struct sdhci_host *host)
 
        host->mrqs_done[i] = NULL;
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 
        mmc_request_done(host->mmc, mrq);
@@ -2739,7 +2733,6 @@ static void sdhci_timeout_timer(struct timer_list *t)
                sdhci_finish_mrq(host, host->cmd->mrq);
        }
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 }
 
@@ -2770,7 +2763,6 @@ static void sdhci_timeout_data_timer(struct timer_list *t)
                }
        }
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 }
 
@@ -3251,7 +3243,6 @@ int sdhci_resume_host(struct sdhci_host *host)
                mmc->ops->set_ios(mmc, &mmc->ios);
        } else {
                sdhci_init(host, (host->mmc->pm_flags & MMC_PM_KEEP_POWER));
-               mmiowb();
        }
 
        if (host->irq_wake_enabled) {
@@ -3391,7 +3382,6 @@ void sdhci_cqe_enable(struct mmc_host *mmc)
                 mmc_hostname(mmc), host->ier,
                 sdhci_readl(host, SDHCI_INT_STATUS));
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 }
 EXPORT_SYMBOL_GPL(sdhci_cqe_enable);
@@ -3416,7 +3406,6 @@ void sdhci_cqe_disable(struct mmc_host *mmc, bool recovery)
                 mmc_hostname(mmc), host->ier,
                 sdhci_readl(host, SDHCI_INT_STATUS));
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 }
 EXPORT_SYMBOL_GPL(sdhci_cqe_disable);
@@ -4255,8 +4244,6 @@ int __sdhci_add_host(struct sdhci_host *host)
                goto unirq;
        }
 
-       mmiowb();
-
        ret = mmc_add_host(mmc);
        if (ret)
                goto unled;
index b6644ce296b209835a4969596f90c40082e4376f..35dd34b82a4d0ae4892e87f9126a820f45ca3acf 100644 (file)
@@ -889,7 +889,6 @@ static int tifm_sd_initialize_host(struct tifm_sd *host)
        struct tifm_dev *sock = host->dev;
 
        writel(0, sock->addr + SOCK_MMCSD_INT_ENABLE);
-       mmiowb();
        host->clk_div = 61;
        host->clk_freq = 20000000;
        writel(TIFM_MMCSD_RESET, sock->addr + SOCK_MMCSD_SYSTEM_CONTROL);
@@ -940,7 +939,6 @@ static int tifm_sd_initialize_host(struct tifm_sd *host)
        writel(TIFM_MMCSD_CERR | TIFM_MMCSD_BRS | TIFM_MMCSD_EOC
               | TIFM_MMCSD_ERRMASK,
               sock->addr + SOCK_MMCSD_INT_ENABLE);
-       mmiowb();
 
        return 0;
 }
@@ -1005,7 +1003,6 @@ static void tifm_sd_remove(struct tifm_dev *sock)
        spin_lock_irqsave(&sock->lock, flags);
        host->eject = 1;
        writel(0, sock->addr + SOCK_MMCSD_INT_ENABLE);
-       mmiowb();
        spin_unlock_irqrestore(&sock->lock, flags);
 
        tasklet_kill(&host->finish_tasklet);
index 32c4211506fc8376f1ca4eb0d2967d810091114a..412395ac29352f5fdfe24f65ea697ade33063bfd 100644 (file)
@@ -686,7 +686,6 @@ static void via_sdc_request(struct mmc_host *mmc, struct mmc_request *mrq)
                via_sdc_send_command(host, mrq->cmd);
        }
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 }
 
@@ -711,7 +710,6 @@ static void via_sdc_set_power(struct via_crdr_mmc_host *host,
                gatt &= ~VIA_CRDR_PCICLKGATT_PAD_PWRON;
        writeb(gatt, host->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT);
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 
        via_pwron_sleep(host);
@@ -770,7 +768,6 @@ static void via_sdc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
        if (readb(addrbase + VIA_CRDR_PCISDCCLK) != clock)
                writeb(clock, addrbase + VIA_CRDR_PCISDCCLK);
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 
        if (ios->power_mode != MMC_POWER_OFF)
@@ -830,7 +827,6 @@ static void via_reset_pcictrl(struct via_crdr_mmc_host *host)
        via_restore_pcictrlreg(host);
        via_restore_sdcreg(host);
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 }
 
@@ -925,7 +921,6 @@ static irqreturn_t via_sdc_isr(int irq, void *dev_id)
 
        result = IRQ_HANDLED;
 
-       mmiowb();
 out:
        spin_unlock(&sdhost->lock);
 
@@ -960,7 +955,6 @@ static void via_sdc_timeout(struct timer_list *t)
                }
        }
 
-       mmiowb();
        spin_unlock_irqrestore(&sdhost->lock, flags);
 }
 
@@ -1012,7 +1006,6 @@ static void via_sdc_card_detect(struct work_struct *work)
                        tasklet_schedule(&host->finish_tasklet);
                }
 
-               mmiowb();
                spin_unlock_irqrestore(&host->lock, flags);
 
                via_reset_pcictrl(host);
@@ -1020,7 +1013,6 @@ static void via_sdc_card_detect(struct work_struct *work)
                spin_lock_irqsave(&host->lock, flags);
        }
 
-       mmiowb();
        spin_unlock_irqrestore(&host->lock, flags);
 
        via_print_pcictrl(host);
@@ -1188,7 +1180,6 @@ static void via_sd_remove(struct pci_dev *pcidev)
 
        /* Disable generating further interrupts */
        writeb(0x0, sdhost->pcictrl_mmiobase + VIA_CRDR_PCIINTCTRL);
-       mmiowb();
 
        if (sdhost->mrq) {
                pr_err("%s: Controller removed during "
@@ -1197,7 +1188,6 @@ static void via_sd_remove(struct pci_dev *pcidev)
                /* make sure all DMA is stopped */
                writel(VIA_CRDR_DMACTRL_SFTRST,
                        sdhost->ddma_mmiobase + VIA_CRDR_DMACTRL);
-               mmiowb();
                sdhost->mrq->cmd->error = -ENOMEDIUM;
                if (sdhost->mrq->stop)
                        sdhost->mrq->stop->error = -ENOMEDIUM;
index 86456216fb93f5bf9b90fc6b6f454630e947269b..7b99831aa046246a37ca697544576eac4ff68c37 100644 (file)
@@ -45,7 +45,6 @@ static inline void r852_write_reg(struct r852_device *dev,
                                                int address, uint8_t value)
 {
        writeb(value, dev->mmio + address);
-       mmiowb();
 }
 
 
@@ -61,7 +60,6 @@ static inline void r852_write_reg_dword(struct r852_device *dev,
                                                        int address, uint32_t value)
 {
        writel(cpu_to_le32(value), dev->mmio + address);
-       mmiowb();
 }
 
 /* returns pointer to our private structure */
index ddf0420c09976a39a10dddbbad9cc48edb94610b..97978227aa55812079aa94b07f84a0fec28dd2c8 100644 (file)
@@ -159,7 +159,6 @@ static void txx9ndfmc_cmd_ctrl(struct nand_chip *chip, int cmd,
                if ((ctrl & NAND_CTRL_CHANGE) && cmd == NAND_CMD_NONE)
                        txx9ndfmc_write(dev, 0, TXX9_NDFDTR);
        }
-       mmiowb();
 }
 
 static int txx9ndfmc_dev_ready(struct nand_chip *chip)
index 47e5984f16fbdda511a686aed2b5144990083516..3155f7fa83eb64b3b4fda0c152fd3eec7bfe6384 100644 (file)
@@ -613,7 +613,6 @@ static irqreturn_t greth_interrupt(int irq, void *dev_id)
                napi_schedule(&greth->napi);
        }
 
-       mmiowb();
        spin_unlock(&greth->devlock);
 
        return retval;
index 16477aa6d61f62bbc6a1399cf369a335682e3be0..4f7e792e50e9f9069dba1f60acfbec8d433923f2 100644 (file)
@@ -345,8 +345,6 @@ static void slic_set_rx_mode(struct net_device *dev)
        if (sdev->promisc != set_promisc) {
                sdev->promisc = set_promisc;
                slic_configure_rcv(sdev);
-               /* make sure writes to receiver cant leak out of the lock */
-               mmiowb();
        }
        spin_unlock_bh(&sdev->link_lock);
 }
@@ -1461,8 +1459,6 @@ static netdev_tx_t slic_xmit(struct sk_buff *skb, struct net_device *dev)
 
        if (slic_get_free_tx_descs(txq) < SLIC_MAX_REQ_TX_DESCS)
                netif_stop_queue(dev);
-       /* make sure writes to io-memory cant leak out of tx queue lock */
-       mmiowb();
 
        return NETDEV_TX_OK;
 drop_skb:
index b17d435de09fe2333efd94f34019c316e3f5b466..05798aa5bb73af91874beecef42b6b86fa35fcf3 100644 (file)
@@ -2016,7 +2016,6 @@ void ena_com_aenq_intr_handler(struct ena_com_dev *dev, void *data)
        mb();
        writel_relaxed((u32)aenq->head,
                       dev->reg_bar + ENA_REGS_AENQ_HEAD_DB_OFF);
-       mmiowb();
 }
 
 int ena_com_dev_reset(struct ena_com_dev *ena_dev,
index 9e07b469066a4bbc41119e0801d716a25dce9a55..f7583c5d9509751dc8bb7092c49f2b1061ac6080 100644 (file)
@@ -2439,7 +2439,6 @@ static netdev_tx_t atl1_xmit_frame(struct sk_buff *skb,
        atl1_tx_map(adapter, skb, ptpd);
        atl1_tx_queue(adapter, count, ptpd);
        atl1_update_mailbox(adapter);
-       mmiowb();
        return NETDEV_TX_OK;
 }
 
index d99317b3d891b0a608aafef51352eea6ba58fbb2..1474cac7e892455a969d9d1464f3a3ebb4c9e62c 100644 (file)
@@ -908,7 +908,6 @@ static netdev_tx_t atl2_xmit_frame(struct sk_buff *skb,
        ATL2_WRITE_REGW(&adapter->hw, REG_MB_TXD_WR_IDX,
                (adapter->txd_write_ptr >> 2));
 
-       mmiowb();
        dev_consume_skb_any(skb);
        return NETDEV_TX_OK;
 }
index d63371d70bcef3683b9a662c799c4a5b493e6743..dfdd14eadd57265bbf30502cf283b0be4005985e 100644 (file)
@@ -3305,8 +3305,6 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
 
        BNX2_WR(bp, rxr->rx_bseq_addr, rxr->rx_prod_bseq);
 
-       mmiowb();
-
        return rx_pkt;
 
 }
@@ -6723,8 +6721,6 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev)
        BNX2_WR16(bp, txr->tx_bidx_addr, prod);
        BNX2_WR(bp, txr->tx_bseq_addr, txr->tx_prod_bseq);
 
-       mmiowb();
-
        txr->tx_prod = prod;
 
        if (unlikely(bnx2_tx_avail(bp, txr) <= MAX_SKB_FRAGS)) {
index ecb1bd7eb5080d1d47725e0c98f3153437fb5a42..0c8f5b546c6f42149fa3437b146c976c41f0eae6 100644 (file)
@@ -4166,8 +4166,6 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
        DOORBELL_RELAXED(bp, txdata->cid, txdata->tx_db.raw);
 
-       mmiowb();
-
        txdata->tx_bd_prod += nbd;
 
        if (unlikely(bnx2x_tx_avail(bp, txdata) < MAX_DESC_PER_TX_PKT)) {
index 1ed068509337c7352cda57c6317fa0c3afae2f2e..2d57af9c061cc80ac0d374dc7f2bdb33d9146ad3 100644 (file)
@@ -527,8 +527,6 @@ static inline void bnx2x_update_rx_prod(struct bnx2x *bp,
                REG_WR_RELAXED(bp, fp->ustorm_rx_prods_offset + i * 4,
                               ((u32 *)&rx_prods)[i]);
 
-       mmiowb();
-
        DP(NETIF_MSG_RX_STATUS,
           "queue[%d]:  wrote  bd_prod %u  cqe_prod %u  sge_prod %u\n",
           fp->index, bd_prod, rx_comp_prod, rx_sge_prod);
@@ -653,7 +651,6 @@ static inline void bnx2x_igu_ack_sb_gen(struct bnx2x *bp, u8 igu_sb_id,
        REG_WR(bp, igu_addr, cmd_data.sb_id_and_flags);
 
        /* Make sure that ACK is written */
-       mmiowb();
        barrier();
 }
 
@@ -674,7 +671,6 @@ static inline void bnx2x_hc_ack_sb(struct bnx2x *bp, u8 sb_id,
        REG_WR(bp, hc_addr, (*(u32 *)&igu_ack));
 
        /* Make sure that ACK is written */
-       mmiowb();
        barrier();
 }
 
index 749d0ef4437171ad6ebc83bfa10a006eccef8da9..0745cccd416db7fe71c7bdb7cbe67d2956008064 100644 (file)
@@ -2623,7 +2623,6 @@ static int bnx2x_run_loopback(struct bnx2x *bp, int loopback_mode)
        wmb();
        DOORBELL_RELAXED(bp, txdata->cid, txdata->tx_db.raw);
 
-       mmiowb();
        barrier();
 
        num_pkts++;
index e46786a56b0ca9899ba61465c49cd0b466bcf3f0..3716c828ff5d9537ff4bb02678b0eeb819dd2853 100644 (file)
@@ -869,9 +869,6 @@ static void bnx2x_hc_int_disable(struct bnx2x *bp)
           "write %x to HC %d (addr 0x%x)\n",
           val, port, addr);
 
-       /* flush all outstanding writes */
-       mmiowb();
-
        REG_WR(bp, addr, val);
        if (REG_RD(bp, addr) != val)
                BNX2X_ERR("BUG! Proper val not read from IGU!\n");
@@ -887,9 +884,6 @@ static void bnx2x_igu_int_disable(struct bnx2x *bp)
 
        DP(NETIF_MSG_IFDOWN, "write %x to IGU\n", val);
 
-       /* flush all outstanding writes */
-       mmiowb();
-
        REG_WR(bp, IGU_REG_PF_CONFIGURATION, val);
        if (REG_RD(bp, IGU_REG_PF_CONFIGURATION) != val)
                BNX2X_ERR("BUG! Proper val not read from IGU!\n");
@@ -1595,7 +1589,6 @@ static void bnx2x_hc_int_enable(struct bnx2x *bp)
        /*
         * Ensure that HC_CONFIG is written before leading/trailing edge config
         */
-       mmiowb();
        barrier();
 
        if (!CHIP_IS_E1(bp)) {
@@ -1611,9 +1604,6 @@ static void bnx2x_hc_int_enable(struct bnx2x *bp)
                REG_WR(bp, HC_REG_TRAILING_EDGE_0 + port*8, val);
                REG_WR(bp, HC_REG_LEADING_EDGE_0 + port*8, val);
        }
-
-       /* Make sure that interrupts are indeed enabled from here on */
-       mmiowb();
 }
 
 static void bnx2x_igu_int_enable(struct bnx2x *bp)
@@ -1674,9 +1664,6 @@ static void bnx2x_igu_int_enable(struct bnx2x *bp)
 
        REG_WR(bp, IGU_REG_TRAILING_EDGE_LATCH, val);
        REG_WR(bp, IGU_REG_LEADING_EDGE_LATCH, val);
-
-       /* Make sure that interrupts are indeed enabled from here on */
-       mmiowb();
 }
 
 void bnx2x_int_enable(struct bnx2x *bp)
@@ -3833,7 +3820,6 @@ static void bnx2x_sp_prod_update(struct bnx2x *bp)
 
        REG_WR16_RELAXED(bp, BAR_XSTRORM_INTMEM + XSTORM_SPQ_PROD_OFFSET(func),
                         bp->spq_prod_idx);
-       mmiowb();
 }
 
 /**
@@ -5244,7 +5230,6 @@ static void bnx2x_update_eq_prod(struct bnx2x *bp, u16 prod)
 {
        /* No memory barriers */
        storm_memset_eq_prod(bp, prod, BP_FUNC(bp));
-       mmiowb();
 }
 
 static int  bnx2x_cnic_handle_cfc_del(struct bnx2x *bp, u32 cid,
@@ -6513,7 +6498,6 @@ void bnx2x_nic_init_cnic(struct bnx2x *bp)
 
        /* flush all */
        mb();
-       mmiowb();
 }
 
 void bnx2x_pre_irq_nic_init(struct bnx2x *bp)
@@ -6553,7 +6537,6 @@ void bnx2x_post_irq_nic_init(struct bnx2x *bp, u32 load_code)
 
        /* flush all before enabling interrupts */
        mb();
-       mmiowb();
 
        bnx2x_int_enable(bp);
 
@@ -7775,12 +7758,10 @@ void bnx2x_igu_clear_sb_gen(struct bnx2x *bp, u8 func, u8 idu_sb_id, bool is_pf)
        DP(NETIF_MSG_HW, "write 0x%08x to IGU(via GRC) addr 0x%x\n",
                         data, igu_addr_data);
        REG_WR(bp, igu_addr_data, data);
-       mmiowb();
        barrier();
        DP(NETIF_MSG_HW, "write 0x%08x to IGU(via GRC) addr 0x%x\n",
                          ctl, igu_addr_ctl);
        REG_WR(bp, igu_addr_ctl, ctl);
-       mmiowb();
        barrier();
 
        /* wait for clean up to finish */
@@ -9550,7 +9531,6 @@ static void bnx2x_set_234_gates(struct bnx2x *bp, bool close)
 
        DP(NETIF_MSG_HW | NETIF_MSG_IFUP, "%s gates #2, #3 and #4\n",
                close ? "closing" : "opening");
-       mmiowb();
 }
 
 #define SHARED_MF_CLP_MAGIC  0x80000000 /* `magic' bit */
@@ -9674,7 +9654,6 @@ static void bnx2x_pxp_prep(struct bnx2x *bp)
        if (!CHIP_IS_E1(bp)) {
                REG_WR(bp, PXP2_REG_RD_START_INIT, 0);
                REG_WR(bp, PXP2_REG_RQ_RBC_DONE, 0);
-               mmiowb();
        }
 }
 
@@ -9774,16 +9753,13 @@ static void bnx2x_process_kill_chip_reset(struct bnx2x *bp, bool global)
               reset_mask1 & (~not_reset_mask1));
 
        barrier();
-       mmiowb();
 
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET,
               reset_mask2 & (~stay_reset2));
 
        barrier();
-       mmiowb();
 
        REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, reset_mask1);
-       mmiowb();
 }
 
 /**
@@ -9867,9 +9843,6 @@ static int bnx2x_process_kill(struct bnx2x *bp, bool global)
        REG_WR(bp, MISC_REG_UNPREPARED, 0);
        barrier();
 
-       /* Make sure all is written to the chip before the reset */
-       mmiowb();
-
        /* Wait for 1ms to empty GLUE and PCI-E core queues,
         * PSWHST, GRC and PSWRD Tetris buffer.
         */
@@ -14828,7 +14801,6 @@ static int bnx2x_drv_ctl(struct net_device *dev, struct drv_ctl_info *ctl)
                if (rc)
                        break;
 
-               mmiowb();
                barrier();
 
                /* Start accepting on iSCSI L2 ring */
@@ -14863,7 +14835,6 @@ static int bnx2x_drv_ctl(struct net_device *dev, struct drv_ctl_info *ctl)
                if (!bnx2x_wait_sp_comp(bp, sp_bits))
                        BNX2X_ERR("rx_mode completion timed out!\n");
 
-               mmiowb();
                barrier();
 
                /* Unset iSCSI L2 MAC */
index 7b22a6d8514c651091cb47e098c740c2ee91e66a..80d250a6d048e560a0210e0e493040cdc4613c94 100644 (file)
@@ -5039,7 +5039,6 @@ static inline int bnx2x_q_init(struct bnx2x *bp,
        /* As no ramrod is sent, complete the command immediately  */
        o->complete_cmd(bp, o, BNX2X_Q_CMD_INIT);
 
-       mmiowb();
        smp_mb();
 
        return 0;
index c97b642e65379880330f69092025d1e9a4e18ac8..0edbb0a76847260314c8568d13eeca0d1b554b96 100644 (file)
@@ -100,13 +100,11 @@ static void bnx2x_vf_igu_ack_sb(struct bnx2x *bp, struct bnx2x_virtf *vf,
        DP(NETIF_MSG_HW, "write 0x%08x to IGU(via GRC) addr 0x%x\n",
           cmd_data.sb_id_and_flags, igu_addr_data);
        REG_WR(bp, igu_addr_data, cmd_data.sb_id_and_flags);
-       mmiowb();
        barrier();
 
        DP(NETIF_MSG_HW, "write 0x%08x to IGU(via GRC) addr 0x%x\n",
           ctl, igu_addr_ctl);
        REG_WR(bp, igu_addr_ctl, ctl);
-       mmiowb();
        barrier();
 }
 
index a9bdc21873d32f31620ac169f8aff5b76cd02f7f..672b57f0b84d9a4ed877325887b13fd2930a3d51 100644 (file)
@@ -172,8 +172,6 @@ static int bnx2x_send_msg2pf(struct bnx2x *bp, u8 *done, dma_addr_t msg_mapping)
        /* Trigger the PF FW */
        writeb_relaxed(1, &zone_data->trigger.vf_pf_channel.addr_valid);
 
-       mmiowb();
-
        /* Wait for PF to complete */
        while ((tout >= 0) && (!*done)) {
                msleep(interval);
@@ -1179,7 +1177,6 @@ static void bnx2x_vf_mbx_resp_send_msg(struct bnx2x *bp,
 
        /* ack the FW */
        storm_memset_vf_mbx_ack(bp, vf->abs_vfid);
-       mmiowb();
 
        /* copy the response header including status-done field,
         * must be last dmae, must be after FW is acked
@@ -2174,7 +2171,6 @@ static void bnx2x_vf_mbx_request(struct bnx2x *bp, struct bnx2x_virtf *vf,
                 */
                storm_memset_vf_mbx_ack(bp, vf->abs_vfid);
                /* Firmware ack should be written before unlocking channel */
-               mmiowb();
                bnx2x_unlock_vf_pf_channel(bp, vf, mbx->first_tlv.tl.type);
        }
 }
index 0bb9d7b3a2b622211a2d401fd81dd70f6cff4ea0..b8b68d408ad0516a72c1bc04d9df3b2380b644ce 100644 (file)
@@ -556,8 +556,6 @@ static netdev_tx_t bnxt_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 tx_done:
 
-       mmiowb();
-
        if (unlikely(bnxt_tx_avail(bp, txr) <= MAX_SKB_FRAGS + 1)) {
                if (skb->xmit_more && !tx_buf->is_push)
                        bnxt_db_write(bp, &txr->tx_db, prod);
@@ -2123,7 +2121,6 @@ static int bnxt_poll(struct napi_struct *napi, int budget)
                               &dim_sample);
                net_dim(&cpr->dim, dim_sample);
        }
-       mmiowb();
        return work_done;
 }
 
index 328373e0578ff83bf5d5bb336103deba33144e99..821bccc0915c64f9b0c652c1688b40007d2bdc1c 100644 (file)
@@ -1073,7 +1073,6 @@ static void tg3_int_reenable(struct tg3_napi *tnapi)
        struct tg3 *tp = tnapi->tp;
 
        tw32_mailbox(tnapi->int_mbox, tnapi->last_tag << 24);
-       mmiowb();
 
        /* When doing tagged status, this work check is unnecessary.
         * The last_tag we write above tells the chip which piece of
@@ -6999,7 +6998,6 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget)
                        tw32_rx_mbox(TG3_RX_JMB_PROD_IDX_REG,
                                     tpr->rx_jmb_prod_idx);
                }
-               mmiowb();
        } else if (work_mask) {
                /* rx_std_buffers[] and rx_jmb_buffers[] entries must be
                 * updated before the producer indices can be updated.
@@ -7210,8 +7208,6 @@ static int tg3_poll_work(struct tg3_napi *tnapi, int work_done, int budget)
                        tw32_rx_mbox(TG3_RX_JMB_PROD_IDX_REG,
                                     dpr->rx_jmb_prod_idx);
 
-               mmiowb();
-
                if (err)
                        tw32_f(HOSTCC_MODE, tp->coal_now);
        }
@@ -7278,7 +7274,6 @@ static int tg3_poll_msix(struct napi_struct *napi, int budget)
                                                  HOSTCC_MODE_ENABLE |
                                                  tnapi->coal_now);
                        }
-                       mmiowb();
                        break;
                }
        }
@@ -8159,7 +8154,6 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
        if (!skb->xmit_more || netif_xmit_stopped(txq)) {
                /* Packets are ready, update Tx producer idx on card. */
                tw32_tx_mbox(tnapi->prodmbox, entry);
-               mmiowb();
        }
 
        return NETDEV_TX_OK;
index 2df7440f58df556d0a8f0fb14f8525d196a2a122..39643be8c30a9753cd0b6c07d8aa99af7d1ecae0 100644 (file)
@@ -38,9 +38,6 @@ int lio_cn6xxx_soft_reset(struct octeon_device *oct)
        lio_pci_readq(oct, CN6XXX_CIU_SOFT_RST);
        lio_pci_writeq(oct, 1, CN6XXX_CIU_SOFT_RST);
 
-       /* make sure that the reset is written before starting timer */
-       mmiowb();
-
        /* Wait for 10ms as Octeon resets. */
        mdelay(100);
 
@@ -487,9 +484,6 @@ void lio_cn6xxx_disable_interrupt(struct octeon_device *oct,
 
        /* Disable Interrupts */
        writeq(0, cn6xxx->intr_enb_reg64);
-
-       /* make sure interrupts are really disabled */
-       mmiowb();
 }
 
 static void lio_cn6xxx_get_pcie_qlmport(struct octeon_device *oct)
@@ -555,10 +549,6 @@ static int lio_cn6xxx_process_droq_intr_regs(struct octeon_device *oct)
                                value &= ~(1 << oq_no);
                                octeon_write_csr(oct, reg, value);
 
-                               /* Ensure that the enable register is written.
-                                */
-                               mmiowb();
-
                                spin_unlock(&cn6xxx->lock_for_droq_int_enb_reg);
                        }
                }
index ce8c3f81866688bb3ecef1af942f179560fa6115..934115d18488eb5d097a38cdc5793b9244b57594 100644 (file)
@@ -1449,7 +1449,6 @@ void lio_enable_irq(struct octeon_droq *droq, struct octeon_instr_queue *iq)
                iq->pkt_in_done -= iq->pkts_processed;
                iq->pkts_processed = 0;
                /* this write needs to be flushed before we release the lock */
-               mmiowb();
                spin_unlock_bh(&iq->lock);
                oct = iq->oct_dev;
        }
index a0c099f715245176d5c9aa98b0dd31af9816a7d2..017169023cca399d13007f13765a71b9b3f6373c 100644 (file)
@@ -513,8 +513,6 @@ int octeon_retry_droq_refill(struct octeon_droq *droq)
                 */
                wmb();
                writel(desc_refilled, droq->pkts_credit_reg);
-               /* make sure mmio write completes */
-               mmiowb();
 
                if (pkts_credit + desc_refilled >= CN23XX_SLI_DEF_BP)
                        reschedule = 0;
@@ -712,8 +710,6 @@ octeon_droq_fast_process_packets(struct octeon_device *oct,
                                 */
                                wmb();
                                writel(desc_refilled, droq->pkts_credit_reg);
-                               /* make sure mmio write completes */
-                               mmiowb();
                        }
                }
        }                       /* for (each packet)... */
index c6f4cbda040f1463e3611cc54815a766607a2bfd..fcf20a8f92d94c8895d0c94447291b416fc05df6 100644 (file)
@@ -278,7 +278,6 @@ ring_doorbell(struct octeon_device *oct, struct octeon_instr_queue *iq)
        if (atomic_read(&oct->status) == OCT_DEV_RUNNING) {
                writel(iq->fill_cnt, iq->doorbell_reg);
                /* make sure doorbell write goes through */
-               mmiowb();
                iq->fill_cnt = 0;
                iq->last_db_time = jiffies;
                return;
index 8fe9af0e2ab779b4da67b10d11f6b1004db2fdff..466bf1ea186d299d1be7413f2554e7ea7df7b228 100644 (file)
@@ -3270,11 +3270,6 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
                if (!skb->xmit_more ||
                    netif_xmit_stopped(netdev_get_tx_queue(netdev, 0))) {
                        writel(tx_ring->next_to_use, hw->hw_addr + tx_ring->tdt);
-                       /* we need this if more than one processor can write to
-                        * our tail at a time, it synchronizes IO on IA64/Altix
-                        * systems
-                        */
-                       mmiowb();
                }
        } else {
                dev_kfree_skb_any(skb);
index 7acc61e4f6456ea86269a47d0a6da6533dbcb3b6..022c3ac0e40f2b0bcbe5c7625ce173b1e82272a5 100644 (file)
@@ -3816,7 +3816,6 @@ static void e1000_flush_tx_ring(struct e1000_adapter *adapter)
        if (tx_ring->next_to_use == tx_ring->count)
                tx_ring->next_to_use = 0;
        ew32(TDT(0), tx_ring->next_to_use);
-       mmiowb();
        usleep_range(200, 250);
 }
 
@@ -5904,12 +5903,6 @@ static netdev_tx_t e1000_xmit_frame(struct sk_buff *skb,
                                                     tx_ring->next_to_use);
                        else
                                writel(tx_ring->next_to_use, tx_ring->tail);
-
-                       /* we need this if more than one processor can write
-                        * to our tail at a time, it synchronizes IO on
-                        *IA64/Altix systems
-                        */
-                       mmiowb();
                }
        } else {
                dev_kfree_skb_any(skb);
index 5d4f1761dc0c2ef0613757ff5bfedb214f9ca79f..8de77155f2e7e979c62ea4857e0830d3e553b91a 100644 (file)
@@ -321,8 +321,6 @@ static void fm10k_mask_aer_comp_abort(struct pci_dev *pdev)
        pci_read_config_dword(pdev, pos + PCI_ERR_UNCOR_MASK, &err_mask);
        err_mask |= PCI_ERR_UNC_COMP_ABORT;
        pci_write_config_dword(pdev, pos + PCI_ERR_UNCOR_MASK, err_mask);
-
-       mmiowb();
 }
 
 int fm10k_iov_resume(struct pci_dev *pdev)
index 5a0419421511fd7a9a3e44a1a7fa2c4e21f26217..1f48298f01e6584b3b19cb71d6be7675391e5edd 100644 (file)
@@ -1037,11 +1037,6 @@ static void fm10k_tx_map(struct fm10k_ring *tx_ring,
        /* notify HW of packet */
        if (netif_xmit_stopped(txring_txq(tx_ring)) || !skb->xmit_more) {
                writel(i, tx_ring->tail);
-
-               /* we need this if more than one processor can write to our tail
-                * at a time, it synchronizes IO on IA64/Altix systems
-                */
-               mmiowb();
        }
 
        return;
index 6c97667d20eff136cde56c0447c54892c464fe31..ffb611bbedfa42a5fc330a4e70e153eed125c49a 100644 (file)
@@ -3471,11 +3471,6 @@ static inline int i40e_tx_map(struct i40e_ring *tx_ring, struct sk_buff *skb,
        /* notify HW of packet */
        if (netif_xmit_stopped(txring_txq(tx_ring)) || !skb->xmit_more) {
                writel(i, tx_ring->tail);
-
-               /* we need this if more than one processor can write to our tail
-                * at a time, it synchronizes IO on IA64/Altix systems
-                */
-               mmiowb();
        }
 
        return 0;
index 9b4d7cec2e18af2c5c092096dfc7cfa513829636..6bfef82e7607b4a49e30b6da997aa656b88ec9e9 100644 (file)
@@ -2360,11 +2360,6 @@ static inline void iavf_tx_map(struct iavf_ring *tx_ring, struct sk_buff *skb,
        /* notify HW of packet */
        if (netif_xmit_stopped(txring_txq(tx_ring)) || !skb->xmit_more) {
                writel(i, tx_ring->tail);
-
-               /* we need this if more than one processor can write to our tail
-                * at a time, it synchronizes IO on IA64/Altix systems
-                */
-               mmiowb();
        }
 
        return;
index c289d97f477d5251d4456e610fc544059c227c21..1af21bbe180eef0f6067d565b6c3100e5c8f552e 100644 (file)
@@ -1356,11 +1356,6 @@ ice_tx_map(struct ice_ring *tx_ring, struct ice_tx_buf *first,
        /* notify HW of packet */
        if (netif_xmit_stopped(txring_txq(tx_ring)) || !skb->xmit_more) {
                writel(i, tx_ring->tail);
-
-               /* we need this if more than one processor can write to our tail
-                * at a time, it synchronizes IO on IA64/Altix systems
-                */
-               mmiowb();
        }
 
        return;
index 69b230c53fed537464ba79b0be3ede75ab13f1da..09ba94496742394b3388db04208dd2b8051c22e8 100644 (file)
@@ -6028,11 +6028,6 @@ static int igb_tx_map(struct igb_ring *tx_ring,
 
        if (netif_xmit_stopped(txring_txq(tx_ring)) || !skb->xmit_more) {
                writel(i, tx_ring->tail);
-
-               /* we need this if more than one processor can write to our tail
-                * at a time, it synchronizes IO on IA64/Altix systems
-                */
-               mmiowb();
        }
        return 0;
 
index 4eab83faec6208b052b74024bd67f53a10756de9..34cd30d7162f9ab1a14523767ca92122ec7eb61e 100644 (file)
@@ -2279,10 +2279,6 @@ static inline void igbvf_tx_queue_adv(struct igbvf_adapter *adapter,
        tx_ring->buffer_info[first].next_to_watch = tx_desc;
        tx_ring->next_to_use = i;
        writel(i, adapter->hw.hw_addr + tx_ring->tail);
-       /* we need this if more than one processor can write to our tail
-        * at a time, it synchronizes IO on IA64/Altix systems
-        */
-       mmiowb();
 }
 
 static netdev_tx_t igbvf_xmit_frame_ring_adv(struct sk_buff *skb,
index 87a11879bf2dc71673f25b1952e29efd1298c902..f8d692f6aa4fe06deb80e2680e9f1f616b07571b 100644 (file)
@@ -892,11 +892,6 @@ static int igc_tx_map(struct igc_ring *tx_ring,
 
        if (netif_xmit_stopped(txring_txq(tx_ring)) || !skb->xmit_more) {
                writel(i, tx_ring->tail);
-
-               /* we need this if more than one processor can write to our tail
-                * at a time, it synchronizes IO on IA64/Altix systems
-                */
-               mmiowb();
        }
 
        return 0;
index e100054a3765e2f16c4aba9f3af8411c9dcdca4a..99e23cf6a73abc9d05c5c5b07d4ca779f13254a0 100644 (file)
@@ -8299,11 +8299,6 @@ static int ixgbe_tx_map(struct ixgbe_ring *tx_ring,
 
        if (netif_xmit_stopped(txring_txq(tx_ring)) || !skb->xmit_more) {
                writel(i, tx_ring->tail);
-
-               /* we need this if more than one processor can write to our tail
-                * at a time, it synchronizes IO on IA64/Altix systems
-                */
-               mmiowb();
        }
 
        return 0;
index 8b3495ee2b6eb7aeeabdb4449e21e05f61562435..49486c10ef81379b5ea5539bf8281db71d00473a 100644 (file)
@@ -1139,9 +1139,6 @@ static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q, u16 idx)
        /* Make sure write' to descriptors are complete before we tell hardware */
        wmb();
        sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX), idx);
-
-       /* Synchronize I/O on since next processor may write to tail */
-       mmiowb();
 }
 
 
@@ -1354,7 +1351,6 @@ static void sky2_rx_stop(struct sky2_port *sky2)
 
        /* reset the Rx prefetch unit */
        sky2_write32(hw, Y2_QADDR(rxq, PREF_UNIT_CTRL), PREF_UNIT_RST_SET);
-       mmiowb();
 }
 
 /* Clean out receive buffer area, assumes receiver hardware stopped */
index c81d15bf259c83a8baf11c80d9857cd8759e3b8d..87e90b5d4d7d03e1ad8fb26d0d3921b33cd4aa26 100644 (file)
@@ -129,10 +129,6 @@ static int mlx4_reset_slave(struct mlx4_dev *dev)
        comm_flags = rst_req << COM_CHAN_RST_REQ_OFFSET;
        __raw_writel((__force u32)cpu_to_be32(comm_flags),
                     (__iomem char *)priv->mfunc.comm + MLX4_COMM_CHAN_FLAGS);
-       /* Make sure that our comm channel write doesn't
-        * get mixed in with writes from another CPU.
-        */
-       mmiowb();
 
        end = msecs_to_jiffies(MLX4_COMM_TIME) + jiffies;
        while (time_before(jiffies, end)) {
index a5d5d6fc1da003b84ee0d8395df10264f4b6e4f6..c678344d22a2cd0a924a77701b54da70b5e0f682 100644 (file)
@@ -281,7 +281,6 @@ static int mlx4_comm_cmd_post(struct mlx4_dev *dev, u8 cmd, u16 param)
        val = param | (cmd << 16) | (priv->cmd.comm_toggle << 31);
        __raw_writel((__force u32) cpu_to_be32(val),
                     &priv->mfunc.comm->slave_write);
-       mmiowb();
        mutex_unlock(&dev->persist->device_state_mutex);
        return 0;
 }
@@ -496,12 +495,6 @@ static int mlx4_cmd_post(struct mlx4_dev *dev, u64 in_param, u64 out_param,
                                               (op_modifier << HCR_OPMOD_SHIFT) |
                                               op), hcr + 6);
 
-       /*
-        * Make sure that our HCR writes don't get mixed in with
-        * writes from another CPU starting a FW command.
-        */
-       mmiowb();
-
        cmd->toggle = cmd->toggle ^ 1;
 
        ret = 0;
@@ -2206,7 +2199,6 @@ static void mlx4_master_do_cmd(struct mlx4_dev *dev, int slave, u8 cmd,
        }
        __raw_writel((__force u32) cpu_to_be32(reply),
                     &priv->mfunc.comm[slave].slave_read);
-       mmiowb();
 
        return;
 
@@ -2410,7 +2402,6 @@ int mlx4_multi_func_init(struct mlx4_dev *dev)
                                     &priv->mfunc.comm[i].slave_write);
                        __raw_writel((__force u32) 0,
                                     &priv->mfunc.comm[i].slave_read);
-                       mmiowb();
                        for (port = 1; port <= MLX4_MAX_PORTS; port++) {
                                struct mlx4_vport_state *admin_vport;
                                struct mlx4_vport_state *oper_vport;
@@ -2576,10 +2567,6 @@ void mlx4_report_internal_err_comm_event(struct mlx4_dev *dev)
                slave_read |= (u32)COMM_CHAN_EVENT_INTERNAL_ERR;
                __raw_writel((__force u32)cpu_to_be32(slave_read),
                             &priv->mfunc.comm[slave].slave_read);
-               /* Make sure that our comm channel write doesn't
-                * get mixed in with writes from another CPU.
-                */
-               mmiowb();
        }
 }
 
index be48c6440251fb7426ab77d90346e440b9b833c4..c087d1014b097a52ca144871669c48fadfd12b2b 100644 (file)
@@ -917,7 +917,6 @@ static void cmd_work_handler(struct work_struct *work)
        mlx5_core_dbg(dev, "writing 0x%x to command doorbell\n", 1 << ent->idx);
        wmb();
        iowrite32be(1 << ent->idx, &dev->iseg->cmd_dbell);
-       mmiowb();
        /* if not in polling don't use ent after this point */
        if (cmd_mode == CMD_MODE_POLLING || poll_cmd) {
                poll_timeout(ent);
index e0340f778d8fbf671d16a68c031cb03aa50963f6..d8b7fba96d58ed109a4962e0128909f9ea283e50 100644 (file)
@@ -1439,7 +1439,6 @@ myri10ge_tx_done(struct myri10ge_slice_state *ss, int mcp_index)
                        tx->queue_active = 0;
                        put_be32(htonl(1), tx->send_stop);
                        mb();
-                       mmiowb();
                }
                __netif_tx_unlock(dev_queue);
        }
@@ -2861,7 +2860,6 @@ static netdev_tx_t myri10ge_xmit(struct sk_buff *skb,
                tx->queue_active = 1;
                put_be32(htonl(1), tx->send_go);
                mb();
-               mmiowb();
        }
        tx->pkt_start++;
        if ((avail - count) < MXGEFW_MAX_SEND_DESC) {
index feda9644289d41d6cdc74b70aaffdc281d88e93c..3b2ae1a21678697304684c4bb54fc4af030cd088 100644 (file)
@@ -4153,8 +4153,6 @@ static netdev_tx_t s2io_xmit(struct sk_buff *skb, struct net_device *dev)
 
        writeq(val64, &tx_fifo->List_Control);
 
-       mmiowb();
-
        put_off++;
        if (put_off == fifo->tx_curr_put_info.fifo_len + 1)
                put_off = 0;
index b877acec5cde6ab72767bcd89df08536d706ec41..1d334f2e0a5688900ce63c42da62f7dcba918817 100644 (file)
@@ -1826,7 +1826,6 @@ static int vxge_poll_msix(struct napi_struct *napi, int budget)
                vxge_hw_channel_msix_unmask(
                                (struct __vxge_hw_channel *)ring->handle,
                                ring->rx_vector_no);
-               mmiowb();
        }
 
        /* We are copying and returning the local variable, in case if after
@@ -2234,8 +2233,6 @@ static irqreturn_t vxge_tx_msix_handle(int irq, void *dev_id)
        vxge_hw_channel_msix_unmask((struct __vxge_hw_channel *)fifo->handle,
                                    fifo->tx_vector_no);
 
-       mmiowb();
-
        return IRQ_HANDLED;
 }
 
@@ -2272,14 +2269,12 @@ vxge_alarm_msix_handle(int irq, void *dev_id)
                 */
                vxge_hw_vpath_msix_mask(vdev->vpaths[i].handle, msix_id);
                vxge_hw_vpath_msix_clear(vdev->vpaths[i].handle, msix_id);
-               mmiowb();
 
                status = vxge_hw_vpath_alarm_process(vdev->vpaths[i].handle,
                        vdev->exec_mode);
                if (status == VXGE_HW_OK) {
                        vxge_hw_vpath_msix_unmask(vdev->vpaths[i].handle,
                                                  msix_id);
-                       mmiowb();
                        continue;
                }
                vxge_debug_intr(VXGE_ERR,
index 59e77e3086bb3d70d19ff210daf45b1a487da522..709d20d9938fb09ec8ea4e85addf57f480b91e90 100644 (file)
@@ -1399,11 +1399,7 @@ static void __vxge_hw_non_offload_db_post(struct __vxge_hw_fifo *fifo,
                VXGE_HW_NODBW_GET_NO_SNOOP(no_snoop),
                &fifo->nofl_db->control_0);
 
-       mmiowb();
-
        writeq(txdl_ptr, &fifo->nofl_db->txdl_ptr);
-
-       mmiowb();
 }
 
 /**
index e23980e301b6a2be7f015d6a0c6f6aaadbf788b3..69e6a90edf2fecd1e9c80035eabe8ef404c5f01b 100644 (file)
@@ -774,18 +774,12 @@ static inline u16 qed_attn_update_idx(struct qed_hwfn *p_hwfn,
 {
        u16 rc = 0, index;
 
-       /* Make certain HW write took affect */
-       mmiowb();
-
        index = le16_to_cpu(p_sb_desc->sb_attn->sb_index);
        if (p_sb_desc->index != index) {
                p_sb_desc->index        = index;
                rc                    = QED_SB_ATT_IDX;
        }
 
-       /* Make certain we got a consistent view with HW */
-       mmiowb();
-
        return rc;
 }
 
@@ -1170,7 +1164,6 @@ static void qed_sb_ack_attn(struct qed_hwfn *p_hwfn,
        /* Both segments (interrupts & acks) are written to same place address;
         * Need to guarantee all commands will be received (in-order) by HW.
         */
-       mmiowb();
        barrier();
 }
 
@@ -1805,9 +1798,6 @@ static void qed_int_igu_enable_attn(struct qed_hwfn *p_hwfn,
        qed_wr(p_hwfn, p_ptt, IGU_REG_TRAILING_EDGE_LATCH, 0xfff);
        qed_wr(p_hwfn, p_ptt, IGU_REG_ATTENTION_ENABLE, 0xfff);
 
-       /* Flush the writes to IGU */
-       mmiowb();
-
        /* Unmask AEU signals toward IGU */
        qed_wr(p_hwfn, p_ptt, MISC_REG_AEU_MASK_ATTN_IGU, 0xff);
 }
@@ -1871,9 +1861,6 @@ static void qed_int_igu_cleanup_sb(struct qed_hwfn *p_hwfn,
 
        qed_wr(p_hwfn, p_ptt, IGU_REG_COMMAND_REG_CTRL, cmd_ctrl);
 
-       /* Flush the write to IGU */
-       mmiowb();
-
        /* calculate where to read the status bit from */
        sb_bit = 1 << (igu_sb_id % 32);
        sb_bit_addr = igu_sb_id / 32 * sizeof(u32);
index 79b311b86f66451b1b481daf3301ebd3b60484a8..f5f3c03b9dd2405aaa1489543e91c11f8458796d 100644 (file)
@@ -341,9 +341,6 @@ void qed_eq_prod_update(struct qed_hwfn *p_hwfn, u16 prod)
                   USTORM_EQE_CONS_OFFSET(p_hwfn->rel_pf_id);
 
        REG_WR16(p_hwfn, addr, prod);
-
-       /* keep prod updates ordered */
-       mmiowb();
 }
 
 int qed_eq_completion(struct qed_hwfn *p_hwfn, void *cookie)
index b4c8949933f161521c1a544ce8c738c35ec381f4..4555c0b161efbda1356a0868117b65d4866d0746 100644 (file)
@@ -1526,14 +1526,6 @@ static int qede_selftest_transmit_traffic(struct qede_dev *edev,
        barrier();
        writel(txq->tx_db.raw, txq->doorbell_addr);
 
-       /* mmiowb is needed to synchronize doorbell writes from more than one
-        * processor. It guarantees that the write arrives to the device before
-        * the queue lock is released and another start_xmit is called (possibly
-        * on another CPU). Without this barrier, the next doorbell can bypass
-        * this doorbell. This is applicable to IA64/Altix systems.
-        */
-       mmiowb();
-
        for (i = 0; i < QEDE_SELFTEST_POLL_COUNT; i++) {
                if (qede_txq_has_work(txq))
                        break;
index 31b046e24565f38dbdb117ec6cd0f69430419c45..6f7e3622c6b41816b0c166e33475c9582b5c7841 100644 (file)
@@ -580,14 +580,6 @@ void qede_update_rx_prod(struct qede_dev *edev, struct qede_rx_queue *rxq)
 
        internal_ram_wr(rxq->hw_rxq_prod_addr, sizeof(rx_prods),
                        (u32 *)&rx_prods);
-
-       /* mmiowb is needed to synchronize doorbell writes from more than one
-        * processor. It guarantees that the write arrives to the device before
-        * the napi lock is released and another qede_poll is called (possibly
-        * on another CPU). Without this barrier, the next doorbell can bypass
-        * this doorbell. This is applicable to IA64/Altix systems.
-        */
-       mmiowb();
 }
 
 static void qede_get_rxhash(struct sk_buff *skb, u8 bitfields, __le32 rss_hash)
index b61b88cbc0c7ddb58b0930b2a427a18b16f16f1b..457444894d807bc7264d6e54c2bb161ad6a3abe2 100644 (file)
@@ -1858,7 +1858,6 @@ static void ql_update_small_bufq_prod_index(struct ql3_adapter *qdev)
                wmb();
                writel_relaxed(qdev->small_buf_q_producer_index,
                               &port_regs->CommonRegs.rxSmallQProducerIndex);
-               mmiowb();
        }
 }
 
index 3e71b65a954657f94f323c2320eba129025760b1..ad7c5eb8a3b6b25a1dfe82493b4cf2bd94ea7cd0 100644 (file)
@@ -2181,7 +2181,6 @@ static inline void ql_write32(const struct ql_adapter *qdev, int reg, u32 val)
 static inline void ql_write_db_reg(u32 val, void __iomem *addr)
 {
        writel(val, addr);
-       mmiowb();
 }
 
 /*
index 07e1c623048e5ba3e8eaa3b82f3fe360502af16e..6cae33072496cf5fb80ce50a9bee65370695d2ea 100644 (file)
@@ -2695,7 +2695,6 @@ static netdev_tx_t qlge_send(struct sk_buff *skb, struct net_device *ndev)
        wmb();
 
        ql_write_db_reg_relaxed(tx_ring->prod_idx, tx_ring->prod_idx_db_reg);
-       mmiowb();
        netif_printk(qdev, tx_queued, KERN_DEBUG, qdev->ndev,
                     "tx queued, slot %d, len %d\n",
                     tx_ring->prod_idx, skb->len);
index 8154b38c08f717f39adb1c5255493d5f0373a6ee..316b47741d3f7a56976d46ff6d8f095502eb2b19 100644 (file)
@@ -728,7 +728,6 @@ static irqreturn_t ravb_emac_interrupt(int irq, void *dev_id)
 
        spin_lock(&priv->lock);
        ravb_emac_interrupt_unlocked(ndev);
-       mmiowb();
        spin_unlock(&priv->lock);
        return IRQ_HANDLED;
 }
@@ -848,7 +847,6 @@ static irqreturn_t ravb_interrupt(int irq, void *dev_id)
                result = IRQ_HANDLED;
        }
 
-       mmiowb();
        spin_unlock(&priv->lock);
        return result;
 }
@@ -881,7 +879,6 @@ static irqreturn_t ravb_multi_interrupt(int irq, void *dev_id)
                result = IRQ_HANDLED;
        }
 
-       mmiowb();
        spin_unlock(&priv->lock);
        return result;
 }
@@ -898,7 +895,6 @@ static irqreturn_t ravb_dma_interrupt(int irq, void *dev_id, int q)
        if (ravb_queue_interrupt(ndev, q))
                result = IRQ_HANDLED;
 
-       mmiowb();
        spin_unlock(&priv->lock);
        return result;
 }
@@ -943,7 +939,6 @@ static int ravb_poll(struct napi_struct *napi, int budget)
                        ravb_write(ndev, ~(mask | TIS_RESERVED), TIS);
                        ravb_tx_free(ndev, q, true);
                        netif_wake_subqueue(ndev, q);
-                       mmiowb();
                        spin_unlock_irqrestore(&priv->lock, flags);
                }
        }
@@ -959,7 +954,6 @@ static int ravb_poll(struct napi_struct *napi, int budget)
                ravb_write(ndev, mask, RIE0);
                ravb_write(ndev, mask, TIE);
        }
-       mmiowb();
        spin_unlock_irqrestore(&priv->lock, flags);
 
        /* Receive error message handling */
@@ -1008,7 +1002,6 @@ static void ravb_adjust_link(struct net_device *ndev)
        if (priv->no_avb_link && phydev->link)
                ravb_rcv_snd_enable(ndev);
 
-       mmiowb();
        spin_unlock_irqrestore(&priv->lock, flags);
 
        if (new_state && netif_msg_link(priv))
@@ -1601,7 +1594,6 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)
                netif_stop_subqueue(ndev, q);
 
 exit:
-       mmiowb();
        spin_unlock_irqrestore(&priv->lock, flags);
        return NETDEV_TX_OK;
 
@@ -1673,7 +1665,6 @@ static void ravb_set_rx_mode(struct net_device *ndev)
        spin_lock_irqsave(&priv->lock, flags);
        ravb_modify(ndev, ECMR, ECMR_PRM,
                    ndev->flags & IFF_PROMISC ? ECMR_PRM : 0);
-       mmiowb();
        spin_unlock_irqrestore(&priv->lock, flags);
 }
 
index dce2a40a31e336d6a45b8e393a384787743859f9..9a42580693cb19faeb00e613b6572fff4ba60453 100644 (file)
@@ -196,7 +196,6 @@ static int ravb_ptp_extts(struct ptp_clock_info *ptp,
                ravb_write(ndev, GIE_PTCS, GIE);
        else
                ravb_write(ndev, GID_PTCD, GID);
-       mmiowb();
        spin_unlock_irqrestore(&priv->lock, flags);
 
        return 0;
@@ -259,7 +258,6 @@ static int ravb_ptp_perout(struct ptp_clock_info *ptp,
                else
                        ravb_write(ndev, GID_PTMD0, GID);
        }
-       mmiowb();
        spin_unlock_irqrestore(&priv->lock, flags);
 
        return error;
@@ -331,7 +329,6 @@ void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev)
        spin_lock_irqsave(&priv->lock, flags);
        ravb_wait(ndev, GCCR, GCCR_TCR, GCCR_TCR_NOREQ);
        ravb_modify(ndev, GCCR, GCCR_TCSS, GCCR_TCSS_ADJGPTP);
-       mmiowb();
        spin_unlock_irqrestore(&priv->lock, flags);
 
        priv->ptp.clock = ptp_clock_register(&priv->ptp.info, &pdev->dev);
index e33af371b169ea54ae6449deb72902e51b02ca82..ed30aebdb941a02e2136b89997ea5727613fd4de 100644 (file)
@@ -2010,7 +2010,6 @@ static void sh_eth_adjust_link(struct net_device *ndev)
        if ((mdp->cd->no_psr || mdp->no_ether_link) && phydev->link)
                sh_eth_rcv_snd_enable(ndev);
 
-       mmiowb();
        spin_unlock_irqrestore(&mdp->lock, flags);
 
        if (new_state && netif_msg_link(mdp))
index 7085ee1d5e2b67bf26f02ec0d7288dafa6c7567e..c3577643fbdaebd9ba7c6f495600e6c8860c0706 100644 (file)
@@ -108,7 +108,6 @@ static inline void ef4_writeo(struct ef4_nic *efx, const ef4_oword_t *value,
        _ef4_writed(efx, value->u32[2], reg + 8);
        _ef4_writed(efx, value->u32[3], reg + 12);
 #endif
-       mmiowb();
        spin_unlock_irqrestore(&efx->biu_lock, flags);
 }
 
@@ -130,7 +129,6 @@ static inline void ef4_sram_writeq(struct ef4_nic *efx, void __iomem *membase,
        __raw_writel((__force u32)value->u32[0], membase + addr);
        __raw_writel((__force u32)value->u32[1], membase + addr + 4);
 #endif
-       mmiowb();
        spin_unlock_irqrestore(&efx->biu_lock, flags);
 }
 
index 89563170af5216ef99239089d584e3e5ffb61e34..2774a10f44e959858f0126550585f47c1b50b880 100644 (file)
@@ -120,7 +120,6 @@ static inline void efx_writeo(struct efx_nic *efx, const efx_oword_t *value,
        _efx_writed(efx, value->u32[2], reg + 8);
        _efx_writed(efx, value->u32[3], reg + 12);
 #endif
-       mmiowb();
        spin_unlock_irqrestore(&efx->biu_lock, flags);
 }
 
@@ -142,7 +141,6 @@ static inline void efx_sram_writeq(struct efx_nic *efx, void __iomem *membase,
        __raw_writel((__force u32)value->u32[0], membase + addr);
        __raw_writel((__force u32)value->u32[1], membase + addr + 4);
 #endif
-       mmiowb();
        spin_unlock_irqrestore(&efx->biu_lock, flags);
 }
 
index c07fd594fe71a0009ab76a57e1f9ce9c25661aa3..db5dc8ce0aff8daa4e287ae98d115cedb7b77676 100644 (file)
@@ -361,7 +361,6 @@ static void sc92031_disable_interrupts(struct net_device *dev)
        /* stop interrupts */
        iowrite32(0, port_base + IntrMask);
        _sc92031_dummy_read(port_base);
-       mmiowb();
 
        /* wait for any concurrent interrupt/tasklet to finish */
        synchronize_irq(priv->pdev->irq);
@@ -379,7 +378,6 @@ static void sc92031_enable_interrupts(struct net_device *dev)
        wmb();
 
        iowrite32(IntrBits, port_base + IntrMask);
-       mmiowb();
 }
 
 static void _sc92031_disable_tx_rx(struct net_device *dev)
@@ -867,7 +865,6 @@ static void sc92031_tasklet(unsigned long data)
        rmb();
 
        iowrite32(intr_mask, port_base + IntrMask);
-       mmiowb();
 
        spin_unlock(&priv->lock);
 }
@@ -901,7 +898,6 @@ static irqreturn_t sc92031_interrupt(int irq, void *dev_id)
        rmb();
 
        iowrite32(intr_mask, port_base + IntrMask);
-       mmiowb();
 
        return IRQ_NONE;
 }
@@ -978,7 +974,6 @@ static netdev_tx_t sc92031_start_xmit(struct sk_buff *skb,
        iowrite32(priv->tx_bufs_dma_addr + entry * TX_BUF_SIZE,
                        port_base + TxAddr0 + entry * 4);
        iowrite32(tx_status, port_base + TxStatus0 + entry * 4);
-       mmiowb();
 
        if (priv->tx_head - priv->tx_tail >= NUM_TX_DESC)
                netif_stop_queue(dev);
@@ -1024,7 +1019,6 @@ static int sc92031_open(struct net_device *dev)
        spin_lock_bh(&priv->lock);
 
        _sc92031_reset(dev);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
        sc92031_enable_interrupts(dev);
@@ -1060,7 +1054,6 @@ static int sc92031_stop(struct net_device *dev)
 
        _sc92031_disable_tx_rx(dev);
        _sc92031_tx_clear(dev);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
 
@@ -1081,7 +1074,6 @@ static void sc92031_set_multicast_list(struct net_device *dev)
 
        _sc92031_set_mar(dev);
        _sc92031_set_rx_config(dev);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
 }
@@ -1098,7 +1090,6 @@ static void sc92031_tx_timeout(struct net_device *dev)
        priv->tx_timeouts++;
 
        _sc92031_reset(dev);
-       mmiowb();
 
        spin_unlock(&priv->lock);
 
@@ -1140,7 +1131,6 @@ sc92031_ethtool_get_link_ksettings(struct net_device *dev,
 
        output_status = _sc92031_mii_read(port_base, MII_OutputStatus);
        _sc92031_mii_scan(port_base);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
 
@@ -1311,7 +1301,6 @@ static int sc92031_ethtool_set_wol(struct net_device *dev,
 
        priv->pm_config = pm_config;
        iowrite32(pm_config, port_base + PMConfig);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
 
@@ -1337,7 +1326,6 @@ static int sc92031_ethtool_nway_reset(struct net_device *dev)
 
 out:
        _sc92031_mii_scan(port_base);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
 
@@ -1530,7 +1518,6 @@ static int sc92031_suspend(struct pci_dev *pdev, pm_message_t state)
 
        _sc92031_disable_tx_rx(dev);
        _sc92031_tx_clear(dev);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
 
@@ -1555,7 +1542,6 @@ static int sc92031_resume(struct pci_dev *pdev)
        spin_lock_bh(&priv->lock);
 
        _sc92031_reset(dev);
-       mmiowb();
 
        spin_unlock_bh(&priv->lock);
        sc92031_enable_interrupts(dev);
index 33949248c829e1d7ab16c5d11a6ca4208efdf43c..ab55416a10fabeb82f31a836f89ff420801cd563 100644 (file)
@@ -571,7 +571,6 @@ static void rhine_ack_events(struct rhine_private *rp, u32 mask)
        if (rp->quirks & rqStatusWBRace)
                iowrite8(mask >> 16, ioaddr + IntrStatus2);
        iowrite16(mask, ioaddr + IntrStatus);
-       mmiowb();
 }
 
 /*
@@ -863,7 +862,6 @@ static int rhine_napipoll(struct napi_struct *napi, int budget)
        if (work_done < budget) {
                napi_complete_done(napi, work_done);
                iowrite16(enable_mask, ioaddr + IntrEnable);
-               mmiowb();
        }
        return work_done;
 }
@@ -1893,7 +1891,6 @@ static netdev_tx_t rhine_start_tx(struct sk_buff *skb,
 static void rhine_irq_disable(struct rhine_private *rp)
 {
        iowrite16(0x0000, rp->base + IntrEnable);
-       mmiowb();
 }
 
 /* The interrupt handler does all of the Rx thread work and cleans up
index d8ba512f166ad38f10f6a01c1ef10c564bdd808e..1713c2d2dccf22d6c374078ddc25cf16f9d110ac 100644 (file)
@@ -219,7 +219,6 @@ static inline int __w5100_write_direct(struct net_device *ndev, u32 addr,
 static inline int w5100_write_direct(struct net_device *ndev, u32 addr, u8 data)
 {
        __w5100_write_direct(ndev, addr, data);
-       mmiowb();
 
        return 0;
 }
@@ -236,7 +235,6 @@ static int w5100_write16_direct(struct net_device *ndev, u32 addr, u16 data)
 {
        __w5100_write_direct(ndev, addr, data >> 8);
        __w5100_write_direct(ndev, addr + 1, data);
-       mmiowb();
 
        return 0;
 }
@@ -260,8 +258,6 @@ static int w5100_writebulk_direct(struct net_device *ndev, u32 addr,
        for (i = 0; i < len; i++, addr++)
                __w5100_write_direct(ndev, addr, *buf++);
 
-       mmiowb();
-
        return 0;
 }
 
@@ -375,7 +371,6 @@ static int w5100_readbulk_indirect(struct net_device *ndev, u32 addr, u8 *buf,
        for (i = 0; i < len; i++)
                *buf++ = w5100_read_direct(ndev, W5100_IDM_DR);
 
-       mmiowb();
        spin_unlock_irqrestore(&mmio_priv->reg_lock, flags);
 
        return 0;
@@ -394,7 +389,6 @@ static int w5100_writebulk_indirect(struct net_device *ndev, u32 addr,
        for (i = 0; i < len; i++)
                __w5100_write_direct(ndev, W5100_IDM_DR, *buf++);
 
-       mmiowb();
        spin_unlock_irqrestore(&mmio_priv->reg_lock, flags);
 
        return 0;
index f9da5d6172e389ac8d52b664008f188b158844b7..3f03eecc047987d940796e9d1eb3070ab30d0a38 100644 (file)
@@ -141,7 +141,6 @@ static u16 w5300_read_indirect(struct w5300_priv *priv, u16 addr)
 
        spin_lock_irqsave(&priv->reg_lock, flags);
        w5300_write_direct(priv, W5300_IDM_AR, addr);
-       mmiowb();
        data = w5300_read_direct(priv, W5300_IDM_DR);
        spin_unlock_irqrestore(&priv->reg_lock, flags);
 
@@ -154,9 +153,7 @@ static void w5300_write_indirect(struct w5300_priv *priv, u16 addr, u16 data)
 
        spin_lock_irqsave(&priv->reg_lock, flags);
        w5300_write_direct(priv, W5300_IDM_AR, addr);
-       mmiowb();
        w5300_write_direct(priv, W5300_IDM_DR, data);
-       mmiowb();
        spin_unlock_irqrestore(&priv->reg_lock, flags);
 }
 
@@ -192,7 +189,6 @@ static int w5300_command(struct w5300_priv *priv, u16 cmd)
        unsigned long timeout = jiffies + msecs_to_jiffies(100);
 
        w5300_write(priv, W5300_S0_CR, cmd);
-       mmiowb();
 
        while (w5300_read(priv, W5300_S0_CR) != 0) {
                if (time_after(jiffies, timeout))
@@ -241,18 +237,15 @@ static void w5300_write_macaddr(struct w5300_priv *priv)
        w5300_write(priv, W5300_SHARH,
                      ndev->dev_addr[4] << 8 |
                      ndev->dev_addr[5]);
-       mmiowb();
 }
 
 static void w5300_hw_reset(struct w5300_priv *priv)
 {
        w5300_write_direct(priv, W5300_MR, MR_RST);
-       mmiowb();
        mdelay(5);
        w5300_write_direct(priv, W5300_MR, priv->indirect ?
                                 MR_WDF(7) | MR_PB | MR_IND :
                                 MR_WDF(7) | MR_PB);
-       mmiowb();
        w5300_write(priv, W5300_IMR, 0);
        w5300_write_macaddr(priv);
 
@@ -264,24 +257,20 @@ static void w5300_hw_reset(struct w5300_priv *priv)
        w5300_write32(priv, W5300_TMSRL, 64 << 24);
        w5300_write32(priv, W5300_TMSRH, 0);
        w5300_write(priv, W5300_MTYPE, 0x00ff);
-       mmiowb();
 }
 
 static void w5300_hw_start(struct w5300_priv *priv)
 {
        w5300_write(priv, W5300_S0_MR, priv->promisc ?
                          S0_MR_MACRAW : S0_MR_MACRAW_MF);
-       mmiowb();
        w5300_command(priv, S0_CR_OPEN);
        w5300_write(priv, W5300_S0_IMR, S0_IR_RECV | S0_IR_SENDOK);
        w5300_write(priv, W5300_IMR, IR_S0);
-       mmiowb();
 }
 
 static void w5300_hw_close(struct w5300_priv *priv)
 {
        w5300_write(priv, W5300_IMR, 0);
-       mmiowb();
        w5300_command(priv, S0_CR_CLOSE);
 }
 
@@ -372,7 +361,6 @@ static netdev_tx_t w5300_start_tx(struct sk_buff *skb, struct net_device *ndev)
        netif_stop_queue(ndev);
 
        w5300_write_frame(priv, skb->data, skb->len);
-       mmiowb();
        ndev->stats.tx_packets++;
        ndev->stats.tx_bytes += skb->len;
        dev_kfree_skb(skb);
@@ -419,7 +407,6 @@ static int w5300_napi_poll(struct napi_struct *napi, int budget)
        if (rx_count < budget) {
                napi_complete_done(napi, rx_count);
                w5300_write(priv, W5300_IMR, IR_S0);
-               mmiowb();
        }
 
        return rx_count;
@@ -434,7 +421,6 @@ static irqreturn_t w5300_interrupt(int irq, void *ndev_instance)
        if (!ir)
                return IRQ_NONE;
        w5300_write(priv, W5300_S0_IR, ir);
-       mmiowb();
 
        if (ir & S0_IR_SENDOK) {
                netif_dbg(priv, tx_done, ndev, "tx done\n");
@@ -444,7 +430,6 @@ static irqreturn_t w5300_interrupt(int irq, void *ndev_instance)
        if (ir & S0_IR_RECV) {
                if (napi_schedule_prep(&priv->napi)) {
                        w5300_write(priv, W5300_IMR, 0);
-                       mmiowb();
                        __napi_schedule(&priv->napi);
                }
        }
index a2351ef45ae0edb804a64063372366749439ac63..65a4c142640d047e431683e65e02aa02b394bf89 100644 (file)
@@ -837,7 +837,6 @@ ath5k_txbuf_setup(struct ath5k_hw *ah, struct ath5k_buf *bf,
 
        txq->link = &ds->ds_link;
        ath5k_hw_start_tx_dma(ah, txq->qnum);
-       mmiowb();
        spin_unlock_bh(&txq->lock);
 
        return 0;
@@ -2174,7 +2173,6 @@ ath5k_beacon_config(struct ath5k_hw *ah)
        }
 
        ath5k_hw_set_imr(ah, ah->imask);
-       mmiowb();
        spin_unlock_bh(&ah->block);
 }
 
@@ -2779,7 +2777,6 @@ int ath5k_start(struct ieee80211_hw *hw)
 
        ret = 0;
 done:
-       mmiowb();
        mutex_unlock(&ah->lock);
 
        set_bit(ATH_STAT_STARTED, ah->status);
@@ -2839,7 +2836,6 @@ void ath5k_stop(struct ieee80211_hw *hw)
                                "putting device to sleep\n");
        }
 
-       mmiowb();
        mutex_unlock(&ah->lock);
 
        ath5k_stop_tasklets(ah);
index 16e052d02c94088006e380dd95bc9bec1ba28f88..5e866a193ed04685d5957067c8c799968e2b89d7 100644 (file)
@@ -263,7 +263,6 @@ ath5k_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
                memcpy(common->curbssid, bss_conf->bssid, ETH_ALEN);
                common->curaid = 0;
                ath5k_hw_set_bssid(ah);
-               mmiowb();
        }
 
        if (changes & BSS_CHANGED_BEACON_INT)
@@ -528,7 +527,6 @@ ath5k_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
                ret = -EINVAL;
        }
 
-       mmiowb();
        mutex_unlock(&ah->lock);
        return ret;
 }
index 74be3c809225a19570c9ce07c92088655a3f04c1..4c7980f8459121ae53ae95faa2e8cf4fc2cb3383 100644 (file)
@@ -485,7 +485,6 @@ static void b43_ram_write(struct b43_wldev *dev, u16 offset, u32 val)
                val = swab32(val);
 
        b43_write32(dev, B43_MMIO_RAM_CONTROL, offset);
-       mmiowb();
        b43_write32(dev, B43_MMIO_RAM_DATA, val);
 }
 
@@ -656,9 +655,7 @@ static void b43_tsf_write_locked(struct b43_wldev *dev, u64 tsf)
        /* The hardware guarantees us an atomic write, if we
         * write the low register first. */
        b43_write32(dev, B43_MMIO_REV3PLUS_TSF_LOW, low);
-       mmiowb();
        b43_write32(dev, B43_MMIO_REV3PLUS_TSF_HIGH, high);
-       mmiowb();
 }
 
 void b43_tsf_write(struct b43_wldev *dev, u64 tsf)
@@ -1822,11 +1819,9 @@ static void b43_beacon_update_trigger_work(struct work_struct *work)
                if (b43_bus_host_is_sdio(dev->dev)) {
                        /* wl->mutex is enough. */
                        b43_do_beacon_update_trigger_work(dev);
-                       mmiowb();
                } else {
                        spin_lock_irq(&wl->hardirq_lock);
                        b43_do_beacon_update_trigger_work(dev);
-                       mmiowb();
                        spin_unlock_irq(&wl->hardirq_lock);
                }
        }
@@ -2078,7 +2073,6 @@ static irqreturn_t b43_interrupt_thread_handler(int irq, void *dev_id)
 
        mutex_lock(&dev->wl->mutex);
        b43_do_interrupt_thread(dev);
-       mmiowb();
        mutex_unlock(&dev->wl->mutex);
 
        return IRQ_HANDLED;
@@ -2143,7 +2137,6 @@ static irqreturn_t b43_interrupt_handler(int irq, void *dev_id)
 
        spin_lock(&dev->wl->hardirq_lock);
        ret = b43_do_interrupt(dev);
-       mmiowb();
        spin_unlock(&dev->wl->hardirq_lock);
 
        return ret;
index 3190493bd07f4ce272ba90fbe61aa0a32f9d0535..93d03b673670d7ab607f19ccd0e725d8495d7273 100644 (file)
@@ -129,7 +129,6 @@ static ssize_t b43_attr_interfmode_store(struct device *dev,
        } else
                err = -ENOSYS;
 
-       mmiowb();
        mutex_unlock(&wldev->wl->mutex);
 
        return err ? err : count;
index ee5682e54204d6fa2bbecd4270a7ef43e4b891b7..6d15fb4d30c6ad2623d03fba586dc6f0b712d495 100644 (file)
@@ -315,14 +315,12 @@ const u16 b43legacy_ilt_sigmasqr2[B43legacy_ILT_SIGMASQR_SIZE] = {
 void b43legacy_ilt_write(struct b43legacy_wldev *dev, u16 offset, u16 val)
 {
        b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_CTRL, offset);
-       mmiowb();
        b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_DATA1, val);
 }
 
 void b43legacy_ilt_write32(struct b43legacy_wldev *dev, u16 offset, u32 val)
 {
        b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_CTRL, offset);
-       mmiowb();
        b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_DATA2,
                            (val & 0xFFFF0000) >> 16);
        b43legacy_phy_write(dev, B43legacy_PHY_ILT_G_DATA1,
index 55f411925960e9cc954de38ae2a834a4ab140c60..c777efc6dc131027986f953badbe4857ec8c6131 100644 (file)
@@ -264,7 +264,6 @@ static void b43legacy_ram_write(struct b43legacy_wldev *dev, u16 offset,
                val = swab32(val);
 
        b43legacy_write32(dev, B43legacy_MMIO_RAM_CONTROL, offset);
-       mmiowb();
        b43legacy_write32(dev, B43legacy_MMIO_RAM_DATA, val);
 }
 
@@ -341,14 +340,11 @@ void b43legacy_shm_write32(struct b43legacy_wldev *dev,
                if (offset & 0x0003) {
                        /* Unaligned access */
                        b43legacy_shm_control_word(dev, routing, offset >> 2);
-                       mmiowb();
                        b43legacy_write16(dev,
                                          B43legacy_MMIO_SHM_DATA_UNALIGNED,
                                          (value >> 16) & 0xffff);
-                       mmiowb();
                        b43legacy_shm_control_word(dev, routing,
                                                   (offset >> 2) + 1);
-                       mmiowb();
                        b43legacy_write16(dev, B43legacy_MMIO_SHM_DATA,
                                          value & 0xffff);
                        return;
@@ -356,7 +352,6 @@ void b43legacy_shm_write32(struct b43legacy_wldev *dev,
                offset >>= 2;
        }
        b43legacy_shm_control_word(dev, routing, offset);
-       mmiowb();
        b43legacy_write32(dev, B43legacy_MMIO_SHM_DATA, value);
 }
 
@@ -368,7 +363,6 @@ void b43legacy_shm_write16(struct b43legacy_wldev *dev, u16 routing, u16 offset,
                if (offset & 0x0003) {
                        /* Unaligned access */
                        b43legacy_shm_control_word(dev, routing, offset >> 2);
-                       mmiowb();
                        b43legacy_write16(dev,
                                          B43legacy_MMIO_SHM_DATA_UNALIGNED,
                                          value);
@@ -377,7 +371,6 @@ void b43legacy_shm_write16(struct b43legacy_wldev *dev, u16 routing, u16 offset,
                offset >>= 2;
        }
        b43legacy_shm_control_word(dev, routing, offset);
-       mmiowb();
        b43legacy_write16(dev, B43legacy_MMIO_SHM_DATA, value);
 }
 
@@ -471,7 +464,6 @@ static void b43legacy_time_lock(struct b43legacy_wldev *dev)
        status = b43legacy_read32(dev, B43legacy_MMIO_MACCTL);
        status |= B43legacy_MACCTL_TBTTHOLD;
        b43legacy_write32(dev, B43legacy_MMIO_MACCTL, status);
-       mmiowb();
 }
 
 static void b43legacy_time_unlock(struct b43legacy_wldev *dev)
@@ -494,10 +486,8 @@ static void b43legacy_tsf_write_locked(struct b43legacy_wldev *dev, u64 tsf)
                u32 hi = (tsf & 0xFFFFFFFF00000000ULL) >> 32;
 
                b43legacy_write32(dev, B43legacy_MMIO_REV3PLUS_TSF_LOW, 0);
-               mmiowb();
                b43legacy_write32(dev, B43legacy_MMIO_REV3PLUS_TSF_HIGH,
                                    hi);
-               mmiowb();
                b43legacy_write32(dev, B43legacy_MMIO_REV3PLUS_TSF_LOW,
                                    lo);
        } else {
@@ -507,13 +497,9 @@ static void b43legacy_tsf_write_locked(struct b43legacy_wldev *dev, u64 tsf)
                u16 v3 = (tsf & 0xFFFF000000000000ULL) >> 48;
 
                b43legacy_write16(dev, B43legacy_MMIO_TSF_0, 0);
-               mmiowb();
                b43legacy_write16(dev, B43legacy_MMIO_TSF_3, v3);
-               mmiowb();
                b43legacy_write16(dev, B43legacy_MMIO_TSF_2, v2);
-               mmiowb();
                b43legacy_write16(dev, B43legacy_MMIO_TSF_1, v1);
-               mmiowb();
                b43legacy_write16(dev, B43legacy_MMIO_TSF_0, v0);
        }
 }
@@ -1250,7 +1236,6 @@ static void b43legacy_beacon_update_trigger_work(struct work_struct *work)
                /* The handler might have updated the IRQ mask. */
                b43legacy_write32(dev, B43legacy_MMIO_GEN_IRQ_MASK,
                                  dev->irq_mask);
-               mmiowb();
                spin_unlock_irq(&wl->irq_lock);
        }
        mutex_unlock(&wl->mutex);
@@ -1346,7 +1331,6 @@ static void b43legacy_interrupt_tasklet(struct b43legacy_wldev *dev)
                               dma_reason[2], dma_reason[3],
                               dma_reason[4], dma_reason[5]);
                        b43legacy_controller_restart(dev, "DMA error");
-                       mmiowb();
                        spin_unlock_irqrestore(&dev->wl->irq_lock, flags);
                        return;
                }
@@ -1396,7 +1380,6 @@ static void b43legacy_interrupt_tasklet(struct b43legacy_wldev *dev)
                handle_irq_transmit_status(dev);
 
        b43legacy_write32(dev, B43legacy_MMIO_GEN_IRQ_MASK, dev->irq_mask);
-       mmiowb();
        spin_unlock_irqrestore(&dev->wl->irq_lock, flags);
 }
 
@@ -1488,7 +1471,6 @@ static irqreturn_t b43legacy_interrupt_handler(int irq, void *dev_id)
        dev->irq_reason = reason;
        tasklet_schedule(&dev->isr_tasklet);
 out:
-       mmiowb();
        spin_unlock(&dev->wl->irq_lock);
 
        return ret;
@@ -2781,7 +2763,6 @@ static int b43legacy_op_dev_config(struct ieee80211_hw *hw,
 
        spin_lock_irqsave(&wl->irq_lock, flags);
        b43legacy_write32(dev, B43legacy_MMIO_GEN_IRQ_MASK, dev->irq_mask);
-       mmiowb();
        spin_unlock_irqrestore(&wl->irq_lock, flags);
 out_unlock_mutex:
        mutex_unlock(&wl->mutex);
@@ -2900,7 +2881,6 @@ static void b43legacy_op_bss_info_changed(struct ieee80211_hw *hw,
        spin_lock_irqsave(&wl->irq_lock, flags);
        b43legacy_write32(dev, B43legacy_MMIO_GEN_IRQ_MASK, dev->irq_mask);
        /* XXX: why? */
-       mmiowb();
        spin_unlock_irqrestore(&wl->irq_lock, flags);
  out_unlock_mutex:
        mutex_unlock(&wl->mutex);
index 995c7d0c212ae317363f024521d4c520332ffd0f..f949766d27ca1191941cece2e63f4fb87755ea5b 100644 (file)
@@ -134,7 +134,6 @@ u16 b43legacy_phy_read(struct b43legacy_wldev *dev, u16 offset)
 void b43legacy_phy_write(struct b43legacy_wldev *dev, u16 offset, u16 val)
 {
        b43legacy_write16(dev, B43legacy_MMIO_PHY_CONTROL, offset);
-       mmiowb();
        b43legacy_write16(dev, B43legacy_MMIO_PHY_DATA, val);
 }
 
index 1cd1b9ca5e9c4cc3fe656c7b2f31bb43d0808de5..08cd02282beb4a7cb381f7fb30af8831ce8207d4 100644 (file)
@@ -92,7 +92,6 @@ void b43legacy_pio_write(struct b43legacy_pioqueue *queue,
                       u16 offset, u16 value)
 {
        b43legacy_write16(queue->dev, queue->mmio_base + offset, value);
-       mmiowb();
 }
 
 
index eab1c938784686c5d83f842231f630c1f3035fb6..c6db444ea07efc9a1bc11208a74f72debcc26ca0 100644 (file)
@@ -95,7 +95,6 @@ void b43legacy_radio_lock(struct b43legacy_wldev *dev)
        B43legacy_WARN_ON(status & B43legacy_MACCTL_RADIOLOCK);
        status |= B43legacy_MACCTL_RADIOLOCK;
        b43legacy_write32(dev, B43legacy_MMIO_MACCTL, status);
-       mmiowb();
        udelay(10);
 }
 
@@ -108,7 +107,6 @@ void b43legacy_radio_unlock(struct b43legacy_wldev *dev)
        B43legacy_WARN_ON(!(status & B43legacy_MACCTL_RADIOLOCK));
        status &= ~B43legacy_MACCTL_RADIOLOCK;
        b43legacy_write32(dev, B43legacy_MMIO_MACCTL, status);
-       mmiowb();
 }
 
 u16 b43legacy_radio_read16(struct b43legacy_wldev *dev, u16 offset)
@@ -141,7 +139,6 @@ u16 b43legacy_radio_read16(struct b43legacy_wldev *dev, u16 offset)
 void b43legacy_radio_write16(struct b43legacy_wldev *dev, u16 offset, u16 val)
 {
        b43legacy_write16(dev, B43legacy_MMIO_RADIO_CONTROL, offset);
-       mmiowb();
        b43legacy_write16(dev, B43legacy_MMIO_RADIO_DATA_LOW, val);
 }
 
@@ -333,7 +330,6 @@ u8 b43legacy_radio_aci_scan(struct b43legacy_wldev *dev)
 void b43legacy_nrssi_hw_write(struct b43legacy_wldev *dev, u16 offset, s16 val)
 {
        b43legacy_phy_write(dev, B43legacy_PHY_NRSSILT_CTRL, offset);
-       mmiowb();
        b43legacy_phy_write(dev, B43legacy_PHY_NRSSILT_DATA, (u16)val);
 }
 
index 2a1da15c913b0704eb5aa04d179e6eef70e0cfa6..2db83eec7a1100c04b64bf95e64cfa7645669047 100644 (file)
@@ -143,7 +143,6 @@ static ssize_t b43legacy_attr_interfmode_store(struct device *dev,
        if (err)
                b43legacyerr(wldev->wl, "Interference Mitigation not "
                       "supported by device\n");
-       mmiowb();
        spin_unlock_irqrestore(&wldev->wl->irq_lock, flags);
        mutex_unlock(&wldev->wl->mutex);
 
index b079c64ca014794dbdf85f7703cfd80a9f65622b..986646af8dfd4da3e0da8c7bb023fe646ccc9930 100644 (file)
@@ -2030,13 +2030,6 @@ static inline void
 _il_release_nic_access(struct il_priv *il)
 {
        _il_clear_bit(il, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ);
-       /*
-        * In above we are reading CSR_GP_CNTRL register, what will flush any
-        * previous writes, but still want write, which clear MAC_ACCESS_REQ
-        * bit, be performed on PCI bus before any other writes scheduled on
-        * different CPUs (after we drop reg_lock).
-        */
-       mmiowb();
 }
 
 static inline u32
index fe8269d023def832e97701bc7c1bd0c57df05a96..abbfc9cc80fc3b92f307434e7ce566e5e5e2bf6a 100644 (file)
@@ -2067,7 +2067,6 @@ static void iwl_trans_pcie_release_nic_access(struct iwl_trans *trans,
         * MAC_ACCESS_REQ bit to be performed before any other writes
         * scheduled on different CPUs (after we drop reg_lock).
         */
-       mmiowb();
 out:
        spin_unlock_irqrestore(&trans_pcie->reg_lock, *flags);
 }
index 1dede87dd54fadd2a0c6a5336f708e2ea968b5d0..dcf23468053507ba642c610fa8e4392caee4a0db 100644 (file)
@@ -358,8 +358,6 @@ static void idt_sw_write(struct idt_ntb_dev *ndev,
        iowrite32((u32)reg, ndev->cfgspc + (ptrdiff_t)IDT_NT_GASAADDR);
        /* Put the new value of the register */
        iowrite32(data, ndev->cfgspc + (ptrdiff_t)IDT_NT_GASADATA);
-       /* Make sure the PCIe transactions are executed */
-       mmiowb();
        /* Unlock GASA registers operations */
        spin_unlock_irqrestore(&ndev->gasa_lock, irqflags);
 }
@@ -750,7 +748,6 @@ static void idt_ntb_local_link_enable(struct idt_ntb_dev *ndev)
        spin_lock_irqsave(&ndev->mtbl_lock, irqflags);
        idt_nt_write(ndev, IDT_NT_NTMTBLADDR, ndev->part);
        idt_nt_write(ndev, IDT_NT_NTMTBLDATA, mtbldata);
-       mmiowb();
        spin_unlock_irqrestore(&ndev->mtbl_lock, irqflags);
 
        /* Notify the peers by setting and clearing the global signal bit */
@@ -778,7 +775,6 @@ static void idt_ntb_local_link_disable(struct idt_ntb_dev *ndev)
        spin_lock_irqsave(&ndev->mtbl_lock, irqflags);
        idt_nt_write(ndev, IDT_NT_NTMTBLADDR, ndev->part);
        idt_nt_write(ndev, IDT_NT_NTMTBLDATA, 0);
-       mmiowb();
        spin_unlock_irqrestore(&ndev->mtbl_lock, irqflags);
 
        /* Notify the peers by setting and clearing the global signal bit */
@@ -1339,7 +1335,6 @@ static int idt_ntb_peer_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx,
                idt_nt_write(ndev, IDT_NT_LUTLDATA, (u32)addr);
                idt_nt_write(ndev, IDT_NT_LUTMDATA, (u32)(addr >> 32));
                idt_nt_write(ndev, IDT_NT_LUTUDATA, data);
-               mmiowb();
                spin_unlock_irqrestore(&ndev->lut_lock, irqflags);
                /* Limit address isn't specified since size is fixed for LUT */
        }
@@ -1393,7 +1388,6 @@ static int idt_ntb_peer_mw_clear_trans(struct ntb_dev *ntb, int pidx,
                idt_nt_write(ndev, IDT_NT_LUTLDATA, 0);
                idt_nt_write(ndev, IDT_NT_LUTMDATA, 0);
                idt_nt_write(ndev, IDT_NT_LUTUDATA, 0);
-               mmiowb();
                spin_unlock_irqrestore(&ndev->lut_lock, irqflags);
        }
 
@@ -1812,7 +1806,6 @@ static int idt_ntb_peer_msg_write(struct ntb_dev *ntb, int pidx, int midx,
        /* Set the route and send the data */
        idt_sw_write(ndev, partdata_tbl[ndev->part].msgctl[midx], swpmsgctl);
        idt_nt_write(ndev, ntdata_tbl.msgs[midx].out, msg);
-       mmiowb();
        /* Unlock the messages routing table */
        spin_unlock_irqrestore(&ndev->msg_locks[midx], irqflags);
 
index 2a9d6b0d1f193257266acd9b86ecfe68949d1eb9..11a6cd3740049fed6eade61b4c6e6af0f32b7e3d 100644 (file)
@@ -284,11 +284,9 @@ static int perf_spad_cmd_send(struct perf_peer *peer, enum perf_cmd cmd,
                ntb_peer_spad_write(perf->ntb, peer->pidx,
                                    PERF_SPAD_HDATA(perf->gidx),
                                    upper_32_bits(data));
-               mmiowb();
                ntb_peer_spad_write(perf->ntb, peer->pidx,
                                    PERF_SPAD_CMD(perf->gidx),
                                    cmd);
-               mmiowb();
                ntb_peer_db_set(perf->ntb, PERF_SPAD_NOTIFY(peer->gidx));
 
                dev_dbg(&perf->ntb->dev, "DB ring peer %#llx\n",
@@ -379,7 +377,6 @@ static int perf_msg_cmd_send(struct perf_peer *peer, enum perf_cmd cmd,
 
                ntb_peer_msg_write(perf->ntb, peer->pidx, PERF_MSG_HDATA,
                                   upper_32_bits(data));
-               mmiowb();
 
                /* This call shall trigger peer message event */
                ntb_peer_msg_write(perf->ntb, peer->pidx, PERF_MSG_CMD, cmd);
index 0e119d838e1b6cc569f2b6905d11d2acdbf6ce15..762cb77253b97715a96e29240f30dad2607a0c5b 100644 (file)
@@ -62,8 +62,7 @@ void bfa_isr_unhandled(struct bfa_s *bfa, struct bfi_msg_s *m);
                        ((__bfa)->iocfc.cfg.drvcfg.num_reqq_elems - 1); \
                writel((__bfa)->iocfc.req_cq_pi[__reqq],                \
                        (__bfa)->iocfc.bfa_regs.cpe_q_pi[__reqq]);      \
-               mmiowb();      \
-       } while (0)
+               } while (0)
 
 #define bfa_rspq_pi(__bfa, __rspq)                                     \
        (*(u32 *)((__bfa)->iocfc.rsp_cq_shadow_pi[__rspq].kva))
index c4a0c0eb88a576ac7105ad5789403f62d7d03a59..4a0d881b260200aef75cb88223cdd40b232574c6 100644 (file)
@@ -61,7 +61,6 @@ bfa_hwcb_rspq_ack_msix(struct bfa_s *bfa, int rspq, u32 ci)
 
        bfa_rspq_ci(bfa, rspq) = ci;
        writel(ci, bfa->iocfc.bfa_regs.rme_q_ci[rspq]);
-       mmiowb();
 }
 
 void
@@ -72,7 +71,6 @@ bfa_hwcb_rspq_ack(struct bfa_s *bfa, int rspq, u32 ci)
 
        bfa_rspq_ci(bfa, rspq) = ci;
        writel(ci, bfa->iocfc.bfa_regs.rme_q_ci[rspq]);
-       mmiowb();
 }
 
 void
index b0ff378dece2c74d3b975860238eaab1ef5e73c2..b7be5f4f02a5e2234824da3f23ac36b5b8d280b5 100644 (file)
@@ -81,7 +81,6 @@ bfa_hwct_rspq_ack(struct bfa_s *bfa, int rspq, u32 ci)
 
        bfa_rspq_ci(bfa, rspq) = ci;
        writel(ci, bfa->iocfc.bfa_regs.rme_q_ci[rspq]);
-       mmiowb();
 }
 
 /*
@@ -94,7 +93,6 @@ bfa_hwct2_rspq_ack(struct bfa_s *bfa, int rspq, u32 ci)
 {
        bfa_rspq_ci(bfa, rspq) = ci;
        writel(ci, bfa->iocfc.bfa_regs.rme_q_ci[rspq]);
-       mmiowb();
 }
 
 void
index 039328d9ef136570caed424cc56cd15a49738b7f..19734ec7f42e2a25bb4e343718455f4d2eb073f7 100644 (file)
@@ -991,7 +991,6 @@ void bnx2fc_arm_cq(struct bnx2fc_rport *tgt)
                        FCOE_CQE_TOGGLE_BIT_SHIFT);
        msg = *((u32 *)rx_db);
        writel(cpu_to_le32(msg), tgt->ctx_base);
-       mmiowb();
 
 }
 
@@ -1409,7 +1408,6 @@ void bnx2fc_ring_doorbell(struct bnx2fc_rport *tgt)
                                (tgt->sq_curr_toggle_bit << 15);
        msg = *((u32 *)sq_db);
        writel(cpu_to_le32(msg), tgt->ctx_base);
-       mmiowb();
 
 }
 
index d56a78f411cd314d05c500df80aafd5458958bbd..12666313b937972495f128ff902296b0035d8ede 100644 (file)
@@ -253,7 +253,6 @@ void bnx2i_put_rq_buf(struct bnx2i_conn *bnx2i_conn, int count)
                writew(ep->qp.rq_prod_idx,
                       ep->qp.ctx_base + CNIC_RECV_DOORBELL);
        }
-       mmiowb();
 }
 
 
@@ -279,8 +278,6 @@ static void bnx2i_ring_sq_dbell(struct bnx2i_conn *bnx2i_conn, int count)
                bnx2i_ring_577xx_doorbell(bnx2i_conn);
        } else
                writew(count, ep->qp.ctx_base + CNIC_SEND_DOORBELL);
-
-       mmiowb();
 }
 
 
index 293f5cf524d7a3918f7151661dc6fae0af8da26e..59a6546fd602ab3fd24aec84b91d141824538267 100644 (file)
@@ -815,7 +815,6 @@ megasas_fire_cmd_skinny(struct megasas_instance *instance,
               &(regs)->inbound_high_queue_port);
        writel((lower_32_bits(frame_phys_addr) | (frame_count<<1))|1,
               &(regs)->inbound_low_queue_port);
-       mmiowb();
        spin_unlock_irqrestore(&instance->hba_lock, flags);
 }
 
index 1d17128030cdd452df74883aeb2671bfdc21d9f2..e35c2b64c1454f94d1e0270356e6b1c806861133 100644 (file)
@@ -242,7 +242,6 @@ megasas_fire_cmd_fusion(struct megasas_instance *instance,
                &instance->reg_set->inbound_low_queue_port);
        writel(le32_to_cpu(req_desc->u.high),
                &instance->reg_set->inbound_high_queue_port);
-       mmiowb();
        spin_unlock_irqrestore(&instance->hba_lock, flags);
 #endif
 }
index 1d8c584ec1e9197595acf2baa61bccae4305b646..f60b9e0a6ca612f84bd62ec14fd24ef975af05cf 100644 (file)
@@ -3333,7 +3333,6 @@ _base_mpi_ep_writeq(__u64 b, volatile void __iomem *addr,
        spin_lock_irqsave(writeq_lock, flags);
        __raw_writel((u32)(b), addr);
        __raw_writel((u32)(b >> 32), (addr + 4));
-       mmiowb();
        spin_unlock_irqrestore(writeq_lock, flags);
 }
 
index 6ca583bdde23ca4b7603da6901822e252e133d21..53e8221f681654e070a6f775dbf628eda890e6fc 100644 (file)
@@ -807,7 +807,6 @@ void qedf_ring_doorbell(struct qedf_rport *fcport)
        writel(*(u32 *)&dbell, fcport->p_doorbell);
        /* Make sure SQ index is updated so f/w prcesses requests in order */
        wmb();
-       mmiowb();
 }
 
 static void qedf_trace_io(struct qedf_rport *fcport, struct qedf_ioreq *io_req,
index e2a995a6e8e7308dfe06dc116109f83cb8b4a1a6..f8f86774f77fdee77085028ca1e4625593388984 100644 (file)
@@ -985,7 +985,6 @@ static void qedi_ring_doorbell(struct qedi_conn *qedi_conn)
         * others they are two different assembly operations.
         */
        wmb();
-       mmiowb();
        QEDI_INFO(&qedi_conn->qedi->dbg_ctx, QEDI_LOG_MP_REQ,
                  "prod_idx=0x%x, fw_prod_idx=0x%x, cid=0x%x\n",
                  qedi_conn->ep->sq_prod_idx, qedi_conn->ep->fw_sq_prod_idx,
index 6856dfdfa47383d5e41141cccdc3826f2b7fd7bf..93acbc5094f0598319de8ec6d2142afa092bda3b 100644 (file)
@@ -3004,8 +3004,6 @@ qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
        sp->flags |= SRB_SENT;
        ha->actthreads++;
        WRT_REG_WORD(&reg->mailbox4, ha->req_ring_index);
-       /* Enforce mmio write ordering; see comment in qla1280_isp_cmd(). */
-       mmiowb();
 
  out:
        if (status)
@@ -3254,8 +3252,6 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp)
        sp->flags |= SRB_SENT;
        ha->actthreads++;
        WRT_REG_WORD(&reg->mailbox4, ha->req_ring_index);
-       /* Enforce mmio write ordering; see comment in qla1280_isp_cmd(). */
-       mmiowb();
 
 out:
        if (status)
@@ -3379,7 +3375,6 @@ qla1280_isp_cmd(struct scsi_qla_host *ha)
         * See Documentation/driver-api/device-io.rst for more information.
         */
        WRT_REG_WORD(&reg->mailbox4, ha->req_ring_index);
-       mmiowb();
 
        LEAVE("qla1280_isp_cmd");
 }
index 84807a9b4b13abbc58e5449b486ee1e3a6d58892..da2d2ab8104d38e4277e3dcbb4a74bac7a012175 100644 (file)
@@ -305,7 +305,6 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom)
                else if (i % 2)
                        pr_cont(".");
                writew(sprom[i], bus->mmio + bus->sprom_offset + (i * 2));
-               mmiowb();
                msleep(20);
        }
        err = pci_read_config_dword(pdev, SSB_SPROMCTL, &spromctl);
index 567013f8a8be9bde6b4fc1f68d8a53171d91f939..d7d730c245c56870158417d6e1a05d4fb53c963e 100644 (file)
@@ -338,7 +338,6 @@ static void ssb_pcmcia_write8(struct ssb_device *dev, u16 offset, u8 value)
        err = select_core_and_segment(dev, &offset);
        if (likely(!err))
                writeb(value, bus->mmio + offset);
-       mmiowb();
        spin_unlock_irqrestore(&bus->bar_lock, flags);
 }
 
@@ -352,7 +351,6 @@ static void ssb_pcmcia_write16(struct ssb_device *dev, u16 offset, u16 value)
        err = select_core_and_segment(dev, &offset);
        if (likely(!err))
                writew(value, bus->mmio + offset);
-       mmiowb();
        spin_unlock_irqrestore(&bus->bar_lock, flags);
 }
 
@@ -368,7 +366,6 @@ static void ssb_pcmcia_write32(struct ssb_device *dev, u16 offset, u32 value)
                writew((value & 0x0000FFFF), bus->mmio + offset);
                writew(((value & 0xFFFF0000) >> 16), bus->mmio + offset + 2);
        }
-       mmiowb();
        spin_unlock_irqrestore(&bus->bar_lock, flags);
 }
 
@@ -424,7 +421,6 @@ static void ssb_pcmcia_block_write(struct ssb_device *dev, const void *buffer,
                WARN_ON(1);
        }
 unlock:
-       mmiowb();
        spin_unlock_irqrestore(&bus->bar_lock, flags);
 }
 #endif /* CONFIG_SSB_BLOCKIO */
index 61e03ad8412300ddbcf762f86bc9db1288d09402..639ec15869760f5406df8be4f4a6f4f3964dd407 100644 (file)
@@ -371,7 +371,6 @@ static unsigned int mite_get_status(struct mite_channel *mite_chan)
                writel(CHOR_CLRDONE,
                       mite->mmio + MITE_CHOR(mite_chan->channel));
        }
-       mmiowb();
        spin_unlock_irqrestore(&mite->lock, flags);
        return status;
 }
@@ -451,7 +450,6 @@ void mite_dma_arm(struct mite_channel *mite_chan)
        mite_chan->done = 0;
        /* arm */
        writel(CHOR_START, mite->mmio + MITE_CHOR(mite_chan->channel));
-       mmiowb();
        spin_unlock_irqrestore(&mite->lock, flags);
 }
 EXPORT_SYMBOL_GPL(mite_dma_arm);
@@ -638,7 +636,6 @@ void mite_release_channel(struct mite_channel *mite_chan)
                       CHCR_CLR_LC_IE | CHCR_CLR_CONT_RB_IE,
                       mite->mmio + MITE_CHCR(mite_chan->channel));
                mite_chan->ring = NULL;
-               mmiowb();
        }
        spin_unlock_irqrestore(&mite->lock, flags);
 }
index 405573e927cfc5e3ae5cea4bba3a6047e5d0b707..4ee9b260eab0ec90b22f39c265d16e0978afa75e 100644 (file)
@@ -320,7 +320,6 @@ static inline void ni_660x_set_dma_channel(struct comedi_device *dev,
        ni_660x_write(dev, chip, devpriv->dma_cfg[chip] |
                      NI660X_DMA_CFG_RESET(mite_channel),
                      NI660X_DMA_CFG);
-       mmiowb();
 }
 
 static inline void ni_660x_unset_dma_channel(struct comedi_device *dev,
@@ -333,7 +332,6 @@ static inline void ni_660x_unset_dma_channel(struct comedi_device *dev,
        devpriv->dma_cfg[chip] &= ~NI660X_DMA_CFG_SEL_MASK(mite_channel);
        devpriv->dma_cfg[chip] |= NI660X_DMA_CFG_SEL_NONE(mite_channel);
        ni_660x_write(dev, chip, devpriv->dma_cfg[chip], NI660X_DMA_CFG);
-       mmiowb();
 }
 
 static int ni_660x_request_mite_channel(struct comedi_device *dev,
index b04dad8c70927a0aa52229393c063adce4b32e37..668f2aa16baaa9fcbb2c629b5ab1c45da5d875fb 100644 (file)
@@ -547,7 +547,6 @@ static inline void ni_set_bitfield(struct comedi_device *dev, int reg,
                        reg);
                break;
        }
-       mmiowb();
        spin_unlock_irqrestore(&devpriv->soft_reg_copy_lock, flags);
 }
 
index 4bdef87d5dd733bc6de4e3c2e798a3dc9c706489..8f3864799c1999215daba274697b17c3edb4adad 100644 (file)
@@ -310,7 +310,6 @@ static int ni_pcidio_request_di_mite_channel(struct comedi_device *dev)
        writeb(primary_DMAChannel_bits(devpriv->di_mite_chan->channel) |
               secondary_DMAChannel_bits(devpriv->di_mite_chan->channel),
               dev->mmio + DMA_LINE_CONTROL_GROUP1);
-       mmiowb();
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
        return 0;
 }
@@ -327,7 +326,6 @@ static void ni_pcidio_release_di_mite_channel(struct comedi_device *dev)
                writeb(primary_DMAChannel_bits(0) |
                       secondary_DMAChannel_bits(0),
                       dev->mmio + DMA_LINE_CONTROL_GROUP1);
-               mmiowb();
        }
        spin_unlock_irqrestore(&devpriv->mite_channel_lock, flags);
 }
index 048cb35723ad1ca9e31499b4ed5d5c92d5811a3e..c1131a1622c019677a20d12739314c5565d6d0d4 100644 (file)
@@ -234,7 +234,6 @@ static void ni_tio_set_bits_transient(struct ni_gpct *counter,
                regs[reg] &= ~mask;
                regs[reg] |= (value & mask);
                ni_tio_write(counter, regs[reg] | transient, reg);
-               mmiowb();
                spin_unlock_irqrestore(&counter_dev->regs_lock, flags);
        }
 }
index f5af6f4069dc2ce2c6154a7f859c909050c5c12d..39049d3c56d7b768aee1d795e6add58bd1bf4445 100644 (file)
@@ -108,7 +108,6 @@ static void s626_mc_enable(struct comedi_device *dev,
 {
        unsigned int val = (cmd << 16) | cmd;
 
-       mmiowb();
        writel(val, dev->mmio + reg);
 }
 
@@ -116,7 +115,6 @@ static void s626_mc_disable(struct comedi_device *dev,
                            unsigned int cmd, unsigned int reg)
 {
        writel(cmd << 16, dev->mmio + reg);
-       mmiowb();
 }
 
 static bool s626_mc_test(struct comedi_device *dev,
index ef89534dd760c81ee04196b9b682dcbd5d683793..e5d3ebab6dae685030d307447827bcf17f383f34 100644 (file)
@@ -353,7 +353,6 @@ static void men_z135_handle_tx(struct men_z135_port *uart)
 
        memcpy_toio(port->membase + MEN_Z135_TX_RAM, &xmit->buf[xmit->tail], n);
        xmit->tail = (xmit->tail + n) & (UART_XMIT_SIZE - 1);
-       mmiowb();
 
        iowrite32(n & 0x3ff, port->membase + MEN_Z135_TX_CTRL);
 
index 1b4008d022bfd541c08665f2100f66793ffe00d1..d22ccb32aa9b7bf85d88adf08fc924f3541ba98a 100644 (file)
@@ -248,7 +248,6 @@ static void serial_txx9_initialize(struct uart_port *port)
        sio_out(up, TXX9_SIFCR, TXX9_SIFCR_SWRST);
        /* TX4925 BUG WORKAROUND.  Accessing SIOC register
         * immediately after soft reset causes bus error. */
-       mmiowb();
        udelay(1);
        while ((sio_in(up, TXX9_SIFCR) & TXX9_SIFCR_SWRST) && --tmout)
                udelay(1);
index c9cfb100ecdca4e2d75800340cf8b90ee418f2fe..cac991173ac042b2fea6f0aca07bba52c642fc15 100644 (file)
@@ -533,8 +533,6 @@ static int xdbc_handle_external_reset(void)
 
        xdbc_mem_init();
 
-       mmiowb();
-
        ret = xdbc_start();
        if (ret < 0)
                goto reset_out;
@@ -587,8 +585,6 @@ static int __init xdbc_early_setup(void)
 
        xdbc_mem_init();
 
-       mmiowb();
-
        ret = xdbc_start();
        if (ret < 0) {
                writel(0, &xdbc.xdbc_reg->control);
index d932cc31711e8a0a872efaf35d2ab347fa45106d..52e32644a4b2fb4ea25a8d7270d883726ced2b94 100644 (file)
@@ -421,8 +421,6 @@ static int xhci_dbc_mem_init(struct xhci_hcd *xhci, gfp_t flags)
        string_length = xhci_dbc_populate_strings(dbc->string);
        xhci_dbc_init_contexts(xhci, string_length);
 
-       mmiowb();
-
        xhci_dbc_eps_init(xhci);
        dbc->state = DS_INITIALIZED;
 
index f6165d304b4dd2f0a3a2a7246e9bdebbcec74676..48841e5dab90f5b462f38da073b3d3e5d1179bb7 100644 (file)
@@ -1338,7 +1338,6 @@ static inline u16 qed_sb_update_sb_idx(struct qed_sb_info *sb_info)
        }
 
        /* Let SB update */
-       mmiowb();
        return rc;
 }
 
@@ -1374,7 +1373,6 @@ static inline void qed_sb_ack(struct qed_sb_info *sb_info,
        /* Both segments (interrupts & acks) are written to same place address;
         * Need to guarantee all commands will be received (in-order) by HW.
         */
-       mmiowb();
        barrier();
 }
 
index 1cfca698ae4b40b6b5cca1328083e29f17ab0ac8..b0fa285c7ba298765368ea27abeb6af52139c070 100644 (file)
@@ -102,7 +102,6 @@ static void txx9aclc_ac97_cold_reset(struct snd_ac97 *ac97)
        u32 ready = ACINT_CODECRDY(ac97->num) | ACINT_REGACCRDY;
 
        __raw_writel(ACCTL_ENLINK, base + ACCTLDIS);
-       mmiowb();
        udelay(1);
        __raw_writel(ACCTL_ENLINK, base + ACCTLEN);
        /* wait for primary codec ready status */