Skip to content

Commit 9a5d931

Browse files
committed
Merge branches 'acpi-resources', 'acpi-battery', 'acpi-doc' and 'acpi-pnp'
* acpi-resources: x86/PCI/ACPI: Make all resources except [io 0xcf8-0xcff] available on PCI bus * acpi-battery: ACPI / SBS: Add 5 us delay to fix SBS hangs on MacBook * acpi-doc: ACPI / documentation: Fix ambiguity in the GPIO properties document ACPI / documentation: fix a sentence about GPIO resources * acpi-pnp: ACPI / PNP: add two IDs to list for PNPACPI device enumeration
4 parents 2c62e84 + 3349fb6 + a00212e + 622532b commit 9a5d931

File tree

230 files changed

+2700
-1649
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

230 files changed

+2700
-1649
lines changed

Documentation/acpi/enumeration.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ input driver:
253253
GPIO support
254254
~~~~~~~~~~~~
255255
ACPI 5 introduced two new resources to describe GPIO connections: GpioIo
256-
and GpioInt. These resources are used be used to pass GPIO numbers used by
256+
and GpioInt. These resources can be used to pass GPIO numbers used by
257257
the device to the driver. ACPI 5.1 extended this with _DSD (Device
258258
Specific Data) which made it possible to name the GPIOs among other things.
259259

Documentation/acpi/gpio-properties.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
_DSD Device Properties Related to GPIO
22
--------------------------------------
33

4-
With the release of ACPI 5.1 and the _DSD configuration objecte names
5-
can finally be given to GPIOs (and other things as well) returned by
6-
_CRS. Previously, we were only able to use an integer index to find
4+
With the release of ACPI 5.1, the _DSD configuration object finally
5+
allows names to be given to GPIOs (and other things as well) returned
6+
by _CRS. Previously, we were only able to use an integer index to find
77
the corresponding GPIO, which is pretty error prone (it depends on
88
the _CRS output ordering, for example).
99

Documentation/kernel-parameters.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3787,6 +3787,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
37873787
READ_CAPACITY_16 command);
37883788
f = NO_REPORT_OPCODES (don't use report opcodes
37893789
command, uas only);
3790+
g = MAX_SECTORS_240 (don't transfer more than
3791+
240 sectors at a time, uas only);
37903792
h = CAPACITY_HEURISTICS (decrease the
37913793
reported device capacity by one
37923794
sector if the number is odd);

Documentation/module-signing.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ Most notably, in the x509.genkey file, the req_distinguished_name section
119119
should be altered from the default:
120120

121121
[ req_distinguished_name ]
122-
O = Magrathea
123-
CN = Glacier signing key
124-
emailAddress = slartibartfast@magrathea.h2g2
122+
#O = Unspecified company
123+
CN = Build time autogenerated kernel key
124+
#emailAddress = unspecified.user@unspecified.company
125125

126126
The generated RSA key size can also be set with:
127127

Documentation/networking/mpls-sysctl.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,12 @@ platform_labels - INTEGER
1818

1919
Possible values: 0 - 1048575
2020
Default: 0
21+
22+
conf/<interface>/input - BOOL
23+
Control whether packets can be input on this interface.
24+
25+
If disabled, packets will be discarded without further
26+
processing.
27+
28+
0 - disabled (default)
29+
not 0 - enabled

Documentation/networking/scaling.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ following is true:
282282

283283
- The current CPU's queue head counter >= the recorded tail counter
284284
value in rps_dev_flow[i]
285-
- The current CPU is unset (equal to RPS_NO_CPU)
285+
- The current CPU is unset (>= nr_cpu_ids)
286286
- The current CPU is offline
287287

288288
After this check, the packet is sent to the (possibly updated) current

Documentation/powerpc/transactional_memory.txt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -74,23 +74,22 @@ Causes of transaction aborts
7474
Syscalls
7575
========
7676

