Skip to content

Commit a702518

Browse files
committed
Merge tag 'v3.4.91' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidxu-3.4.y
This is the 3.4.91 stable release
2 parents 2694219 + 25c7b87 commit a702518

File tree

16 files changed

+296
-30
lines changed

16 files changed

+296
-30
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 3
22
PATCHLEVEL = 4
3-
SUBLEVEL = 90
3+
SUBLEVEL = 91
44
EXTRAVERSION =
55
NAME = Saber-toothed Squirrel
66

arch/powerpc/lib/crtsavres.S

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,87 @@ _GLOBAL(_rest32gpr_31_x)
230230
mr 1,11
231231
blr
232232

233+
#ifdef CONFIG_ALTIVEC
234+
/* Called with r0 pointing just beyond the end of the vector save area. */
235+
236+
_GLOBAL(_savevr_20)
237+
li r11,-192
238+
stvx vr20,r11,r0
239+
_GLOBAL(_savevr_21)
240+
li r11,-176
241+
stvx vr21,r11,r0
242+
_GLOBAL(_savevr_22)
243+
li r11,-160
244+
stvx vr22,r11,r0
245+
_GLOBAL(_savevr_23)
246+
li r11,-144
247+
stvx vr23,r11,r0
248+
_GLOBAL(_savevr_24)
249+
li r11,-128
250+
stvx vr24,r11,r0
251+
_GLOBAL(_savevr_25)
252+
li r11,-112
253+
stvx vr25,r11,r0
254+
_GLOBAL(_savevr_26)
255+
li r11,-96
256+
stvx vr26,r11,r0
257+
_GLOBAL(_savevr_27)
258+
li r11,-80
259+
stvx vr27,r11,r0
260+
_GLOBAL(_savevr_28)
261+
li r11,-64
262+
stvx vr28,r11,r0
263+
_GLOBAL(_savevr_29)
264+
li r11,-48
265+
stvx vr29,r11,r0
266+
_GLOBAL(_savevr_30)
267+
li r11,-32
268+
stvx vr30,r11,r0
269+
_GLOBAL(_savevr_31)
270+
li r11,-16
271+
stvx vr31,r11,r0
272+
blr
273+
274+
_GLOBAL(_restvr_20)
275+
li r11,-192
276+
lvx vr20,r11,r0
277+
_GLOBAL(_restvr_21)
278+
li r11,-176
279+
lvx vr21,r11,r0
280+
_GLOBAL(_restvr_22)
281+
li r11,-160
282+
lvx vr22,r11,r0
283+
_GLOBAL(_restvr_23)
284+
li r11,-144
285+
lvx vr23,r11,r0
286+
_GLOBAL(_restvr_24)
287+
li r11,-128
288+
lvx vr24,r11,r0
289+
_GLOBAL(_restvr_25)
290+
li r11,-112
291+
lvx vr25,r11,r0
292+
_GLOBAL(_restvr_26)
293+
li r11,-96
294+
lvx vr26,r11,r0
295+
_GLOBAL(_restvr_27)
296+
li r11,-80
297+
lvx vr27,r11,r0
298+
_GLOBAL(_restvr_28)
299+
li r11,-64
300+
lvx vr28,r11,r0
301+
_GLOBAL(_restvr_29)
302+
li r11,-48
303+
lvx vr29,r11,r0
304+
_GLOBAL(_restvr_30)
305+
li r11,-32
306+
lvx vr30,r11,r0
307+
_GLOBAL(_restvr_31)
308+
li r11,-16
309+
lvx vr31,r11,r0
310+
blr
311+
312+
#endif /* CONFIG_ALTIVEC */
313+
233314
#else /* CONFIG_PPC64 */
234315

235316
.globl _savegpr0_14
@@ -353,6 +434,111 @@ _restgpr0_31:
353434
mtlr r0
354435
blr
355436

