Skip to content

Commit 76eb75b

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2 parents 57ea884 + e02003b commit 76eb75b

File tree

103 files changed

+893
-661
lines changed

Some content is hidden

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

103 files changed

+893
-661
lines changed

Documentation/DocBook/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ DOCBOOKS := z8530book.xml \
1212
kernel-api.xml filesystems.xml lsm.xml kgdb.xml \
1313
gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
1414
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
15-
80211.xml sh.xml regulator.xml w1.xml \
15+
sh.xml regulator.xml w1.xml \
1616
writing_musb_glue_layer.xml iio.xml
1717

1818
ifeq ($(DOCBOOKS),)

Documentation/block/queue-sysfs.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ This is the hardware sector size of the device, in bytes.
5454

5555
io_poll (RW)
5656
------------
57-
When read, this file shows the total number of block IO polls and how
58-
many returned success. Writing '0' to this file will disable polling
59-
for this device. Writing any non-zero value will enable this feature.
57+
When read, this file shows whether polling is enabled (1) or disabled
58+
(0). Writing '0' to this file will disable polling for this device.
59+
Writing any non-zero value will enable this feature.
6060

6161
io_poll_delay (RW)
6262
------------------

Documentation/networking/mpls-sysctl.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ platform_labels - INTEGER
55
possible to configure forwarding for label values equal to or
66
greater than the number of platform labels.
77

8-
A dense utliziation of the entries in the platform label table
9-
is possible and expected aas the platform labels are locally
8+
A dense utilization of the entries in the platform label table
9+
is possible and expected as the platform labels are locally
1010
allocated.
1111

1212
If the number of platform label table entries is set to 0 no

Documentation/unaligned-memory-access.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ bool ether_addr_equal(const u8 *addr1, const u8 *addr2)
151151
#else
152152
const u16 *a = (const u16 *)addr1;
153153
const u16 *b = (const u16 *)addr2;
154-
return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0;
154+
return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) == 0;
155155
#endif
156156
}
157157

MAINTAINERS

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5086,9 +5086,11 @@ F: drivers/net/wan/dlci.c
50865086
F: drivers/net/wan/sdla.c
50875087

50885088
FRAMEBUFFER LAYER
5089+
M: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
50895090
L: linux-fbdev@vger.kernel.org
5091+
T: git git://github.com/bzolnier/linux.git
50905092
Q: http://patchwork.kernel.org/project/linux-fbdev/list/
5091-
S: Orphan
5093+
S: Maintained
50925094
F: Documentation/fb/
50935095
F: drivers/video/
50945096
F: include/video/
@@ -8858,17 +8860,22 @@ F: drivers/video/fbdev/nvidia/
88588860
NVM EXPRESS DRIVER
88598861
M: Keith Busch <keith.busch@intel.com>
88608862
M: Jens Axboe <axboe@fb.com>
8863+
M: Christoph Hellwig <hch@lst.de>
8864+
M: Sagi Grimberg <sagi@grimberg.me>
88618865
L: linux-nvme@lists.infradead.org
8862-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
8863-
W: https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux-block/
8866+
T: git://git.infradead.org/nvme.git
8867+
W: http://git.infradead.org/nvme.git
88648868
S: Supported
88658869
F: drivers/nvme/host/
88668870
F: include/linux/nvme.h
8871+
F: include/uapi/linux/nvme_ioctl.h
88678872

88688873
NVM EXPRESS TARGET DRIVER
88698874
M: Christoph Hellwig <hch@lst.de>
88708875
M: Sagi Grimberg <sagi@grimberg.me>
88718876
L: linux-nvme@lists.infradead.org
8877+
T: git://git.infradead.org/nvme.git
8878+
W: http://git.infradead.org/nvme.git
88728879
S: Supported
88738880
F: drivers/nvme/target/
88748881