77-
Syscalls made from within an active transaction will not be performed and the
78-
transaction will be doomed by the kernel with the failure code TM_CAUSE_SYSCALL
79-
| TM_CAUSE_PERSISTENT.
77+
Performing syscalls from within transaction is not recommended, and can lead
78+
to unpredictable results.
8079

81-
Syscalls made from within a suspended transaction are performed as normal and
82-
the transaction is not explicitly doomed by the kernel. However, what the
83-
kernel does to perform the syscall may result in the transaction being doomed
84-
by the hardware. The syscall is performed in suspended mode so any side
85-
effects will be persistent, independent of transaction success or failure. No
86-
guarantees are provided by the kernel about which syscalls will affect
87-
transaction success.
80+
Syscalls do not by design abort transactions, but beware: The kernel code will
81+
not be running in transactional state. The effect of syscalls will always
82+
remain visible, but depending on the call they may abort your transaction as a
83+
side-effect, read soon-to-be-aborted transactional data that should not remain
84+
invisible, etc. If you constantly retry a transaction that constantly aborts
85+
itself by calling a syscall, you'll have a livelock & make no progress.
8886

89-
Care must be taken when relying on syscalls to abort during active transactions
90-
if the calls are made via a library. Libraries may cache values (which may
91-
give the appearance of success) or perform operations that cause transaction
92-
failure before entering the kernel (which may produce different failure codes).
93-
Examples are glibc's getpid() and lazy symbol resolution.
87+
Simple syscalls (e.g. sigprocmask()) "could" be OK. Even things like write()
88+
from, say, printf() should be OK as long as the kernel does not access any
89+
memory that was accessed transactionally.
90+
91+
Consider any syscalls that happen to work as debug-only -- not recommended for
92+
production use. Best to queue them up till after the transaction is over.
9493

9594

9695
Signals
@@ -177,7 +176,8 @@ kernel aborted a transaction:
177176
TM_CAUSE_RESCHED Thread was rescheduled.
178177
TM_CAUSE_TLBI Software TLB invalid.
179178
TM_CAUSE_FAC_UNAV FP/VEC/VSX unavailable trap.
180-
TM_CAUSE_SYSCALL Syscall from active transaction.
179+
TM_CAUSE_SYSCALL Currently unused; future syscalls that must abort
180+
transactions for consistency will use this.
181181
TM_CAUSE_SIGNAL Signal delivered.
182182
TM_CAUSE_MISC Currently unused.
183183
TM_CAUSE_ALIGNMENT Alignment fault.

MAINTAINERS

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3413,6 +3413,13 @@ F: drivers/gpu/drm/rcar-du/
34133413
F: drivers/gpu/drm/shmobile/
34143414
F: include/linux/platform_data/shmob_drm.h
34153415

3416+
DRM DRIVERS FOR ROCKCHIP
3417+
M: Mark Yao <mark.yao@rock-chips.com>
3418+
L: dri-devel@lists.freedesktop.org
3419+
S: Maintained
3420+
F: drivers/gpu/drm/rockchip/
3421+
F: Documentation/devicetree/bindings/video/rockchip*
3422+
34163423
DSBR100 USB FM RADIO DRIVER
34173424
M: Alexey Klimov <klimov.linux@gmail.com>
34183425
L: linux-media@vger.kernel.org
@@ -10523,7 +10530,6 @@ F: include/linux/virtio_console.h
1052310530
F: include/uapi/linux/virtio_console.h
1052410531

1052510532
VIRTIO CORE, NET AND BLOCK DRIVERS
10526-
M: Rusty Russell <rusty@rustcorp.com.au>
1052710533
M: "Michael S. Tsirkin" <mst@redhat.com>
1052810534
L: virtualization@lists.linux-foundation.org
1052910535
S: Maintained

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 1
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc1
4+
EXTRAVERSION = -rc2
55
NAME = Hurr durr I'ma sheep
66