437+
#ifdef CONFIG_ALTIVEC
438+
/* Called with r0 pointing just beyond the end of the vector save area. */
439+
440+
.globl _savevr_20
441+
_savevr_20:
442+
li r12,-192
443+
stvx vr20,r12,r0
444+
.globl _savevr_21
445+
_savevr_21:
446+
li r12,-176
447+
stvx vr21,r12,r0
448+
.globl _savevr_22
449+
_savevr_22:
450+
li r12,-160
451+
stvx vr22,r12,r0
452+
.globl _savevr_23
453+
_savevr_23:
454+
li r12,-144
455+
stvx vr23,r12,r0
456+
.globl _savevr_24
457+
_savevr_24:
458+
li r12,-128
459+
stvx vr24,r12,r0
460+
.globl _savevr_25
461+
_savevr_25:
462+
li r12,-112
463+
stvx vr25,r12,r0
464+
.globl _savevr_26
465+
_savevr_26:
466+
li r12,-96
467+
stvx vr26,r12,r0
468+
.globl _savevr_27
469+
_savevr_27:
470+
li r12,-80
471+
stvx vr27,r12,r0
472+
.globl _savevr_28
473+
_savevr_28:
474+
li r12,-64
475+
stvx vr28,r12,r0
476+
.globl _savevr_29
477+
_savevr_29:
478+
li r12,-48
479+
stvx vr29,r12,r0
480+
.globl _savevr_30
481+
_savevr_30:
482+
li r12,-32
483+
stvx vr30,r12,r0
484+
.globl _savevr_31
485+
_savevr_31:
486+
li r12,-16
487+
stvx vr31,r12,r0
488+
blr
489+
490+
.globl _restvr_20
491+
_restvr_20:
492+
li r12,-192
493+
lvx vr20,r12,r0
494+
.globl _restvr_21
495+
_restvr_21:
496+
li r12,-176
497+
lvx vr21,r12,r0
498+
.globl _restvr_22
499+
_restvr_22:
500+
li r12,-160
501+
lvx vr22,r12,r0
502+
.globl _restvr_23
503+
_restvr_23:
504+
li r12,-144
505+
lvx vr23,r12,r0
506+
.globl _restvr_24
507+
_restvr_24:
508+
li r12,-128
509+
lvx vr24,r12,r0
510+
.globl _restvr_25
511+
_restvr_25:
512+
li r12,-112
513+
lvx vr25,r12,r0
514+
.globl _restvr_26
515+
_restvr_26:
516+
li r12,-96
517+
lvx vr26,r12,r0
518+
.globl _restvr_27
519+
_restvr_27:
520+
li r12,-80
521+
lvx vr27,r12,r0
522+
.globl _restvr_28
523+
_restvr_28:
524+
li r12,-64
525+
lvx vr28,r12,r0
526+
.globl _restvr_29
527+
_restvr_29:
528+
li r12,-48
529+
lvx vr29,r12,r0
530+
.globl _restvr_30
531+
_restvr_30:
532+
li r12,-32
533+
lvx vr30,r12,r0
534+
.globl _restvr_31
535+
_restvr_31:
536+
li r12,-16
537+
lvx vr31,r12,r0
538+
blr
539+
540+
#endif /* CONFIG_ALTIVEC */
541+
356542
#endif /* CONFIG_PPC64 */
357543

358544
#endif

block/blk-core.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2104,7 +2104,7 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes)
21042104
if (!req->bio)
21052105
return false;
21062106

2107-
trace_block_rq_complete(req->q, req);
2107+
trace_block_rq_complete(req->q, req, nr_bytes);
21082108

