1. 22 9月, 2013 4 次提交
    • R
      DMA-API: net: intel/ixgb: fix 32-bit DMA mask handling · 59099036
      Russell King 提交于
      The fallback to 32-bit DMA mask is rather odd:
      	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
      	if (!err) {
      		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
      		if (!err)
      			pci_using_dac = 1;
      	} else {
      		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
      		if (err) {
      			err = dma_set_coherent_mask(&pdev->dev,
      						    DMA_BIT_MASK(32));
      			if (err) {
      				pr_err("No usable DMA configuration, aborting\n");
      				goto err_dma_mask;
      			}
      		}
      	}
      This means we only set the coherent DMA mask in the fallback path if
      the DMA mask set failed, which is silly.  This fixes it to set the
      coherent DMA mask only if dma_set_mask() succeeded, and to error out
      if either fails.
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      59099036
    • R
      DMA-API: net: intel/igbvf: fix 32-bit DMA mask handling · c21b8ebc
      Russell King 提交于
      The fallback to 32-bit DMA mask is rather odd:
      	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
      	if (!err) {
      		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
      		if (!err)
      			pci_using_dac = 1;
      	} else {
      		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
      		if (err) {
      			err = dma_set_coherent_mask(&pdev->dev,
      						    DMA_BIT_MASK(32));
      			if (err) {
      				dev_err(&pdev->dev, "No usable DMA "
      					"configuration, aborting\n");
      				goto err_dma;
      			}
      		}
      	}
      This means we only set the coherent DMA mask in the fallback path if
      the DMA mask set failed, which is silly.  This fixes it to set the
      coherent DMA mask only if dma_set_mask() succeeded, and to error out
      if either fails.
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c21b8ebc
    • R
      DMA-API: net: intel/igb: fix 32-bit DMA mask handling · dc4ff9bb
      Russell King 提交于
      The fallback to 32-bit DMA mask is rather odd:
      	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
      	if (!err) {
      		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
      		if (!err)
      			pci_using_dac = 1;
      	} else {
      		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
      		if (err) {
      			err = dma_set_coherent_mask(&pdev->dev,
      						    DMA_BIT_MASK(32));
      			if (err) {
      				dev_err(&pdev->dev,
      					"No usable DMA configuration, aborting\n");
      				goto err_dma;
      			}
      		}
      	}
      This means we only set the coherent DMA mask in the fallback path if
      the DMA mask set failed, which is silly.  This fixes it to set the
      coherent DMA mask only if dma_set_mask() succeeded, and to error out
      if either fails.
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      dc4ff9bb
    • R
      DMA-API: net: intel/e1000e: fix 32-bit DMA mask handling · 718a39eb
      Russell King 提交于
      The fallback to 32-bit DMA mask is rather odd:
      	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
      	if (!err) {
      		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
      		if (!err)
      			pci_using_dac = 1;
      	} else {
      		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
      		if (err) {
      			err = dma_set_coherent_mask(&pdev->dev,
      						    DMA_BIT_MASK(32));
      			if (err) {
      				dev_err(&pdev->dev,
      					"No usable DMA configuration, aborting\n");
      				goto err_dma;
      			}
      		}
      	}
      This means we only set the coherent DMA mask in the fallback path if
      the DMA mask set failed, which is silly.  This fixes it to set the
      coherent DMA mask only if dma_set_mask() succeeded, and to error out
      if either fails.
      Acked-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      718a39eb
  2. 17 9月, 2013 1 次提交
    • R
      DMA-API: net: brocade/bna/bnad.c: fix 32-bit DMA mask handling · 3e548079
      Russell King 提交于
      The fallback to 32-bit DMA mask is rather odd:
      	if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) &&
      	    !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
      		*using_dac = true;
      	} else {
      		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
      		if (err) {
      			err = dma_set_coherent_mask(&pdev->dev,
      						    DMA_BIT_MASK(32));
      			if (err)
      				goto release_regions;
      		}
      
      This means we only try and set the coherent DMA mask if we failed to
      set a 32-bit DMA mask, and only if both fail do we fail the driver.
      Adjust this so that if either setting fails, we fail the driver - and
      thereby end up properly setting both the DMA mask and the coherent
      DMA mask in the fallback case.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      3e548079
  3. 13 9月, 2013 2 次提交
    • M
      Remove GENERIC_HARDIRQ config option · 0244ad00
      Martin Schwidefsky 提交于
      After the last architecture switched to generic hard irqs the config
      options HAVE_GENERIC_HARDIRQS & GENERIC_HARDIRQS and the related code
      for !CONFIG_GENERIC_HARDIRQS can be removed.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      0244ad00
    • M
      MIPS: DECstation I/O ASIC DMA interrupt handling fix · 5359b938
      Maciej W. Rozycki 提交于
      This change complements commit d0da7c002f7b2a93582187a9e3f73891a01d8ee4
      and brings clear_ioasic_irq back, renaming it to clear_ioasic_dma_irq at
      the same time, to make I/O ASIC DMA interrupts functional.
      
      Unlike ordinary I/O ASIC interrupts DMA interrupts need to be deasserted
      by software by writing 0 to the respective bit in I/O ASIC's System
      Interrupt Register (SIR), similarly to how CP0.Cause.IP0 and CP0.Cause.IP1
      bits are handled in the CPU (the difference is SIR DMA interrupt bits are
      R/W0C so there's no need for an RMW cycle).  Otherwise the handler is
      reentered over and over again.
      
      The only current user is the DEC LANCE Ethernet driver and its extremely
      uncommon DMA memory error handler that does not care when exactly the
      interrupt is cleared.  Anticipating the use of DMA interrupts by the Zilog
      SCC driver this change however exports clear_ioasic_dma_irq for device
      drivers to choose the right application-specific sequence to clear the
      request explicitly rather than calling it implicitly in the .irq_eoi
      handler of `struct irq_chip'.  Previously these interrupts were cleared in
      the .end handler of the said structure, before it was removed.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/5826/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      5359b938
  4. 12 9月, 2013 5 次提交
  5. 11 9月, 2013 8 次提交
  6. 10 9月, 2013 1 次提交
  7. 07 9月, 2013 3 次提交
  8. 06 9月, 2013 14 次提交
  9. 05 9月, 2013 2 次提交