@@ -13533,11 +13540,11 @@ F: arch/x86/xen/*swiotlb*
1353313540
F: drivers/xen/*swiotlb*
1353413541

1353513542
XFS FILESYSTEM
13536-
M: Dave Chinner <david@fromorbit.com>
13543+
M: Darrick J. Wong <darrick.wong@oracle.com>
1353713544
M: linux-xfs@vger.kernel.org
1353813545
L: linux-xfs@vger.kernel.org
1353913546
W: http://xfs.org/
13540-
T: git git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git
13547+
T: git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
1354113548
S: Supported
1354213549
F: Documentation/filesystems/xfs.txt
1354313550
F: fs/xfs/

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 = -rc1
4+
EXTRAVERSION = -rc2
55
NAME = Roaring Lionus
66

77
# *DOCUMENTATION*

arch/openrisc/kernel/vmlinux.lds.S

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ SECTIONS
4444
/* Read-only sections, merged into text segment: */
4545
. = LOAD_BASE ;
4646

47+
_text = .;
48+
4749
/* _s_kernel_ro must be page aligned */
4850
. = ALIGN(PAGE_SIZE);
4951
_s_kernel_ro = .;

arch/parisc/include/asm/thread_info.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ struct thread_info {
4949
#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling TIF_NEED_RESCHED */
5050
#define TIF_32BIT 4 /* 32 bit binary */
5151
#define TIF_MEMDIE 5 /* is terminating due to OOM killer */
52-
#define TIF_RESTORE_SIGMASK 6 /* restore saved signal mask */
5352
#define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
5453
#define TIF_NOTIFY_RESUME 8 /* callback before returning to user */
5554
#define TIF_SINGLESTEP 9 /* single stepping? */

arch/parisc/kernel/time.c

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,26 @@ void __init time_init(void)
235235

236236
cr16_hz = 100 * PAGE0->mem_10msec; /* Hz */
237237

238-
/* register at clocksource framework */
239-
clocksource_register_hz(&clocksource_cr16, cr16_hz);
240-
241238
/* register as sched_clock source */
242239
sched_clock_register(read_cr16_sched_clock, BITS_PER_LONG, cr16_hz);
243240
}
241+
242+
static int __init init_cr16_clocksource(void)
243+
{
244+
/*
245+
* The cr16 interval timers are not syncronized across CPUs, so mark
246+
* them unstable and lower rating on SMP systems.
247+
*/
248+
if (num_online_cpus() > 1) {
249+
clocksource_cr16.flags = CLOCK_SOURCE_UNSTABLE;
250+
clocksource_cr16.rating = 0;
251+
}
252+
253+
/* register at clocksource framework */
254+
clocksource_register_hz(&clocksource_cr16,
255+
100 * PAGE0->mem_10msec);
256+
257+
return 0;
258+
}
259+
260+
device_initcall(init_cr16_clocksource);

arch/parisc/mm/fault.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ show_signal_msg(struct pt_regs *regs, unsigned long code,
234234
tsk->comm, code, address);
235235
print_vma_addr(KERN_CONT " in ", regs->iaoq[0]);
236236

237-
pr_cont(" trap #%lu: %s%c", code, trap_name(code),
237+
pr_cont("\ntrap #%lu: %s%c", code, trap_name(code),
238238
vma ? ',':'\n');
239239

240240
if (vma)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#ifndef _ASM_S390_PROTOTYPES_H
2+
3+
#include <linux/kvm_host.h>
4+
#include <linux/ftrace.h>
5+
#include <asm/fpu/api.h>
6+
#include <asm-generic/asm-prototypes.h>
7+
8+
#endif /* _ASM_S390_PROTOTYPES_H */

arch/s390/kernel/vtime.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static void update_mt_scaling(void)
9494
* Update process times based on virtual cpu times stored by entry.S
9595
* to the lowcore fields user_timer, system_timer & steal_clock.
9696
*/
97-
static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
97+
static int do_account_vtime(struct task_struct *tsk)
9898
{
9999
u64 timer, clock, user, system, steal;
100100
u64 user_scaled, system_scaled;
@@ -138,7 +138,7 @@ static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
138138
}
139139
account_user_time(tsk, user);
140140
tsk->utimescaled += user_scaled;
141-
account_system_time(tsk, hardirq_offset, system);
141+
account_system_time(tsk, 0, system);
142142
tsk->stimescaled += system_scaled;
143143

144144
steal = S390_lowcore.steal_timer;
@@ -152,7 +152,7 @@ static int do_account_vtime(struct task_struct *tsk, int hardirq_offset)
152152

153153
void vtime_task_switch(struct task_struct *prev)
154154
{
155-
do_account_vtime(prev, 0);
155+
do_account_vtime(prev);
156156
prev->thread.user_timer = S390_lowcore.user_timer;
157157
prev->thread.system_timer = S390_lowcore.system_timer;
158158
S390_lowcore.user_timer = current->thread.user_timer;
@@ -166,7 +166,7 @@ void vtime_task_switch(struct task_struct *prev)
166166
*/
167167
void vtime_account_user(struct task_struct *tsk)
168168
{
169-
if (do_account_vtime(tsk, HARDIRQ_OFFSET))
169+
if (do_account_vtime(tsk))
170170
virt_timer_expire();
171171
}
172172

arch/x86/include/asm/bitops.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,19 @@ static __always_inline void __clear_bit(long nr, volatile unsigned long *addr)
139139
asm volatile("btr %1,%0" : ADDR : "Ir" (nr));
140140
}
141141

142+
static __always_inline bool clear_bit_unlock_is_negative_byte(long nr, volatile unsigned long *addr)
143+
{
144+
bool negative;
145+
asm volatile(LOCK_PREFIX "andb %2,%1\n\t"
146+
CC_SET(s)
147+
: CC_OUT(s) (negative), ADDR
148+
: "ir" ((char) ~(1 << nr)) : "memory");
149+
return negative;
150+
}
151+
152+
// Let everybody know we have it
153+
#define clear_bit_unlock_is_negative_byte clear_bit_unlock_is_negative_byte
154+
142155
/*
143156
* __clear_bit_unlock - Clears a bit in memory
144157
* @nr: Bit to clear

block/blk-wbt.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,8 @@ static inline bool may_queue(struct rq_wb *rwb, struct rq_wait *rqw,
544544
* the timer to kick off queuing again.
545545
*/
546546
static void __wbt_wait(struct rq_wb *rwb, unsigned long rw, spinlock_t *lock)
547+
__releases(lock)
548+
__acquires(lock)
547549
{
548550
struct rq_wait *rqw = get_rq_wait(rwb, current_is_kswapd());
549551
DEFINE_WAIT(wait);
@@ -558,13 +560,12 @@ static void __wbt_wait(struct rq_wb *rwb, unsigned long rw, spinlock_t *lock)
558560
if (may_queue(rwb, rqw, &wait, rw))
559561
break;
560562

561-
if (lock)
563+
if (lock) {
562564
spin_unlock_irq(lock);
563-
564-
io_schedule();
565-
566-
if (lock)
565+
io_schedule();
567566
spin_lock_irq(lock);
567+
} else
568+
io_schedule();
568569
} while (1);
569570

570571
finish_wait(&rqw->wait, &wait);
@@ -595,7 +596,7 @@ static inline bool wbt_should_throttle(struct rq_wb *rwb, struct bio *bio)
595596
* in an irq held spinlock, if it holds one when calling this function.
596597
* If we do sleep, we'll release and re-grab it.
597598
*/
598-
unsigned int wbt_wait(struct rq_wb *rwb, struct bio *bio, spinlock_t *lock)
599+
enum wbt_flags wbt_wait(struct rq_wb *rwb, struct bio *bio, spinlock_t *lock)
599600
{
600601
unsigned int ret = 0;
601602

crypto/testmgr.c

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,16 +1461,25 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
14611461
for (i = 0; i < ctcount; i++) {
14621462
unsigned int dlen = COMP_BUF_SIZE;
14631463
int ilen = ctemplate[i].inlen;
1464+
void *input_vec;
14641465

1466+
input_vec = kmalloc(ilen, GFP_KERNEL);
1467+
if (!input_vec) {
1468+
ret = -ENOMEM;
1469+
goto out;
1470+
}
1471+
1472+
memcpy(input_vec, ctemplate[i].input, ilen);
14651473
memset(output, 0, dlen);
14661474
init_completion(&result.completion);
1467-
sg_init_one(&src, ctemplate[i].input, ilen);
1475+
sg_init_one(&src, input_vec, ilen);
14681476
sg_init_one(&dst, output, dlen);
14691477

14701478
req = acomp_request_alloc(tfm);
14711479
if (!req) {
14721480
pr_err("alg: acomp: request alloc failed for %s\n",
14731481
algo);
1482+
kfree(input_vec);
14741483
ret = -ENOMEM;
14751484
goto out;
14761485
}
@@ -1483,6 +1492,7 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
14831492
if (ret) {
14841493
pr_err("alg: acomp: compression failed on test %d for %s: ret=%d\n",
14851494
i + 1, algo, -ret);
1495+
kfree(input_vec);
14861496
acomp_request_free(req);
14871497
goto out;
14881498
}
@@ -1491,6 +1501,7 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
14911501
pr_err("alg: acomp: Compression test %d failed for %s: output len = %d\n",
14921502
i + 1, algo, req->dlen);
14931503
ret = -EINVAL;
1504+
kfree(input_vec);
14941505
acomp_request_free(req);
14951506
goto out;
14961507
}
@@ -1500,26 +1511,37 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
15001511
i + 1, algo);
15011512
hexdump(output, req->dlen);
15021513
ret = -EINVAL;
1514+
kfree(input_vec);
15031515
acomp_request_free(req);
15041516
goto out;
15051517
}
15061518

