]> Git Repo - linux.git/commitdiff
Merge branch 'parisc-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
authorLinus Torvalds <[email protected]>
Wed, 12 Aug 2020 19:41:15 +0000 (12:41 -0700)
committerLinus Torvalds <[email protected]>
Wed, 12 Aug 2020 19:41:15 +0000 (12:41 -0700)
Pull more parisc updates from Helge Deller:

 - Oscar Carter contributed a patch which fixes parisc's usage of
   dereference_function_descriptor() and thus will allow using the
   -Wcast-function-type compiler option in the top-level Makefile

 - Sven Schnelle fixed a bug in the SBA code to prevent crashes during
   kexec

 - John David Anglin provided implementations for __smp_store_release()
   and __smp_load_acquire barriers() which avoids using the sync
   assembler instruction and thus speeds up barrier paths

 - Some whitespace cleanups in parisc's atomic.h header file

* 'parisc-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Implement __smp_store_release and __smp_load_acquire barriers
  parisc: mask out enable and reserved bits from sba imask
  parisc: Whitespace cleanups in atomic.h
  parisc/kernel/ftrace: Remove function callback casts
  sections.h: dereference_function_descriptor() returns void pointer

1  2 
arch/parisc/include/asm/atomic.h
drivers/parisc/sba_iommu.c

index 03862320f779383b0e5d39520561cb51350044a2,90e8267fc509eed99fd8d5203b0a7ac089568ac9..21b375c67e53336748f8894fded70f9396ad3a9b
@@@ -34,13 -34,13 +34,13 @@@ extern arch_spinlock_t __atomic_hash[AT
  /* Can't use raw_spin_lock_irq because of #include problems, so
   * this is the substitute */
  #define _atomic_spin_lock_irqsave(l,f) do {   \
-       arch_spinlock_t *s = ATOMIC_HASH(l);            \
+       arch_spinlock_t *s = ATOMIC_HASH(l);    \
        local_irq_save(f);                      \
        arch_spin_lock(s);                      \
  } while(0)
  
  #define _atomic_spin_unlock_irqrestore(l,f) do {      \
-       arch_spinlock_t *s = ATOMIC_HASH(l);                    \
+       arch_spinlock_t *s = ATOMIC_HASH(l);            \
        arch_spin_unlock(s);                            \
        local_irq_restore(f);                           \
  } while(0)
@@@ -85,7 -85,7 +85,7 @@@ static __inline__ void atomic_##op(int 
        _atomic_spin_lock_irqsave(v, flags);                            \
        v->counter c_op i;                                              \
        _atomic_spin_unlock_irqrestore(v, flags);                       \
- }                                                                     \
+ }
  
  #define ATOMIC_OP_RETURN(op, c_op)                                    \
  static __inline__ int atomic_##op##_return(int i, atomic_t *v)                \
@@@ -136,6 -136,8 +136,6 @@@ ATOMIC_OPS(xor, ^=
  #undef ATOMIC_OP_RETURN
  #undef ATOMIC_OP
  
 -#define ATOMIC_INIT(i)        { (i) }
 -
  #ifdef CONFIG_64BIT
  
  #define ATOMIC64_INIT(i) { (i) }
@@@ -148,7 -150,7 +148,7 @@@ static __inline__ void atomic64_##op(s6
        _atomic_spin_lock_irqsave(v, flags);                            \
        v->counter c_op i;                                              \
        _atomic_spin_unlock_irqrestore(v, flags);                       \
- }                                                                     \
+ }
  
  #define ATOMIC64_OP_RETURN(op, c_op)                                  \
  static __inline__ s64 atomic64_##op##_return(s64 i, atomic64_t *v)    \
index 5368452eb5a66dbff1ee783f348e4e44d1cf6121,00785fa81ff76bb0b1e1d5a81c5b12bc7d063cff..d4314fba026914c1a931437b26b32c8b06d64f1e
@@@ -666,7 -666,7 +666,7 @@@ sba_mark_invalid(struct ioc *ioc, dma_a
   * @dev: instance of PCI owned by the driver that's asking
   * @mask:  number of address bits this PCI device can handle
   *
 - * See Documentation/DMA-API-HOWTO.txt
 + * See Documentation/core-api/dma-api-howto.rst
   */
  static int sba_dma_supported( struct device *dev, u64 mask)
  {
   * @size:  number of bytes to map in driver buffer.
   * @direction:  R/W or both.
   *
 - * See Documentation/DMA-API-HOWTO.txt
 + * See Documentation/core-api/dma-api-howto.rst
   */
  static dma_addr_t
  sba_map_single(struct device *dev, void *addr, size_t size,
@@@ -788,7 -788,7 +788,7 @@@ sba_map_page(struct device *dev, struc
   * @size:  number of bytes mapped in driver buffer.
   * @direction:  R/W or both.
   *
 - * See Documentation/DMA-API-HOWTO.txt
 + * See Documentation/core-api/dma-api-howto.rst
   */
  static void
  sba_unmap_page(struct device *dev, dma_addr_t iova, size_t size,
   * @size:  number of bytes mapped in driver buffer.
   * @dma_handle:  IOVA of new buffer.
   *
 - * See Documentation/DMA-API-HOWTO.txt
 + * See Documentation/core-api/dma-api-howto.rst
   */
  static void *sba_alloc(struct device *hwdev, size_t size, dma_addr_t *dma_handle,
                gfp_t gfp, unsigned long attrs)
   * @vaddr:  virtual address IOVA of "consistent" buffer.
   * @dma_handler:  IO virtual address of "consistent" buffer.
   *
 - * See Documentation/DMA-API-HOWTO.txt
 + * See Documentation/core-api/dma-api-howto.rst
   */
  static void
  sba_free(struct device *hwdev, size_t size, void *vaddr,
@@@ -933,7 -933,7 +933,7 @@@ int dump_run_sg = 0
   * @nents:  number of entries in list
   * @direction:  R/W or both.
   *
 - * See Documentation/DMA-API-HOWTO.txt
 + * See Documentation/core-api/dma-api-howto.rst
   */
  static int
  sba_map_sg(struct device *dev, struct scatterlist *sglist, int nents,
   * @nents:  number of entries in list
   * @direction:  R/W or both.
   *
 - * See Documentation/DMA-API-HOWTO.txt
 + * See Documentation/core-api/dma-api-howto.rst
   */
  static void 
  sba_unmap_sg(struct device *dev, struct scatterlist *sglist, int nents,
@@@ -1270,7 -1270,7 +1270,7 @@@ sba_ioc_init_pluto(struct parisc_devic
        ** (one that doesn't overlap memory or LMMIO space) in the
        ** IBASE and IMASK registers.
        */
-       ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE);
+       ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE) & ~0x1fffffULL;
        iova_space_size = ~(READ_REG(ioc->ioc_hpa + IOC_IMASK) & 0xFFFFFFFFUL) + 1;
  
        if ((ioc->ibase < 0xfed00000UL) && ((ioc->ibase + iova_space_size) > 0xfee00000UL)) {
This page took 0.066701 seconds and 4 git commands to generate.