21092109
/*
21102110
* For fs requests, rq is just carrier of independent bio's

drivers/scsi/megaraid/megaraid_mm.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,8 @@ mimd_to_kioc(mimd_t __user *umimd, mraid_mmadp_t *adp, uioc_t *kioc)
486486

487487
pthru32->dataxferaddr = kioc->buf_paddr;
488488
if (kioc->data_dir & UIOC_WR) {
489+
if (pthru32->dataxferlen > kioc->xferlen)
490+
return -EINVAL;
489491
if (copy_from_user(kioc->buf_vaddr, kioc->user_data,
490492
pthru32->dataxferlen)) {
491493
return (-EFAULT);

drivers/tty/n_tty.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1996,7 +1996,9 @@ static ssize_t n_tty_write(struct tty_struct *tty, struct file *file,
19961996
tty->ops->flush_chars(tty);
19971997
} else {
19981998
while (nr > 0) {
1999+
mutex_lock(&tty->output_lock);
19992000
c = tty->ops->write(tty, b, nr);
2001+
mutex_unlock(&tty->output_lock);
20002002
if (c < 0) {
20012003
retval = c;
20022004
goto break_out;

drivers/video/tgafb.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ tgafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
192192

193193
if (var->xres_virtual != var->xres || var->yres_virtual != var->yres)
194194
return -EINVAL;
195+
if (var->xres * var->yres * (var->bits_per_pixel >> 3) > info->fix.smem_len)
196+
return -EINVAL;
195197
if (var->nonstd)
196198
return -EINVAL;
197199
if (1000000000 / var->pixclock > TGA_PLL_MAX_FREQ)
@@ -272,6 +274,7 @@ tgafb_set_par(struct fb_info *info)
272274
par->yres = info->var.yres;
273275
par->pll_freq = pll_freq = 1000000000 / info->var.pixclock;
274276
par->bits_per_pixel = info->var.bits_per_pixel;
277+
info->fix.line_length = par->xres * (par->bits_per_pixel >> 3);
275278

276279
tga_type = par->tga_type;
277280

@@ -1318,28 +1321,33 @@ tgafb_init_fix(struct fb_info *info)
13181321
int tga_bus_tc = TGA_BUS_TC(par->dev);
13191322
u8 tga_type = par->tga_type;
13201323
const char *tga_type_name = NULL;
1324+
unsigned memory_size;
13211325

13221326
switch (tga_type) {
13231327
case TGA_TYPE_8PLANE:
13241328
if (tga_bus_pci)
13251329
tga_type_name = "Digital ZLXp-E1";
13261330
if (tga_bus_tc)
13271331
tga_type_name = "Digital ZLX-E1";
1332+
memory_size = 2097152;
13281333
break;
13291334
case TGA_TYPE_24PLANE:
13301335
if (tga_bus_pci)
13311336
tga_type_name = "Digital ZLXp-E2";
13321337
if (tga_bus_tc)
13331338
tga_type_name = "Digital ZLX-E2";
1339+
memory_size = 8388608;
13341340
break;
13351341
case TGA_TYPE_24PLUSZ:
13361342
if (tga_bus_pci)
13371343
tga_type_name = "Digital ZLXp-E3";
13381344
if (tga_bus_tc)
13391345
tga_type_name = "Digital ZLX-E3";
1346+
memory_size = 16777216;
13401347
break;
13411348
default:
13421349
tga_type_name = "Unknown";
1350+
memory_size = 16777216;
13431351
break;
13441352
}
13451353

@@ -1351,9 +1359,8 @@ tgafb_init_fix(struct fb_info *info)
13511359
? FB_VISUAL_PSEUDOCOLOR
13521360
: FB_VISUAL_DIRECTCOLOR);
13531361

1354-
info->fix.line_length = par->xres * (par->bits_per_pixel >> 3);
13551362
info->fix.smem_start = (size_t) par->tga_fb_base;
1356-
info->fix.smem_len = info->fix.line_length * par->yres;
1363+
info->fix.smem_len = memory_size;
13571364
info->fix.mmio_start = (size_t) par->tga_regs_base;
13581365
info->fix.mmio_len = 512;
13591366

@@ -1478,6 +1485,9 @@ tgafb_register(struct device *dev)
14781485
modedb_tga = &modedb_tc;
14791486
modedbsize_tga = 1;
14801487
}
1488+
1489+
tgafb_init_fix(info);
1490+
14811491
ret = fb_find_mode(&info->var, info,
14821492
mode_option ? mode_option : mode_option_tga,
14831493
modedb_tga, modedbsize_tga, NULL,
@@ -1495,7 +1505,6 @@ tgafb_register(struct device *dev)
14951505
}
14961506

14971507
tgafb_set_par(info);
1498-
tgafb_init_fix(info);
14991508

15001509
if (register_framebuffer(info) < 0) {
15011510
printk(KERN_ERR "tgafb: Could not register framebuffer\n");

include/linux/net.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,29 @@ extern struct socket *sockfd_lookup(int fd, int *err);
259259
#define sockfd_put(sock) fput(sock->file)
260260
extern int net_ratelimit(void);
261261

262+
#define net_ratelimited_function(function, ...) \
263+
do { \
264+
if (net_ratelimit()) \
265+
function(__VA_ARGS__); \
266+
} while (0)
267+
268+
#define net_emerg_ratelimited(fmt, ...) \
269+
net_ratelimited_function(pr_emerg, fmt, ##__VA_ARGS__)
270+
#define net_alert_ratelimited(fmt, ...) \
271+
net_ratelimited_function(pr_alert, fmt, ##__VA_ARGS__)
272+
#define net_crit_ratelimited(fmt, ...) \
273+
net_ratelimited_function(pr_crit, fmt, ##__VA_ARGS__)
274+
#define net_err_ratelimited(fmt, ...) \
275+
net_ratelimited_function(pr_err, fmt, ##__VA_ARGS__)
276+
#define net_notice_ratelimited(fmt, ...) \
277+
net_ratelimited_function(pr_notice, fmt, ##__VA_ARGS__)
278+
#define net_warn_ratelimited(fmt, ...) \
279+
net_ratelimited_function(pr_warn, fmt, ##__VA_ARGS__)
280+
#define net_info_ratelimited(fmt, ...) \
281+
net_ratelimited_function(pr_info, fmt, ##__VA_ARGS__)
282+
#define net_dbg_ratelimited(fmt, ...) \
283+
net_ratelimited_function(pr_debug, fmt, ##__VA_ARGS__)
284+
262285
#define net_random() random32()
263286
#define net_srandom(seed) srandom32((__force u32)seed)
264287

include/net/netfilter/nf_conntrack_extend.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ enum nf_ct_ext_id {
3737
/* Extensions: optional stuff which isn't permanently in struct. */
3838
struct nf_ct_ext {
3939
struct rcu_head rcu;
40-
u8 offset[NF_CT_EXT_NUM];
41-
u8 len;
40+
u16 offset[NF_CT_EXT_NUM];
41+
u16 len;
4242
char data[0];
4343
};
4444

0 commit comments

Comments
 (0)