Skip to content

Commit 580bdf5

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2 parents e60a426 + a249708 commit 580bdf5

File tree

268 files changed

+2474
-1472
lines changed

Some content is hidden

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

268 files changed

+2474
-1472
lines changed

Documentation/ABI/testing/sysfs-devices-deferred_probe

Lines changed: 0 additions & 12 deletions
This file was deleted.

Documentation/devicetree/bindings/i2c/i2c.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ wants to support one of the below features, it should adapt the bindings below.
6262
"irq" and "wakeup" names are recognized by I2C core, other names are
6363
left to individual drivers.
6464

65+
- host-notify
66+
device uses SMBus host notify protocol instead of interrupt line.
67+
6568
- multi-master
6669
states that there is another master active on this bus. The OS can use
6770
this information to adapt power management to keep the arbitration awake
@@ -81,6 +84,11 @@ Binding may contain optional "interrupts" property, describing interrupts
8184
used by the device. I2C core will assign "irq" interrupt (or the very first
8285
interrupt if not using interrupt names) as primary interrupt for the slave.
8386

87+
Alternatively, devices supporting SMbus Host Notify, and connected to
88+
adapters that support this feature, may use "host-notify" property. I2C
89+
core will create a virtual interrupt for Host Notify and assign it as
90+
primary interrupt for the slave.
91+
8492
Also, if device is marked as a wakeup source, I2C core will set up "wakeup"
8593
interrupt for the device. If "wakeup" interrupt name is not present in the
8694
binding, then primary interrupt will be used as wakeup interrupt.

Documentation/devicetree/bindings/mtd/tango-nand.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Required properties:
55
- compatible: "sigma,smp8758-nand"
66
- reg: address/size of nfc_reg, nfc_mem, and pbus_reg
77
- dmas: reference to the DMA channel used by the controller
8-
- dma-names: "nfc_sbox"
8+
- dma-names: "rxtx"
99
- clocks: reference to the system clock
1010
- #address-cells: <1>
1111
- #size-cells: <0>
@@ -17,9 +17,9 @@ Example:
1717

