Commit d11739e6 authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc

Pull sparc bugfixes from David Miller:

 1) Missing include can lead to build failure, from Kirill Tkhai.

 2) Use dev_is_pci() where applicable, from Yijing Wang.

 3) Enable irqs after we enable preemption in cpu startup path, from
    Kirill Tkhai.

 4) Revert a __copy_{to,from}_user_inatomic change that broke
    iov_iter_copy_from_user_atomic() and thus several tests in xfstests
    and LTP.  From Dave Kleikamp.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
  Revert "sparc64: Fix __copy_{to,from}_user_inatomic defines."
  sparc64: smp_callin: Enable irqs after preemption is disabled
  sparc/PCI: Use dev_is_pci() to identify PCI devices
  sparc64: Fix build regression
parents d6e0a2dd 16932237
...@@ -262,8 +262,8 @@ extern unsigned long __must_check __clear_user(void __user *, unsigned long); ...@@ -262,8 +262,8 @@ extern unsigned long __must_check __clear_user(void __user *, unsigned long);
extern __must_check long strlen_user(const char __user *str); extern __must_check long strlen_user(const char __user *str);
extern __must_check long strnlen_user(const char __user *str, long n); extern __must_check long strnlen_user(const char __user *str, long n);
#define __copy_to_user_inatomic ___copy_to_user #define __copy_to_user_inatomic __copy_to_user
#define __copy_from_user_inatomic ___copy_from_user #define __copy_from_user_inatomic __copy_from_user
struct pt_regs; struct pt_regs;
extern unsigned long compute_effective_address(struct pt_regs *, extern unsigned long compute_effective_address(struct pt_regs *,
......
...@@ -854,7 +854,7 @@ int dma_supported(struct device *dev, u64 device_mask) ...@@ -854,7 +854,7 @@ int dma_supported(struct device *dev, u64 device_mask)
return 1; return 1;
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
if (dev->bus == &pci_bus_type) if (dev_is_pci(dev))
return pci64_dma_supported(to_pci_dev(dev), device_mask); return pci64_dma_supported(to_pci_dev(dev), device_mask);
#endif #endif
......
...@@ -666,10 +666,9 @@ EXPORT_SYMBOL(dma_ops); ...@@ -666,10 +666,9 @@ EXPORT_SYMBOL(dma_ops);
*/ */
int dma_supported(struct device *dev, u64 mask) int dma_supported(struct device *dev, u64 mask)
{ {
#ifdef CONFIG_PCI if (dev_is_pci(dev))
if (dev->bus == &pci_bus_type)
return 1; return 1;
#endif
return 0; return 0;
} }
EXPORT_SYMBOL(dma_supported); EXPORT_SYMBOL(dma_supported);
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#include <linux/kgdb.h> #include <linux/kgdb.h>
#include <linux/kdebug.h> #include <linux/kdebug.h>
#include <linux/ftrace.h> #include <linux/ftrace.h>
#include <linux/context_tracking.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/kdebug.h> #include <asm/kdebug.h>
......
...@@ -123,11 +123,12 @@ void smp_callin(void) ...@@ -123,11 +123,12 @@ void smp_callin(void)
rmb(); rmb();
set_cpu_online(cpuid, true); set_cpu_online(cpuid, true);
local_irq_enable();
/* idle thread is expected to have preempt disabled */ /* idle thread is expected to have preempt disabled */
preempt_disable(); preempt_disable();
local_irq_enable();
cpu_startup_entry(CPUHP_ONLINE); cpu_startup_entry(CPUHP_ONLINE);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment