3.0.92-stable review
Subsystems (12)
Greg Kroah-Hartman
maintainercover 3.0.92-stable review
This is the start of the stable review cycle for the 3.0.92 release. There are 12 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Tue Aug 20 20:29:24 UTC 2013. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.0.92-rc1.gz
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <[email protected]>
Linux 3.0.92-rc1
Linus Torvalds <[email protected]>
vm: add no-mmu vm_iomap_memory() stub
Linus Walleij <[email protected]>
ARM: 7080/1: l2x0: make sure I&D are not locked down on init
Geert Uytterhoeven <[email protected]>
m68k/atari: ARAnyM - Fix NatFeat module support
Anton Blanchard <[email protected]>
powerpc: Use -mtraceback=no
David S. Miller <[email protected]>
sparc32: Add ucmpdi2.o to obj-y instead of lib-y.
Sam Ravnborg <[email protected]>
sparc32: add ucmpdi2
Johan Hovold <[email protected]>
USB: mos7720: fix broken control requests
Oliver Neukum <[email protected]>
usb: add two quirky touchscreen
Johannes Berg <[email protected]>
genetlink: fix family dump race
Nicolas Dichtel <[email protected]>
af_key: initialize satype in key_notify_policy_flush()
Jesper Nilsson <[email protected]>
CRIS: Add _sdata to vmlinux.lds.S
Zhang Yi <[email protected]>
futex: Take hugepages into account when generating futex_key
-------------
Diffstat:
Makefile | 4 ++-- arch/arm/include/asm/hardware/cache-l2x0.h | 9 +++++++-- arch/arm/mm/cache-l2x0.c | 21 +++++++++++++++++++++ arch/cris/kernel/vmlinux.lds.S | 1 + arch/m68k/emu/natfeat.c | 23 +++++++++++++++++++---- arch/powerpc/Makefile | 2 +- arch/sparc/lib/Makefile | 2 +- arch/sparc/lib/ucmpdi2.c | 19 +++++++++++++++++++ drivers/usb/core/quirks.c | 6 ++++++ drivers/usb/serial/mos7720.c | 21 ++++++++++++++------- include/linux/hugetlb.h | 16 ++++++++++++++++ kernel/futex.c | 3 ++- mm/hugetlb.c | 17 +++++++++++++++++ mm/nommu.c | 10 ++++++++++ net/key/af_key.c | 1 + net/netlink/genetlink.c | 7 +++++++ 16 files changed, 144 insertions(+), 18 deletions(-)
Greg Kroah-Hartman
maintainerPATCH 1/12 futex: Take hugepages into account when generating futex_key
3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Zhang Yi <[email protected]>
commit 13d60f4b6ab5b702dc8d2ee20999f98a93728aec upstream.
The futex_keys of process shared futexes are generated from the page offset, the mapping host and the mapping index of the futex user space address. This should result in an unique identifier for each futex.
Though this is not true when futexes are located in different subpages of an hugepage. The reason is, that the mapping index for all those futexes evaluates to the index of the base page of the hugetlbfs mapping. So a futex at offset 0 of the hugepage mapping and another one at offset PAGE_SIZE of the same hugepage mapping have identical futex_keys. This happens because the futex code blindly uses page->index.
Steps to reproduce the bug:
1. Map a file from hugetlbfs. Initialize pthread_mutex1 at offset 0 and pthread_mutex2 at offset PAGE_SIZE of the hugetlbfs mapping.
The mutexes must be initialized as PTHREAD_PROCESS_SHARED because PTHREAD_PROCESS_PRIVATE mutexes are not affected by this issue as their keys solely depend on the user space address.
2. Lock mutex1 and mutex2
3. Create thread1 and in the thread function lock mutex1, which results in thread1 blocking on the locked mutex1.
4. Create thread2 and in the thread function lock mutex2, which results in thread2 blocking on the locked mutex2.
5. Unlock mutex2. Despite the fact that mutex2 got unlocked, thread2 still blocks on mutex2 because the futex_key points to mutex1.
To solve this issue we need to take the normal page index of the page which contains the futex into account, if the futex is in an hugetlbfs mapping. In other words, we calculate the normal page mapping index of the subpage in the hugetlbfs mapping.
Mappings which are not based on hugetlbfs are not affected and still use page->index.
Thanks to Mel Gorman who provided a patch for adding proper evaluation functions to the hugetlbfs code to avoid exposing hugetlbfs specific details to the futex code.
[ tglx: Massaged changelog ]
--- include/linux/hugetlb.h | 16 ++++++++++++++++ kernel/futex.c | 3 ++- mm/hugetlb.c | 17 +++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-)
include/linux/hugetlb.h +16 -0
@@ -313,6 +313,17 @@ static inline unsigned hstate_index_to_s return hstates[index].order + PAGE_SHIFT; } +pgoff_t __basepage_index (struct page *page); + +/* Return page->index in PAGE_SIZE units */ +static inline pgoff_t basepage_index (struct page *page) +{ +if (!PageCompound (page)) +return page->index; + +return __basepage_index (page); +} +#else struct hstate {};#define alloc_huge_page_node (h, nid) NULL
@@ -331,6 +342,11 @@ static inline unsigned int pages_per_hugreturn 1 ; }#define hstate_index_to_shift (index) 0 + +static inline pgoff_t basepage_index (struct page *page) +{ +return page->index; +}#endif #endif /* _LINUX_HUGETLB_H */
kernel/futex.c +2 -1
@@ -60,6 +60,7 @@#include <linux/pid.h> #include <linux/nsproxy.h> #include <linux/ptrace.h> +#include <linux/hugetlb.h> #include <asm/futex.h>
@@ -363,7 +364,7 @@ again: }else { key->both.offset |=FUT_OFF_INODE ;/* inode-based key */ key->shared.inode = page_head->mapping->host; - key->shared.pgoff = page_head->index; + key->shared.pgoff =basepage_index (page); }get_futex_key_refs (key);
mm/hugetlb.c +17 -0
@@ -602,6 +602,23 @@ int PageHuge(struct page *page)EXPORT_SYMBOL_GPL (PageHuge); +pgoff_t __basepage_index (struct page *page) +{ +struct page *page_head =compound_head (page); +pgoff_t index =page_index (page_head); +unsigned long compound_idx; + +if (!PageHuge (page_head)) +return page_index (page); + +if (compound_order (page_head) >=MAX_ORDER ) + compound_idx =page_to_pfn (page) -page_to_pfn (page_head); +else + compound_idx = page - page_head; + +return (index <<compound_order (page_head)) + compound_idx; +} +static struct page *alloc_fresh_huge_page_node (struct hstate *h,int nid) {struct page *page;
Greg Kroah-Hartman
maintainerPATCH 2/12 CRIS: Add _sdata to vmlinux.lds.S
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jesper Nilsson <[email protected]>
commit 473e162eea465e60578edb93341752e7f1c1dacc upstream.
Fixes link error:
LD vmlinuxkernel/built-in.o: In function `core_kernel_data':
(.text+0x13e44): undefined reference to `_sdata'
--- arch/cris/kernel/vmlinux.lds.S | 1 + 1 file changed, 1 insertion(+)
arch/cris/kernel/vmlinux.lds.S +1 -0
@@ -52,6 +52,7 @@ SECTIONS EXCEPTION_TABLE(4) + _sdata = .; RODATA . = ALIGN (4);
Greg Kroah-Hartman
maintainerPATCH 3/12 af_key: initialize satype in key_notify_policy_flush()
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Nicolas Dichtel <[email protected]>
commit 85dfb745ee40232876663ae206cba35f24ab2a40 upstream.
This field was left uninitialized. Some user daemons perform check against this field.
--- net/key/af_key.c | 1 + 1 file changed, 1 insertion(+)
net/key/af_key.c +1 -0
@@ -2687,6 +2687,7 @@ static int key_notify_policy_flush(const hdr->sadb_msg_pid = c->pid; hdr->sadb_msg_version =PF_KEY_V2 ; hdr->sadb_msg_errno = (uint8_t )0 ; + hdr->sadb_msg_satype =SADB_SATYPE_UNSPEC ; hdr->sadb_msg_len = (sizeof (struct sadb_msg ) /sizeof (uint64_t )); hdr->sadb_msg_reserved =0 ;pfkey_broadcast (skb_out,GFP_ATOMIC ,BROADCAST_ALL ,NULL , c->net);
Greg Kroah-Hartman
maintainerPATCH 4/12 genetlink: fix family dump race
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johannes Berg <[email protected]>
commit 58ad436fcf49810aa006016107f494c9ac9013db upstream.
When dumping generic netlink families, only the first dump call is locked with genl_lock(), which protects the list of families, and thus subsequent calls can access the data without locking, racing against family addition/removal. This can cause a crash. Fix it - the locking needs to be conditional because the first time around it's already locked.
A similar bug was reported to me on an old kernel (3.4.47) but the exact scenario that happened there is no longer possible, on those kernels the first round wasn't locked either. Looking at the current code I found the race described above, which had also existed on the old kernel.
--- net/netlink/genetlink.c | 7 +++++++ 1 file changed, 7 insertions(+)
net/netlink/genetlink.c +7 -0
@@ -700,6 +700,10 @@ static int ctrl_dumpfamily(struct sk_bufstruct net *net =sock_net (skb->sk);int chains_to_skip = cb->args[0 ];int fams_to_skip = cb->args[1 ]; +bool need_locking = chains_to_skip || fams_to_skip; + +if (need_locking) +genl_lock ();for (i = chains_to_skip; i <GENL_FAM_TAB_SIZE ; i++) { n =0 ;
@@ -721,6 +725,9 @@ errout: cb->args[0 ] = i; cb->args[1 ] = n; +if (need_locking) +genl_unlock (); +return skb->len; }
Greg Kroah-Hartman
maintainerPATCH 5/12 usb: add two quirky touchscreen
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Oliver Neukum <[email protected]>
commit 304ab4ab079a8ed03ce39f1d274964a532db036b upstream.
These devices tend to become unresponsive after S3
--- drivers/usb/core/quirks.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/usb/core/quirks.c +6 -0
@@ -100,6 +100,12 @@ static const struct usb_device_id usb_qu { USB_DEVICE(0x04d8, 0x000c), .driver_info = USB_QUIRK_CONFIG_INTF_STRINGS }, + /* CarrolTouch 4000U */ + { USB_DEVICE(0x04e7, 0x0009), .driver_info = USB_QUIRK_RESET_RESUME }, + + /* CarrolTouch 4500U */ + { USB_DEVICE(0x04e7, 0x0030), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Samsung Android phone modem - ID conflict with SPH-I500 */ { USB_DEVICE(0x04e8, 0x6601), .driver_info = USB_QUIRK_CONFIG_INTF_STRINGS },
Greg Kroah-Hartman
maintainerPATCH 6/12 USB: mos7720: fix broken control requests
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Johan Hovold <[email protected]>
commit ef6c8c1d733e244f0499035be0dabe1f4ed98c6f upstream.
The parallel-port code of the drivers used a stack allocated control-request buffer for asynchronous (and possibly deferred) control requests. This not only violates the no-DMA-from-stack requirement but could also lead to corrupt control requests being submitted.
--- drivers/usb/serial/mos7720.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-)
drivers/usb/serial/mos7720.c +14 -7
@@ -97,6 +97,7 @@ struct urbtracker {struct list_head urblist_entry;struct kref ref_count;struct urb *urb; +struct usb_ctrlrequest *setup; };enum mos7715_pp_modes {
@@ -279,6 +280,7 @@ static void destroy_urbtracker(struct krstruct mos7715_parport *mos_parport = urbtrack->mos_parport;dbg ("%s called" , __func__);usb_free_urb (urbtrack->urb); +kfree (urbtrack->setup);kfree (urbtrack);kref_put (&mos_parport->ref_count, destroy_mos_parport); }
@@ -363,7 +365,6 @@ static int write_parport_reg_nonblock(ststruct urbtracker *urbtrack;int ret_val;unsigned long flags; -struct usb_ctrlrequest setup;struct usb_serial *serial = mos_parport->serial;struct usb_device *usbdev = serial->dev;dbg ("%s called" , __func__);
@@ -382,14 +383,20 @@ static int write_parport_reg_nonblock(stkfree (urbtrack);return -ENOMEM ; } - setup.bRequestType = (__u8 )0x40 ; - setup.bRequest = (__u8 )0x0e ; - setup.wValue =get_reg_value (reg, dummy); - setup.wIndex =get_reg_index (reg); - setup.wLength =0 ; + urbtrack->setup =kmalloc (sizeof (*urbtrack->setup),GFP_KERNEL ); +if (!urbtrack->setup) { +usb_free_urb (urbtrack->urb); +kfree (urbtrack); +return -ENOMEM ; + } + urbtrack->setup->bRequestType = (__u8 )0x40 ; + urbtrack->setup->bRequest = (__u8 )0x0e ; + urbtrack->setup->wValue =get_reg_value (reg, dummy); + urbtrack->setup->wIndex =get_reg_index (reg); + urbtrack->setup->wLength =0 ;usb_fill_control_urb (urbtrack->urb, usbdev,usb_sndctrlpipe (usbdev,0 ), - (unsigned char *)&setup, + (unsigned char *)urbtrack->setup,NULL ,0 , async_complete, urbtrack);kref_init (&urbtrack->ref_count);INIT_LIST_HEAD (&urbtrack->urblist_entry);
Greg Kroah-Hartman
maintainerPATCH 7/12 sparc32: add ucmpdi2
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Sam Ravnborg <[email protected]>
commit de36e66d5fa52bc6e2dacd95c701a1762b5308a7 upstream.
Based on copy from microblaze add ucmpdi2 implementation. This fixes build of niu driver which failed with:
drivers/built-in.o: In function `niu_get_nfc':
niu.c:(.text+0x91494): undefined reference to `__ucmpdi2'
This driver will never be used on a sparc32 system, but patch added to fix build breakage with all*config builds.
--- arch/sparc/lib/Makefile | 2 +- arch/sparc/lib/ucmpdi2.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-)
arch/sparc/lib/Makefile +1 -1
@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi lib-$(CONFIG_SPARC32) += copy_user.o locks.o lib-y += atomic_$(BITS).o lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o -lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o +lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ucmpdi2.o lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o
arch/sparc/lib/ucmpdi2.c new file +19 -0
@@ -0,0 +1,19 @@ +#include <linux/module.h> +#include "libgcc.h" + +word_type __ucmpdi2 (unsigned long long a,unsigned long long b) +{ +const DWunion au = {.ll = a}; +const DWunion bu = {.ll = b}; + +if ((unsigned int ) au.s.high < (unsigned int ) bu.s.high) +return 0 ; +else if ((unsigned int ) au.s.high > (unsigned int ) bu.s.high) +return 2 ; +if ((unsigned int ) au.s.low < (unsigned int ) bu.s.low) +return 0 ; +else if ((unsigned int ) au.s.low > (unsigned int ) bu.s.low) +return 2 ; +return 1 ; +} +EXPORT_SYMBOL (__ucmpdi2);
Greg Kroah-Hartman
maintainerPATCH 8/12 sparc32: Add ucmpdi2.o to obj-y instead of lib-y.
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: "David S. Miller" <[email protected]>
commit 74c7b28953d4eaa6a479c187aeafcfc0280da5e8 upstream.
Otherwise if no references exist in the static kernel image, we won't export the symbol properly to modules.
--- arch/sparc/lib/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/sparc/lib/Makefile +2 -2
@@ -15,7 +15,7 @@ lib-$(CONFIG_SPARC32) += divdi3.o udivdi lib-$(CONFIG_SPARC32) += copy_user.o locks.o lib-y += atomic_$(BITS).o lib-$(CONFIG_SPARC32) += lshrdi3.o ashldi3.o -lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o ucmpdi2.o +lib-$(CONFIG_SPARC32) += muldi3.o bitext.o cmpdi2.o lib-$(CONFIG_SPARC64) += copy_page.o clear_page.o bzero.o lib-$(CONFIG_SPARC64) += csum_copy.o csum_copy_from_user.o csum_copy_to_user.o
@@ -40,7 +40,7 @@ lib-$(CONFIG_SPARC64) += copy_in_user.o lib-$(CONFIG_SPARC64) += mcount.o ipcsum.o xor.o hweight.o ffs.o obj-y += iomap.o -obj-$(CONFIG_SPARC32) += atomic32.o +obj-$(CONFIG_SPARC32) += atomic32.o ucmpdi2.o obj-y += ksyms.o obj-$(CONFIG_SPARC64) += PeeCeeI.o obj-y += usercopy.o
Greg Kroah-Hartman
maintainerPATCH 9/12 powerpc: Use -mtraceback=no
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Anton Blanchard <[email protected]>
commit af9719c3062dfe216a0c3de3fa52be6d22b4456c upstream.
gcc 4.7 will be more strict about parsing the -mtraceback option:
gcc: error: unrecognized argument in option '-mtraceback=none'
gcc: note: valid arguments to '-mtraceback=' are: full no part
gcc used to do a 2 char compare so both "no" and "none" would match. Switch to using -mtraceback=no should work everywhere.
--- arch/powerpc/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/powerpc/Makefile +1 -1
@@ -67,7 +67,7 @@ LDFLAGS_vmlinux-yy := -Bstatic LDFLAGS_vmlinux-$(CONFIG_PPC64)$(CONFIG_RELOCATABLE) := -pie LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-yy) -CFLAGS-$(CONFIG_PPC64) := -mminimal-toc -mtraceback=none -mcall-aixdesc +CFLAGS-$(CONFIG_PPC64) := -mminimal-toc -mtraceback=no -mcall-aixdesc CFLAGS-$(CONFIG_PPC32) := -ffixed-r2 -mmultiple KBUILD_CPPFLAGS += -Iarch/$(ARCH) KBUILD_AFLAGS += -Iarch/$(ARCH)
Greg Kroah-Hartman
maintainerPATCH 10/12 m68k/atari: ARAnyM - Fix NatFeat module support
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Geert Uytterhoeven <[email protected]>
commit e8184e10f89736a23ea6eea8e24cd524c5c513d2 upstream.
As pointed out by Andreas Schwab, pointers passed to ARAnyM NatFeat calls should be physical addresses, not virtual addresses.
Fortunately on Atari, physical and virtual kernel addresses are the same, as long as normal kernel memory is concerned, so this usually worked fine without conversion.
But for modules, pointers to literal strings are located in vmalloc()ed memory. Depending on the version of ARAnyM, this causes the nf_get_id() call to just fail, or worse, crash ARAnyM itself with e.g.
Gotcha! Illegal memory access. Atari PC = $968c
This is a big issue for distro kernels, who want to have all drivers as loadable modules in an initrd.
Add a wrapper for nf_get_id() that copies the literal to the stack to work around this issue.
--- arch/m68k/emu/natfeat.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-)
arch/m68k/emu/natfeat.c +19 -4
@@ -18,9 +18,11 @@#include <asm/machdep.h> #include <asm/natfeat.h> +extern long nf_get_id2 (const char *feature_name); + asm("\n" -" .global nf_get_id,nf_call\n" -"nf_get_id:\n" +" .global nf_get_id2,nf_call\n" +"nf_get_id2:\n" " .short 0x7300\n" " rts\n" "nf_call:\n"
@@ -29,12 +31,25 @@ asm("\n""1: moveq.l #0,%d0\n" " rts\n" " .section __ex_table,\"a\"\n" -" .long nf_get_id,1b\n" +" .long nf_get_id2,1b\n" " .long nf_call,1b\n" " .previous"); -EXPORT_SYMBOL_GPL (nf_get_id);EXPORT_SYMBOL_GPL (nf_call); +long nf_get_id (const char *feature_name) +{ +/* feature_name may be in vmalloc()ed memory, so make a copy */ +char name_copy[32 ]; +size_t n; + + n =strlcpy (name_copy, feature_name,sizeof (name_copy)); +if (n >=sizeof (name_copy)) +return 0 ; + +return nf_get_id2 (name_copy); +} +EXPORT_SYMBOL_GPL (nf_get_id); +void nfprint (const char *fmt, ...) {static char buf[256 ];
Greg Kroah-Hartman
maintainerPATCH 11/12 ARM: 7080/1: l2x0: make sure I&D are not locked down on init
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Linus Walleij <[email protected]>
commit bac7e6ecf60933b68af910eb4c83a775a8b20b19 upstream.
Fighting unfixed U-Boots and other beasts that may the cache in a locked-down state when starting the kernel, we make sure to disable all cache lock-down when initializing the l2x0 so we are in a known state.
--- arch/arm/include/asm/hardware/cache-l2x0.h | 9 +++++++-- arch/arm/mm/cache-l2x0.c | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-)
arch/arm/include/asm/hardware/cache-l2x0.h +7 -2
@@ -45,8 +45,13 @@#define L2X0_CLEAN_INV_LINE_PA 0x7F0#define L2X0_CLEAN_INV_LINE_IDX 0x7F8#define L2X0_CLEAN_INV_WAY 0x7FC -#define L2X0_LOCKDOWN_WAY_D 0x900 -#define L2X0_LOCKDOWN_WAY_I 0x904 +/* +* The lockdown registers repeat 8 times for L310, the L210 has only one +* D and one I lockdown register at 0x0900 and 0x0904. +*/ +#define L2X0_LOCKDOWN_WAY_D_BASE 0x900 +#define L2X0_LOCKDOWN_WAY_I_BASE 0x904 +#define L2X0_LOCKDOWN_STRIDE 0x08#define L2X0_TEST_OPERATION 0xF00#define L2X0_LINE_DATA 0xF10#define L2X0_LINE_TAG 0xF30
arch/arm/mm/cache-l2x0.c +21 -0
@@ -277,6 +277,25 @@ static void l2x0_disable(void)spin_unlock_irqrestore (&l2x0_lock, flags); } +static void __init l2x0_unlock (__u32 cache_id) +{ +int lockregs; +int i; + +if (cache_id ==L2X0_CACHE_ID_PART_L310 ) + lockregs =8 ; +else +/* L210 and unknown types */ + lockregs =1 ; + +for (i =0 ; i < lockregs; i++) { +writel_relaxed (0x0 , l2x0_base +L2X0_LOCKDOWN_WAY_D_BASE + + i *L2X0_LOCKDOWN_STRIDE ); +writel_relaxed (0x0 , l2x0_base +L2X0_LOCKDOWN_WAY_I_BASE + + i *L2X0_LOCKDOWN_STRIDE ); + } +} +void __init l2x0_init (void __iomem *base,__u32 aux_val,__u32 aux_mask) {__u32 aux;
@@ -328,6 +347,8 @@ void __init l2x0_init(void __iomem *base* accessing the below registers will fault. */ if (!(readl_relaxed (l2x0_base +L2X0_CTRL ) &1 )) { +/* Make sure that I&D is not locked down when starting */ +l2x0_unlock (cache_id);/* l2x0 controller is disabled */ writel_relaxed (aux, l2x0_base +L2X0_AUX_CTRL );
Greg Kroah-Hartman
maintainerPATCH 12/12 vm: add no-mmu vm_iomap_memory() stub
In reply to Greg Kroah-Hartman3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Linus Torvalds <[email protected]>
commit 3c0b9de6d37a481673e81001c57ca0e410c72346 upstream.
I think we could just move the full vm_iomap_memory() function into util.h or similar, but I didn't get any reply from anybody actually using nommu even to this trivial patch, so I'm not going to touch it any more than required.
Here's the fairly minimal stub to make the nommu case at least potentially work. It doesn't seem like anybody cares, though.
--- mm/nommu.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
mm/nommu.c +10 -0
@@ -1826,6 +1826,16 @@ int remap_pfn_range(struct vm_area_struc }EXPORT_SYMBOL (remap_pfn_range); +int vm_iomap_memory (struct vm_area_struct *vma,phys_addr_t start,unsigned long len) +{ +unsigned long pfn = start >>PAGE_SHIFT ; +unsigned long vm_len = vma->vm_end - vma->vm_start; + + pfn += vma->vm_pgoff; +return io_remap_pfn_range (vma, vma->vm_start, pfn, vm_len, vma->vm_page_prot); +} +EXPORT_SYMBOL (vm_iomap_memory); +int remap_vmalloc_range (struct vm_area_struct *vma,void *addr,unsigned long pgoff) {
Geert Uytterhoeven
maintainerHi Greg,
Quoted 1 line · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.0.92 release.
Please also include
commit ea077b1b96e073eac5c3c5590529e964767fc5f7
Author: Andreas Schwab <[email protected]> Date: Fri Aug 9 15:14:08 2013 +0200
m68k: Truncate base in do_div()
While the crash mentioned in that commit doesn't happen in 3.2 and earlier, there are a few other places in the kernel that call do_div() with a 64-bit divisor,
causing unexpected behavior.
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Greg Kroah-Hartman
maintainerQuoted 12 lines · Geert Uytterhoeven
Hi Greg,
Quoted 1 line · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.0.92 release.
Please also include
commit
ea077b1b96e073eac5c3c5590529e964767fc5f7Author: Andreas Schwab <[email protected]> Date: Fri Aug 9 15:14:08 2013 +0200
Quoted 6 lines
m68k: Truncate base in
do_div()While the crash mentioned in that commit doesn't happen in 3.2 and earlier, there are a few other places in the kernel that call
do_div()with a 64-bit divisor,
causing unexpected behavior.
I've added this and put out a 3.0.92-rc2 kernel patch, thanks.
And yes, the changelog comments are truncated as well, I'll look into fixing that later...
greg k-h
Quoted 5 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.0.92 release. There are 12 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Quoted 7 lines
Responses should be made by Tue Aug 20 20:29:24 UTC 2013. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.0.92-rc1.gzand the diffstat can be found below.
Cross build results (including commit ea077b1b96):
Total builds: 65 Total build errors: 8
Previous release:
Total builds: 58 Total build errors: 14
qemu tests:
ppc, x86, x86_64 tested ok arm, mips, mips64 skipped
More builds, fewer failures. Excellent results.
Build details are at http://server.roeck-us.net:8010/builders.
Thanks,
Guenter
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.0.92 release. There are 12 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Tue Aug 20 20:29:24 UTC 2013. Anything received after that time might be too late.
Quoted 8 lines
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.0.92-rc1.gzand the diffstat can be found below.
thanks,
greg k-h
3.0.92-rc1 applied cleanly to 3.0.91.
Compiled and booted on the following systems:
Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphics
dmesgs look good. No regressions compared to the previous dmesgs for this release. dmesg emerg, crit, alert, err are clean. No regressions in warn.
Cross-compile test: HP Compaq dc7700 SFF desktop: x86-64 Intel Core-i2:
Cross-compile tests results:
alpha: defconfig passed
arm: defconfig passed
arm64: not applicable
blackfin: defconfig passed
c6x: not applicable
mips: defconfig passed
mipsel: defconfig passed
powerpc: wii_defconfig passed
sh: defconfig passed
sparc: defconfig passed
tile: tilegx_defconfig passed
-- Shuah
Signature · 4 lines
Shuah Khan Senior Linux Kernel Developer - Open Source Group Samsung Research America(Silicon Valley) [email protected] | (970) 672-0658
Greg Kroah-Hartman
maintainerQuoted 20 lines · Shuah Khan
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 3.0.92 release. There are 12 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Tue Aug 20 20:29:24 UTC 2013. Anything received after that time might be too late.
Quoted 8 lines
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.0.92-rc1.gzand the diffstat can be found below.
thanks,
greg k-h
3.0.92-rc1 applied cleanly to 3.0.91.
Quoted 8 lines
Compiled and booted on the following systems:
Samsung Series 9 900X4C Intel Corei5
HP ProBook 6475b AMD A10-4600M APU with Radeon(tm) HD Graphicsdmesgs look good. No regressions compared to the previous dmesgs for this release. dmesg emerg, crit, alert, err are clean. No regressions in warn.
Thanks for letting me know.
greg k-h