1818
nandc: nand-controller@2c000 {
1919
compatible = "sigma,smp8758-nand";
20-
reg = <0x2c000 0x30 0x2d000 0x800 0x20000 0x1000>;
20+
reg = <0x2c000 0x30>, <0x2d000 0x800>, <0x20000 0x1000>;
2121
dmas = <&dma0 3>;
22-
dma-names = "nfc_sbox";
22+
dma-names = "rxtx";
2323
clocks = <&clkgen SYS_CLK>;
2424
#address-cells = <1>;
2525
#size-cells = <0>;

Documentation/devicetree/bindings/net/ti,dp83867.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
Required properties:
44
- reg - The ID number for the phy, usually a small integer
55
- ti,rx-internal-delay - RGMII Receive Clock Delay - see dt-bindings/net/ti-dp83867.h
6-
for applicable values
6+
for applicable values. Required only if interface type is
7+
PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_RXID
78
- ti,tx-internal-delay - RGMII Transmit Clock Delay - see dt-bindings/net/ti-dp83867.h
8-
for applicable values
9+
for applicable values. Required only if interface type is
10+
PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_TXID
911
- ti,fifo-depth - Transmitt FIFO depth- see dt-bindings/net/ti-dp83867.h
1012
for applicable values
1113

MAINTAINERS

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2193,14 +2193,6 @@ L: [email protected] (moderated for non-subscribers)
21932193
S: Supported
21942194
F: sound/soc/atmel
21952195

2196-
ATMEL DMA DRIVER
2197-
M: Nicolas Ferre <[email protected]>
2198-
L: [email protected] (moderated for non-subscribers)
2199-
S: Supported
2200-
F: drivers/dma/at_hdmac.c
2201-
F: drivers/dma/at_hdmac_regs.h
2202-
F: include/linux/platform_data/dma-atmel.h
2203-
22042196
ATMEL XDMA DRIVER
22052197
M: Ludovic Desroches <[email protected]>
22062198
@@ -8184,6 +8176,15 @@ S: Maintained
81848176
F: drivers/tty/serial/atmel_serial.c
81858177
F: include/linux/atmel_serial.h
81868178

8179+
MICROCHIP / ATMEL DMA DRIVER
8180+
M: Ludovic Desroches <[email protected]>
8181+
L: [email protected] (moderated for non-subscribers)
8182+
8183+
S: Supported
8184+
F: drivers/dma/at_hdmac.c
8185+
F: drivers/dma/at_hdmac_regs.h
8186+
F: include/linux/platform_data/dma-atmel.h
8187+
81878188
MICROCHIP / ATMEL ISC DRIVER
81888189
M: Songjun Wu <[email protected]>
81898190

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 10
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc3
4+
EXTRAVERSION = -rc4
55
NAME = Roaring Lionus
66

77
# *DOCUMENTATION*

arch/arm64/include/asm/assembler.h

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -164,22 +164,25 @@ lr .req x30 // link register
164164

165165
/*
166166
* Pseudo-ops for PC-relative adr/ldr/str <reg>, <symbol> where
167-
* <symbol> is within the range +/- 4 GB of the PC.
167+
* <symbol> is within the range +/- 4 GB of the PC when running
168+
* in core kernel context. In module context, a movz/movk sequence
169+
* is used, since modules may be loaded far away from the kernel
170+
* when KASLR is in effect.
168171
*/
169172
/*
170173
* @dst: destination register (64 bit wide)
171174
* @sym: name of the symbol
172-
* @tmp: optional scratch register to be used if <dst> == sp, which
173-
* is not allowed in an adrp instruction
174175
*/
175-
.macro adr_l, dst, sym, tmp=
176-
.ifb \tmp
176+
.macro adr_l, dst, sym
177+
#ifndef MODULE
177178
adrp \dst, \sym
178179
add \dst, \dst, :lo12:\sym
179-
.else
180-
adrp \tmp, \sym
181-
add \dst, \tmp, :lo12:\sym
182-
.endif
180+
#else
181+
movz \dst, #:abs_g3:\sym
182+
movk \dst, #:abs_g2_nc:\sym
183+
movk \dst, #:abs_g1_nc:\sym
184+
movk \dst, #:abs_g0_nc:\sym
185+
#endif
183186
.endm
184187

185188
/*
@@ -190,13 +193,23 @@ lr .req x30 // link register
190193
* the address
191194
*/
192195
.macro ldr_l, dst, sym, tmp=
196+
#ifndef MODULE
193197
.ifb \tmp
194198
adrp \dst, \sym
195199
ldr \dst, [\dst, :lo12:\sym]
196200
.else
197201
adrp \tmp, \sym
198202
ldr \dst, [\tmp, :lo12:\sym]
199203
.endif
204+
#else
205+
.ifb \tmp
206+
adr_l \dst, \sym
207+
ldr \dst, [\dst]
208+
.else
209+
adr_l \tmp, \sym
210+
ldr \dst, [\tmp]
211+
.endif
212+
#endif
200213
.endm
201214

202215
/*
@@ -206,8 +219,13 @@ lr .req x30 // link register
206219
* while <src> needs to be preserved.
207220
*/
208221
.macro str_l, src, sym, tmp
222+
#ifndef MODULE
209223
adrp \tmp, \sym
210224
str \src, [\tmp, :lo12:\sym]
225+
#else
226+
adr_l \tmp, \sym
227+
str \src, [\tmp]
228+
#endif
211229
.endm
212230

213231
/*

arch/arm64/mm/hugetlbpage.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ int huge_ptep_set_access_flags(struct vm_area_struct *vma,
239239
ncontig = find_num_contig(vma->vm_mm, addr, cpte,
240240
*cpte, &pgsize);
241241
for (i = 0; i < ncontig; ++i, ++cpte, addr += pgsize) {
242-
changed = ptep_set_access_flags(vma, addr, cpte,
242+
changed |= ptep_set_access_flags(vma, addr, cpte,
243243
pfn_pte(pfn,
244244
hugeprot),
245245
dirty);

arch/x86/boot/string.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include <linux/types.h>
1616
#include "ctype.h"
17+
#include "string.h"
1718

1819
int memcmp(const void *s1, const void *s2, size_t len)
1920
{

arch/x86/boot/string.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,13 @@ int memcmp(const void *s1, const void *s2, size_t len);
1818
#define memset(d,c,l) __builtin_memset(d,c,l)
1919
#define memcmp __builtin_memcmp
2020

21+
extern int strcmp(const char *str1, const char *str2);
22+
extern int strncmp(const char *cs, const char *ct, size_t count);
23+
extern size_t strlen(const char *s);
24+
extern char *strstr(const char *s1, const char *s2);
25+
extern size_t strnlen(const char *s, size_t maxlen);
26+
extern unsigned int atou(const char *s);
27+
extern unsigned long long simple_strtoull(const char *cp, char **endp,
28+
unsigned int base);
29+
2130
#endif /* BOOT_STRING_H */

arch/x86/entry/entry_32.S

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -254,23 +254,6 @@ ENTRY(__switch_to_asm)
254254
jmp __switch_to
255255
END(__switch_to_asm)
256256

257-
/*
258-
* The unwinder expects the last frame on the stack to always be at the same
259-
* offset from the end of the page, which allows it to validate the stack.
260-
* Calling schedule_tail() directly would break that convention because its an
261-
* asmlinkage function so its argument has to be pushed on the stack. This
262-
* wrapper creates a proper "end of stack" frame header before the call.
263-
*/
264-
ENTRY(schedule_tail_wrapper)
265-
FRAME_BEGIN
266-
267-
pushl %eax
268-
call schedule_tail
269-
popl %eax
270-
271-
FRAME_END
272-
ret
273-
ENDPROC(schedule_tail_wrapper)
274257
/*
275258
* A newly forked process directly context switches into this address.
276259
*
@@ -279,15 +262,24 @@ ENDPROC(schedule_tail_wrapper)
279262
* edi: kernel thread arg
280263
*/
281264
ENTRY(ret_from_fork)
282-
call schedule_tail_wrapper
265+
FRAME_BEGIN /* help unwinder find end of stack */
266+
267+
/*
268+
* schedule_tail() is asmlinkage so we have to put its 'prev' argument
269+
* on the stack.
270+
*/
271+
pushl %eax
272+
call schedule_tail
273+
popl %eax
283274

284275
testl %ebx, %ebx
285276
jnz 1f /* kernel threads are uncommon */
286277

287278
2:
288279
/* When we fork, we trace the syscall return in the child, too. */
289-
movl %esp, %eax
280+
leal FRAME_OFFSET(%esp), %eax
290281
call syscall_return_slowpath
282+
FRAME_END
291283
jmp restore_all
292284

293285
/* kernel thread */

arch/x86/entry/entry_64.S

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include <asm/smap.h>
3737
#include <asm/pgtable_types.h>
3838
#include <asm/export.h>
39+
#include <asm/frame.h>
3940
#include <linux/err.h>
4041

4142
.code64
@@ -408,17 +409,19 @@ END(__switch_to_asm)
408409
* r12: kernel thread arg
409410
*/
410411
ENTRY(ret_from_fork)
412+
FRAME_BEGIN /* help unwinder find end of stack */
411413
movq %rax, %rdi
412-
call schedule_tail /* rdi: 'prev' task parameter */
414+
call schedule_tail /* rdi: 'prev' task parameter */
413415

414-
testq %rbx, %rbx /* from kernel_thread? */
415-
jnz 1f /* kernel threads are uncommon */
416+
testq %rbx, %rbx /* from kernel_thread? */
417+
jnz 1f /* kernel threads are uncommon */
416418

417419
2:
418-
movq %rsp, %rdi
420+
leaq FRAME_OFFSET(%rsp),%rdi /* pt_regs pointer */
419421
call syscall_return_slowpath /* returns with IRQs disabled */
420422
TRACE_IRQS_ON /* user mode is traced as IRQS on */
421423
SWAPGS
424+
FRAME_END
422425
jmp restore_regs_and_iret
423426

424427
1:

arch/x86/events/core.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,10 @@ int x86_pmu_hw_config(struct perf_event *event)
505505

506506
if (event->attr.precise_ip > precise)
507507
return -EOPNOTSUPP;
508+
509+
/* There's no sense in having PEBS for non sampling events: */
510+
if (!is_sampling_event(event))
511+
return -EINVAL;
508512
}
509513
/*
510514
* check that PEBS LBR correction does not conflict with

arch/x86/events/intel/core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3987,7 +3987,7 @@ __init int intel_pmu_init(void)
39873987
x86_pmu.num_counters, INTEL_PMC_MAX_GENERIC);
39883988
x86_pmu.num_counters = INTEL_PMC_MAX_GENERIC;
39893989
}
3990-
x86_pmu.intel_ctrl = (1 << x86_pmu.num_counters) - 1;
3990+
x86_pmu.intel_ctrl = (1ULL << x86_pmu.num_counters) - 1;
39913991

39923992
if (x86_pmu.num_counters_fixed > INTEL_PMC_MAX_FIXED) {
39933993
WARN(1, KERN_ERR "hw perf events fixed %d > max(%d), clipping!",

arch/x86/events/intel/cstate.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,7 @@ static struct pmu cstate_core_pmu = {
434434
.stop = cstate_pmu_event_stop,
435435
.read = cstate_pmu_event_update,
436436
.capabilities = PERF_PMU_CAP_NO_INTERRUPT,
437+
.module = THIS_MODULE,
437438
};
438439

439440
static struct pmu cstate_pkg_pmu = {
@@ -447,6 +448,7 @@ static struct pmu cstate_pkg_pmu = {
447448
.stop = cstate_pmu_event_stop,
448449
.read = cstate_pmu_event_update,
449450
.capabilities = PERF_PMU_CAP_NO_INTERRUPT,
451+
.module = THIS_MODULE,
450452
};
451453

452454
static const struct cstate_model nhm_cstates __initconst = {

arch/x86/events/intel/ds.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1389,9 +1389,13 @@ static void intel_pmu_drain_pebs_nhm(struct pt_regs *iregs)
13891389
continue;
13901390

13911391
/* log dropped samples number */
1392-
if (error[bit])
1392+
if (error[bit]) {
13931393
perf_log_lost_samples(event, error[bit]);
13941394

1395+
if (perf_event_account_interrupt(event))
1396+
x86_pmu_stop(event, 0);
1397+
}
1398+
13951399
if (counts[bit]) {
13961400
__intel_pmu_pebs_event(event, iregs, base,
13971401
top, bit, counts[bit]);

arch/x86/events/intel/rapl.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -697,6 +697,7 @@ static int __init init_rapl_pmus(void)
697697
rapl_pmus->pmu.start = rapl_pmu_event_start;
698698
rapl_pmus->pmu.stop = rapl_pmu_event_stop;
699699
rapl_pmus->pmu.read = rapl_pmu_event_read;
700+
rapl_pmus->pmu.module = THIS_MODULE;
700701
return 0;
701702
}
702703