77
# *DOCUMENTATION*

arch/arm64/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ config ARM64
3131
select GENERIC_EARLY_IOREMAP
3232
select GENERIC_IRQ_PROBE
3333
select GENERIC_IRQ_SHOW
34+
select GENERIC_IRQ_SHOW_LEVEL
3435
select GENERIC_PCI_IOMAP
3536
select GENERIC_SCHED_CLOCK
3637
select GENERIC_SMP_IDLE_THREAD

arch/arm64/include/asm/barrier.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ do { \
6565
do { \
6666
compiletime_assert_atomic_type(*p); \
6767
switch (sizeof(*p)) { \
68+
case 1: \
69+
asm volatile ("stlrb %w1, %0" \
70+
: "=Q" (*p) : "r" (v) : "memory"); \
71+
break; \
72+
case 2: \
73+
asm volatile ("stlrh %w1, %0" \
74+
: "=Q" (*p) : "r" (v) : "memory"); \
75+
break; \
6876
case 4: \
6977
asm volatile ("stlr %w1, %0" \
7078
: "=Q" (*p) : "r" (v) : "memory"); \
@@ -81,6 +89,14 @@ do { \
8189
typeof(*p) ___p1; \
8290
compiletime_assert_atomic_type(*p); \
8391
switch (sizeof(*p)) { \
92+
case 1: \
93+
asm volatile ("ldarb %w0, %1" \
94+
: "=r" (___p1) : "Q" (*p) : "memory"); \
95+
break; \
96+
case 2: \
97+
asm volatile ("ldarh %w0, %1" \
98+
: "=r" (___p1) : "Q" (*p) : "memory"); \
99+
break; \
84100
case 4: \
85101
asm volatile ("ldar %w0, %1" \
86102
: "=r" (___p1) : "Q" (*p) : "memory"); \

arch/arm64/kernel/perf_event.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1310,7 +1310,7 @@ static const struct of_device_id armpmu_of_device_ids[] = {
13101310

13111311
static int armpmu_device_probe(struct platform_device *pdev)
13121312
{
1313-
int i, *irqs;
1313+
int i, irq, *irqs;
13141314

13151315
if (!cpu_pmu)
13161316
return -ENODEV;
@@ -1319,6 +1319,11 @@ static int armpmu_device_probe(struct platform_device *pdev)
13191319
if (!irqs)
13201320
return -ENOMEM;
13211321

1322+
/* Don't bother with PPIs; they're already affine */
1323+
irq = platform_get_irq(pdev, 0);
1324+
if (irq >= 0 && irq_is_percpu(irq))
1325+
return 0;
1326+
13221327
for (i = 0; i < pdev->num_resources; ++i) {
13231328
struct device_node *dn;
13241329
int cpu;
@@ -1327,7 +1332,7 @@ static int armpmu_device_probe(struct platform_device *pdev)
13271332
i);
13281333
if (!dn) {
13291334
pr_warn("Failed to parse %s/interrupt-affinity[%d]\n",
1330-
of_node_full_name(dn), i);
1335+
of_node_full_name(pdev->dev.of_node), i);
13311336
break;
13321337
}
13331338

arch/arm64/mm/dma-mapping.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ static void *__alloc_from_pool(size_t size, struct page **ret_page, gfp_t flags)
6767

6868
*ret_page = phys_to_page(phys);
6969
ptr = (void *)val;
70-
if (flags & __GFP_ZERO)
71-
memset(ptr, 0, size);
70+
memset(ptr, 0, size);
7271
}
7372

7473
return ptr;
@@ -105,16 +104,14 @@ static void *__dma_alloc_coherent(struct device *dev, size_t size,
105104
struct page *page;
106105
void *addr;
107106

108-
size = PAGE_ALIGN(size);
109107
page = dma_alloc_from_contiguous(dev, size >> PAGE_SHIFT,
110108
get_order(size));
111109
if (!page)
112110
return NULL;
113111

114112
*dma_handle = phys_to_dma(dev, page_to_phys(page));
115113
addr = page_address(page);
116-
if (flags & __GFP_ZERO)
117-
memset(addr, 0, size);
114+
memset(addr, 0, size);
118115
return addr;
119116
} else {
120117
return swiotlb_alloc_coherent(dev, size, dma_handle, flags);
@@ -195,6 +192,8 @@ static void __dma_free(struct device *dev, size_t size,
195192
{
196193
void *swiotlb_addr = phys_to_virt(dma_to_phys(dev, dma_handle));
197194

195+
size = PAGE_ALIGN(size);
196+
198197
if (!is_device_dma_coherent(dev)) {
199198
if (__free_from_pool(vaddr, size))
200199
return;

arch/powerpc/include/uapi/asm/tm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#define TM_CAUSE_RESCHED 0xde
1212
#define TM_CAUSE_TLBI 0xdc
1313
#define TM_CAUSE_FAC_UNAV 0xda
14-
#define TM_CAUSE_SYSCALL 0xd8
14+
#define TM_CAUSE_SYSCALL 0xd8 /* future use */
1515
#define TM_CAUSE_MISC 0xd6 /* future use */
1616
#define TM_CAUSE_SIGNAL 0xd4
1717
#define TM_CAUSE_ALIGNMENT 0xd2

arch/powerpc/kernel/eeh.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,21 +749,24 @@ int pcibios_set_pcie_reset_state(struct pci_dev *dev, enum pcie_reset_state stat
749749
eeh_unfreeze_pe(pe, false);
750750
eeh_pe_state_clear(pe, EEH_PE_CFG_BLOCKED);
751751
eeh_pe_dev_traverse(pe, eeh_restore_dev_state, dev);
752+
eeh_pe_state_clear(pe, EEH_PE_ISOLATED);
752753
break;
753754
case pcie_hot_reset:
755+
eeh_pe_state_mark(pe, EEH_PE_ISOLATED);
754756
eeh_ops->set_option(pe, EEH_OPT_FREEZE_PE);
755757
eeh_pe_dev_traverse(pe, eeh_disable_and_save_dev_state, dev);
756758
eeh_pe_state_mark(pe, EEH_PE_CFG_BLOCKED);
757759
eeh_ops->reset(pe, EEH_RESET_HOT);
758760
break;
759761
case pcie_warm_reset:
762+
eeh_pe_state_mark(pe, EEH_PE_ISOLATED);
760763
eeh_ops->set_option(pe, EEH_OPT_FREEZE_PE);
761764
eeh_pe_dev_traverse(pe, eeh_disable_and_save_dev_state, dev);
762765
eeh_pe_state_mark(pe, EEH_PE_CFG_BLOCKED);
763766
eeh_ops->reset(pe, EEH_RESET_FUNDAMENTAL);
764767
break;
765768
default:
766-
eeh_pe_state_clear(pe, EEH_PE_CFG_BLOCKED);
769+
eeh_pe_state_clear(pe, EEH_PE_ISOLATED | EEH_PE_CFG_BLOCKED);
767770
return -EINVAL;
768771
};
769772

@@ -1058,6 +1061,9 @@ void eeh_add_device_early(struct pci_dn *pdn)
10581061
if (!edev || !eeh_enabled())
10591062
return;
10601063

1064+
if (!eeh_has_flag(EEH_PROBE_MODE_DEVTREE))
1065+
return;
1066+
10611067
/* USB Bus children of PCI devices will not have BUID's */
10621068
phb = edev->phb;
10631069
if (NULL == phb ||
@@ -1112,6 +1118,9 @@ void eeh_add_device_late(struct pci_dev *dev)
11121118
return;
11131119
}
11141120

1121+
if (eeh_has_flag(EEH_PROBE_MODE_DEV))
1122+
eeh_ops->probe(pdn, NULL);
1123+
11151124
/*
11161125
* The EEH cache might not be removed correctly because of
11171126
* unbalanced kref to the device during unplug time, which

arch/powerpc/kernel/entry_64.S

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
#include <asm/ftrace.h>
3535
#include <asm/hw_irq.h>
3636
#include <asm/context_tracking.h>
37-
#include <asm/tm.h>
3837

3938
/*
4039
* System calls.
@@ -146,24 +145,6 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR)
146145
andi. r11,r10,_TIF_SYSCALL_DOTRACE
147146
bne syscall_dotrace
148147
.Lsyscall_dotrace_cont:
149-
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
150-
BEGIN_FTR_SECTION
151-
b 1f
152-
END_FTR_SECTION_IFCLR(CPU_FTR_TM)
153-
extrdi. r11, r12, 1, (63-MSR_TS_T_LG) /* transaction active? */
154-
beq+ 1f
155-
156-
/* Doom the transaction and don't perform the syscall: */
157-
mfmsr r11
158-
li r12, 1
159-
rldimi r11, r12, MSR_TM_LG, 63-MSR_TM_LG
160-
mtmsrd r11, 0
161-
li r11, (TM_CAUSE_SYSCALL|TM_CAUSE_PERSISTENT)
162-
TABORT(R11)
163-
164-
b .Lsyscall_exit
165-
1:
166-
#endif
167148
cmpldi 0,r0,NR_syscalls
168149
bge- syscall_enosys
169150

arch/powerpc/kernel/idle_power7.S

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,9 +501,11 @@ BEGIN_FTR_SECTION
501501
CHECK_HMI_INTERRUPT
502502
END_FTR_SECTION_IFSET(CPU_FTR_HVMODE)
503503
ld r1,PACAR1(r13)
504+
ld r6,_CCR(r1)
504505
ld r4,_MSR(r1)
505506
ld r5,_NIP(r1)
506507
addi r1,r1,INT_FRAME_SIZE
508+
mtcr r6
507509
mtspr SPRN_SRR1,r4
508510
mtspr SPRN_SRR0,r5
509511
rfid

arch/powerpc/kvm/book3s_xics.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <linux/err.h>
1313
#include <linux/gfp.h>
1414
#include <linux/anon_inodes.h>
15+
#include <linux/spinlock.h>
1516

1617
#include <asm/uaccess.h>
1718
#include <asm/kvm_book3s.h>
@@ -20,7 +21,6 @@
2021
#include <asm/xics.h>
2122
#include <asm/debug.h>
2223
#include <asm/time.h>
23-
#include <asm/spinlock.h>
2424

2525
#include <linux/debugfs.h>
2626
#include <linux/seq_file.h>

arch/powerpc/platforms/powernv/pci-ioda.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2693,7 +2693,6 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
26932693
hose->last_busno = 0xff;
26942694
}
26952695
hose->private_data = phb;
2696-
hose->controller_ops = pnv_pci_controller_ops;
26972696
phb->hub_id = hub_id;
26982697
phb->opal_id = phb_id;
26992698
phb->type = ioda_type;
@@ -2812,6 +2811,7 @@ static void __init pnv_pci_init_ioda_phb(struct device_node *np,
28122811
pnv_pci_controller_ops.enable_device_hook = pnv_pci_enable_device_hook;
28132812
pnv_pci_controller_ops.window_alignment = pnv_pci_window_alignment;
28142813
pnv_pci_controller_ops.reset_secondary_bus = pnv_pci_reset_secondary_bus;
2814+
hose->controller_ops = pnv_pci_controller_ops;
28152815

28162816
#ifdef CONFIG_PCI_IOV
28172817
ppc_md.pcibios_fixup_sriov = pnv_pci_ioda_fixup_iov_resources;

0 commit comments

Comments
 (0)