Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'akpm' (fixes from Andrew)

Merge misc fixes from Andrew Morton.

* emailed patches from Andrew Morton <akpm@linux-foundation.org>:
alpha: boot: fix build breakage introduced by system.h disintegration
memcg: initialize kmem-cache destroying work earlier
Randy has moved
ksm: fix m68k build: only NUMA needs pfn_to_nid
dmi_scan: fix missing check for _DMI_ signature in smbios_present()
Revert parts of "hlist: drop the node parameter from iterators"
idr: remove WARN_ON_ONCE() on negative IDs
mm/mempolicy.c: fix sp_node_init() argument ordering
mm/mempolicy.c: fix wrong sp_node insertion
ipc: don't allocate a copy larger than max
ipc: fix potential oops when src msg > 4k w/ MSG_COPY

+26 -34
+3 -3
CREDITS
··· 953 953 S: USA 954 954 955 955 N: Randy Dunlap 956 - E: rdunlap@xenotime.net 957 - W: http://www.xenotime.net/linux/linux.html 958 - W: http://www.linux-usb.org 956 + E: rdunlap@infradead.org 957 + W: http://www.infradead.org/~rdunlap/ 959 958 D: Linux-USB subsystem, USB core/UHCI/printer/storage drivers 960 959 D: x86 SMP, ACPI, bootflag hacking 960 + D: documentation, builds 961 961 S: (ask for current address) 962 962 S: USA 963 963
+1 -2
Documentation/SubmittingPatches
··· 60 60 "dontdiff" is a list of files which are generated by the kernel during 61 61 the build process, and should be ignored in any diff(1)-generated 62 62 patch. The "dontdiff" file is included in the kernel tree in 63 - 2.6.12 and later. For earlier kernel versions, you can get it 64 - from <http://www.xenotime.net/linux/doc/dontdiff>. 63 + 2.6.12 and later. 65 64 66 65 Make sure your patch does not include any extra files which do not 67 66 belong in a patch submission. Make sure to review your patch -after-
+1 -1
Documentation/printk-formats.txt
··· 170 170 Thank you for your cooperation and attention. 171 171 172 172 173 - By Randy Dunlap <rdunlap@xenotime.net> and 173 + By Randy Dunlap <rdunlap@infradead.org> and 174 174 Andrew Murray <amurray@mpc-data.co.uk>
+1
arch/alpha/boot/head.S
··· 4 4 * initial bootloader stuff.. 5 5 */ 6 6 7 + #include <asm/pal.h> 7 8 8 9 .set noreorder 9 10 .globl __start
+2 -3
drivers/firmware/dmi_scan.c
··· 442 442 static int __init smbios_present(const char __iomem *p) 443 443 { 444 444 u8 buf[32]; 445 - int offset = 0; 446 445 447 446 memcpy_fromio(buf, p, 32); 448 447 if ((buf[5] < 32) && dmi_checksum(buf, buf[5])) { ··· 460 461 dmi_ver = 0x0206; 461 462 break; 462 463 } 463 - offset = 16; 464 + return memcmp(p + 16, "_DMI_", 5) || dmi_present(p + 16); 464 465 } 465 - return dmi_present(buf + offset); 466 + return 1; 466 467 } 467 468 468 469 void __init dmi_scan_machine(void)
+4 -2
ipc/msg.c
··· 820 820 struct msg_msg *copy = NULL; 821 821 unsigned long copy_number = 0; 822 822 823 + ns = current->nsproxy->ipc_ns; 824 + 823 825 if (msqid < 0 || (long) bufsz < 0) 824 826 return -EINVAL; 825 827 if (msgflg & MSG_COPY) { 826 - copy = prepare_copy(buf, bufsz, msgflg, &msgtyp, &copy_number); 828 + copy = prepare_copy(buf, min_t(size_t, bufsz, ns->msg_ctlmax), 829 + msgflg, &msgtyp, &copy_number); 827 830 if (IS_ERR(copy)) 828 831 return PTR_ERR(copy); 829 832 } 830 833 mode = convert_mode(&msgtyp, msgflg); 831 - ns = current->nsproxy->ipc_ns; 832 834 833 835 msq = msg_lock_check(ns, msqid); 834 836 if (IS_ERR(msq)) {
-3
ipc/msgutil.c
··· 117 117 if (alen > DATALEN_MSG) 118 118 alen = DATALEN_MSG; 119 119 120 - dst->next = NULL; 121 - dst->security = NULL; 122 - 123 120 memcpy(dst + 1, src + 1, alen); 124 121 125 122 len -= alen;
+1 -1
kernel/smpboot.c
··· 131 131 continue; 132 132 } 133 133 134 - //BUG_ON(td->cpu != smp_processor_id()); 134 + BUG_ON(td->cpu != smp_processor_id()); 135 135 136 136 /* Check for state change setup */ 137 137 switch (td->status) {
+3 -13
lib/idr.c
··· 569 569 struct idr_layer *p; 570 570 struct idr_layer *to_free; 571 571 572 - /* see comment in idr_find_slowpath() */ 573 - if (WARN_ON_ONCE(id < 0)) 572 + if (id < 0) 574 573 return; 575 574 576 575 sub_remove(idp, (idp->layers - 1) * IDR_BITS, id); ··· 666 667 int n; 667 668 struct idr_layer *p; 668 669 669 - /* 670 - * If @id is negative, idr_find() used to ignore the sign bit and 671 - * performed lookup with the rest of bits, which is weird and can 672 - * lead to very obscure bugs. We're now returning NULL for all 673 - * negative IDs but just in case somebody was depending on the sign 674 - * bit being ignored, let's trigger WARN_ON_ONCE() so that they can 675 - * be detected and fixed. WARN_ON_ONCE() can later be removed. 676 - */ 677 - if (WARN_ON_ONCE(id < 0)) 670 + if (id < 0) 678 671 return NULL; 679 672 680 673 p = rcu_dereference_raw(idp->top); ··· 815 824 int n; 816 825 struct idr_layer *p, *old_p; 817 826 818 - /* see comment in idr_find_slowpath() */ 819 - if (WARN_ON_ONCE(id < 0)) 827 + if (id < 0) 820 828 return ERR_PTR(-EINVAL); 821 829 822 830 p = idp->top;
+1 -1
mm/ksm.c
··· 489 489 */ 490 490 static inline int get_kpfn_nid(unsigned long kpfn) 491 491 { 492 - return ksm_merge_across_nodes ? 0 : pfn_to_nid(kpfn); 492 + return ksm_merge_across_nodes ? 0 : NUMA(pfn_to_nid(kpfn)); 493 493 } 494 494 495 495 static void remove_node_from_stable_tree(struct stable_node *stable_node)
+6 -2
mm/memcontrol.c
··· 3012 3012 memcg_limited_groups_array_size = memcg_caches_array_size(num); 3013 3013 } 3014 3014 3015 + static void kmem_cache_destroy_work_func(struct work_struct *w); 3016 + 3015 3017 int memcg_update_cache_size(struct kmem_cache *s, int num_groups) 3016 3018 { 3017 3019 struct memcg_cache_params *cur_params = s->memcg_params; ··· 3033 3031 return -ENOMEM; 3034 3032 } 3035 3033 3034 + INIT_WORK(&s->memcg_params->destroy, 3035 + kmem_cache_destroy_work_func); 3036 3036 s->memcg_params->is_root_cache = true; 3037 3037 3038 3038 /* ··· 3082 3078 if (!s->memcg_params) 3083 3079 return -ENOMEM; 3084 3080 3081 + INIT_WORK(&s->memcg_params->destroy, 3082 + kmem_cache_destroy_work_func); 3085 3083 if (memcg) { 3086 3084 s->memcg_params->memcg = memcg; 3087 3085 s->memcg_params->root_cache = root_cache; ··· 3364 3358 list_for_each_entry(params, &memcg->memcg_slab_caches, list) { 3365 3359 cachep = memcg_params_to_cache(params); 3366 3360 cachep->memcg_params->dead = true; 3367 - INIT_WORK(&cachep->memcg_params->destroy, 3368 - kmem_cache_destroy_work_func); 3369 3361 schedule_work(&cachep->memcg_params->destroy); 3370 3362 } 3371 3363 mutex_unlock(&memcg->slab_caches_mutex);
+2 -2
mm/mempolicy.c
··· 2390 2390 2391 2391 *mpol_new = *n->policy; 2392 2392 atomic_set(&mpol_new->refcnt, 1); 2393 - sp_node_init(n_new, n->end, end, mpol_new); 2394 - sp_insert(sp, n_new); 2393 + sp_node_init(n_new, end, n->end, mpol_new); 2395 2394 n->end = start; 2395 + sp_insert(sp, n_new); 2396 2396 n_new = NULL; 2397 2397 mpol_new = NULL; 2398 2398 break;
+1 -1
net/9p/trans_virtio.c
··· 655 655 .create = p9_virtio_create, 656 656 .close = p9_virtio_close, 657 657 .request = p9_virtio_request, 658 - //.zc_request = p9_virtio_zc_request, 658 + .zc_request = p9_virtio_zc_request, 659 659 .cancel = p9_virtio_cancel, 660 660 /* 661 661 * We leave one entry for input and one entry for response