arch/x86/events/intel/uncore.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,7 @@ static int uncore_pmu_register(struct intel_uncore_pmu *pmu)
733733
.start = uncore_pmu_event_start,
734734
.stop = uncore_pmu_event_stop,
735735
.read = uncore_pmu_event_read,
736+
.module = THIS_MODULE,
736737
};
737738
} else {
738739
pmu->pmu = *pmu->type->pmu;

arch/x86/events/intel/uncore_snbep.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2686,7 +2686,7 @@ static struct intel_uncore_type *hswep_msr_uncores[] = {
26862686

26872687
void hswep_uncore_cpu_init(void)
26882688
{
2689-
int pkg = topology_phys_to_logical_pkg(0);
2689+
int pkg = boot_cpu_data.logical_proc_id;
26902690

26912691
if (hswep_uncore_cbox.num_boxes > boot_cpu_data.x86_max_cores)
26922692
hswep_uncore_cbox.num_boxes = boot_cpu_data.x86_max_cores;

arch/x86/include/asm/intel-family.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
#define INTEL_FAM6_ATOM_SILVERMONT2 0x4D /* Avaton/Rangely */
5858
#define INTEL_FAM6_ATOM_AIRMONT 0x4C /* CherryTrail / Braswell */
5959
#define INTEL_FAM6_ATOM_MERRIFIELD 0x4A /* Tangier */
60-
#define INTEL_FAM6_ATOM_MOOREFIELD 0x5A /* Annidale */
60+
#define INTEL_FAM6_ATOM_MOOREFIELD 0x5A /* Anniedale */
6161
#define INTEL_FAM6_ATOM_GOLDMONT 0x5C
6262
#define INTEL_FAM6_ATOM_DENVERTON 0x5F /* Goldmont Microserver */
6363

0 commit comments

Comments
 (0)