1519+
kfree(input_vec);
15071520
acomp_request_free(req);
15081521
}
15091522

15101523
for (i = 0; i < dtcount; i++) {
15111524
unsigned int dlen = COMP_BUF_SIZE;
15121525
int ilen = dtemplate[i].inlen;
1526+
void *input_vec;
1527+
1528+
input_vec = kmalloc(ilen, GFP_KERNEL);
1529+
if (!input_vec) {
1530+
ret = -ENOMEM;
1531+
goto out;
1532+
}
15131533

1534+
memcpy(input_vec, dtemplate[i].input, ilen);
15141535
memset(output, 0, dlen);
15151536
init_completion(&result.completion);
1516-
sg_init_one(&src, dtemplate[i].input, ilen);
1537+
sg_init_one(&src, input_vec, ilen);
15171538
sg_init_one(&dst, output, dlen);
15181539

15191540
req = acomp_request_alloc(tfm);
15201541
if (!req) {
15211542
pr_err("alg: acomp: request alloc failed for %s\n",
15221543
algo);
1544+
kfree(input_vec);
15231545
ret = -ENOMEM;
15241546
goto out;
15251547
}
@@ -1532,6 +1554,7 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
15321554
if (ret) {
15331555
pr_err("alg: acomp: decompression failed on test %d for %s: ret=%d\n",
15341556
i + 1, algo, -ret);
1557+
kfree(input_vec);
15351558
acomp_request_free(req);
15361559
goto out;
15371560
}
@@ -1540,6 +1563,7 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
15401563
pr_err("alg: acomp: Decompression test %d failed for %s: output len = %d\n",
15411564
i + 1, algo, req->dlen);
15421565
ret = -EINVAL;
1566+
kfree(input_vec);
15431567
acomp_request_free(req);
15441568
goto out;
15451569
}
@@ -1549,10 +1573,12 @@ static int test_acomp(struct crypto_acomp *tfm, struct comp_testvec *ctemplate,
15491573
i + 1, algo);
15501574
hexdump(output, req->dlen);
15511575
ret = -EINVAL;
1576+
kfree(input_vec);
15521577
acomp_request_free(req);
15531578
goto out;
15541579
}
15551580

1581+
kfree(input_vec);
15561582
acomp_request_free(req);
15571583
}
15581584

drivers/crypto/marvell/cesa.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,8 @@ struct mv_cesa_op_ctx {
273273
#define CESA_TDMA_SRC_IN_SRAM BIT(30)
274274
#define CESA_TDMA_END_OF_REQ BIT(29)
275275
#define CESA_TDMA_BREAK_CHAIN BIT(28)
276-
#define CESA_TDMA_TYPE_MSK GENMASK(27, 0)
276+
#define CESA_TDMA_SET_STATE BIT(27)
277+
#define CESA_TDMA_TYPE_MSK GENMASK(26, 0)
277278
#define CESA_TDMA_DUMMY 0
278279
#define CESA_TDMA_DATA 1
279280
#define CESA_TDMA_OP 2

0 commit comments

Comments
 (0)