The patch titled
Subject: mm/khugepaged: collapse_shmem() without freezing new_page
has been added to the -mm tree. Its filename is
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-collapse_shmem-witho…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-collapse_shmem-witho…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() without freezing new_page
khugepaged's collapse_shmem() does almost all of its work, to assemble the
huge new_page from 512 scattered old pages, with the new_page's refcount
frozen to 0 (and refcounts of all old pages so far also frozen to 0).
Including shmem_getpage() to read in any which were out on swap, memory
reclaim if necessary to allocate their intermediate pages, and copying
over all the data from old to new.
Imagine the frozen refcount as a spinlock held, but without any lock
debugging to highlight the abuse: it's not good, and under serious load
heads into lockups - speculative getters of the page are not expecting to
spin while khugepaged is rescheduled.
One can get a little further under load by hacking around elsewhere; but
fortunately, freezing the new_page turns out to have been entirely
unnecessary, with no hacks needed elsewhere.
The huge new_page lock is already held throughout, and guards all its
subpages as they are brought one by one into the page cache tree; and
anything reading the data in that page, without the lock, before it has
been marked PageUptodate, would already be in the wrong. So simply
eliminate the freezing of the new_page.
Each of the old pages remains frozen with refcount 0 after it has been
replaced by a new_page subpage in the page cache tree, until they are all
unfrozen on success or failure: just as before. They could be unfrozen
sooner, but cause no problem once no longer visible to find_get_entry(),
filemap_map_pages() and other speculative lookups.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261527570.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-without-freezing-new_page
+++ a/mm/khugepaged.c
@@ -1287,7 +1287,7 @@ static void retract_page_tables(struct a
* collapse_shmem - collapse small tmpfs/shmem pages into huge one.
*
* Basic scheme is simple, details are more complex:
- * - allocate and freeze a new huge page;
+ * - allocate and lock a new huge page;
* - scan page cache replacing old pages with the new one
* + swap in pages if necessary;
* + fill in gaps;
@@ -1295,11 +1295,11 @@ static void retract_page_tables(struct a
* - if replacing succeeds:
* + copy data over;
* + free old pages;
- * + unfreeze huge page;
+ * + unlock huge page;
* - if replacing failed;
* + put all pages back and unfreeze them;
* + restore gaps in the page cache;
- * + free huge page;
+ * + unlock and free huge page;
*/
static void collapse_shmem(struct mm_struct *mm,
struct address_space *mapping, pgoff_t start,
@@ -1333,13 +1333,11 @@ static void collapse_shmem(struct mm_str
__SetPageSwapBacked(new_page);
new_page->index = start;
new_page->mapping = mapping;
- BUG_ON(!page_ref_freeze(new_page, 1));
/*
- * At this point the new_page is 'frozen' (page_count() is zero),
- * locked and not up-to-date. It's safe to insert it into the page
- * cache, because nobody would be able to map it or use it in other
- * way until we unfreeze it.
+ * At this point the new_page is locked and not up-to-date.
+ * It's safe to insert it into the page cache, because nobody would
+ * be able to map it or use it in another way until we unlock it.
*/
/* This will be less messy when we use multi-index entries */
@@ -1491,9 +1489,8 @@ xa_unlocked:
index++;
}
- /* Everything is ready, let's unfreeze the new_page */
SetPageUptodate(new_page);
- page_ref_unfreeze(new_page, HPAGE_PMD_NR);
+ page_ref_add(new_page, HPAGE_PMD_NR - 1);
set_page_dirty(new_page);
mem_cgroup_commit_charge(new_page, memcg, false, true);
lru_cache_add_anon(new_page);
@@ -1541,8 +1538,6 @@ xa_unlocked:
VM_BUG_ON(nr_none);
xas_unlock_irq(&xas);
- /* Unfreeze new_page, caller would take care about freeing it */
- page_ref_unfreeze(new_page, 1);
mem_cgroup_cancel_charge(new_page, memcg, true);
new_page->mapping = NULL;
}
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: minor reorderings in collapse_shmem()
has been added to the -mm tree. Its filename is
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-minor-reorderings-in…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-minor-reorderings-in…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: minor reorderings in collapse_shmem()
Several cleanups in collapse_shmem(): most of which probably do not really
matter, beyond doing things in a more familiar and reassuring order.
Simplify the failure gotos in the main loop, and on success update stats
while interrupts still disabled from the last iteration.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261526400.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-minor-reorderings-in-collapse_shmem
+++ a/mm/khugepaged.c
@@ -1329,10 +1329,10 @@ static void collapse_shmem(struct mm_str
goto out;
}
+ __SetPageLocked(new_page);
+ __SetPageSwapBacked(new_page);
new_page->index = start;
new_page->mapping = mapping;
- __SetPageSwapBacked(new_page);
- __SetPageLocked(new_page);
BUG_ON(!page_ref_freeze(new_page, 1));
/*
@@ -1366,13 +1366,13 @@ static void collapse_shmem(struct mm_str
if (index == start) {
if (!xas_next_entry(&xas, end - 1)) {
result = SCAN_TRUNCATED;
- break;
+ goto xa_locked;
}
xas_set(&xas, index);
}
if (!shmem_charge(mapping->host, 1)) {
result = SCAN_FAIL;
- break;
+ goto xa_locked;
}
xas_store(&xas, new_page + (index % HPAGE_PMD_NR));
nr_none++;
@@ -1387,13 +1387,12 @@ static void collapse_shmem(struct mm_str
result = SCAN_FAIL;
goto xa_unlocked;
}
- xas_lock_irq(&xas);
- xas_set(&xas, index);
} else if (trylock_page(page)) {
get_page(page);
+ xas_unlock_irq(&xas);
} else {
result = SCAN_PAGE_LOCK;
- break;
+ goto xa_locked;
}
/*
@@ -1408,11 +1407,10 @@ static void collapse_shmem(struct mm_str
result = SCAN_TRUNCATED;
goto out_unlock;
}
- xas_unlock_irq(&xas);
if (isolate_lru_page(page)) {
result = SCAN_DEL_PAGE_LRU;
- goto out_isolate_failed;
+ goto out_unlock;
}
if (page_mapped(page))
@@ -1432,7 +1430,9 @@ static void collapse_shmem(struct mm_str
*/
if (!page_ref_freeze(page, 3)) {
result = SCAN_PAGE_COUNT;
- goto out_lru;
+ xas_unlock_irq(&xas);
+ putback_lru_page(page);
+ goto out_unlock;
}
/*
@@ -1444,24 +1444,26 @@ static void collapse_shmem(struct mm_str
/* Finally, replace with the new page. */
xas_store(&xas, new_page + (index % HPAGE_PMD_NR));
continue;
-out_lru:
- xas_unlock_irq(&xas);
- putback_lru_page(page);
-out_isolate_failed:
- unlock_page(page);
- put_page(page);
- goto xa_unlocked;
out_unlock:
unlock_page(page);
put_page(page);
- break;
+ goto xa_unlocked;
+ }
+
+ __inc_node_page_state(new_page, NR_SHMEM_THPS);
+ if (nr_none) {
+ struct zone *zone = page_zone(new_page);
+
+ __mod_node_page_state(zone->zone_pgdat, NR_FILE_PAGES, nr_none);
+ __mod_node_page_state(zone->zone_pgdat, NR_SHMEM, nr_none);
}
- xas_unlock_irq(&xas);
+xa_locked:
+ xas_unlock_irq(&xas);
xa_unlocked:
+
if (result == SCAN_SUCCEED) {
struct page *page, *tmp;
- struct zone *zone = page_zone(new_page);
/*
* Replacing old pages with new one has succeeded, now we
@@ -1476,11 +1478,11 @@ xa_unlocked:
copy_highpage(new_page + (page->index % HPAGE_PMD_NR),
page);
list_del(&page->lru);
- unlock_page(page);
- page_ref_unfreeze(page, 1);
page->mapping = NULL;
+ page_ref_unfreeze(page, 1);
ClearPageActive(page);
ClearPageUnevictable(page);
+ unlock_page(page);
put_page(page);
index++;
}
@@ -1489,28 +1491,17 @@ xa_unlocked:
index++;
}
- local_irq_disable();
- __inc_node_page_state(new_page, NR_SHMEM_THPS);
- if (nr_none) {
- __mod_node_page_state(zone->zone_pgdat, NR_FILE_PAGES, nr_none);
- __mod_node_page_state(zone->zone_pgdat, NR_SHMEM, nr_none);
- }
- local_irq_enable();
-
- /*
- * Remove pte page tables, so we can re-fault
- * the page as huge.
- */
- retract_page_tables(mapping, start);
-
/* Everything is ready, let's unfreeze the new_page */
- set_page_dirty(new_page);
SetPageUptodate(new_page);
page_ref_unfreeze(new_page, HPAGE_PMD_NR);
+ set_page_dirty(new_page);
mem_cgroup_commit_charge(new_page, memcg, false, true);
lru_cache_add_anon(new_page);
- unlock_page(new_page);
+ /*
+ * Remove pte page tables, so we can re-fault the page as huge.
+ */
+ retract_page_tables(mapping, start);
*hpage = NULL;
khugepaged_pages_collapsed++;
@@ -1543,8 +1534,8 @@ xa_unlocked:
xas_store(&xas, page);
xas_pause(&xas);
xas_unlock_irq(&xas);
- putback_lru_page(page);
unlock_page(page);
+ putback_lru_page(page);
xas_lock_irq(&xas);
}
VM_BUG_ON(nr_none);
@@ -1553,9 +1544,10 @@ xa_unlocked:
/* Unfreeze new_page, caller would take care about freeing it */
page_ref_unfreeze(new_page, 1);
mem_cgroup_cancel_charge(new_page, memcg, true);
- unlock_page(new_page);
new_page->mapping = NULL;
}
+
+ unlock_page(new_page);
out:
VM_BUG_ON(!list_empty(&pagelist));
/* TODO: tracepoints */
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: collapse_shmem() remember to clear holes
has been added to the -mm tree. Its filename is
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-collapse_shmem-remem…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-collapse_shmem-remem…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() remember to clear holes
Huge tmpfs testing reminds us that there is no __GFP_ZERO in the gfp flags
khugepaged uses to allocate a huge page - in all common cases it would
just be a waste of effort - so collapse_shmem() must remember to clear out
any holes that it instantiates.
The obvious place to do so, where they are put into the page cache tree,
is not a good choice: because interrupts are disabled there. Leave it
until further down, once success is assured, where the other pages are
copied (before setting PageUptodate).
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261525080.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-remember-to-clear-holes
+++ a/mm/khugepaged.c
@@ -1467,7 +1467,12 @@ xa_unlocked:
* Replacing old pages with new one has succeeded, now we
* need to copy the content and free the old pages.
*/
+ index = start;
list_for_each_entry_safe(page, tmp, &pagelist, lru) {
+ while (index < page->index) {
+ clear_highpage(new_page + (index % HPAGE_PMD_NR));
+ index++;
+ }
copy_highpage(new_page + (page->index % HPAGE_PMD_NR),
page);
list_del(&page->lru);
@@ -1477,6 +1482,11 @@ xa_unlocked:
ClearPageActive(page);
ClearPageUnevictable(page);
put_page(page);
+ index++;
+ }
+ while (index < end) {
+ clear_highpage(new_page + (index % HPAGE_PMD_NR));
+ index++;
}
local_irq_disable();
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: fix crashes due to misaccounted holes
has been added to the -mm tree. Its filename is
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-fix-crashes-due-to-m…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-fix-crashes-due-to-m…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: fix crashes due to misaccounted holes
Huge tmpfs testing on a shortish file mapped into a pmd-rounded extent hit
shmem_evict_inode()'s WARN_ON(inode->i_blocks) followed by clear_inode()'s
BUG_ON(inode->i_data.nrpages) when the file was later closed and unlinked.
khugepaged's collapse_shmem() was forgetting to update mapping->nrpages on
the rollback path, after it had added but then needs to undo some holes.
There is indeed an irritating asymmetry between shmem_charge(), whose
callers want it to increment nrpages after successfully accounting blocks,
and shmem_uncharge(), when __delete_from_page_cache() already decremented
nrpages itself: oh well, just add a comment on that to them both.
And shmem_recalc_inode() is supposed to be called when the accounting is
expected to be in balance (so it can deduce from imbalance that reclaim
discarded some pages): so change shmem_charge() to update nrpages earlier
(though it's rare for the difference to matter at all).
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261523450.2275@eggly.anvils
Fixes: 800d8c63b2e98 ("shmem: add huge pages support")
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-fix-crashes-due-to-misaccounted-holes
+++ a/mm/khugepaged.c
@@ -1506,9 +1506,12 @@ xa_unlocked:
khugepaged_pages_collapsed++;
} else {
struct page *page;
+
/* Something went wrong: roll back page cache changes */
- shmem_uncharge(mapping->host, nr_none);
xas_lock_irq(&xas);
+ mapping->nrpages -= nr_none;
+ shmem_uncharge(mapping->host, nr_none);
+
xas_set(&xas, start);
xas_for_each(&xas, page, end - 1) {
page = list_first_entry_or_null(&pagelist,
--- a/mm/shmem.c~mm-khugepaged-fix-crashes-due-to-misaccounted-holes
+++ a/mm/shmem.c
@@ -297,12 +297,14 @@ bool shmem_charge(struct inode *inode, l
if (!shmem_inode_acct_block(inode, pages))
return false;
+ /* nrpages adjustment first, then shmem_recalc_inode() when balanced */
+ inode->i_mapping->nrpages += pages;
+
spin_lock_irqsave(&info->lock, flags);
info->alloced += pages;
inode->i_blocks += pages * BLOCKS_PER_PAGE;
shmem_recalc_inode(inode);
spin_unlock_irqrestore(&info->lock, flags);
- inode->i_mapping->nrpages += pages;
return true;
}
@@ -312,6 +314,8 @@ void shmem_uncharge(struct inode *inode,
struct shmem_inode_info *info = SHMEM_I(inode);
unsigned long flags;
+ /* nrpages adjustment done by __delete_from_page_cache() or caller */
+
spin_lock_irqsave(&info->lock, flags);
info->alloced -= pages;
inode->i_blocks -= pages * BLOCKS_PER_PAGE;
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/khugepaged: collapse_shmem() stop if punched or truncated
has been added to the -mm tree. Its filename is
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-khugepaged-collapse_shmem-stop-…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-khugepaged-collapse_shmem-stop-…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/khugepaged: collapse_shmem() stop if punched or truncated
Huge tmpfs testing showed that although collapse_shmem() recognizes a
concurrently truncated or hole-punched page correctly, its handling of
holes was liable to refill an emptied extent. Add check to stop that.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261522040.2275@eggly.anvils
Fixes: f3f0e1d2150b2 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Reviewed-by: Matthew Wilcox <willy(a)infradead.org>
Cc: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/khugepaged.c~mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated
+++ a/mm/khugepaged.c
@@ -1359,6 +1359,17 @@ static void collapse_shmem(struct mm_str
VM_BUG_ON(index != xas.xa_index);
if (!page) {
+ /*
+ * Stop if extent has been truncated or hole-punched,
+ * and is now completely empty.
+ */
+ if (index == start) {
+ if (!xas_next_entry(&xas, end - 1)) {
+ result = SCAN_TRUNCATED;
+ break;
+ }
+ xas_set(&xas, index);
+ }
if (!shmem_charge(mapping->host, 1)) {
result = SCAN_FAIL;
break;
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
has been added to the -mm tree. Its filename is
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-huge_memory-fix-lockdep-complai…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-huge_memory-fix-lockdep-complai…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
Huge tmpfs testing, on 32-bit kernel with lockdep enabled, showed that
__split_huge_page() was using i_size_read() while holding the irq-safe
lru_lock and page tree lock, but the 32-bit i_size_read() uses an
irq-unsafe seqlock which should not be nested inside them.
Instead, read the i_size earlier in split_huge_page_to_list(), and pass
the end offset down to __split_huge_page(): all while holding head page
lock, which is enough to prevent truncation of that extent before the page
tree lock has been taken.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261520070.2275@eggly.anvils
Fixes: baa355fd33142 ("thp: file pages support for split_huge_page()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/huge_memory.c~mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read
+++ a/mm/huge_memory.c
@@ -2439,12 +2439,11 @@ static void __split_huge_page_tail(struc
}
static void __split_huge_page(struct page *page, struct list_head *list,
- unsigned long flags)
+ pgoff_t end, unsigned long flags)
{
struct page *head = compound_head(page);
struct zone *zone = page_zone(head);
struct lruvec *lruvec;
- pgoff_t end = -1;
int i;
lruvec = mem_cgroup_page_lruvec(head, zone->zone_pgdat);
@@ -2452,9 +2451,6 @@ static void __split_huge_page(struct pag
/* complete memcg works before add pages to LRU */
mem_cgroup_split_huge_fixup(head);
- if (!PageAnon(page))
- end = DIV_ROUND_UP(i_size_read(head->mapping->host), PAGE_SIZE);
-
for (i = HPAGE_PMD_NR - 1; i >= 1; i--) {
__split_huge_page_tail(head, i, lruvec, list);
/* Some pages can be beyond i_size: drop them from page cache */
@@ -2626,6 +2622,7 @@ int split_huge_page_to_list(struct page
int count, mapcount, extra_pins, ret;
bool mlocked;
unsigned long flags;
+ pgoff_t end;
VM_BUG_ON_PAGE(is_huge_zero_page(page), page);
VM_BUG_ON_PAGE(!PageLocked(page), page);
@@ -2648,6 +2645,7 @@ int split_huge_page_to_list(struct page
ret = -EBUSY;
goto out;
}
+ end = -1;
mapping = NULL;
anon_vma_lock_write(anon_vma);
} else {
@@ -2661,6 +2659,15 @@ int split_huge_page_to_list(struct page
anon_vma = NULL;
i_mmap_lock_read(mapping);
+
+ /*
+ *__split_huge_page() may need to trim off pages beyond EOF:
+ * but on 32-bit, i_size_read() takes an irq-unsafe seqlock,
+ * which cannot be nested inside the page tree lock. So note
+ * end now: i_size itself may be changed at any moment, but
+ * head page lock is good enough to serialize the trimming.
+ */
+ end = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE);
}
/*
@@ -2707,7 +2714,7 @@ int split_huge_page_to_list(struct page
if (mapping)
__dec_node_page_state(page, NR_SHMEM_THPS);
spin_unlock(&pgdata->split_queue_lock);
- __split_huge_page(page, list, flags);
+ __split_huge_page(page, list, end, flags);
if (PageSwapCache(head)) {
swp_entry_t entry = { .val = page_private(head) };
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/huge_memory: splitting set mapping+index before unfreeze
has been added to the -mm tree. Its filename is
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-huge_memory-splitting-set-mappi…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-huge_memory-splitting-set-mappi…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: splitting set mapping+index before unfreeze
Huge tmpfs stress testing has occasionally hit shmem_undo_range()'s
VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page).
Move the setting of mapping and index up before the page_ref_unfreeze() in
__split_huge_page_tail() to fix this: so that a page cache lookup cannot
get a reference while the tail's mapping and index are unstable.
In fact, might as well move them up before the smp_wmb(): I don't see an
actual need for that, but if I'm missing something, this way round is
safer than the other, and no less efficient.
You might argue that VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page) is
misplaced, and should be left until after the trylock_page(); but left as
is has not crashed since, and gives more stringent assurance.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261516380.2275@eggly.anvils
Fixes: e9b61f19858a5 ("thp: reintroduce split_huge_page()")
Requires: 605ca5ede764 ("mm/huge_memory.c: reorder operations in __split_huge_page_tail()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/huge_memory.c~mm-huge_memory-splitting-set-mappingindex-before-unfreeze
+++ a/mm/huge_memory.c
@@ -2402,6 +2402,12 @@ static void __split_huge_page_tail(struc
(1L << PG_unevictable) |
(1L << PG_dirty)));
+ /* ->mapping in first tail page is compound_mapcount */
+ VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
+ page_tail);
+ page_tail->mapping = head->mapping;
+ page_tail->index = head->index + tail;
+
/* Page flags must be visible before we make the page non-compound. */
smp_wmb();
@@ -2422,12 +2428,6 @@ static void __split_huge_page_tail(struc
if (page_is_idle(head))
set_page_idle(page_tail);
- /* ->mapping in first tail page is compound_mapcount */
- VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
- page_tail);
- page_tail->mapping = head->mapping;
-
- page_tail->index = head->index + tail;
page_cpupid_xchg_last(page_tail, page_cpupid_last(head));
/*
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
The patch titled
Subject: mm/huge_memory: rename freeze_page() to unmap_page()
has been added to the -mm tree. Its filename is
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/mm-huge_memory-rename-freeze_page-…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/mm-huge_memory-rename-freeze_page-…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Hugh Dickins <hughd(a)google.com>
Subject: mm/huge_memory: rename freeze_page() to unmap_page()
The term "freeze" is used in several ways in the kernel, and in mm it has
the particular meaning of forcing page refcount temporarily to 0.
freeze_page() is just too confusing a name for a function that unmaps a
page: rename it unmap_page(), and rename unfreeze_page() remap_page().
Went to change the mention of freeze_page() added later in mm/rmap.c, but
found it to be incorrect: ordinary page reclaim reaches there too; but the
substance of the comment still seems correct, so edit it down.
Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261514080.2275@eggly.anvils
Fixes: e9b61f19858a5 ("thp: reintroduce split_huge_page()")
Signed-off-by: Hugh Dickins <hughd(a)google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov(a)linux.intel.com>
Cc: Jerome Glisse <jglisse(a)redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov(a)yandex-team.ru>
Cc: Matthew Wilcox <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org> [4.8+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
--- a/mm/huge_memory.c~mm-huge_memory-rename-freeze_page-to-unmap_page
+++ a/mm/huge_memory.c
@@ -2350,7 +2350,7 @@ void vma_adjust_trans_huge(struct vm_are
}
}
-static void freeze_page(struct page *page)
+static void unmap_page(struct page *page)
{
enum ttu_flags ttu_flags = TTU_IGNORE_MLOCK | TTU_IGNORE_ACCESS |
TTU_RMAP_LOCKED | TTU_SPLIT_HUGE_PMD;
@@ -2365,7 +2365,7 @@ static void freeze_page(struct page *pag
VM_BUG_ON_PAGE(!unmap_success, page);
}
-static void unfreeze_page(struct page *page)
+static void remap_page(struct page *page)
{
int i;
if (PageTransHuge(page)) {
@@ -2483,7 +2483,7 @@ static void __split_huge_page(struct pag
spin_unlock_irqrestore(zone_lru_lock(page_zone(head)), flags);
- unfreeze_page(head);
+ remap_page(head);
for (i = 0; i < HPAGE_PMD_NR; i++) {
struct page *subpage = head + i;
@@ -2664,7 +2664,7 @@ int split_huge_page_to_list(struct page
}
/*
- * Racy check if we can split the page, before freeze_page() will
+ * Racy check if we can split the page, before unmap_page() will
* split PMDs
*/
if (!can_split_huge_page(head, &extra_pins)) {
@@ -2673,7 +2673,7 @@ int split_huge_page_to_list(struct page
}
mlocked = PageMlocked(page);
- freeze_page(head);
+ unmap_page(head);
VM_BUG_ON_PAGE(compound_mapcount(head), head);
/* Make sure the page is not on per-CPU pagevec as it takes pin */
@@ -2727,7 +2727,7 @@ int split_huge_page_to_list(struct page
fail: if (mapping)
xa_unlock(&mapping->i_pages);
spin_unlock_irqrestore(zone_lru_lock(page_zone(head)), flags);
- unfreeze_page(head);
+ remap_page(head);
ret = -EBUSY;
}
--- a/mm/rmap.c~mm-huge_memory-rename-freeze_page-to-unmap_page
+++ a/mm/rmap.c
@@ -1627,16 +1627,9 @@ static bool try_to_unmap_one(struct page
address + PAGE_SIZE);
} else {
/*
- * We should not need to notify here as we reach this
- * case only from freeze_page() itself only call from
- * split_huge_page_to_list() so everything below must
- * be true:
- * - page is not anonymous
- * - page is locked
- *
- * So as it is a locked file back page thus it can not
- * be remove from the page cache and replace by a new
- * page before mmu_notifier_invalidate_range_end so no
+ * This is a locked file-backed page, thus it cannot
+ * be removed from the page cache and replaced by a new
+ * page before mmu_notifier_invalidate_range_end, so no
* concurrent thread might update its page table to
* point at new page while a device still is using this
* page.
_
Patches currently in -mm which might be from hughd(a)google.com are
mm-huge_memory-rename-freeze_page-to-unmap_page.patch
mm-huge_memory-splitting-set-mappingindex-before-unfreeze.patch
mm-huge_memory-fix-lockdep-complaint-on-32-bit-i_size_read.patch
mm-khugepaged-collapse_shmem-stop-if-punched-or-truncated.patch
mm-khugepaged-fix-crashes-due-to-misaccounted-holes.patch
mm-khugepaged-collapse_shmem-remember-to-clear-holes.patch
mm-khugepaged-minor-reorderings-in-collapse_shmem.patch
mm-khugepaged-collapse_shmem-without-freezing-new_page.patch
mm-khugepaged-collapse_shmem-do-not-crash-on-compound.patch
mm-khugepaged-fix-the-xas_create_range-error-path.patch
mm-put_and_wait_on_page_locked-while-page-is-migrated.patch
From: Dexuan Cui <decui(a)microsoft.com>
We can concurrently try to open the same sub-channel from 2 paths:
path #1: vmbus_onoffer() -> vmbus_process_offer() -> handle_sc_creation().
path #2: storvsc_probe() -> storvsc_connect_to_vsp() ->
-> storvsc_channel_init() -> handle_multichannel_storage() ->
-> vmbus_are_subchannels_present() -> handle_sc_creation().
They conflict with each other, but it was not an issue before the recent
commit ae6935ed7d42 ("vmbus: split ring buffer allocation from open"),
because at the beginning of vmbus_open() we checked newchannel->state so
only one path could succeed, and the other would return with -EINVAL.
After ae6935ed7d42, the failing path frees the channel's ringbuffer by
vmbus_free_ring(), and this causes a panic later.
Commit ae6935ed7d42 itself is good, and it just reveals the longstanding
race. We can resolve the issue by removing path #2, i.e. removing the
second vmbus_are_subchannels_present() in handle_multichannel_storage().
BTW, the comment "Check to see if sub-channels have already been created"
in handle_multichannel_storage() is incorrect: when we unload the driver,
we first close the sub-channel(s) and then close the primary channel, next
the host sends rescind-offer message(s) so primary->sc_list will become
empty. This means the first vmbus_are_subchannels_present() in
handle_multichannel_storage() is never useful.
Fixes: ae6935ed7d42 ("vmbus: split ring buffer allocation from open")
Cc: stable(a)vger.kernel.org
Cc: Long Li <longli(a)microsoft.com>
Cc: Stephen Hemminger <sthemmin(a)microsoft.com>
Cc: K. Y. Srinivasan <kys(a)microsoft.com>
Cc: Haiyang Zhang <haiyangz(a)microsoft.com>
Signed-off-by: Dexuan Cui <decui(a)microsoft.com>
Signed-off-by: K. Y. Srinivasan <kys(a)microsoft.com>
---
drivers/scsi/storvsc_drv.c | 61 +++++++++++++++++++-------------------
1 file changed, 30 insertions(+), 31 deletions(-)
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index f03dc03a42c3..8f88348ebe42 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -446,7 +446,6 @@ struct storvsc_device {
bool destroy;
bool drain_notify;
- bool open_sub_channel;
atomic_t num_outstanding_req;
struct Scsi_Host *host;
@@ -636,33 +635,38 @@ static inline struct storvsc_device *get_in_stor_device(
static void handle_sc_creation(struct vmbus_channel *new_sc)
{
struct hv_device *device = new_sc->primary_channel->device_obj;
+ struct device *dev = &device->device;
struct storvsc_device *stor_device;
struct vmstorage_channel_properties props;
+ int ret;
stor_device = get_out_stor_device(device);
if (!stor_device)
return;
- if (stor_device->open_sub_channel == false)
- return;
-
memset(&props, 0, sizeof(struct vmstorage_channel_properties));
- vmbus_open(new_sc,
- storvsc_ringbuffer_size,
- storvsc_ringbuffer_size,
- (void *)&props,
- sizeof(struct vmstorage_channel_properties),
- storvsc_on_channel_callback, new_sc);
+ ret = vmbus_open(new_sc,
+ storvsc_ringbuffer_size,
+ storvsc_ringbuffer_size,
+ (void *)&props,
+ sizeof(struct vmstorage_channel_properties),
+ storvsc_on_channel_callback, new_sc);
- if (new_sc->state == CHANNEL_OPENED_STATE) {
- stor_device->stor_chns[new_sc->target_cpu] = new_sc;
- cpumask_set_cpu(new_sc->target_cpu, &stor_device->alloced_cpus);
+ /* In case vmbus_open() fails, we don't use the sub-channel. */
+ if (ret != 0) {
+ dev_err(dev, "Failed to open sub-channel: err=%d\n", ret);
+ return;
}
+
+ /* Add the sub-channel to the array of available channels. */
+ stor_device->stor_chns[new_sc->target_cpu] = new_sc;
+ cpumask_set_cpu(new_sc->target_cpu, &stor_device->alloced_cpus);
}
static void handle_multichannel_storage(struct hv_device *device, int max_chns)
{
+ struct device *dev = &device->device;
struct storvsc_device *stor_device;
int num_cpus = num_online_cpus();
int num_sc;
@@ -679,21 +683,11 @@ static void handle_multichannel_storage(struct hv_device *device, int max_chns)
request = &stor_device->init_request;
vstor_packet = &request->vstor_packet;
- stor_device->open_sub_channel = true;
/*
* Establish a handler for dealing with subchannels.
*/
vmbus_set_sc_create_callback(device->channel, handle_sc_creation);
- /*
- * Check to see if sub-channels have already been created. This
- * can happen when this driver is re-loaded after unloading.
- */
-
- if (vmbus_are_subchannels_present(device->channel))
- return;
-
- stor_device->open_sub_channel = false;
/*
* Request the host to create sub-channels.
*/
@@ -710,23 +704,29 @@ static void handle_multichannel_storage(struct hv_device *device, int max_chns)
VM_PKT_DATA_INBAND,
VMBUS_DATA_PACKET_FLAG_COMPLETION_REQUESTED);
- if (ret != 0)
+ if (ret != 0) {
+ dev_err(dev, "Failed to create sub-channel: err=%d\n", ret);
return;
+ }
t = wait_for_completion_timeout(&request->wait_event, 10*HZ);
- if (t == 0)
+ if (t == 0) {
+ dev_err(dev, "Failed to create sub-channel: timed out\n");
return;
+ }
if (vstor_packet->operation != VSTOR_OPERATION_COMPLETE_IO ||
- vstor_packet->status != 0)
+ vstor_packet->status != 0) {
+ dev_err(dev, "Failed to create sub-channel: op=%d, sts=%d\n",
+ vstor_packet->operation, vstor_packet->status);
return;
+ }
/*
- * Now that we created the sub-channels, invoke the check; this
- * may trigger the callback.
+ * We need to do nothing here, because vmbus_process_offer()
+ * invokes channel->sc_creation_callback, which will open and use
+ * the sub-channel(s).
*/
- stor_device->open_sub_channel = true;
- vmbus_are_subchannels_present(device->channel);
}
static void cache_wwn(struct storvsc_device *stor_device,
@@ -1794,7 +1794,6 @@ static int storvsc_probe(struct hv_device *device,
}
stor_device->destroy = false;
- stor_device->open_sub_channel = false;
init_waitqueue_head(&stor_device->waiting_to_drain);
stor_device->device = device;
stor_device->host = host;
--
2.19.1
The patch titled
Subject: zram: writeback throttle
has been added to the -mm tree. Its filename is
zram-writeback-throttle.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-writeback-throttle.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-writeback-throttle.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: writeback throttle
On small memory systems there are lots of write IOs so if we use a flash
device as swap there would be serious flash wearout. To overcome this
problem, system developers need to design a write limitation strategy to
guarantee flash health for the entire product life.
This patch creates a new knob "writeback_limit" on zram. With that, if
the current writeback IO count (/sys/block/zramX/io_stat) exceeds the
limitation, zram stops further writeback until the admin can reset the
limit.
Link: http://lkml.kernel.org/r/20181127055429.251614-8-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 9 +++
Documentation/blockdev/zram.txt | 2
drivers/block/zram/zram_drv.c | 47 ++++++++++++++++++-
drivers/block/zram/zram_drv.h | 2
4 files changed, 59 insertions(+), 1 deletion(-)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-writeback-throttle
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -121,3 +121,12 @@ Description:
The bd_stat file is read-only and represents backing device's
statistics (bd_count, bd_reads, bd_writes) in a format
similar to block layer statistics file format.
+
+What: /sys/block/zram<id>/writeback_limit
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ The writeback_limit file is read-write and specifies the maximum
+ amount of writeback ZRAM can do. The limit could be changed
+ in run time and "0" means disable the limit.
+ No limit is the initial state.
--- a/Documentation/blockdev/zram.txt~zram-writeback-throttle
+++ a/Documentation/blockdev/zram.txt
@@ -164,6 +164,8 @@ reset WO trigger device r
mem_used_max WO reset the `mem_used_max' counter (see later)
mem_limit WO specifies the maximum amount of memory ZRAM can use
to store the compressed data
+writeback_limit WO specifies the maximum amount of write IO zram can
+ write out to backing device as 4KB unit
max_comp_streams RW the number of possible concurrent compress operations
comp_algorithm RW show and change the compression algorithm
compact WO trigger memory compaction
--- a/drivers/block/zram/zram_drv.c~zram-writeback-throttle
+++ a/drivers/block/zram/zram_drv.c
@@ -330,6 +330,40 @@ next:
}
#ifdef CONFIG_ZRAM_WRITEBACK
+
+static ssize_t writeback_limit_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t len)
+{
+ struct zram *zram = dev_to_zram(dev);
+ u64 val;
+ ssize_t ret = -EINVAL;
+
+ if (kstrtoull(buf, 10, &val))
+ return ret;
+
+ down_read(&zram->init_lock);
+ atomic64_set(&zram->stats.bd_wb_limit, val);
+ if (val == 0 || val > atomic64_read(&zram->stats.bd_writes))
+ zram->stop_writeback = false;
+ up_read(&zram->init_lock);
+ ret = len;
+
+ return ret;
+}
+
+static ssize_t writeback_limit_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ u64 val;
+ struct zram *zram = dev_to_zram(dev);
+
+ down_read(&zram->init_lock);
+ val = atomic64_read(&zram->stats.bd_wb_limit);
+ up_read(&zram->init_lock);
+
+ return scnprintf(buf, PAGE_SIZE, "%llu\n", val);
+}
+
static void reset_bdev(struct zram *zram)
{
struct block_device *bdev;
@@ -571,6 +605,7 @@ static ssize_t writeback_store(struct de
char mode_buf[8];
unsigned long mode = -1UL;
unsigned long blk_idx = 0;
+ u64 wb_count, wb_limit;
sz = strscpy(mode_buf, buf, sizeof(mode_buf));
if (sz <= 0)
@@ -612,6 +647,11 @@ static ssize_t writeback_store(struct de
bvec.bv_len = PAGE_SIZE;
bvec.bv_offset = 0;
+ if (zram->stop_writeback) {
+ ret = -EIO;
+ break;
+ }
+
if (!blk_idx) {
blk_idx = alloc_block_bdev(zram);
if (!blk_idx) {
@@ -670,7 +710,7 @@ static ssize_t writeback_store(struct de
continue;
}
- atomic64_inc(&zram->stats.bd_writes);
+ wb_count = atomic64_inc_return(&zram->stats.bd_writes);
/*
* We released zram_slot_lock so need to check if the slot was
* changed. If there is freeing for the slot, we can catch it
@@ -694,6 +734,9 @@ static ssize_t writeback_store(struct de
zram_set_element(zram, index, blk_idx);
blk_idx = 0;
atomic64_inc(&zram->stats.pages_stored);
+ wb_limit = atomic64_read(&zram->stats.bd_wb_limit);
+ if (wb_limit != 0 && wb_count >= wb_limit)
+ zram->stop_writeback = true;
next:
zram_slot_unlock(zram, index);
}
@@ -1767,6 +1810,7 @@ static DEVICE_ATTR_RW(comp_algorithm);
#ifdef CONFIG_ZRAM_WRITEBACK
static DEVICE_ATTR_RW(backing_dev);
static DEVICE_ATTR_WO(writeback);
+static DEVICE_ATTR_RW(writeback_limit);
#endif
static struct attribute *zram_disk_attrs[] = {
@@ -1782,6 +1826,7 @@ static struct attribute *zram_disk_attrs
#ifdef CONFIG_ZRAM_WRITEBACK
&dev_attr_backing_dev.attr,
&dev_attr_writeback.attr,
+ &dev_attr_writeback_limit.attr,
#endif
&dev_attr_io_stat.attr,
&dev_attr_mm_stat.attr,
--- a/drivers/block/zram/zram_drv.h~zram-writeback-throttle
+++ a/drivers/block/zram/zram_drv.h
@@ -86,6 +86,7 @@ struct zram_stats {
atomic64_t bd_count; /* no. of pages in backing device */
atomic64_t bd_reads; /* no. of reads from backing device */
atomic64_t bd_writes; /* no. of writes from backing device */
+ atomic64_t bd_wb_limit; /* writeback limit of backing device */
#endif
};
@@ -113,6 +114,7 @@ struct zram {
*/
bool claim; /* Protected by bdev->bd_mutex */
struct file *backing_dev;
+ bool stop_writeback;
#ifdef CONFIG_ZRAM_WRITEBACK
struct block_device *bdev;
unsigned int old_block_size;
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: add bd_stat statistics
has been added to the -mm tree. Its filename is
zram-add-bd_stat-statistics.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-add-bd_stat-statistics.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-add-bd_stat-statistics.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: add bd_stat statistics
bd_stat represents things that happened in the backing device. Currently
it supports bd_counts, bd_reads and bd_writes which are helpful to
understand wearout of flash and memory saving.
Link: http://lkml.kernel.org/r/20181127055429.251614-7-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 8 +++++
Documentation/blockdev/zram.txt | 11 +++++++
drivers/block/zram/zram_drv.c | 29 +++++++++++++++++++
drivers/block/zram/zram_drv.h | 5 +++
4 files changed, 53 insertions(+)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-add-bd_stat-statistics
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -113,3 +113,11 @@ Contact: Minchan Kim <minchan(a)kernel.org
Description:
The writeback file is write-only and trigger idle and/or
huge page writeback to backing device.
+
+What: /sys/block/zram<id>/bd_stat
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ The bd_stat file is read-only and represents backing device's
+ statistics (bd_count, bd_reads, bd_writes) in a format
+ similar to block layer statistics file format.
--- a/Documentation/blockdev/zram.txt~zram-add-bd_stat-statistics
+++ a/Documentation/blockdev/zram.txt
@@ -221,6 +221,17 @@ line of text and contains the following
pages_compacted the number of pages freed during compaction
huge_pages the number of incompressible pages
+File /sys/block/zram<id>/bd_stat
+
+The stat file represents device's backing device statistics. It consists of
+a single line of text and contains the following stats separated by whitespace:
+ bd_count size of data written in backing device.
+ Unit: 4K bytes
+ bd_reads the number of reads from backing device
+ Unit: 4K bytes
+ bd_writes the number of writes to backing device
+ Unit: 4K bytes
+
9) Deactivate:
swapoff /dev/zram0
umount /dev/zram1
--- a/drivers/block/zram/zram_drv.c~zram-add-bd_stat-statistics
+++ a/drivers/block/zram/zram_drv.c
@@ -502,6 +502,7 @@ retry:
if (test_and_set_bit(blk_idx, zram->bitmap))
goto retry;
+ atomic64_inc(&zram->stats.bd_count);
return blk_idx;
}
@@ -511,6 +512,7 @@ static void free_block_bdev(struct zram
was_set = test_and_clear_bit(blk_idx, zram->bitmap);
WARN_ON_ONCE(!was_set);
+ atomic64_dec(&zram->stats.bd_count);
}
static void zram_page_end_io(struct bio *bio)
@@ -668,6 +670,7 @@ static ssize_t writeback_store(struct de
continue;
}
+ atomic64_inc(&zram->stats.bd_writes);
/*
* We released zram_slot_lock so need to check if the slot was
* changed. If there is freeing for the slot, we can catch it
@@ -757,6 +760,7 @@ static int read_from_bdev_sync(struct zr
static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
unsigned long entry, struct bio *parent, bool sync)
{
+ atomic64_inc(&zram->stats.bd_reads);
if (sync)
return read_from_bdev_sync(zram, bvec, entry, parent);
else
@@ -1013,6 +1017,25 @@ static ssize_t mm_stat_show(struct devic
return ret;
}
+#ifdef CONFIG_ZRAM_WRITEBACK
+static ssize_t bd_stat_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct zram *zram = dev_to_zram(dev);
+ ssize_t ret;
+
+ down_read(&zram->init_lock);
+ ret = scnprintf(buf, PAGE_SIZE,
+ "%8llu %8llu %8llu\n",
+ (u64)atomic64_read(&zram->stats.bd_count),
+ (u64)atomic64_read(&zram->stats.bd_reads),
+ (u64)atomic64_read(&zram->stats.bd_writes));
+ up_read(&zram->init_lock);
+
+ return ret;
+}
+#endif
+
static ssize_t debug_stat_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -1033,6 +1056,9 @@ static ssize_t debug_stat_show(struct de
static DEVICE_ATTR_RO(io_stat);
static DEVICE_ATTR_RO(mm_stat);
+#ifdef CONFIG_ZRAM_WRITEBACK
+static DEVICE_ATTR_RO(bd_stat);
+#endif
static DEVICE_ATTR_RO(debug_stat);
static void zram_meta_free(struct zram *zram, u64 disksize)
@@ -1759,6 +1785,9 @@ static struct attribute *zram_disk_attrs
#endif
&dev_attr_io_stat.attr,
&dev_attr_mm_stat.attr,
+#ifdef CONFIG_ZRAM_WRITEBACK
+ &dev_attr_bd_stat.attr,
+#endif
&dev_attr_debug_stat.attr,
NULL,
};
--- a/drivers/block/zram/zram_drv.h~zram-add-bd_stat-statistics
+++ a/drivers/block/zram/zram_drv.h
@@ -82,6 +82,11 @@ struct zram_stats {
atomic_long_t max_used_pages; /* no. of maximum pages stored */
atomic64_t writestall; /* no. of write slow paths */
atomic64_t miss_free; /* no. of missed free */
+#ifdef CONFIG_ZRAM_WRITEBACK
+ atomic64_t bd_count; /* no. of pages in backing device */
+ atomic64_t bd_reads; /* no. of reads from backing device */
+ atomic64_t bd_writes; /* no. of writes from backing device */
+#endif
};
struct zram {
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: support idle/huge page writeback
has been added to the -mm tree. Its filename is
zram-support-idle-huge-page-writeback.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-support-idle-huge-page-writeb…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-support-idle-huge-page-writeb…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: support idle/huge page writeback
Add a new feature "zram idle/huge page writeback". In the zram-swap use
case, zram usually has many idle/huge swap pages. It's pointless to keep
them in memory (ie, zram).
To solve this problem, this feature introduces idle/huge page writeback to
the backing device so the goal is to save more memory space on embedded
systems.
Normal sequence to use idle/huge page writeback feature is as follows,
while (1) {
# mark allocated zram slot to idle
echo all > /sys/block/zram0/idle
# leave system working for several hours
# Unless there is no access for some blocks on zram,
# they are still IDLE marked pages.
echo "idle" > /sys/block/zram0/writeback
or/and
echo "huge" > /sys/block/zram0/writeback
# write the IDLE or/and huge marked slot into backing device
# and free the memory.
}
By per discussion:
https://lore.kernel.org/lkml/20181122065926.GG3441@jagdpanzerIV/T/#u,
This patch removes direct incommpressibe page writeback feature
(d2afd25114f4 ("zram: write incompressible pages to backing device")) so
we could regard it as regression because incompressible pages don't go to
backing storage automatically. Instead, users should do this via "echo
huge" > /sys/block/zram/writeback" manually.
If we hear some regression, we could restore the function.
Link: http://lkml.kernel.org/r/20181127055429.251614-6-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Reviewed-by: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 7
Documentation/blockdev/zram.txt | 28 +-
drivers/block/zram/Kconfig | 5
drivers/block/zram/zram_drv.c | 247 +++++++++++++------
drivers/block/zram/zram_drv.h | 1
5 files changed, 209 insertions(+), 79 deletions(-)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-support-idle-huge-page-writeback
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -106,3 +106,10 @@ Description:
idle file is write-only and mark zram slot as idle.
If system has mounted debugfs, user can see which slots
are idle via /sys/kernel/debug/zram/zram<id>/block_state
+
+What: /sys/block/zram<id>/writeback
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ The writeback file is write-only and trigger idle and/or
+ huge page writeback to backing device.
--- a/Documentation/blockdev/zram.txt~zram-support-idle-huge-page-writeback
+++ a/Documentation/blockdev/zram.txt
@@ -238,11 +238,31 @@ line of text and contains the following
= writeback
-With incompressible pages, there is no memory saving with zram.
-Instead, with CONFIG_ZRAM_WRITEBACK, zram can write incompressible page
+With CONFIG_ZRAM_WRITEBACK, zram can write idle/incompressible page
to backing storage rather than keeping it in memory.
-User should set up backing device via /sys/block/zramX/backing_dev
-before disksize setting.
+To use the feature, admin should set up backing device via
+
+ "echo /dev/sda5 > /sys/block/zramX/backing_dev"
+
+before disksize setting. It supports only partition at this moment.
+If admin want to use incompressible page writeback, they could do via
+
+ "echo huge > /sys/block/zramX/write"
+
+To use idle page writeback, first, user need to declare zram pages
+as idle.
+
+ "echo all > /sys/block/zramX/idle"
+
+From now on, any pages on zram are idle pages. The idle mark
+will be removed until someone request access of the block.
+IOW, unless there is access request, those pages are still idle pages.
+
+Admin can request writeback of those idle pages at right timing via
+
+ "echo idle > /sys/block/zramX/writeback"
+
+With the command, zram writeback idle pages from memory to the storage.
= memory tracking
--- a/drivers/block/zram/Kconfig~zram-support-idle-huge-page-writeback
+++ a/drivers/block/zram/Kconfig
@@ -15,7 +15,7 @@ config ZRAM
See Documentation/blockdev/zram.txt for more information.
config ZRAM_WRITEBACK
- bool "Write back incompressible page to backing device"
+ bool "Write back incompressible or idle page to backing device"
depends on ZRAM
help
With incompressible page, there is no memory saving to keep it
@@ -23,6 +23,9 @@ config ZRAM_WRITEBACK
For this feature, admin should set up backing device via
/sys/block/zramX/backing_dev.
+ With /sys/block/zramX/{idle,writeback}, application could ask
+ idle page's writeback to the backing device to save in memory.
+
See Documentation/blockdev/zram.txt for more information.
config ZRAM_MEMORY_TRACKING
--- a/drivers/block/zram/zram_drv.c~zram-support-idle-huge-page-writeback
+++ a/drivers/block/zram/zram_drv.c
@@ -52,6 +52,9 @@ static unsigned int num_devices = 1;
static size_t huge_class_size;
static void zram_free_page(struct zram *zram, size_t index);
+static int zram_bvec_read(struct zram *zram, struct bio_vec *bvec,
+ u32 index, int offset, struct bio *bio);
+
static int zram_slot_trylock(struct zram *zram, u32 index)
{
@@ -73,13 +76,6 @@ static inline bool init_done(struct zram
return zram->disksize;
}
-static inline bool zram_allocated(struct zram *zram, u32 index)
-{
-
- return (zram->table[index].flags >> (ZRAM_FLAG_SHIFT + 1)) ||
- zram->table[index].handle;
-}
-
static inline struct zram *dev_to_zram(struct device *dev)
{
return (struct zram *)dev_to_disk(dev)->private_data;
@@ -138,6 +134,13 @@ static void zram_set_obj_size(struct zra
zram->table[index].flags = (flags << ZRAM_FLAG_SHIFT) | size;
}
+static inline bool zram_allocated(struct zram *zram, u32 index)
+{
+ return zram_get_obj_size(zram, index) ||
+ zram_test_flag(zram, index, ZRAM_SAME) ||
+ zram_test_flag(zram, index, ZRAM_WB);
+}
+
#if PAGE_SIZE != 4096
static inline bool is_partial_io(struct bio_vec *bvec)
{
@@ -308,10 +311,14 @@ static ssize_t idle_store(struct device
}
for (index = 0; index < nr_pages; index++) {
+ /*
+ * Do not mark ZRAM_UNDER_WB slot as ZRAM_IDLE to close race.
+ * See the comment in writeback_store.
+ */
zram_slot_lock(zram, index);
- if (!zram_allocated(zram, index))
+ if (!zram_allocated(zram, index) ||
+ zram_test_flag(zram, index, ZRAM_UNDER_WB))
goto next;
-
zram_set_flag(zram, index, ZRAM_IDLE);
next:
zram_slot_unlock(zram, index);
@@ -546,6 +553,158 @@ static int read_from_bdev_async(struct z
return 1;
}
+#define HUGE_WRITEBACK 0x1
+#define IDLE_WRITEBACK 0x2
+
+static ssize_t writeback_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t len)
+{
+ struct zram *zram = dev_to_zram(dev);
+ unsigned long nr_pages = zram->disksize >> PAGE_SHIFT;
+ unsigned long index;
+ struct bio bio;
+ struct bio_vec bio_vec;
+ struct page *page;
+ ssize_t ret, sz;
+ char mode_buf[8];
+ unsigned long mode = -1UL;
+ unsigned long blk_idx = 0;
+
+ sz = strscpy(mode_buf, buf, sizeof(mode_buf));
+ if (sz <= 0)
+ return -EINVAL;
+
+ /* ignore trailing newline */
+ if (mode_buf[sz - 1] == '\n')
+ mode_buf[sz - 1] = 0x00;
+
+ if (!strcmp(mode_buf, "idle"))
+ mode = IDLE_WRITEBACK;
+ else if (!strcmp(mode_buf, "huge"))
+ mode = HUGE_WRITEBACK;
+
+ if (mode == -1UL)
+ return -EINVAL;
+
+ down_read(&zram->init_lock);
+ if (!init_done(zram)) {
+ ret = -EINVAL;
+ goto release_init_lock;
+ }
+
+ if (!zram->backing_dev) {
+ ret = -ENODEV;
+ goto release_init_lock;
+ }
+
+ page = alloc_page(GFP_KERNEL);
+ if (!page) {
+ ret = -ENOMEM;
+ goto release_init_lock;
+ }
+
+ for (index = 0; index < nr_pages; index++) {
+ struct bio_vec bvec;
+
+ bvec.bv_page = page;
+ bvec.bv_len = PAGE_SIZE;
+ bvec.bv_offset = 0;
+
+ if (!blk_idx) {
+ blk_idx = alloc_block_bdev(zram);
+ if (!blk_idx) {
+ ret = -ENOSPC;
+ break;
+ }
+ }
+
+ zram_slot_lock(zram, index);
+ if (!zram_allocated(zram, index))
+ goto next;
+
+ if (zram_test_flag(zram, index, ZRAM_WB) ||
+ zram_test_flag(zram, index, ZRAM_SAME) ||
+ zram_test_flag(zram, index, ZRAM_UNDER_WB))
+ goto next;
+
+ if ((mode & IDLE_WRITEBACK &&
+ !zram_test_flag(zram, index, ZRAM_IDLE)) &&
+ (mode & HUGE_WRITEBACK &&
+ !zram_test_flag(zram, index, ZRAM_HUGE)))
+ goto next;
+ /*
+ * Clearing ZRAM_UNDER_WB is duty of caller.
+ * IOW, zram_free_page never clear it.
+ */
+ zram_set_flag(zram, index, ZRAM_UNDER_WB);
+ /* Need for hugepage writeback racing */
+ zram_set_flag(zram, index, ZRAM_IDLE);
+ zram_slot_unlock(zram, index);
+ if (zram_bvec_read(zram, &bvec, index, 0, NULL)) {
+ zram_slot_lock(zram, index);
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+ zram_slot_unlock(zram, index);
+ continue;
+ }
+
+ bio_init(&bio, &bio_vec, 1);
+ bio_set_dev(&bio, zram->bdev);
+ bio.bi_iter.bi_sector = blk_idx * (PAGE_SIZE >> 9);
+ bio.bi_opf = REQ_OP_WRITE | REQ_SYNC;
+
+ bio_add_page(&bio, bvec.bv_page, bvec.bv_len,
+ bvec.bv_offset);
+ /*
+ * XXX: A single page IO would be inefficient for write
+ * but it would be not bad as starter.
+ */
+ ret = submit_bio_wait(&bio);
+ if (ret) {
+ zram_slot_lock(zram, index);
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+ zram_slot_unlock(zram, index);
+ continue;
+ }
+
+ /*
+ * We released zram_slot_lock so need to check if the slot was
+ * changed. If there is freeing for the slot, we can catch it
+ * easily by zram_allocated.
+ * A subtle case is the slot is freed/reallocated/marked as
+ * ZRAM_IDLE again. To close the race, idle_store doesn't
+ * mark ZRAM_IDLE once it found the slot was ZRAM_UNDER_WB.
+ * Thus, we could close the race by checking ZRAM_IDLE bit.
+ */
+ zram_slot_lock(zram, index);
+ if (!zram_allocated(zram, index) ||
+ !zram_test_flag(zram, index, ZRAM_IDLE)) {
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+ goto next;
+ }
+
+ zram_free_page(zram, index);
+ zram_clear_flag(zram, index, ZRAM_UNDER_WB);
+ zram_set_flag(zram, index, ZRAM_WB);
+ zram_set_element(zram, index, blk_idx);
+ blk_idx = 0;
+ atomic64_inc(&zram->stats.pages_stored);
+next:
+ zram_slot_unlock(zram, index);
+ }
+
+ if (blk_idx)
+ free_block_bdev(zram, blk_idx);
+ ret = len;
+ __free_page(page);
+release_init_lock:
+ up_read(&zram->init_lock);
+
+ return ret;
+}
+
struct zram_work {
struct work_struct work;
struct zram *zram;
@@ -603,57 +762,8 @@ static int read_from_bdev(struct zram *z
else
return read_from_bdev_async(zram, bvec, entry, parent);
}
-
-static int write_to_bdev(struct zram *zram, struct bio_vec *bvec,
- u32 index, struct bio *parent,
- unsigned long *pentry)
-{
- struct bio *bio;
- unsigned long entry;
-
- bio = bio_alloc(GFP_ATOMIC, 1);
- if (!bio)
- return -ENOMEM;
-
- entry = alloc_block_bdev(zram);
- if (!entry) {
- bio_put(bio);
- return -ENOSPC;
- }
-
- bio->bi_iter.bi_sector = entry * (PAGE_SIZE >> 9);
- bio_set_dev(bio, zram->bdev);
- if (!bio_add_page(bio, bvec->bv_page, bvec->bv_len,
- bvec->bv_offset)) {
- bio_put(bio);
- free_block_bdev(zram, entry);
- return -EIO;
- }
-
- if (!parent) {
- bio->bi_opf = REQ_OP_WRITE | REQ_SYNC;
- bio->bi_end_io = zram_page_end_io;
- } else {
- bio->bi_opf = parent->bi_opf;
- bio_chain(bio, parent);
- }
-
- submit_bio(bio);
- *pentry = entry;
-
- return 0;
-}
-
#else
static inline void reset_bdev(struct zram *zram) {};
-static int write_to_bdev(struct zram *zram, struct bio_vec *bvec,
- u32 index, struct bio *parent,
- unsigned long *pentry)
-
-{
- return -EIO;
-}
-
static int read_from_bdev(struct zram *zram, struct bio_vec *bvec,
unsigned long entry, struct bio *parent, bool sync)
{
@@ -1006,7 +1116,8 @@ out:
atomic64_dec(&zram->stats.pages_stored);
zram_set_handle(zram, index, 0);
zram_set_obj_size(zram, index, 0);
- WARN_ON_ONCE(zram->table[index].flags & ~(1UL << ZRAM_LOCK));
+ WARN_ON_ONCE(zram->table[index].flags &
+ ~(1UL << ZRAM_LOCK | 1UL << ZRAM_UNDER_WB));
}
static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index,
@@ -1115,7 +1226,6 @@ static int __zram_bvec_write(struct zram
struct page *page = bvec->bv_page;
unsigned long element = 0;
enum zram_pageflags flags = 0;
- bool allow_wb = true;
mem = kmap_atomic(page);
if (page_same_filled(mem, &element)) {
@@ -1140,21 +1250,8 @@ compress_again:
return ret;
}
- if (unlikely(comp_len >= huge_class_size)) {
+ if (comp_len >= huge_class_size)
comp_len = PAGE_SIZE;
- if (zram->backing_dev && allow_wb) {
- zcomp_stream_put(zram->comp);
- ret = write_to_bdev(zram, bvec, index, bio, &element);
- if (!ret) {
- flags = ZRAM_WB;
- ret = 1;
- goto out;
- }
- allow_wb = false;
- goto compress_again;
- }
- }
-
/*
* handle allocation has 2 paths:
* a) fast path is executed with preemption disabled (for
@@ -1643,6 +1740,7 @@ static DEVICE_ATTR_RW(max_comp_streams);
static DEVICE_ATTR_RW(comp_algorithm);
#ifdef CONFIG_ZRAM_WRITEBACK
static DEVICE_ATTR_RW(backing_dev);
+static DEVICE_ATTR_WO(writeback);
#endif
static struct attribute *zram_disk_attrs[] = {
@@ -1657,6 +1755,7 @@ static struct attribute *zram_disk_attrs
&dev_attr_comp_algorithm.attr,
#ifdef CONFIG_ZRAM_WRITEBACK
&dev_attr_backing_dev.attr,
+ &dev_attr_writeback.attr,
#endif
&dev_attr_io_stat.attr,
&dev_attr_mm_stat.attr,
--- a/drivers/block/zram/zram_drv.h~zram-support-idle-huge-page-writeback
+++ a/drivers/block/zram/zram_drv.h
@@ -47,6 +47,7 @@ enum zram_pageflags {
ZRAM_LOCK = ZRAM_FLAG_SHIFT,
ZRAM_SAME, /* Page consists the same element */
ZRAM_WB, /* page is stored on backing_device */
+ ZRAM_UNDER_WB, /* page is under writeback */
ZRAM_HUGE, /* Incompressible page */
ZRAM_IDLE, /* not accessed page since last idle marking */
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: introduce ZRAM_IDLE flag
has been added to the -mm tree. Its filename is
zram-introduce-zram_idle-flag.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-introduce-zram_idle-flag.patch
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-introduce-zram_idle-flag.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: introduce ZRAM_IDLE flag
To support idle page writeback with upcoming patches, this patch
introduces a new ZRAM_IDLE flag.
Userspace can mark zram slots as "idle" via
"echo all > /sys/block/zramX/idle"
which marks every allocated zram slot as ZRAM_IDLE.
User could see it by /sys/kernel/debug/zram/zram0/block_state.
300 75.033841 ...i
301 63.806904 s..i
302 63.806919 ..hi
Once there is IO for the slot, the mark will be disappeared.
300 75.033841 ...
301 63.806904 s..i
302 63.806919 ..hi
Therefore, 300th block is idle zpage. With this feature,
user can how many zram has idle pages which are waste of memory.
Link: http://lkml.kernel.org/r/20181127055429.251614-5-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
Documentation/ABI/testing/sysfs-block-zram | 8 ++
Documentation/blockdev/zram.txt | 10 ++-
drivers/block/zram/zram_drv.c | 57 ++++++++++++++++++-
drivers/block/zram/zram_drv.h | 1
4 files changed, 69 insertions(+), 7 deletions(-)
--- a/Documentation/ABI/testing/sysfs-block-zram~zram-introduce-zram_idle-flag
+++ a/Documentation/ABI/testing/sysfs-block-zram
@@ -98,3 +98,11 @@ Description:
The backing_dev file is read-write and set up backing
device for zram to write incompressible pages.
For using, user should enable CONFIG_ZRAM_WRITEBACK.
+
+What: /sys/block/zram<id>/idle
+Date: November 2018
+Contact: Minchan Kim <minchan(a)kernel.org>
+Description:
+ idle file is write-only and mark zram slot as idle.
+ If system has mounted debugfs, user can see which slots
+ are idle via /sys/kernel/debug/zram/zram<id>/block_state
--- a/Documentation/blockdev/zram.txt~zram-introduce-zram_idle-flag
+++ a/Documentation/blockdev/zram.txt
@@ -169,6 +169,7 @@ comp_algorithm RW show and change
compact WO trigger memory compaction
debug_stat RO this file is used for zram debugging purposes
backing_dev RW set up backend storage for zram to write out
+idle WO mark allocated slot as idle
User space is advised to use the following files to read the device statistics.
@@ -251,16 +252,17 @@ pages of the process with*pagemap.
If you enable the feature, you could see block state via
/sys/kernel/debug/zram/zram0/block_state". The output is as follows,
- 300 75.033841 .wh
- 301 63.806904 s..
- 302 63.806919 ..h
+ 300 75.033841 .wh.
+ 301 63.806904 s...
+ 302 63.806919 ..hi
First column is zram's block index.
Second column is access time since the system was booted
Third column is state of the block.
(s: same page
w: written page to backing store
-h: huge page)
+h: huge page
+i: idle page)
First line of above example says 300th block is accessed at 75.033841sec
and the block's state is huge so it is written back to the backing
--- a/drivers/block/zram/zram_drv.c~zram-introduce-zram_idle-flag
+++ a/drivers/block/zram/zram_drv.c
@@ -281,6 +281,47 @@ static ssize_t mem_used_max_store(struct
return len;
}
+static ssize_t idle_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t len)
+{
+ struct zram *zram = dev_to_zram(dev);
+ unsigned long nr_pages = zram->disksize >> PAGE_SHIFT;
+ int index;
+ char mode_buf[8];
+ ssize_t sz;
+
+ sz = strscpy(mode_buf, buf, sizeof(mode_buf));
+ if (sz <= 0)
+ return -EINVAL;
+
+ /* ignore trailing new line */
+ if (mode_buf[sz - 1] == '\n')
+ mode_buf[sz - 1] = 0x00;
+
+ if (strcmp(mode_buf, "all"))
+ return -EINVAL;
+
+ down_read(&zram->init_lock);
+ if (!init_done(zram)) {
+ up_read(&zram->init_lock);
+ return -EINVAL;
+ }
+
+ for (index = 0; index < nr_pages; index++) {
+ zram_slot_lock(zram, index);
+ if (!zram_allocated(zram, index))
+ goto next;
+
+ zram_set_flag(zram, index, ZRAM_IDLE);
+next:
+ zram_slot_unlock(zram, index);
+ }
+
+ up_read(&zram->init_lock);
+
+ return len;
+}
+
#ifdef CONFIG_ZRAM_WRITEBACK
static void reset_bdev(struct zram *zram)
{
@@ -638,6 +679,7 @@ static void zram_debugfs_destroy(void)
static void zram_accessed(struct zram *zram, u32 index)
{
+ zram_clear_flag(zram, index, ZRAM_IDLE);
zram->table[index].ac_time = ktime_get_boottime();
}
@@ -670,12 +712,13 @@ static ssize_t read_block_state(struct f
ts = ktime_to_timespec64(zram->table[index].ac_time);
copied = snprintf(kbuf + written, count,
- "%12zd %12lld.%06lu %c%c%c\n",
+ "%12zd %12lld.%06lu %c%c%c%c\n",
index, (s64)ts.tv_sec,
ts.tv_nsec / NSEC_PER_USEC,
zram_test_flag(zram, index, ZRAM_SAME) ? 's' : '.',
zram_test_flag(zram, index, ZRAM_WB) ? 'w' : '.',
- zram_test_flag(zram, index, ZRAM_HUGE) ? 'h' : '.');
+ zram_test_flag(zram, index, ZRAM_HUGE) ? 'h' : '.',
+ zram_test_flag(zram, index, ZRAM_IDLE) ? 'i' : '.');
if (count < copied) {
zram_slot_unlock(zram, index);
@@ -720,7 +763,10 @@ static void zram_debugfs_unregister(stru
#else
static void zram_debugfs_create(void) {};
static void zram_debugfs_destroy(void) {};
-static void zram_accessed(struct zram *zram, u32 index) {};
+static void zram_accessed(struct zram *zram, u32 index)
+{
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+};
static void zram_debugfs_register(struct zram *zram) {};
static void zram_debugfs_unregister(struct zram *zram) {};
#endif
@@ -924,6 +970,9 @@ static void zram_free_page(struct zram *
#ifdef CONFIG_ZRAM_MEMORY_TRACKING
zram->table[index].ac_time = 0;
#endif
+ if (zram_test_flag(zram, index, ZRAM_IDLE))
+ zram_clear_flag(zram, index, ZRAM_IDLE);
+
if (zram_test_flag(zram, index, ZRAM_HUGE)) {
zram_clear_flag(zram, index, ZRAM_HUGE);
atomic64_dec(&zram->stats.huge_pages);
@@ -1589,6 +1638,7 @@ static DEVICE_ATTR_RO(initstate);
static DEVICE_ATTR_WO(reset);
static DEVICE_ATTR_WO(mem_limit);
static DEVICE_ATTR_WO(mem_used_max);
+static DEVICE_ATTR_WO(idle);
static DEVICE_ATTR_RW(max_comp_streams);
static DEVICE_ATTR_RW(comp_algorithm);
#ifdef CONFIG_ZRAM_WRITEBACK
@@ -1602,6 +1652,7 @@ static struct attribute *zram_disk_attrs
&dev_attr_compact.attr,
&dev_attr_mem_limit.attr,
&dev_attr_mem_used_max.attr,
+ &dev_attr_idle.attr,
&dev_attr_max_comp_streams.attr,
&dev_attr_comp_algorithm.attr,
#ifdef CONFIG_ZRAM_WRITEBACK
--- a/drivers/block/zram/zram_drv.h~zram-introduce-zram_idle-flag
+++ a/drivers/block/zram/zram_drv.h
@@ -48,6 +48,7 @@ enum zram_pageflags {
ZRAM_SAME, /* Page consists the same element */
ZRAM_WB, /* page is stored on backing_device */
ZRAM_HUGE, /* Incompressible page */
+ ZRAM_IDLE, /* not accessed page since last idle marking */
__NR_ZRAM_PAGEFLAGS,
};
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
The patch titled
Subject: zram: fix lockdep warning of free block handling
has been added to the -mm tree. Its filename is
zram-fix-lockdep-warning-of-free-block-handling.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/zram-fix-lockdep-warning-of-free-b…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/zram-fix-lockdep-warning-of-free-b…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Minchan Kim <minchan(a)kernel.org>
Subject: zram: fix lockdep warning of free block handling
Patch series "zram idle page writeback", v3.
Inherently, swap device has many idle pages which are rare touched since
it was allocated. It is never problem if we use storage device as swap.
However, it's just waste for zram-swap.
This patchset supports zram idle page writeback feature.
* Admin can define what is idle page "no access since X time ago"
* Admin can define when zram should writeback them
* Admin can define when zram should stop writeback to prevent wearout
Details are in each patch's description.
This patch (of 7):
[ 254.519728] ================================
[ 254.520311] WARNING: inconsistent lock state
[ 254.520898] 4.19.0+ #390 Not tainted
[ 254.521387] --------------------------------
[ 254.521732] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
[ 254.521732] zram_verify/2095 [HC0[0]:SC1[1]:HE1:SE0] takes:
[ 254.521732] 00000000b1828693 (&(&zram->bitmap_lock)->rlock){+.?.}, at: put_entry_bdev+0x1e/0x50
[ 254.521732] {SOFTIRQ-ON-W} state was registered at:
[ 254.521732] _raw_spin_lock+0x2c/0x40
[ 254.521732] zram_make_request+0x755/0xdc9
[ 254.521732] generic_make_request+0x373/0x6a0
[ 254.521732] submit_bio+0x6c/0x140
[ 254.521732] __swap_writepage+0x3a8/0x480
[ 254.521732] shrink_page_list+0x1102/0x1a60
[ 254.521732] shrink_inactive_list+0x21b/0x3f0
[ 254.521732] shrink_node_memcg.constprop.99+0x4f8/0x7e0
[ 254.521732] shrink_node+0x7d/0x2f0
[ 254.521732] do_try_to_free_pages+0xe0/0x300
[ 254.521732] try_to_free_pages+0x116/0x2b0
[ 254.521732] __alloc_pages_slowpath+0x3f4/0xf80
[ 254.521732] __alloc_pages_nodemask+0x2a2/0x2f0
[ 254.521732] __handle_mm_fault+0x42e/0xb50
[ 254.521732] handle_mm_fault+0x55/0xb0
[ 254.521732] __do_page_fault+0x235/0x4b0
[ 254.521732] page_fault+0x1e/0x30
[ 254.521732] irq event stamp: 228412
[ 254.521732] hardirqs last enabled at (228412): [<ffffffff98245846>] __slab_free+0x3e6/0x600
[ 254.521732] hardirqs last disabled at (228411): [<ffffffff98245625>] __slab_free+0x1c5/0x600
[ 254.521732] softirqs last enabled at (228396): [<ffffffff98e0031e>] __do_softirq+0x31e/0x427
[ 254.521732] softirqs last disabled at (228403): [<ffffffff98072051>] irq_exit+0xd1/0xe0
[ 254.521732]
[ 254.521732] other info that might help us debug this:
[ 254.521732] Possible unsafe locking scenario:
[ 254.521732]
[ 254.521732] CPU0
[ 254.521732] ----
[ 254.521732] lock(&(&zram->bitmap_lock)->rlock);
[ 254.521732] <Interrupt>
[ 254.521732] lock(&(&zram->bitmap_lock)->rlock);
[ 254.521732]
[ 254.521732] *** DEADLOCK ***
[ 254.521732]
[ 254.521732] no locks held by zram_verify/2095.
[ 254.521732]
[ 254.521732] stack backtrace:
[ 254.521732] CPU: 5 PID: 2095 Comm: zram_verify Not tainted 4.19.0+ #390
[ 254.521732] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
[ 254.521732] Call Trace:
[ 254.521732] <IRQ>
[ 254.521732] dump_stack+0x67/0x9b
[ 254.521732] print_usage_bug+0x1bd/0x1d3
[ 254.521732] mark_lock+0x4aa/0x540
[ 254.521732] ? check_usage_backwards+0x160/0x160
[ 254.521732] __lock_acquire+0x51d/0x1300
[ 254.521732] ? free_debug_processing+0x24e/0x400
[ 254.521732] ? bio_endio+0x6d/0x1a0
[ 254.521732] ? lockdep_hardirqs_on+0x9b/0x180
[ 254.521732] ? lock_acquire+0x90/0x180
[ 254.521732] lock_acquire+0x90/0x180
[ 254.521732] ? put_entry_bdev+0x1e/0x50
[ 254.521732] _raw_spin_lock+0x2c/0x40
[ 254.521732] ? put_entry_bdev+0x1e/0x50
[ 254.521732] put_entry_bdev+0x1e/0x50
[ 254.521732] zram_free_page+0xf6/0x110
[ 254.521732] zram_slot_free_notify+0x42/0xa0
[ 254.521732] end_swap_bio_read+0x5b/0x170
[ 254.521732] blk_update_request+0x8f/0x340
[ 254.521732] scsi_end_request+0x2c/0x1e0
[ 254.521732] scsi_io_completion+0x98/0x650
[ 254.521732] blk_done_softirq+0x9e/0xd0
[ 254.521732] __do_softirq+0xcc/0x427
[ 254.521732] irq_exit+0xd1/0xe0
[ 254.521732] do_IRQ+0x93/0x120
[ 254.521732] common_interrupt+0xf/0xf
[ 254.521732] </IRQ>
With writeback feature, zram_slot_free_notify could be called
in softirq context by end_swap_bio_read. However, bitmap_lock
is not aware of that so lockdep yell out. Thanks.
get_entry_bdev
spin_lock(bitmap->lock);
irq
softirq
end_swap_bio_read
zram_slot_free_notify
zram_slot_lock <-- deadlock prone
zram_free_page
put_entry_bdev
spin_lock(bitmap->lock); <-- deadlock prone
With akpm's suggestion (i.e. bitmap operation is already atomic), we
could remove bitmap lock. It might fail to find a empty slot if serious
contention happens. However, it's not severe problem because huge page
writeback has already possiblity to fail if there is severe memory
pressure. Worst case is just keeping the incompressible in memory, not
storage.
The other problem is zram_slot_lock in zram_slot_slot_free_notify. To
make it safe is this patch introduces zram_slot_trylock where
zram_slot_free_notify uses it. Although it's rare to be contented, this
patch adds new debug stat "miss_free" to keep monitoring how often it
happens.
Link: http://lkml.kernel.org/r/20181127055429.251614-2-minchan@kernel.org
Signed-off-by: Minchan Kim <minchan(a)kernel.org>
Cc: Joey Pabalinas <joeypabalinas(a)gmail.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky.work(a)gmail.com>
Cc: <stable(a)vger.kernel.org> [4.14+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
drivers/block/zram/zram_drv.c | 38 +++++++++++++++++---------------
drivers/block/zram/zram_drv.h | 2 -
2 files changed, 22 insertions(+), 18 deletions(-)
--- a/drivers/block/zram/zram_drv.c~zram-fix-lockdep-warning-of-free-block-handling
+++ a/drivers/block/zram/zram_drv.c
@@ -53,6 +53,11 @@ static size_t huge_class_size;
static void zram_free_page(struct zram *zram, size_t index);
+static int zram_slot_trylock(struct zram *zram, u32 index)
+{
+ return bit_spin_trylock(ZRAM_LOCK, &zram->table[index].value);
+}
+
static void zram_slot_lock(struct zram *zram, u32 index)
{
bit_spin_lock(ZRAM_LOCK, &zram->table[index].value);
@@ -399,7 +404,6 @@ static ssize_t backing_dev_store(struct
goto out;
reset_bdev(zram);
- spin_lock_init(&zram->bitmap_lock);
zram->old_block_size = old_block_size;
zram->bdev = bdev;
@@ -443,29 +447,24 @@ out:
static unsigned long get_entry_bdev(struct zram *zram)
{
- unsigned long entry;
-
- spin_lock(&zram->bitmap_lock);
+ unsigned long blk_idx = 1;
+retry:
/* skip 0 bit to confuse zram.handle = 0 */
- entry = find_next_zero_bit(zram->bitmap, zram->nr_pages, 1);
- if (entry == zram->nr_pages) {
- spin_unlock(&zram->bitmap_lock);
+ blk_idx = find_next_zero_bit(zram->bitmap, zram->nr_pages, blk_idx);
+ if (blk_idx == zram->nr_pages)
return 0;
- }
- set_bit(entry, zram->bitmap);
- spin_unlock(&zram->bitmap_lock);
+ if (test_and_set_bit(blk_idx, zram->bitmap))
+ goto retry;
- return entry;
+ return blk_idx;
}
static void put_entry_bdev(struct zram *zram, unsigned long entry)
{
int was_set;
- spin_lock(&zram->bitmap_lock);
was_set = test_and_clear_bit(entry, zram->bitmap);
- spin_unlock(&zram->bitmap_lock);
WARN_ON_ONCE(!was_set);
}
@@ -886,9 +885,10 @@ static ssize_t debug_stat_show(struct de
down_read(&zram->init_lock);
ret = scnprintf(buf, PAGE_SIZE,
- "version: %d\n%8llu\n",
+ "version: %d\n%8llu %8llu\n",
version,
- (u64)atomic64_read(&zram->stats.writestall));
+ (u64)atomic64_read(&zram->stats.writestall),
+ (u64)atomic64_read(&zram->stats.miss_free));
up_read(&zram->init_lock);
return ret;
@@ -1400,10 +1400,14 @@ static void zram_slot_free_notify(struct
zram = bdev->bd_disk->private_data;
- zram_slot_lock(zram, index);
+ atomic64_inc(&zram->stats.notify_free);
+ if (!zram_slot_trylock(zram, index)) {
+ atomic64_inc(&zram->stats.miss_free);
+ return;
+ }
+
zram_free_page(zram, index);
zram_slot_unlock(zram, index);
- atomic64_inc(&zram->stats.notify_free);
}
static int zram_rw_page(struct block_device *bdev, sector_t sector,
--- a/drivers/block/zram/zram_drv.h~zram-fix-lockdep-warning-of-free-block-handling
+++ a/drivers/block/zram/zram_drv.h
@@ -79,6 +79,7 @@ struct zram_stats {
atomic64_t pages_stored; /* no. of pages currently stored */
atomic_long_t max_used_pages; /* no. of maximum pages stored */
atomic64_t writestall; /* no. of write slow paths */
+ atomic64_t miss_free; /* no. of missed free */
};
struct zram {
@@ -110,7 +111,6 @@ struct zram {
unsigned int old_block_size;
unsigned long *bitmap;
unsigned long nr_pages;
- spinlock_t bitmap_lock;
#endif
#ifdef CONFIG_ZRAM_MEMORY_TRACKING
struct dentry *debugfs_dir;
_
Patches currently in -mm which might be from minchan(a)kernel.org are
zram-fix-lockdep-warning-of-free-block-handling.patch
zram-fix-double-free-backing-device.patch
zram-refactoring-flags-and-writeback-stuff.patch
zram-introduce-zram_idle-flag.patch
zram-support-idle-huge-page-writeback.patch
zram-add-bd_stat-statistics.patch
zram-writeback-throttle.patch
This reverts commit:
c54c7374ff44 ("drm/dp_mst: Skip validating ports during destruction, just ref")
ugh.
In drm_dp_destroy_connector_work(), we have a pretty good chance of
freeing the actual struct drm_dp_mst_port. However, after destroying
things we send a hotplug through (*mgr->cbs->hotplug)(mgr) which is
where the problems start.
For i915, this calls all the way down to the fbcon probing helpers,
which start trying to access the port in a modeset.
[ 45.062001] ==================================================================
[ 45.062112] BUG: KASAN: use-after-free in ex_handler_refcount+0x146/0x180
[ 45.062196] Write of size 4 at addr ffff8882b4b70968 by task kworker/3:1/53
[ 45.062325] CPU: 3 PID: 53 Comm: kworker/3:1 Kdump: loaded Tainted: G O 4.20.0-rc4Lyude-Test+ #3
[ 45.062442] Hardware name: LENOVO 20BWS1KY00/20BWS1KY00, BIOS JBET71WW (1.35 ) 09/14/2018
[ 45.062554] Workqueue: events drm_dp_destroy_connector_work [drm_kms_helper]
[ 45.062641] Call Trace:
[ 45.062685] dump_stack+0xbd/0x15a
[ 45.062735] ? dump_stack_print_info.cold.0+0x1b/0x1b
[ 45.062801] ? printk+0x9f/0xc5
[ 45.062847] ? kmsg_dump_rewind_nolock+0xe4/0xe4
[ 45.062909] ? ex_handler_refcount+0x146/0x180
[ 45.062970] print_address_description+0x71/0x239
[ 45.063036] ? ex_handler_refcount+0x146/0x180
[ 45.063095] kasan_report.cold.5+0x242/0x30b
[ 45.063155] __asan_report_store4_noabort+0x1c/0x20
[ 45.063313] ex_handler_refcount+0x146/0x180
[ 45.063371] ? ex_handler_clear_fs+0xb0/0xb0
[ 45.063428] fixup_exception+0x98/0xd7
[ 45.063484] ? raw_notifier_call_chain+0x20/0x20
[ 45.063548] do_trap+0x6d/0x210
[ 45.063605] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.063732] do_error_trap+0xc0/0x170
[ 45.063802] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.063929] do_invalid_op+0x3b/0x50
[ 45.063997] ? _GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.064103] invalid_op+0x14/0x20
[ 45.064162] RIP: 0010:_GLOBAL__sub_I_65535_1_drm_dp_aux_unregister_devnode+0x2f/0x1c6 [drm_kms_helper]
[ 45.064274] Code: 00 48 c7 c7 80 fe 53 a0 48 89 e5 e8 5b 6f 26 e1 5d c3 48 8d 0e 0f 0b 48 8d 0b 0f 0b 48 8d 0f 0f 0b 48 8d 0f 0f 0b 49 8d 4d 00 <0f> 0b 49 8d 0e 0f 0b 48 8d 08 0f 0b 49 8d 4d 00 0f 0b 48 8d 0b 0f
[ 45.064569] RSP: 0018:ffff8882b789ee10 EFLAGS: 00010282
[ 45.064637] RAX: ffff8882af47ae70 RBX: ffff8882af47aa60 RCX: ffff8882b4b70968
[ 45.064723] RDX: ffff8882af47ae70 RSI: 0000000000000008 RDI: ffff8882b788bdb8
[ 45.064808] RBP: ffff8882b789ee28 R08: ffffed1056f13db4 R09: ffffed1056f13db3
[ 45.064894] R10: ffffed1056f13db3 R11: ffff8882b789ed9f R12: ffff8882af47ad28
[ 45.064980] R13: ffff8882b4b70968 R14: ffff8882acd86728 R15: ffff8882b4b75dc8
[ 45.065084] drm_dp_mst_reset_vcpi_slots+0x12/0x80 [drm_kms_helper]
[ 45.065225] intel_mst_disable_dp+0xda/0x180 [i915]
[ 45.065361] intel_encoders_disable.isra.107+0x197/0x310 [i915]
[ 45.065498] haswell_crtc_disable+0xbe/0x400 [i915]
[ 45.065622] ? i9xx_disable_plane+0x1c0/0x3e0 [i915]
[ 45.065750] intel_atomic_commit_tail+0x74e/0x3e60 [i915]
[ 45.065884] ? intel_pre_plane_update+0xbc0/0xbc0 [i915]
[ 45.065968] ? drm_atomic_helper_swap_state+0x88b/0x1d90 [drm_kms_helper]
[ 45.066054] ? kasan_check_write+0x14/0x20
[ 45.066165] ? i915_gem_track_fb+0x13a/0x330 [i915]
[ 45.066277] ? i915_sw_fence_complete+0xe9/0x140 [i915]
[ 45.066406] ? __i915_sw_fence_complete+0xc50/0xc50 [i915]
[ 45.066540] intel_atomic_commit+0x72e/0xef0 [i915]
[ 45.066635] ? drm_dev_dbg+0x200/0x200 [drm]
[ 45.066764] ? intel_atomic_commit_tail+0x3e60/0x3e60 [i915]
[ 45.066898] ? intel_atomic_commit_tail+0x3e60/0x3e60 [i915]
[ 45.067001] drm_atomic_commit+0xc4/0xf0 [drm]
[ 45.067074] restore_fbdev_mode_atomic+0x562/0x780 [drm_kms_helper]
[ 45.067166] ? drm_fb_helper_debug_leave+0x690/0x690 [drm_kms_helper]
[ 45.067249] ? kasan_check_read+0x11/0x20
[ 45.067324] restore_fbdev_mode+0x127/0x4b0 [drm_kms_helper]
[ 45.067364] ? kasan_check_read+0x11/0x20
[ 45.067406] drm_fb_helper_restore_fbdev_mode_unlocked+0x164/0x200 [drm_kms_helper]
[ 45.067462] ? drm_fb_helper_hotplug_event+0x30/0x30 [drm_kms_helper]
[ 45.067508] ? kasan_check_write+0x14/0x20
[ 45.070360] ? mutex_unlock+0x22/0x40
[ 45.073748] drm_fb_helper_set_par+0xb2/0xf0 [drm_kms_helper]
[ 45.075846] drm_fb_helper_hotplug_event.part.33+0x1cd/0x290 [drm_kms_helper]
[ 45.078088] drm_fb_helper_hotplug_event+0x1c/0x30 [drm_kms_helper]
[ 45.082614] intel_fbdev_output_poll_changed+0x9f/0x140 [i915]
[ 45.087069] drm_kms_helper_hotplug_event+0x67/0x90 [drm_kms_helper]
[ 45.089319] intel_dp_mst_hotplug+0x37/0x50 [i915]
[ 45.091496] drm_dp_destroy_connector_work+0x510/0x6f0 [drm_kms_helper]
[ 45.093675] ? drm_dp_update_payload_part1+0x1220/0x1220 [drm_kms_helper]
[ 45.095851] ? kasan_check_write+0x14/0x20
[ 45.098473] ? kasan_check_read+0x11/0x20
[ 45.101155] ? strscpy+0x17c/0x530
[ 45.103808] ? __switch_to_asm+0x34/0x70
[ 45.106456] ? syscall_return_via_sysret+0xf/0x7f
[ 45.109711] ? read_word_at_a_time+0x20/0x20
[ 45.113138] ? __switch_to_asm+0x40/0x70
[ 45.116529] ? __switch_to_asm+0x34/0x70
[ 45.119891] ? __switch_to_asm+0x40/0x70
[ 45.123224] ? __switch_to_asm+0x34/0x70
[ 45.126540] ? __switch_to_asm+0x34/0x70
[ 45.129824] process_one_work+0x88d/0x15d0
[ 45.133172] ? pool_mayday_timeout+0x850/0x850
[ 45.136459] ? pci_mmcfg_check_reserved+0x110/0x128
[ 45.139739] ? wake_q_add+0xb0/0xb0
[ 45.143010] ? check_preempt_wakeup+0x652/0x1050
[ 45.146304] ? worker_enter_idle+0x29e/0x740
[ 45.149589] ? __schedule+0x1ec0/0x1ec0
[ 45.152937] ? kasan_check_read+0x11/0x20
[ 45.156179] ? _raw_spin_lock_irq+0xa3/0x130
[ 45.159382] ? _raw_read_unlock_irqrestore+0x30/0x30
[ 45.162542] ? kasan_check_write+0x14/0x20
[ 45.165657] worker_thread+0x1a5/0x1470
[ 45.168725] ? set_load_weight+0x2e0/0x2e0
[ 45.171755] ? process_one_work+0x15d0/0x15d0
[ 45.174806] ? __switch_to_asm+0x34/0x70
[ 45.177645] ? __switch_to_asm+0x40/0x70
[ 45.180323] ? __switch_to_asm+0x34/0x70
[ 45.182936] ? __switch_to_asm+0x40/0x70
[ 45.185539] ? __switch_to_asm+0x34/0x70
[ 45.188100] ? __switch_to_asm+0x40/0x70
[ 45.190628] ? __schedule+0x7d4/0x1ec0
[ 45.193143] ? save_stack+0xa9/0xd0
[ 45.195632] ? kasan_check_write+0x10/0x20
[ 45.198162] ? kasan_kmalloc+0xc4/0xe0
[ 45.200609] ? kmem_cache_alloc_trace+0xdd/0x190
[ 45.203046] ? kthread+0x9f/0x3b0
[ 45.205470] ? ret_from_fork+0x35/0x40
[ 45.207876] ? unwind_next_frame+0x43/0x50
[ 45.210273] ? __save_stack_trace+0x82/0x100
[ 45.212658] ? deactivate_slab.isra.67+0x3d4/0x580
[ 45.215026] ? default_wake_function+0x35/0x50
[ 45.217399] ? kasan_check_read+0x11/0x20
[ 45.219825] ? _raw_spin_lock_irqsave+0xae/0x140
[ 45.222174] ? __lock_text_start+0x8/0x8
[ 45.224521] ? replenish_dl_entity.cold.62+0x4f/0x4f
[ 45.226868] ? __kthread_parkme+0x87/0xf0
[ 45.229200] kthread+0x2f7/0x3b0
[ 45.231557] ? process_one_work+0x15d0/0x15d0
[ 45.233923] ? kthread_park+0x120/0x120
[ 45.236249] ret_from_fork+0x35/0x40
[ 45.240875] Allocated by task 242:
[ 45.243136] save_stack+0x43/0xd0
[ 45.245385] kasan_kmalloc+0xc4/0xe0
[ 45.247597] kmem_cache_alloc_trace+0xdd/0x190
[ 45.249793] drm_dp_add_port+0x1e0/0x2170 [drm_kms_helper]
[ 45.252000] drm_dp_send_link_address+0x4a7/0x740 [drm_kms_helper]
[ 45.254389] drm_dp_check_and_send_link_address+0x1a7/0x210 [drm_kms_helper]
[ 45.256803] drm_dp_mst_link_probe_work+0x6f/0xb0 [drm_kms_helper]
[ 45.259200] process_one_work+0x88d/0x15d0
[ 45.261597] worker_thread+0x1a5/0x1470
[ 45.264038] kthread+0x2f7/0x3b0
[ 45.266371] ret_from_fork+0x35/0x40
[ 45.270937] Freed by task 53:
[ 45.273170] save_stack+0x43/0xd0
[ 45.275382] __kasan_slab_free+0x139/0x190
[ 45.277604] kasan_slab_free+0xe/0x10
[ 45.279826] kfree+0x99/0x1b0
[ 45.282044] drm_dp_free_mst_port+0x4a/0x60 [drm_kms_helper]
[ 45.284330] drm_dp_destroy_connector_work+0x43e/0x6f0 [drm_kms_helper]
[ 45.286660] process_one_work+0x88d/0x15d0
[ 45.288934] worker_thread+0x1a5/0x1470
[ 45.291231] kthread+0x2f7/0x3b0
[ 45.293547] ret_from_fork+0x35/0x40
[ 45.298206] The buggy address belongs to the object at ffff8882b4b70968
which belongs to the cache kmalloc-2k of size 2048
[ 45.303047] The buggy address is located 0 bytes inside of
2048-byte region [ffff8882b4b70968, ffff8882b4b71168)
[ 45.308010] The buggy address belongs to the page:
[ 45.310477] page:ffffea000ad2dc00 count:1 mapcount:0 mapping:ffff8882c080cf40 index:0x0 compound_mapcount: 0
[ 45.313051] flags: 0x8000000000010200(slab|head)
[ 45.315635] raw: 8000000000010200 ffffea000aac2808 ffffea000abe8608 ffff8882c080cf40
[ 45.318300] raw: 0000000000000000 00000000000d000d 00000001ffffffff 0000000000000000
[ 45.320966] page dumped because: kasan: bad access detected
[ 45.326312] Memory state around the buggy address:
[ 45.329085] ffff8882b4b70800: fb fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 45.331845] ffff8882b4b70880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[ 45.334584] >ffff8882b4b70900: fc fc fc fc fc fc fc fc fc fc fc fc fc fb fb fb
[ 45.337302] ^
[ 45.340061] ffff8882b4b70980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 45.342910] ffff8882b4b70a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
[ 45.345748] ==================================================================
So, this definitely isn't a fix that we want. This being said; there's
no real easy fix for this problem because of some of the catch-22's of
the MST helpers current design. For starters; we always need to validate
a port with drm_dp_get_validated_port_ref(), but validation relies on
the lifetime of the port in the actual topology. So once the port is
gone, it can't be validated again.
If we were to try to make the payload helpers not use port validation,
then we'd cause another problem: if the port isn't validated, it could
be freed and we'd just start causing more KASAN issues. There are
already hacks that attempt to workaround this in
drm_dp_mst_destroy_connector_work() by re-initializing the kref so that
it can be used again and it's memory can be freed once the VCPI helpers
finish removing the port's respective payloads. But none of these really
do anything helpful since the port still can't be validated since it's
gone from the topology. Also, that workaround is immensely confusing to
read through.
What really needs to be done in order to fix this is to teach DRM how to
track the lifetime of the structs for MST ports and branch devices
seperately from their lifetime in the actual topology. Simply put; this
means having two different krefs-one that removes the port/branch device
from the topology, and one that finally calls kfree(). This would let us
simplify things, since we'd now be able to keep ports around without
having to keep them in the topology at the same time, which is exactly
what we need in order to teach our VCPI helpers to only validate ports
when it's actually necessary without running the risk of trying to use
unallocated memory.
Such a fix is on it's way, but for now let's play it safe and just
revert this. If this bug has been around for well over a year, we can
wait a little while to get an actual proper fix here.
Signed-off-by: Lyude Paul <lyude(a)redhat.com>
Fixes: c54c7374ff44 ("drm/dp_mst: Skip validating ports during destruction, just ref")
Cc: Daniel Vetter <daniel(a)ffwll.ch>
Cc: Sean Paul <sean(a)poorly.run>
Cc: Jerry Zuo <Jerry.Zuo(a)amd.com>
Cc: Harry Wentland <Harry.Wentland(a)amd.com>
Cc: stable(a)vger.kernel.org # v4.6+
---
drivers/gpu/drm/drm_dp_mst_topology.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index 08978ad72f33..529414556962 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -1023,20 +1023,9 @@ static struct drm_dp_mst_port *drm_dp_mst_get_port_ref_locked(struct drm_dp_mst_
static struct drm_dp_mst_port *drm_dp_get_validated_port_ref(struct drm_dp_mst_topology_mgr *mgr, struct drm_dp_mst_port *port)
{
struct drm_dp_mst_port *rport = NULL;
-
mutex_lock(&mgr->lock);
- /*
- * Port may or may not be 'valid' but we don't care about that when
- * destroying the port and we are guaranteed that the port pointer
- * will be valid until we've finished
- */
- if (current_work() == &mgr->destroy_connector_work) {
- kref_get(&port->kref);
- rport = port;
- } else if (mgr->mst_primary) {
- rport = drm_dp_mst_get_port_ref_locked(mgr->mst_primary,
- port);
- }
+ if (mgr->mst_primary)
+ rport = drm_dp_mst_get_port_ref_locked(mgr->mst_primary, port);
mutex_unlock(&mgr->lock);
return rport;
}
--
2.19.2
After we drop the i_pages lock, the inode can be freed at any time.
The get_unlocked_entry() code has no choice but to reacquire the lock,
so it can't be used here. Create a new wait_entry_unlocked() which takes
care not to acquire the lock or dereference the address_space in any way.
Fixes: c2a7d2a11552 ("filesystem-dax: Introduce dax_lock_mapping_entry()")
Cc: stable(a)vger.kernel.org
Signed-off-by: Matthew Wilcox <willy(a)infradead.org>
---
fs/dax.c | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/fs/dax.c b/fs/dax.c
index e69fc231833b..cf1805645d18 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -232,6 +232,28 @@ static void *get_unlocked_entry(struct xa_state *xas)
}
}
+/*
+ * The only thing keeping the address space around is the i_pages lock
+ * (it's cycled in clear_inode() after removing the entries from i_pages)
+ * After we call xas_unlock_irq(), we cannot touch xas->xa.
+ */
+static void wait_entry_unlocked(struct xa_state *xas, void *entry)
+{
+ struct wait_exceptional_entry_queue ewait;
+ wait_queue_head_t *wq;
+
+ init_wait(&ewait.wait);
+ ewait.wait.func = wake_exceptional_entry_func;
+
+ wq = dax_entry_waitqueue(xas, entry, &ewait.key);
+ prepare_to_wait_exclusive(wq, &ewait.wait, TASK_UNINTERRUPTIBLE);
+ xas_unlock_irq(xas);
+ schedule();
+ finish_wait(wq, &ewait.wait);
+ if (waitqueue_active(wq))
+ __wake_up(wq, TASK_NORMAL, 1, &ewait.key);
+}
+
static void put_unlocked_entry(struct xa_state *xas, void *entry)
{
/* If we were the only waiter woken, wake the next one */
@@ -389,9 +411,7 @@ bool dax_lock_mapping_entry(struct page *page)
entry = xas_load(&xas);
if (dax_is_locked(entry)) {
rcu_read_unlock();
- entry = get_unlocked_entry(&xas);
- xas_unlock_irq(&xas);
- put_unlocked_entry(&xas, entry);
+ wait_entry_unlocked(&xas, entry);
rcu_read_lock();
continue;
}
--
2.19.1
This patch protects against data corruption that could happen in the bus,
by checking that that the digest size returned by the TPM during a PCR read
matches the size of the algorithm passed to tpm2_pcr_read().
This check is performed after information about the PCR banks has been
retrieved.
Signed-off-by: Roberto Sassu <roberto.sassu(a)huawei.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen(a)linux.intel.com>
Cc: stable(a)vger.kernel.org
---
drivers/char/tpm/tpm2-cmd.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index acaaab72ef2e..974465f04b78 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -179,15 +179,29 @@ struct tpm2_pcr_read_out {
int tpm2_pcr_read(struct tpm_chip *chip, u32 pcr_idx,
struct tpm_digest *digest_struct, u16 *digest_size_ptr)
{
+ int i;
int rc;
struct tpm_buf buf;
struct tpm2_pcr_read_out *out;
u8 pcr_select[TPM2_PCR_SELECT_MIN] = {0};
u16 digest_size;
+ u16 expected_digest_size = 0;
if (pcr_idx >= TPM2_PLATFORM_PCR)
return -EINVAL;
+ if (!digest_size_ptr) {
+ for (i = 0; i < chip->nr_allocated_banks &&
+ chip->allocated_banks[i].alg_id != digest_struct->alg_id;
+ i++)
+ ;
+
+ if (i == chip->nr_allocated_banks)
+ return -EINVAL;
+
+ expected_digest_size = chip->allocated_banks[i].digest_size;
+ }
+
rc = tpm_buf_init(&buf, TPM2_ST_NO_SESSIONS, TPM2_CC_PCR_READ);
if (rc)
return rc;
@@ -207,7 +221,8 @@ int tpm2_pcr_read(struct tpm_chip *chip, u32 pcr_idx,
out = (struct tpm2_pcr_read_out *)&buf.data[TPM_HEADER_SIZE];
digest_size = be16_to_cpu(out->digest_size);
- if (digest_size > sizeof(digest_struct->digest)) {
+ if (digest_size > sizeof(digest_struct->digest) ||
+ (!digest_size_ptr && digest_size != expected_digest_size)) {
rc = -EINVAL;
goto out;
}
--
2.17.1
From: Jerome Brunet <jbrunet(a)baylibre.com>
[ Upstream commit e39f9dd8206ad66992ac0e6218ef1ba746f2cce9 ]
If a bias is enabled on a pin of an Amlogic SoC, calling .pin_config_set()
with PIN_CONFIG_BIAS_DISABLE will not disable the bias. Instead it will
force a pull-down bias on the pin.
Instead of the pull type register bank, the driver should access the pull
enable register bank.
Fixes: 6ac730951104 ("pinctrl: add driver for Amlogic Meson SoCs")
Signed-off-by: Jerome Brunet <jbrunet(a)baylibre.com>
Acked-by: Neil Armstrong <narmstrong(a)baylibre.com>
Signed-off-by: Linus Walleij <linus.walleij(a)linaro.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/pinctrl/meson/pinctrl-meson.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
index 66ed70c12733..6c43322dbb97 100644
--- a/drivers/pinctrl/meson/pinctrl-meson.c
+++ b/drivers/pinctrl/meson/pinctrl-meson.c
@@ -273,7 +273,7 @@ static int meson_pinconf_set(struct pinctrl_dev *pcdev, unsigned int pin,
dev_dbg(pc->dev, "pin %u: disable bias\n", pin);
meson_calc_reg_and_bit(bank, pin, REG_PULL, ®, &bit);
- ret = regmap_update_bits(pc->reg_pull, reg,
+ ret = regmap_update_bits(pc->reg_pullen, reg,
BIT(bit), 0);
if (ret)
return ret;
--
2.17.1
Hi Greg,
Few stable candidates for 4.4.y for your consideration.
Cherry picked and build tested on linux-4.4.165 for
ARCH=arm/arm64 + allmodconfig.
Few fixes are applicable for 3.18.y as well, but they
needed minor rebasing, so I'll submit them shortly in
a separate thread.
Regards,
Amit Pundir
Amitkumar Karwar (1):
mwifiex: Fix NULL pointer dereference in skb_dequeue()
Johannes Thumshirn (1):
cw1200: Don't leak memory if krealloc failes
Karthik D A (1):
mwifiex: fix p2p device doesn't find in scan problem
Liping Zhang (1):
netfilter: nf_tables: fix oops when inserting an element into a
verdict map
Mauricio Faria de Oliveira (1):
scsi: qla2xxx: do not queue commands when unloading
Subhash Jadavani (2):
scsi: ufs: fix race between clock gating and devfreq scaling work
scsi: ufshcd: release resources if probe fails
Vasanthakumar Thiagarajan (1):
ath10k: fix kernel panic due to race in accessing arvif list
Venkat Gopalakrishnan (1):
scsi: ufshcd: Fix race between clk scaling and ungate work
Yaniv Gardi (1):
scsi: ufs: fix bugs related to null pointer access and array size
drivers/net/wireless/ath/ath10k/mac.c | 6 +++
drivers/net/wireless/cw1200/wsm.c | 16 ++++---
drivers/net/wireless/mwifiex/cfg80211.c | 10 ++++-
drivers/net/wireless/mwifiex/wmm.c | 12 ++++--
drivers/scsi/qla2xxx/qla_os.c | 5 +++
drivers/scsi/ufs/ufs.h | 3 +-
drivers/scsi/ufs/ufshcd-pci.c | 2 +
drivers/scsi/ufs/ufshcd-pltfrm.c | 5 +--
drivers/scsi/ufs/ufshcd.c | 75 +++++++++++++++++++++++++++++----
net/netfilter/nf_tables_api.c | 1 +
10 files changed, 110 insertions(+), 25 deletions(-)
--
2.7.4
From: Lihong Yang <lihong.yang(a)intel.com>
In __i40e_del_filter function, the flag __I40E_MACVLAN_SYNC_PENDING for
the PF state is wrongly set for the VSI. Deleting any of the MAC filters
has caused the incorrect syncing for the PF. Fix it by setting this state
flag to the intended PF.
CC: stable <stable(a)vger.kernel.org>
Signed-off-by: Lihong Yang <lihong.yang(a)intel.com>
Tested-by: Andrew Bowers <andrewx.bowers(a)intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher(a)intel.com>
---
drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 21c2688d6308..a3f45335437c 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -1413,7 +1413,7 @@ void __i40e_del_filter(struct i40e_vsi *vsi, struct i40e_mac_filter *f)
}
vsi->flags |= I40E_VSI_FLAG_FILTER_CHANGED;
- set_bit(__I40E_MACVLAN_SYNC_PENDING, vsi->state);
+ set_bit(__I40E_MACVLAN_SYNC_PENDING, vsi->back->state);
}
/**
--
2.19.2
From: Greg Hackmann <ghackmann(a)android.com>
(commit 1a381d4a0a9a0f999a13faaba22bf6b3fc80dcb9 upstream)
Linking the ARM64 defconfig kernel with LLVM lld fails with the error:
ld.lld: error: unknown argument: -p
Makefile:1015: recipe for target 'vmlinux' failed
Without this flag, the ARM64 defconfig kernel successfully links with
lld and boots on Dragonboard 410c.
After digging through binutils source and changelogs, it turns out that
-p is only relevant to ancient binutils installations targeting 32-bit
ARM. binutils accepts -p for AArch64 too, but it's always been
undocumented and silently ignored. A comment in
ld/emultempl/aarch64elf.em explains that it's "Only here for backwards
compatibility".
Since this flag is a no-op on ARM64, we can safely drop it.
Acked-by: Will Deacon <will.deacon(a)arm.com>
Reviewed-by: Nick Desaulniers <ndesaulniers(a)google.com>
Signed-off-by: Greg Hackmann <ghackmann(a)google.com>
Signed-off-by: Catalin Marinas <catalin.marinas(a)arm.com>
Signed-off-by: Nick Desaulniers <ndesaulniers(a)google.com>
---
This is needed for linking arm64 kernels with LLVM's LLD linker. I'm
most interested in this for 4.14 and know it applies cleanly there, but
would like it in 4.9 and 4.4 if possible. The upstream patch first
landed in v4.18-rc4.
arch/arm64/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 48158c550110..7976d2d242fa 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -10,7 +10,7 @@
#
# Copyright (C) 1995-2001 by Russell King
-LDFLAGS_vmlinux :=-p --no-undefined -X
+LDFLAGS_vmlinux :=--no-undefined -X
CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
GZFLAGS :=-9
--
2.20.0.rc0.387.gc7a69e6b6c-goog
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From ceff2f4dcd44abf35864d9a99f85ac619e89a01d Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:46 +0200
Subject: [PATCH] drm/mediatek: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the sibling
instead of using of_find_compatible_node(), which searches the entire
tree from a given start node and thus can return an unrelated (i.e.
non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related cec-node reference leak.
Fixes: 8f83f26891e1 ("drm/mediatek: Add HDMI support")
Cc: stable <stable(a)vger.kernel.org> # 4.8
Cc: Junzhi Zhao <junzhi.zhao(a)mediatek.com>
Cc: Philipp Zabel <p.zabel(a)pengutronix.de>
Cc: CK Hu <ck.hu(a)mediatek.com>
Cc: David Airlie <airlied(a)linux.ie>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index 2d45d1dd9554..643f5edd68fe 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1446,8 +1446,7 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi,
}
/* The CEC module handles HDMI hotplug detection */
- cec_np = of_find_compatible_node(np->parent, NULL,
- "mediatek,mt8173-cec");
+ cec_np = of_get_compatible_child(np->parent, "mediatek,mt8173-cec");
if (!cec_np) {
dev_err(dev, "Failed to find CEC node\n");
return -EINVAL;
@@ -1457,8 +1456,10 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi,
if (!cec_pdev) {
dev_err(hdmi->dev, "Waiting for CEC device %pOF\n",
cec_np);
+ of_node_put(cec_np);
return -EPROBE_DEFER;
}
+ of_node_put(cec_np);
hdmi->cec_dev = &cec_pdev->dev;
/*
Currently kernel might allocate different connector ids
for the same outputs in case of DP MST, which seems to
confuse userspace. There are can be different connector
ids in the list, which could be assigned to the same
output, while being in different states.
This results in issues, like external displays staying
blank after quick unplugging and plugging back(bug #106250).
Returning only active DP connectors fixes the issue.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106250
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy(a)intel.com>
---
drivers/gpu/drm/drm_mode_config.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index ee80788f2c40..ec5b2b08a45e 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -143,6 +143,7 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
drm_connector_list_iter_begin(dev, &conn_iter);
count = 0;
connector_id = u64_to_user_ptr(card_res->connector_id_ptr);
+ DRM_DEBUG_KMS("GetResources: writing connectors start");
drm_for_each_connector_iter(connector, &conn_iter) {
/* only expose writeback connectors if userspace understands them */
if (!file_priv->writeback_connectors &&
@@ -150,15 +151,20 @@ int drm_mode_getresources(struct drm_device *dev, void *data,
continue;
if (drm_lease_held(file_priv, connector->base.id)) {
- if (count < card_res->count_connectors &&
- put_user(connector->base.id, connector_id + count)) {
- drm_connector_list_iter_end(&conn_iter);
- return -EFAULT;
+ if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort ||
+ connector->status != connector_status_disconnected) {
+ if (count < card_res->count_connectors &&
+ put_user(connector->base.id, connector_id + count)) {
+ drm_connector_list_iter_end(&conn_iter);
+ return -EFAULT;
+ }
+ DRM_DEBUG_KMS("GetResources: connector %s", connector->name);
+ count++;
}
- count++;
}
}
card_res->count_connectors = count;
+ DRM_DEBUG_KMS("GetResources: writing connectors end - count %d", count);
drm_connector_list_iter_end(&conn_iter);
return ret;
--
2.17.1
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 9844fb2e351311210e6660a9a1c62d17424a6145 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:53 +0200
Subject: [PATCH] power: supply: twl4030-charger: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the usb sibling
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related phy-node reference leak.
Fixes: f5e4edb8c888 ("power: twl4030_charger: find associated phy by more reliable means.")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: NeilBrown <neilb(a)suse.de>
Cc: Felipe Balbi <felipe.balbi(a)linux.intel.com>
Cc: Sebastian Reichel <sre(a)kernel.org>
Reviewed-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c
index bbcaee56db9d..b6a7d9f74cf3 100644
--- a/drivers/power/supply/twl4030_charger.c
+++ b/drivers/power/supply/twl4030_charger.c
@@ -996,12 +996,13 @@ static int twl4030_bci_probe(struct platform_device *pdev)
if (bci->dev->of_node) {
struct device_node *phynode;
- phynode = of_find_compatible_node(bci->dev->of_node->parent,
- NULL, "ti,twl4030-usb");
+ phynode = of_get_compatible_child(bci->dev->of_node->parent,
+ "ti,twl4030-usb");
if (phynode) {
bci->usb_nb.notifier_call = twl4030_bci_usb_ncb;
bci->transceiver = devm_usb_get_phy_by_node(
bci->dev, phynode, &bci->usb_nb);
+ of_node_put(phynode);
if (IS_ERR(bci->transceiver)) {
ret = PTR_ERR(bci->transceiver);
if (ret == -EPROBE_DEFER)
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 5bf59773aaf36dd62117dc83d50e1bbf9ef432da Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:52 +0200
Subject: [PATCH] NFC: nfcmrvl_uart: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the nfc child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent node).
Fixes: e097dc624f78 ("NFC: nfcmrvl: add UART driver")
Fixes: d8e018c0b321 ("NFC: nfcmrvl: update device tree bindings for Marvell NFC")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: Vincent Cuissard <cuissard(a)marvell.com>
Cc: Samuel Ortiz <sameo(a)linux.intel.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/nfc/nfcmrvl/uart.c b/drivers/nfc/nfcmrvl/uart.c
index 91162f8e0366..9a22056e8d9e 100644
--- a/drivers/nfc/nfcmrvl/uart.c
+++ b/drivers/nfc/nfcmrvl/uart.c
@@ -73,10 +73,9 @@ static int nfcmrvl_uart_parse_dt(struct device_node *node,
struct device_node *matched_node;
int ret;
- matched_node = of_find_compatible_node(node, NULL, "marvell,nfc-uart");
+ matched_node = of_get_compatible_child(node, "marvell,nfc-uart");
if (!matched_node) {
- matched_node = of_find_compatible_node(node, NULL,
- "mrvl,nfc-uart");
+ matched_node = of_get_compatible_child(node, "mrvl,nfc-uart");
if (!matched_node)
return -ENODEV;
}
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From d397dbe606120a1ea1b11b0020c3f7a3852da5ac Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:50 +0200
Subject: [PATCH] net: bcmgenet: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the mdio child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the node of the device being probed).
Fixes: aa09677cba42 ("net: bcmgenet: add MDIO routines")
Cc: stable <stable(a)vger.kernel.org> # 3.15
Cc: David S. Miller <davem(a)davemloft.net>
Reviewed-by: Florian Fainelli <f.fainelli(a)gmail.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 5333274a283c..87fc65560ceb 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -333,7 +333,7 @@ static struct device_node *bcmgenet_mii_of_find_mdio(struct bcmgenet_priv *priv)
if (!compat)
return NULL;
- priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
+ priv->mdio_dn = of_get_compatible_child(dn, compat);
kfree(compat);
if (!priv->mdio_dn) {
dev_err(kdev, "unable to find MDIO bus node\n");
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From d397dbe606120a1ea1b11b0020c3f7a3852da5ac Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:50 +0200
Subject: [PATCH] net: bcmgenet: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the mdio child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the node of the device being probed).
Fixes: aa09677cba42 ("net: bcmgenet: add MDIO routines")
Cc: stable <stable(a)vger.kernel.org> # 3.15
Cc: David S. Miller <davem(a)davemloft.net>
Reviewed-by: Florian Fainelli <f.fainelli(a)gmail.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 5333274a283c..87fc65560ceb 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -333,7 +333,7 @@ static struct device_node *bcmgenet_mii_of_find_mdio(struct bcmgenet_priv *priv)
if (!compat)
return NULL;
- priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
+ priv->mdio_dn = of_get_compatible_child(dn, compat);
kfree(compat);
if (!priv->mdio_dn) {
dev_err(kdev, "unable to find MDIO bus node\n");
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From d397dbe606120a1ea1b11b0020c3f7a3852da5ac Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:50 +0200
Subject: [PATCH] net: bcmgenet: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the mdio child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the node of the device being probed).
Fixes: aa09677cba42 ("net: bcmgenet: add MDIO routines")
Cc: stable <stable(a)vger.kernel.org> # 3.15
Cc: David S. Miller <davem(a)davemloft.net>
Reviewed-by: Florian Fainelli <f.fainelli(a)gmail.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 5333274a283c..87fc65560ceb 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -333,7 +333,7 @@ static struct device_node *bcmgenet_mii_of_find_mdio(struct bcmgenet_priv *priv)
if (!compat)
return NULL;
- priv->mdio_dn = of_find_compatible_node(dn, NULL, compat);
+ priv->mdio_dn = of_get_compatible_child(dn, compat);
kfree(compat);
if (!priv->mdio_dn) {
dev_err(kdev, "unable to find MDIO bus node\n");
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 5bf59773aaf36dd62117dc83d50e1bbf9ef432da Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:52 +0200
Subject: [PATCH] NFC: nfcmrvl_uart: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the nfc child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent node).
Fixes: e097dc624f78 ("NFC: nfcmrvl: add UART driver")
Fixes: d8e018c0b321 ("NFC: nfcmrvl: update device tree bindings for Marvell NFC")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: Vincent Cuissard <cuissard(a)marvell.com>
Cc: Samuel Ortiz <sameo(a)linux.intel.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/nfc/nfcmrvl/uart.c b/drivers/nfc/nfcmrvl/uart.c
index 91162f8e0366..9a22056e8d9e 100644
--- a/drivers/nfc/nfcmrvl/uart.c
+++ b/drivers/nfc/nfcmrvl/uart.c
@@ -73,10 +73,9 @@ static int nfcmrvl_uart_parse_dt(struct device_node *node,
struct device_node *matched_node;
int ret;
- matched_node = of_find_compatible_node(node, NULL, "marvell,nfc-uart");
+ matched_node = of_get_compatible_child(node, "marvell,nfc-uart");
if (!matched_node) {
- matched_node = of_find_compatible_node(node, NULL,
- "mrvl,nfc-uart");
+ matched_node = of_get_compatible_child(node, "mrvl,nfc-uart");
if (!matched_node)
return -ENODEV;
}
Hi Greg,
Few stable candidates for 3.18.y for your consideration.
Cherry picked and build tested on linux-3.18.127 for
ARCH=arm/arm64 + allmodconfig.
Regards,
Amit Pundir
Johannes Thumshirn (1):
cw1200: Don't leak memory if krealloc failes
Mauricio Faria de Oliveira (1):
scsi: qla2xxx: do not queue commands when unloading
Subhash Jadavani (1):
scsi: ufs: fix race between clock gating and devfreq scaling work
Venkat Gopalakrishnan (1):
scsi: ufshcd: Fix race between clk scaling and ungate work
Yaniv Gardi (1):
scsi: ufs: fix bugs related to null pointer access and array size
drivers/net/wireless/cw1200/wsm.c | 16 +++++----
drivers/net/wireless/mwifiex/pcie.c | 9 +++--
drivers/scsi/qla2xxx/qla_os.c | 14 ++++++++
drivers/scsi/ufs/ufs.h | 3 +-
drivers/scsi/ufs/ufshcd.c | 72 +++++++++++++++++++++++++++++++++----
5 files changed, 97 insertions(+), 17 deletions(-)
--
2.7.4
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 5bf59773aaf36dd62117dc83d50e1bbf9ef432da Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:52 +0200
Subject: [PATCH] NFC: nfcmrvl_uart: fix OF child-node lookup
Use the new of_get_compatible_child() helper to lookup the nfc child
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(i.e. non-child) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent node).
Fixes: e097dc624f78 ("NFC: nfcmrvl: add UART driver")
Fixes: d8e018c0b321 ("NFC: nfcmrvl: update device tree bindings for Marvell NFC")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: Vincent Cuissard <cuissard(a)marvell.com>
Cc: Samuel Ortiz <sameo(a)linux.intel.com>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/nfc/nfcmrvl/uart.c b/drivers/nfc/nfcmrvl/uart.c
index 91162f8e0366..9a22056e8d9e 100644
--- a/drivers/nfc/nfcmrvl/uart.c
+++ b/drivers/nfc/nfcmrvl/uart.c
@@ -73,10 +73,9 @@ static int nfcmrvl_uart_parse_dt(struct device_node *node,
struct device_node *matched_node;
int ret;
- matched_node = of_find_compatible_node(node, NULL, "marvell,nfc-uart");
+ matched_node = of_get_compatible_child(node, "marvell,nfc-uart");
if (!matched_node) {
- matched_node = of_find_compatible_node(node, NULL,
- "mrvl,nfc-uart");
+ matched_node = of_get_compatible_child(node, "mrvl,nfc-uart");
if (!matched_node)
return -ENODEV;
}
Hi Amir,
Here's a backport of this patch to 4.18 and earlier. Tested good with
ltp/fanotify09.
I didn't quite understand the relevance of masking against ALL_FSNOTIFY_EVENTS
in __fsnotify_parent() and the backport in fsnotify() is also not quite trivial.
So, can you please review?
Thanks,
Miklos
---
From: Amir Goldstein <amir73il(a)gmail.com>
Date: Tue, 30 Oct 2018 20:29:53 +0200
Subject: [PATCH] fanotify: fix handling of events on child sub-directory
When an event is reported on a sub-directory and the parent inode has
a mark mask with FS_EVENT_ON_CHILD|FS_ISDIR, the event will be sent to
fsnotify() even if the event type is not in the parent mark mask
(e.g. FS_OPEN).
Further more, if that event happened on a mount or a filesystem with
a mount/sb mark that does have that event type in their mask, the "on
child" event will be reported on the mount/sb mark. That is not
desired, because user will get a duplicate event for the same action.
Note that the event reported on the victim inode is never merged with
the event reported on the parent inode, because of the check in
should_merge(): old_fsn->inode == new_fsn->inode.
Fix this by looking for a match of an actual event type (i.e. not just
FS_ISDIR) in parent's inode mark mask and by not reporting an "on child"
event to group if event type is only found on mount/sb marks.
[backport hint: The bug seems to have always been in fanotify, but this
patch will only apply cleanly to v4.19.y]
Cc: <stable(a)vger.kernel.org> # v4.19
Signed-off-by: Amir Goldstein <amir73il(a)gmail.com>
Signed-off-by: Jan Kara <jack(a)suse.cz>
(cherry picked from commit b469e7e47c8a075cc08bcd1e85d4365134bdcdd5)
---
fs/notify/fanotify/fanotify.c | 10 +++++-----
fs/notify/fsnotify.c | 8 ++++++--
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c
index f90842efea13..78126bd7c162 100644
--- a/fs/notify/fanotify/fanotify.c
+++ b/fs/notify/fanotify/fanotify.c
@@ -113,12 +113,12 @@ static bool fanotify_should_send_event(struct fsnotify_iter_info *iter_info,
continue;
mark = iter_info->marks[type];
/*
- * if the event is for a child and this inode doesn't care about
- * events on the child, don't send it!
+ * If the event is for a child and this mark doesn't care about
+ * events on a child, don't send it!
*/
- if (type == FSNOTIFY_OBJ_TYPE_INODE &&
- (event_mask & FS_EVENT_ON_CHILD) &&
- !(mark->mask & FS_EVENT_ON_CHILD))
+ if (event_mask & FS_EVENT_ON_CHILD &&
+ (type != FSNOTIFY_OBJ_TYPE_INODE ||
+ !(mark->mask & FS_EVENT_ON_CHILD)))
continue;
marks_mask |= mark->mask;
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
index ababdbfab537..46d27b357226 100644
--- a/fs/notify/fsnotify.c
+++ b/fs/notify/fsnotify.c
@@ -158,9 +158,9 @@ int __fsnotify_parent(const struct path *path, struct dentry *dentry, __u32 mask
parent = dget_parent(dentry);
p_inode = parent->d_inode;
- if (unlikely(!fsnotify_inode_watches_children(p_inode)))
+ if (unlikely(!fsnotify_inode_watches_children(p_inode))) {
__fsnotify_update_child_dentry_flags(p_inode);
- else if (p_inode->i_fsnotify_mask & mask) {
+ } else if (p_inode->i_fsnotify_mask & mask & ~FS_EVENT_ON_CHILD) {
struct name_snapshot name;
/* we are notifying a parent so come up with the new mask which
@@ -329,6 +329,10 @@ int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
else
mnt = NULL;
+ /* An event "on child" is not intended for a mount mark */
+ if (mask & FS_EVENT_ON_CHILD)
+ mnt = NULL;
+
/*
* Optimization: srcu_read_lock() has a memory barrier which can
* be expensive. It protects walking the *_fsnotify_marks lists.
--
2.14.5
commit 2f31a67f01a8beb22cae754c53522cb61a005750 upstream.
Backport to apply on 4.14.y and older stable releases
USB3 roothub might autosuspend before a plugged USB3 device is detected,
causing USB3 device enumeration failure.
USB3 devices don't show up as connected and enabled until USB3 link trainig
completes. On a fast booting platform with a slow USB3 link training the
link might reach the connected enabled state just as the bus is suspending.
If this device is discovered first time by the xhci_bus_suspend() routine
it will be put to U3 suspended state like the other ports which failed to
suspend earlier.
The hub thread will notice the connect change and resume the bus,
moving the port back to U0
This U0 -> U3 -> U0 transition right after being connected seems to be
too much for some devices, causing them to first go to SS.Inactive state,
and finally end up stuck in a polling state with reset asserted
Fix this by failing the bus suspend if a port has a connect change or is
in a polling state in xhci_bus_suspend().
Don't do any port changes until all ports are checked, buffer all port
changes and only write them in the end if suspend can proceed
Cc: stable(a)vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
drivers/usb/host/xhci-hub.c | 60 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 46 insertions(+), 14 deletions(-)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index d2a9767..61db9ee 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1481,13 +1481,16 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
__le32 __iomem **port_array;
struct xhci_bus_state *bus_state;
unsigned long flags;
+ u32 portsc_buf[USB_MAXCHILDREN];
+ bool wake_enabled;
max_ports = xhci_get_ports(hcd, &port_array);
bus_state = &xhci->bus_state[hcd_index(hcd)];
+ wake_enabled = hcd->self.root_hub->do_remote_wakeup;
spin_lock_irqsave(&xhci->lock, flags);
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (bus_state->resuming_ports || /* USB2 */
bus_state->port_remote_wakeup) { /* USB3 */
spin_unlock_irqrestore(&xhci->lock, flags);
@@ -1495,26 +1498,36 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
return -EBUSY;
}
}
-
- port_index = max_ports;
+ /*
+ * Prepare ports for suspend, but don't write anything before all ports
+ * are checked and we know bus suspend can proceed
+ */
bus_state->bus_suspended = 0;
+ port_index = max_ports;
while (port_index--) {
- /* suspend the port if the port is not suspended */
u32 t1, t2;
- int slot_id;
t1 = readl(port_array[port_index]);
t2 = xhci_port_state_to_neutral(t1);
+ portsc_buf[port_index] = 0;
- if ((t1 & PORT_PE) && !(t1 & PORT_PLS_MASK)) {
- xhci_dbg(xhci, "port %d not suspended\n", port_index);
- slot_id = xhci_find_slot_id_by_port(hcd, xhci,
- port_index + 1);
- if (slot_id) {
+ /* Bail out if a USB3 port has a new device in link training */
+ if ((t1 & PORT_PLS_MASK) == XDEV_POLLING) {
+ bus_state->bus_suspended = 0;
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port in polling\n");
+ return -EBUSY;
+ }
+
+ /* suspend ports in U0, or bail out for new connect changes */
+ if ((t1 & PORT_PE) && (t1 & PORT_PLS_MASK) == XDEV_U0) {
+ if ((t1 & PORT_CSC) && wake_enabled) {
+ bus_state->bus_suspended = 0;
spin_unlock_irqrestore(&xhci->lock, flags);
- xhci_stop_device(xhci, slot_id, 1);
- spin_lock_irqsave(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port connect change\n");
+ return -EBUSY;
}
+ xhci_dbg(xhci, "port %d not suspended\n", port_index);
t2 &= ~PORT_PLS_MASK;
t2 |= PORT_LINK_STROBE | XDEV_U3;
set_bit(port_index, &bus_state->bus_suspended);
@@ -1523,7 +1536,7 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
* including the USB 3.0 roothub, but only if CONFIG_PM
* is enabled, so also enable remote wake here.
*/
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (t1 & PORT_CONNECT) {
t2 |= PORT_WKOC_E | PORT_WKDISC_E;
t2 &= ~PORT_WKCONN_E;
@@ -1543,7 +1556,26 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
t1 = xhci_port_state_to_neutral(t1);
if (t1 != t2)
- writel(t2, port_array[port_index]);
+ portsc_buf[port_index] = t2;
+ }
+
+ /* write port settings, stopping and suspending ports if needed */
+ port_index = max_ports;
+ while (port_index--) {
+ if (!portsc_buf[port_index])
+ continue;
+ if (test_bit(port_index, &bus_state->bus_suspended)) {
+ int slot_id;
+
+ slot_id = xhci_find_slot_id_by_port(hcd, xhci,
+ port_index + 1);
+ if (slot_id) {
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_stop_device(xhci, slot_id, 1);
+ spin_lock_irqsave(&xhci->lock, flags);
+ }
+ }
+ writel(portsc_buf[port_index], port_array[port_index]);
}
hcd->state = HC_STATE_SUSPENDED;
bus_state->next_statechange = jiffies + msecs_to_jiffies(10);
--
2.7.4
From: Parav Pandit <parav(a)mellanox.com>
commit b2bedfb39541a7e14798d066b6f8685d84c8fcf5 upstream
Currently qp->port stores the port number whenever IB_QP_PORT
QP attribute mask is set (during QP state transition to INIT state).
This port number should be stored for the real QP when XRC target QP
is used.
Follow the ib_modify_qp() implementation and hide the access to ->real_qp.
This commit is required for proper operation of commit 65be9cbe1224
("RDMA/uverbs: Expand primary and alt AV port checks") which was added
to 4.14.61.
Without this commit, XRC qp's do not work.
Fixes: a512c2fbef9c ("IB/core: Introduce modify QP operation with udata")
Signed-off-by: Jack Morgenstein <jackm(a)dev.mellanox.co.il>
Signed-off-by: Parav Pandit <parav(a)mellanox.com>
Reviewed-by: Daniel Jurgens <danielj(a)mellanox.com>
Signed-off-by: Leon Romanovsky <leon(a)kernel.org>
Signed-off-by: Jason Gunthorpe <jgg(a)mellanox.com>
---
drivers/infiniband/core/verbs.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index feb80db..6d59af0 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -1285,7 +1285,7 @@ int ib_resolve_eth_dmac(struct ib_device *device,
/**
* ib_modify_qp_with_udata - Modifies the attributes for the specified QP.
- * @qp: The QP to modify.
+ * @ib_qp: The QP to modify.
* @attr: On input, specifies the QP attributes to modify. On output,
* the current values of selected QP attributes are returned.
* @attr_mask: A bit-mask used to specify which attributes of the QP
@@ -1294,9 +1294,10 @@ int ib_resolve_eth_dmac(struct ib_device *device,
* are being modified.
* It returns 0 on success and returns appropriate error code on error.
*/
-int ib_modify_qp_with_udata(struct ib_qp *qp, struct ib_qp_attr *attr,
+int ib_modify_qp_with_udata(struct ib_qp *ib_qp, struct ib_qp_attr *attr,
int attr_mask, struct ib_udata *udata)
{
+ struct ib_qp *qp = ib_qp->real_qp;
int ret;
if (attr_mask & IB_QP_AV) {
--
1.8.1.2
From: Hans Verkuil <hverkuil-cisco(a)xs4all.nl>
vb2_start_streaming() already rolls back the buffers, so there is no
need to call __vb2_queue_cancel(). Especially since __vb2_queue_cancel()
does too much, such as zeroing the q->queued_count value, causing vb2
to think that no buffers have been queued.
It appears that this call to __vb2_queue_cancel() is a left-over from
before commit b3379c6201bb3.
Signed-off-by: Hans Verkuil <hverkuil-cisco(a)xs4all.nl>
Fixes: b3379c6201bb3 ('vb2: only call start_streaming if sufficient buffers are queued')
Cc: <stable(a)vger.kernel.org> # for v4.16 and up
---
drivers/media/common/videobuf2/videobuf2-core.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
index 0ca81d495bda..77e2bfe5e722 100644
--- a/drivers/media/common/videobuf2/videobuf2-core.c
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
@@ -1941,10 +1941,8 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type)
if (ret)
return ret;
ret = vb2_start_streaming(q);
- if (ret) {
- __vb2_queue_cancel(q);
+ if (ret)
return ret;
- }
}
q->streaming = 1;
--
2.19.1
If we race with inode destroy, it's possible for page->mapping to be
NULL before we even enter this routine, as well as after having slept
waiting for the dax entry to become unlocked.
Fixes: c2a7d2a11552 ("filesystem-dax: Introduce dax_lock_mapping_entry()")
Cc: stable(a)vger.kernel.org
Reported-by: Jan Kara <jack(a)suse.cz>
Signed-off-by: Matthew Wilcox <willy(a)infradead.org>
---
fs/dax.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/dax.c b/fs/dax.c
index 9bcce89ea18e..e69fc231833b 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -365,7 +365,7 @@ bool dax_lock_mapping_entry(struct page *page)
struct address_space *mapping = READ_ONCE(page->mapping);
locked = false;
- if (!dax_mapping(mapping))
+ if (!mapping || !dax_mapping(mapping))
break;
/*
--
2.19.1
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 21556350ade3cb5d7afecc8b3544e56431d21695 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala(a)linux.intel.com>
Date: Wed, 14 Nov 2018 19:34:40 +0200
Subject: [PATCH] drm/i915: Disable LP3 watermarks on all SNB machines
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
I have a Thinkpad X220 Tablet in my hands that is losing vblank
interrupts whenever LP3 watermarks are used.
If I nudge the latency value written to the WM3 register just
by one in either direction the problem disappears. That to me
suggests that the punit will not enter the corrsponding
powersave mode (MPLL shutdown IIRC) unless the latency value
in the register matches exactly what we read from SSKPD. Ie.
it's not really a latency value but rather just a cookie
by which the punit can identify the desired power saving state.
On HSW/BDW this was changed such that we actually just write
the WM level number into those bits, which makes much more
sense given the observed behaviour.
We could try to handle this by disallowing LP3 watermarks
only when vblank interrupts are enabled but we'd first have
to prove that only vblank interrupts are affected, which
seems unlikely. Also we can't grab the wm mutex from the
vblank enable/disable hooks because those are called with
various spinlocks held. Thus we'd have to redesigne the
watermark locking. So to play it safe and keep the code
simple we simply disable LP3 watermarks on all SNB machines.
To do that we simply zero out the latency values for
watermark level 3, and we adjust the watermark computation
to check for that. The behaviour now matches that of the
g4x/vlv/skl wm code in the presence of a zeroed latency
value.
v2: s/USHRT_MAX/U32_MAX/ for consistency with the types (Chris)
Cc: stable(a)vger.kernel.org
Cc: Chris Wilson <chris(a)chris-wilson.co.uk>
Acked-by: Chris Wilson <chris(a)chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101269
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103713
Signed-off-by: Ville Syrjälä <ville.syrjala(a)linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181114173440.6730-1-ville.s…
(cherry picked from commit 03981c6ebec4fc7056b9b45f847393aeac90d060)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen(a)linux.intel.com>
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 245f0022bcfd..3fe358db1276 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -2493,6 +2493,9 @@ static uint32_t ilk_compute_pri_wm(const struct intel_crtc_state *cstate,
uint32_t method1, method2;
int cpp;
+ if (mem_value == 0)
+ return U32_MAX;
+
if (!intel_wm_plane_visible(cstate, pstate))
return 0;
@@ -2522,6 +2525,9 @@ static uint32_t ilk_compute_spr_wm(const struct intel_crtc_state *cstate,
uint32_t method1, method2;
int cpp;
+ if (mem_value == 0)
+ return U32_MAX;
+
if (!intel_wm_plane_visible(cstate, pstate))
return 0;
@@ -2545,6 +2551,9 @@ static uint32_t ilk_compute_cur_wm(const struct intel_crtc_state *cstate,
{
int cpp;
+ if (mem_value == 0)
+ return U32_MAX;
+
if (!intel_wm_plane_visible(cstate, pstate))
return 0;
@@ -3008,6 +3017,34 @@ static void snb_wm_latency_quirk(struct drm_i915_private *dev_priv)
intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency);
}
+static void snb_wm_lp3_irq_quirk(struct drm_i915_private *dev_priv)
+{
+ /*
+ * On some SNB machines (Thinkpad X220 Tablet at least)
+ * LP3 usage can cause vblank interrupts to be lost.
+ * The DEIIR bit will go high but it looks like the CPU
+ * never gets interrupted.
+ *
+ * It's not clear whether other interrupt source could
+ * be affected or if this is somehow limited to vblank
+ * interrupts only. To play it safe we disable LP3
+ * watermarks entirely.
+ */
+ if (dev_priv->wm.pri_latency[3] == 0 &&
+ dev_priv->wm.spr_latency[3] == 0 &&
+ dev_priv->wm.cur_latency[3] == 0)
+ return;
+
+ dev_priv->wm.pri_latency[3] = 0;
+ dev_priv->wm.spr_latency[3] = 0;
+ dev_priv->wm.cur_latency[3] = 0;
+
+ DRM_DEBUG_KMS("LP3 watermarks disabled due to potential for lost interrupts\n");
+ intel_print_wm_latency(dev_priv, "Primary", dev_priv->wm.pri_latency);
+ intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency);
+ intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency);
+}
+
static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv)
{
intel_read_wm_latency(dev_priv, dev_priv->wm.pri_latency);
@@ -3024,8 +3061,10 @@ static void ilk_setup_wm_latency(struct drm_i915_private *dev_priv)
intel_print_wm_latency(dev_priv, "Sprite", dev_priv->wm.spr_latency);
intel_print_wm_latency(dev_priv, "Cursor", dev_priv->wm.cur_latency);
- if (IS_GEN6(dev_priv))
+ if (IS_GEN6(dev_priv)) {
snb_wm_latency_quirk(dev_priv);
+ snb_wm_lp3_irq_quirk(dev_priv);
+ }
}
static void skl_setup_wm_latency(struct drm_i915_private *dev_priv)
From: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
commit a0e0cb82804a6a21d9067022c2dfdf80d11da429 upstream
pq_update() can only be called in two places: from the completion
function when the complete (npkts) sequence of packets has been
submitted and processed, or from setup function if a subset of the
packets were submitted (i.e. the error path).
Currently both paths can call pq_update() if an error occurrs. This
race will cause the n_req value to go negative, hanging file_close(),
or cause a crash by freeing the txlist more than once.
Several variables are used to determine SDMA send state. Most of
these are unnecessary, and have code inspectible races between the
setup function and the completion function, in both the send path and
the error path.
The request 'status' value can be set by the setup or by the
completion function. This is code inspectibly racy. Since the status
is not needed in the completion code or by the caller it has been
removed.
The request 'done' value races between usage by the setup and the
completion function. The completion function does not need this.
When the number of processed packets matches npkts, it is done.
The 'has_error' value races between usage of the setup and the
completion function. This can cause incorrect error handling and leave
the n_req in an incorrect value (i.e. negative).
Simplify the code by removing all of the unneeded state checks and
variables.
Clean up iovs node when it is freed.
Eliminate race conditions in the error path:
If all packets are submitted, the completion handler will set the
completion status correctly (ok or aborted).
If all packets are not submitted, the caller must wait until the
submitted packets have completed, and then set the completion status.
These two change eliminate the race condition in the error path.
Cc: <stable(a)vger.kernel.org> # 4.14.0
Reviewed-by: Mitko Haralanov <mitko.haralanov(a)intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn(a)intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
---
drivers/infiniband/hw/hfi1/user_sdma.c | 87 ++++++++++++++------------------
drivers/infiniband/hw/hfi1/user_sdma.h | 3 -
2 files changed, 39 insertions(+), 51 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c
index 8c954a0..c14ec04 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -328,7 +328,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
u8 opcode, sc, vl;
u16 pkey;
u32 slid;
- int req_queued = 0;
u16 dlid;
u32 selector;
@@ -392,7 +391,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->data_len = 0;
req->pq = pq;
req->cq = cq;
- req->status = -1;
req->ahg_idx = -1;
req->iov_idx = 0;
req->sent = 0;
@@ -400,12 +398,14 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->seqcomp = 0;
req->seqsubmitted = 0;
req->tids = NULL;
- req->done = 0;
req->has_error = 0;
INIT_LIST_HEAD(&req->txps);
memcpy(&req->info, &info, sizeof(info));
+ /* The request is initialized, count it */
+ atomic_inc(&pq->n_reqs);
+
if (req_opcode(info.ctrl) == EXPECTED) {
/* expected must have a TID info and at least one data vector */
if (req->data_iovs < 2) {
@@ -500,7 +500,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
ret = pin_vector_pages(req, &req->iovs[i]);
if (ret) {
req->data_iovs = i;
- req->status = ret;
goto free_req;
}
req->data_len += req->iovs[i].iov.iov_len;
@@ -561,14 +560,10 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->ahg_idx = sdma_ahg_alloc(req->sde);
set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
- atomic_inc(&pq->n_reqs);
- req_queued = 1;
/* Send the first N packets in the request to buy us some time */
ret = user_sdma_send_pkts(req, pcount);
- if (unlikely(ret < 0 && ret != -EBUSY)) {
- req->status = ret;
+ if (unlikely(ret < 0 && ret != -EBUSY))
goto free_req;
- }
/*
* It is possible that the SDMA engine would have processed all the
@@ -588,14 +583,8 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
while (req->seqsubmitted != req->info.npkts) {
ret = user_sdma_send_pkts(req, pcount);
if (ret < 0) {
- if (ret != -EBUSY) {
- req->status = ret;
- WRITE_ONCE(req->has_error, 1);
- if (ACCESS_ONCE(req->seqcomp) ==
- req->seqsubmitted - 1)
- goto free_req;
- return ret;
- }
+ if (ret != -EBUSY)
+ goto free_req;
wait_event_interruptible_timeout(
pq->busy.wait_dma,
(pq->state == SDMA_PKT_Q_ACTIVE),
@@ -606,10 +595,19 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
*count += idx;
return 0;
free_req:
- user_sdma_free_request(req, true);
- if (req_queued)
+ /*
+ * If the submitted seqsubmitted == npkts, the completion routine
+ * controls the final state. If sequbmitted < npkts, wait for any
+ * outstanding packets to finish before cleaning up.
+ */
+ if (req->seqsubmitted < req->info.npkts) {
+ if (req->seqsubmitted)
+ wait_event(pq->busy.wait_dma,
+ (req->seqcomp == req->seqsubmitted - 1));
+ user_sdma_free_request(req, true);
pq_update(pq);
- set_comp_state(pq, cq, info.comp_idx, ERROR, req->status);
+ set_comp_state(pq, cq, info.comp_idx, ERROR, ret);
+ }
return ret;
}
@@ -917,7 +915,6 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
ret = sdma_send_txlist(req->sde, &pq->busy, &req->txps, &count);
req->seqsubmitted += count;
if (req->seqsubmitted == req->info.npkts) {
- WRITE_ONCE(req->done, 1);
/*
* The txreq has already been submitted to the HW queue
* so we can free the AHG entry now. Corruption will not
@@ -1347,11 +1344,15 @@ static int set_txreq_header_ahg(struct user_sdma_request *req,
return diff;
}
-/*
- * SDMA tx request completion callback. Called when the SDMA progress
- * state machine gets notification that the SDMA descriptors for this
- * tx request have been processed by the DMA engine. Called in
- * interrupt context.
+/**
+ * user_sdma_txreq_cb() - SDMA tx request completion callback.
+ * @txreq: valid sdma tx request
+ * @status: success/failure of request
+ *
+ * Called when the SDMA progress state machine gets notification that
+ * the SDMA descriptors for this tx request have been processed by the
+ * DMA engine. Called in interrupt context.
+ * Only do work on completed sequences.
*/
static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
{
@@ -1360,7 +1361,7 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
struct user_sdma_request *req;
struct hfi1_user_sdma_pkt_q *pq;
struct hfi1_user_sdma_comp_q *cq;
- u16 idx;
+ enum hfi1_sdma_comp_state state = COMPLETE;
if (!tx->req)
return;
@@ -1373,31 +1374,19 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
SDMA_DBG(req, "SDMA completion with error %d",
status);
WRITE_ONCE(req->has_error, 1);
+ state = ERROR;
}
req->seqcomp = tx->seqnum;
kmem_cache_free(pq->txreq_cache, tx);
- tx = NULL;
-
- idx = req->info.comp_idx;
- if (req->status == -1 && status == SDMA_TXREQ_S_OK) {
- if (req->seqcomp == req->info.npkts - 1) {
- req->status = 0;
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, COMPLETE, 0);
- }
- } else {
- if (status != SDMA_TXREQ_S_OK)
- req->status = status;
- if (req->seqcomp == (ACCESS_ONCE(req->seqsubmitted) - 1) &&
- (READ_ONCE(req->done) ||
- READ_ONCE(req->has_error))) {
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, ERROR, req->status);
- }
- }
+
+ /* sequence isn't complete? We are done */
+ if (req->seqcomp != req->info.npkts - 1)
+ return;
+
+ user_sdma_free_request(req, false);
+ set_comp_state(pq, cq, req->info.comp_idx, state, status);
+ pq_update(pq);
}
static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq)
@@ -1430,6 +1419,8 @@ static void user_sdma_free_request(struct user_sdma_request *req, bool unpin)
if (!node)
continue;
+ req->iovs[i].node = NULL;
+
if (unpin)
hfi1_mmu_rb_remove(req->pq->handler,
&node->rb);
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.h b/drivers/infiniband/hw/hfi1/user_sdma.h
index 9b8bb56..5af5233 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.h
+++ b/drivers/infiniband/hw/hfi1/user_sdma.h
@@ -196,8 +196,6 @@ struct user_sdma_request {
/* Writeable fields shared with interrupt */
u64 seqcomp ____cacheline_aligned_in_smp;
u64 seqsubmitted;
- /* status of the last txreq completed */
- int status;
/* Send side fields */
struct list_head txps ____cacheline_aligned_in_smp;
@@ -219,7 +217,6 @@ struct user_sdma_request {
u16 tididx;
/* progress index moving along the iovs array */
u8 iov_idx;
- u8 done;
u8 has_error;
struct user_sdma_iovec iovs[MAX_VECTORS_PER_REQ];
From: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
commit a0e0cb82804a6a21d9067022c2dfdf80d11da429 upstream
pq_update() can only be called in two places: from the completion
function when the complete (npkts) sequence of packets has been
submitted and processed, or from setup function if a subset of the
packets were submitted (i.e. the error path).
Currently both paths can call pq_update() if an error occurrs. This
race will cause the n_req value to go negative, hanging file_close(),
or cause a crash by freeing the txlist more than once.
Several variables are used to determine SDMA send state. Most of
these are unnecessary, and have code inspectible races between the
setup function and the completion function, in both the send path and
the error path.
The request 'status' value can be set by the setup or by the
completion function. This is code inspectibly racy. Since the status
is not needed in the completion code or by the caller it has been
removed.
The request 'done' value races between usage by the setup and the
completion function. The completion function does not need this.
When the number of processed packets matches npkts, it is done.
The 'has_error' value races between usage of the setup and the
completion function. This can cause incorrect error handling and leave
the n_req in an incorrect value (i.e. negative).
Simplify the code by removing all of the unneeded state checks and
variables.
Clean up iovs node when it is freed.
Eliminate race conditions in the error path:
If all packets are submitted, the completion handler will set the
completion status correctly (ok or aborted).
If all packets are not submitted, the caller must wait until the
submitted packets have completed, and then set the completion status.
These two change eliminate the race condition in the error path.
Cc: <stable(a)vger.kernel.org> # 4.9.0
Reviewed-by: Mitko Haralanov <mitko.haralanov(a)intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn(a)intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
---
drivers/infiniband/hw/hfi1/user_sdma.c | 106 ++++++++++++++------------------
1 file changed, 45 insertions(+), 61 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c
index 018a415..619475c 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -148,11 +148,8 @@
#define TXREQ_FLAGS_REQ_LAST_PKT BIT(0)
/* SDMA request flag bits */
-#define SDMA_REQ_FOR_THREAD 1
-#define SDMA_REQ_SEND_DONE 2
-#define SDMA_REQ_HAVE_AHG 3
-#define SDMA_REQ_HAS_ERROR 4
-#define SDMA_REQ_DONE_ERROR 5
+#define SDMA_REQ_HAVE_AHG 1
+#define SDMA_REQ_HAS_ERROR 2
#define SDMA_PKT_Q_INACTIVE BIT(0)
#define SDMA_PKT_Q_ACTIVE BIT(1)
@@ -252,8 +249,6 @@ struct user_sdma_request {
u64 seqsubmitted;
struct list_head txps;
unsigned long flags;
- /* status of the last txreq completed */
- int status;
};
/*
@@ -546,7 +541,6 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
struct sdma_req_info info;
struct user_sdma_request *req;
u8 opcode, sc, vl;
- int req_queued = 0;
u16 dlid;
u32 selector;
@@ -611,11 +605,13 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
req->data_iovs = req_iovcnt(info.ctrl) - 1; /* subtract header vector */
req->pq = pq;
req->cq = cq;
- req->status = -1;
INIT_LIST_HEAD(&req->txps);
memcpy(&req->info, &info, sizeof(info));
+ /* The request is initialized, count it */
+ atomic_inc(&pq->n_reqs);
+
if (req_opcode(info.ctrl) == EXPECTED) {
/* expected must have a TID info and at least one data vector */
if (req->data_iovs < 2) {
@@ -704,7 +700,7 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
memcpy(&req->iovs[i].iov, iovec + idx++, sizeof(struct iovec));
ret = pin_vector_pages(req, &req->iovs[i]);
if (ret) {
- req->status = ret;
+ req->data_iovs = i;
goto free_req;
}
req->data_len += req->iovs[i].iov.iov_len;
@@ -772,14 +768,10 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
}
set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
- atomic_inc(&pq->n_reqs);
- req_queued = 1;
/* Send the first N packets in the request to buy us some time */
ret = user_sdma_send_pkts(req, pcount);
- if (unlikely(ret < 0 && ret != -EBUSY)) {
- req->status = ret;
+ if (unlikely(ret < 0 && ret != -EBUSY))
goto free_req;
- }
/*
* It is possible that the SDMA engine would have processed all the
@@ -796,17 +788,11 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
* request have been submitted to the SDMA engine. However, it
* will not wait for send completions.
*/
- while (!test_bit(SDMA_REQ_SEND_DONE, &req->flags)) {
+ while (req->seqsubmitted != req->info.npkts) {
ret = user_sdma_send_pkts(req, pcount);
if (ret < 0) {
- if (ret != -EBUSY) {
- req->status = ret;
- set_bit(SDMA_REQ_DONE_ERROR, &req->flags);
- if (ACCESS_ONCE(req->seqcomp) ==
- req->seqsubmitted - 1)
- goto free_req;
- return ret;
- }
+ if (ret != -EBUSY)
+ goto free_req;
wait_event_interruptible_timeout(
pq->busy.wait_dma,
(pq->state == SDMA_PKT_Q_ACTIVE),
@@ -817,10 +803,19 @@ int hfi1_user_sdma_process_request(struct file *fp, struct iovec *iovec,
*count += idx;
return 0;
free_req:
- user_sdma_free_request(req, true);
- if (req_queued)
+ /*
+ * If the submitted seqsubmitted == npkts, the completion routine
+ * controls the final state. If sequbmitted < npkts, wait for any
+ * outstanding packets to finish before cleaning up.
+ */
+ if (req->seqsubmitted < req->info.npkts) {
+ if (req->seqsubmitted)
+ wait_event(pq->busy.wait_dma,
+ (req->seqcomp == req->seqsubmitted - 1));
+ user_sdma_free_request(req, true);
pq_update(pq);
- set_comp_state(pq, cq, info.comp_idx, ERROR, req->status);
+ set_comp_state(pq, cq, info.comp_idx, ERROR, ret);
+ }
return ret;
}
@@ -903,10 +898,8 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
pq = req->pq;
/* If tx completion has reported an error, we are done. */
- if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags)) {
- set_bit(SDMA_REQ_DONE_ERROR, &req->flags);
+ if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags))
return -EFAULT;
- }
/*
* Check if we might have sent the entire request already
@@ -929,10 +922,8 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
* with errors. If so, we are not going to process any
* more packets from this request.
*/
- if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags)) {
- set_bit(SDMA_REQ_DONE_ERROR, &req->flags);
+ if (test_bit(SDMA_REQ_HAS_ERROR, &req->flags))
return -EFAULT;
- }
tx = kmem_cache_alloc(pq->txreq_cache, GFP_KERNEL);
if (!tx)
@@ -1090,7 +1081,6 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
ret = sdma_send_txlist(req->sde, &pq->busy, &req->txps, &count);
req->seqsubmitted += count;
if (req->seqsubmitted == req->info.npkts) {
- set_bit(SDMA_REQ_SEND_DONE, &req->flags);
/*
* The txreq has already been submitted to the HW queue
* so we can free the AHG entry now. Corruption will not
@@ -1489,11 +1479,15 @@ static int set_txreq_header_ahg(struct user_sdma_request *req,
return diff;
}
-/*
- * SDMA tx request completion callback. Called when the SDMA progress
- * state machine gets notification that the SDMA descriptors for this
- * tx request have been processed by the DMA engine. Called in
- * interrupt context.
+/**
+ * user_sdma_txreq_cb() - SDMA tx request completion callback.
+ * @txreq: valid sdma tx request
+ * @status: success/failure of request
+ *
+ * Called when the SDMA progress state machine gets notification that
+ * the SDMA descriptors for this tx request have been processed by the
+ * DMA engine. Called in interrupt context.
+ * Only do work on completed sequences.
*/
static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
{
@@ -1502,7 +1496,7 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
struct user_sdma_request *req;
struct hfi1_user_sdma_pkt_q *pq;
struct hfi1_user_sdma_comp_q *cq;
- u16 idx;
+ enum hfi1_sdma_comp_state state = COMPLETE;
if (!tx->req)
return;
@@ -1515,31 +1509,19 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
SDMA_DBG(req, "SDMA completion with error %d",
status);
set_bit(SDMA_REQ_HAS_ERROR, &req->flags);
+ state = ERROR;
}
req->seqcomp = tx->seqnum;
kmem_cache_free(pq->txreq_cache, tx);
- tx = NULL;
-
- idx = req->info.comp_idx;
- if (req->status == -1 && status == SDMA_TXREQ_S_OK) {
- if (req->seqcomp == req->info.npkts - 1) {
- req->status = 0;
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, COMPLETE, 0);
- }
- } else {
- if (status != SDMA_TXREQ_S_OK)
- req->status = status;
- if (req->seqcomp == (ACCESS_ONCE(req->seqsubmitted) - 1) &&
- (test_bit(SDMA_REQ_SEND_DONE, &req->flags) ||
- test_bit(SDMA_REQ_DONE_ERROR, &req->flags))) {
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, ERROR, req->status);
- }
- }
+
+ /* sequence isn't complete? We are done */
+ if (req->seqcomp != req->info.npkts - 1)
+ return;
+
+ user_sdma_free_request(req, false);
+ set_comp_state(pq, cq, req->info.comp_idx, state, status);
+ pq_update(pq);
}
static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq)
@@ -1572,6 +1554,8 @@ static void user_sdma_free_request(struct user_sdma_request *req, bool unpin)
if (!node)
continue;
+ req->iovs[i].node = NULL;
+
if (unpin)
hfi1_mmu_rb_remove(req->pq->handler,
&node->rb);
From: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
commit a0e0cb82804a6a21d9067022c2dfdf80d11da429 upstream
pq_update() can only be called in two places: from the completion
function when the complete (npkts) sequence of packets has been
submitted and processed, or from setup function if a subset of the
packets were submitted (i.e. the error path).
Currently both paths can call pq_update() if an error occurrs. This
race will cause the n_req value to go negative, hanging file_close(),
or cause a crash by freeing the txlist more than once.
Several variables are used to determine SDMA send state. Most of
these are unnecessary, and have code inspectible races between the
setup function and the completion function, in both the send path and
the error path.
The request 'status' value can be set by the setup or by the
completion function. This is code inspectibly racy. Since the status
is not needed in the completion code or by the caller it has been
removed.
The request 'done' value races between usage by the setup and the
completion function. The completion function does not need this.
When the number of processed packets matches npkts, it is done.
The 'has_error' value races between usage of the setup and the
completion function. This can cause incorrect error handling and leave
the n_req in an incorrect value (i.e. negative).
Simplify the code by removing all of the unneeded state checks and
variables.
Clean up iovs node when it is freed.
Eliminate race conditions in the error path:
If all packets are submitted, the completion handler will set the
completion status correctly (ok or aborted).
If all packets are not submitted, the caller must wait until the
submitted packets have completed, and then set the completion status.
These two change eliminate the race condition in the error path.
Cc: <stable(a)vger.kernel.org> # 4.18.x+
Reviewed-by: Mitko Haralanov <mitko.haralanov(a)intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn(a)intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro(a)intel.com>
Signed-off-by: Jason Gunthorpe <jgg(a)mellanox.com>
---
drivers/infiniband/hw/hfi1/user_sdma.c | 87 ++++++++++++++------------------
drivers/infiniband/hw/hfi1/user_sdma.h | 3 -
2 files changed, 39 insertions(+), 51 deletions(-)
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.c b/drivers/infiniband/hw/hfi1/user_sdma.c
index 5c88706..39134dd 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -328,7 +328,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
u8 opcode, sc, vl;
u16 pkey;
u32 slid;
- int req_queued = 0;
u16 dlid;
u32 selector;
@@ -392,7 +391,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->data_len = 0;
req->pq = pq;
req->cq = cq;
- req->status = -1;
req->ahg_idx = -1;
req->iov_idx = 0;
req->sent = 0;
@@ -400,12 +398,14 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->seqcomp = 0;
req->seqsubmitted = 0;
req->tids = NULL;
- req->done = 0;
req->has_error = 0;
INIT_LIST_HEAD(&req->txps);
memcpy(&req->info, &info, sizeof(info));
+ /* The request is initialized, count it */
+ atomic_inc(&pq->n_reqs);
+
if (req_opcode(info.ctrl) == EXPECTED) {
/* expected must have a TID info and at least one data vector */
if (req->data_iovs < 2) {
@@ -500,7 +500,6 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
ret = pin_vector_pages(req, &req->iovs[i]);
if (ret) {
req->data_iovs = i;
- req->status = ret;
goto free_req;
}
req->data_len += req->iovs[i].iov.iov_len;
@@ -561,14 +560,10 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
req->ahg_idx = sdma_ahg_alloc(req->sde);
set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
- atomic_inc(&pq->n_reqs);
- req_queued = 1;
/* Send the first N packets in the request to buy us some time */
ret = user_sdma_send_pkts(req, pcount);
- if (unlikely(ret < 0 && ret != -EBUSY)) {
- req->status = ret;
+ if (unlikely(ret < 0 && ret != -EBUSY))
goto free_req;
- }
/*
* It is possible that the SDMA engine would have processed all the
@@ -588,14 +583,8 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
while (req->seqsubmitted != req->info.npkts) {
ret = user_sdma_send_pkts(req, pcount);
if (ret < 0) {
- if (ret != -EBUSY) {
- req->status = ret;
- WRITE_ONCE(req->has_error, 1);
- if (READ_ONCE(req->seqcomp) ==
- req->seqsubmitted - 1)
- goto free_req;
- return ret;
- }
+ if (ret != -EBUSY)
+ goto free_req;
wait_event_interruptible_timeout(
pq->busy.wait_dma,
(pq->state == SDMA_PKT_Q_ACTIVE),
@@ -606,10 +595,19 @@ int hfi1_user_sdma_process_request(struct hfi1_filedata *fd,
*count += idx;
return 0;
free_req:
- user_sdma_free_request(req, true);
- if (req_queued)
+ /*
+ * If the submitted seqsubmitted == npkts, the completion routine
+ * controls the final state. If sequbmitted < npkts, wait for any
+ * outstanding packets to finish before cleaning up.
+ */
+ if (req->seqsubmitted < req->info.npkts) {
+ if (req->seqsubmitted)
+ wait_event(pq->busy.wait_dma,
+ (req->seqcomp == req->seqsubmitted - 1));
+ user_sdma_free_request(req, true);
pq_update(pq);
- set_comp_state(pq, cq, info.comp_idx, ERROR, req->status);
+ set_comp_state(pq, cq, info.comp_idx, ERROR, ret);
+ }
return ret;
}
@@ -917,7 +915,6 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
ret = sdma_send_txlist(req->sde, &pq->busy, &req->txps, &count);
req->seqsubmitted += count;
if (req->seqsubmitted == req->info.npkts) {
- WRITE_ONCE(req->done, 1);
/*
* The txreq has already been submitted to the HW queue
* so we can free the AHG entry now. Corruption will not
@@ -1365,11 +1362,15 @@ static int set_txreq_header_ahg(struct user_sdma_request *req,
return idx;
}
-/*
- * SDMA tx request completion callback. Called when the SDMA progress
- * state machine gets notification that the SDMA descriptors for this
- * tx request have been processed by the DMA engine. Called in
- * interrupt context.
+/**
+ * user_sdma_txreq_cb() - SDMA tx request completion callback.
+ * @txreq: valid sdma tx request
+ * @status: success/failure of request
+ *
+ * Called when the SDMA progress state machine gets notification that
+ * the SDMA descriptors for this tx request have been processed by the
+ * DMA engine. Called in interrupt context.
+ * Only do work on completed sequences.
*/
static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
{
@@ -1378,7 +1379,7 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
struct user_sdma_request *req;
struct hfi1_user_sdma_pkt_q *pq;
struct hfi1_user_sdma_comp_q *cq;
- u16 idx;
+ enum hfi1_sdma_comp_state state = COMPLETE;
if (!tx->req)
return;
@@ -1391,31 +1392,19 @@ static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
SDMA_DBG(req, "SDMA completion with error %d",
status);
WRITE_ONCE(req->has_error, 1);
+ state = ERROR;
}
req->seqcomp = tx->seqnum;
kmem_cache_free(pq->txreq_cache, tx);
- tx = NULL;
-
- idx = req->info.comp_idx;
- if (req->status == -1 && status == SDMA_TXREQ_S_OK) {
- if (req->seqcomp == req->info.npkts - 1) {
- req->status = 0;
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, COMPLETE, 0);
- }
- } else {
- if (status != SDMA_TXREQ_S_OK)
- req->status = status;
- if (req->seqcomp == (READ_ONCE(req->seqsubmitted) - 1) &&
- (READ_ONCE(req->done) ||
- READ_ONCE(req->has_error))) {
- user_sdma_free_request(req, false);
- pq_update(pq);
- set_comp_state(pq, cq, idx, ERROR, req->status);
- }
- }
+
+ /* sequence isn't complete? We are done */
+ if (req->seqcomp != req->info.npkts - 1)
+ return;
+
+ user_sdma_free_request(req, false);
+ set_comp_state(pq, cq, req->info.comp_idx, state, status);
+ pq_update(pq);
}
static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq)
@@ -1448,6 +1437,8 @@ static void user_sdma_free_request(struct user_sdma_request *req, bool unpin)
if (!node)
continue;
+ req->iovs[i].node = NULL;
+
if (unpin)
hfi1_mmu_rb_remove(req->pq->handler,
&node->rb);
diff --git a/drivers/infiniband/hw/hfi1/user_sdma.h b/drivers/infiniband/hw/hfi1/user_sdma.h
index d2bc77f..0ae0645 100644
--- a/drivers/infiniband/hw/hfi1/user_sdma.h
+++ b/drivers/infiniband/hw/hfi1/user_sdma.h
@@ -205,8 +205,6 @@ struct user_sdma_request {
/* Writeable fields shared with interrupt */
u64 seqcomp ____cacheline_aligned_in_smp;
u64 seqsubmitted;
- /* status of the last txreq completed */
- int status;
/* Send side fields */
struct list_head txps ____cacheline_aligned_in_smp;
@@ -228,7 +226,6 @@ struct user_sdma_request {
u16 tididx;
/* progress index moving along the iovs array */
u8 iov_idx;
- u8 done;
u8 has_error;
struct user_sdma_iovec iovs[MAX_VECTORS_PER_REQ];
Snip
> > > >
> > > > On Tue, Nov 20, 2018 at 10:03:59AM +0100, Jean Delvare wrote:
> > > > > On Tue, 20 Nov 2018 09:54:19 +0100, Greg KH wrote:
> > > > > > Ok, I'll go revert this, but shouldn't it also be reverted in
> > > > > > Linus's tree as well?
> > > > >
Hi Jean and Greg,
> > > > > No. As I understand it (with my limited knowledge of ACPICA),
> > > > > the change itself is correct. The problem is that it will detect
> > > > > resource conflicts which were unnoticed before, and that will
> > > > > prevent drivers from loading. Some of them may be addressed with
> > > > > driver fixes or new drivers. Others are false positives (due to
> > > > > bogus BIOS) which users will have to work around with
> > > > > acpi_resource_conflicts=lax. We have been through this before,
> > > > > nothing new really, but it takes years to address such problems.
> > > > > This just
> > can't be done in stable kernel series.
> > >
> > > I would like to give you more context.
> > >
> > > There was a fairly complicated change that occurred in 4.17 and we
> > > caused a regression by forgetting to add region addresses in a
> > > global list during operation region initialization. We found the
> > > regression when bug reporters tried to boot their macbook pro and
> > > asus laptop and saw that there was a difference in behavior when
> > > drivers are being loaded
> >
> > Commit 4abb951b73ff0a8a979113ef185651aa3c8da19b has no Fixes tag.
> > Which commit introduced the regression? Can you point me to the
> > associated bug reports?
>
> Sorry about the missing fixed tag. It's supposed to fix
> 5a8361f7ecceaed64b4064000d16cb703462be49
> ACPICA: Integrate package handling with module-level code
>
> >
> > > So what I am trying to say is that we have been emitting these
> > > errors for a while before we caused the regression. The goal with
> > > this patch is to keep the behavior the same as kernels older than
> > > 4.17 where warnings are printed to dmesg due to resource conflicts.
> >
> > Fine with me for upstream, but I still need to be convinced that it
> > belongs to stable series. For now, the only 2 related bugs I know of
> > are
> > #200011 (which is NOT fixed by commit
>
> This bug is kind of messy. It's like 2 bugs in 1 report. This patch fixes a part of
> their problem. Another part has to do with ECDT load order.
>
> Would it help to open a separate bug report for this particular issue and close
> it?
> I think this might be a little confusing to someone who reads the commit
> message.
>
> > 4abb951b73ff0a8a979113ef185651aa3c8da19b) and #201721 (which is
> caused
>
> I did not know about this bug report.
>
> > by that commit). 1 vs 0, revert wins. If you want me to change my
> > mind, you must provide additional data points proving that commit
> > 4abb951b73ff0a8a979113ef185651aa3c8da19b solves more functional
> > regressions than it causes.
Here's an additional data point from the discussion on bz201721.
The user started using fancontrol during the period where resource conflict
checking was unintentionally removed. If the reporter tries using fancontrol
on 4.18.13, they report that fancontrol does not work. So it was basically
always the case that he needed to use acpi_resource_conflicts=lax for a short
period of time.
I understand that this "breaks" this machine but we shouldn't be reverting
resource conflict checking for all other drivers just because of fancontrol. By
removing this check, we are suppressing warnings and changing the loading behavior
of other drivers as well.
Thanks,
Erik
>
> If we do not have include this commit, then we are in a state where resource
> conflicts are not properly detected. These detections help kernels decide
> which drivers to load. However, I do see your point about this breaking the
> reporter's machine and it's possible that I may have missed something.
>
> We should get the reporter's dmesg for older kernels.
>
> It would be ideal to resolve this bug AND add region addresses in the global
> address list.
> I've asked the bug reporter in #201721 for more information. We can delay
> this patch for now and look at the reporter's issue more carefully.
>
> Thanks for all of the information!
>
> Erik
> >
> > Thanks,
> > --
> > Jean Delvare
> > SUSE L3 Support
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From cbffaf7aa09edbaea2bc7dc440c945297095e2fd Mon Sep 17 00:00:00 2001
From: Alexander Stein <alexander.stein(a)systec-electronic.com>
Date: Thu, 11 Oct 2018 17:01:25 +0200
Subject: [PATCH] can: flexcan: Always use last mailbox for TX
Essentially this patch moves the TX mailbox to position 63, regardless
of timestamp based offloading or RX FIFO. So mainly the iflag register
usage regarding TX has changed. The rest is consolidating RX FIFO and
timestamp offloading as they now use both the same TX mailbox.
The reason is a very annoying behavior regarding sending RTR frames when
_not_ using RX FIFO:
If a TX mailbox sent a RTR frame it becomes a RX mailbox. For that
reason flexcan_irq disables the TX mailbox again. But if during the time
the RTR was sent and the TX mailbox is disabled a new CAN frames is
received, it is lost without notice. The reason is that so-called
"Move-in" process starts from the lowest mailbox which happen to be a TX
mailbox set to EMPTY.
Steps to reproduce (I used an imx7d):
1. generate regular bursts of messages
2. send a RTR from flexcan with higher priority than burst messages every
1ms, e.g. cangen -I 0x100 -L 0 -g 1 -R can0
3. notice a lost message without notification after some seconds
When running an iperf in parallel this problem is occurring even more
frequently. Using filters is not possible as at least one single CAN-ID
is allowed. Handling the TX MB during RX is also not possible as there
is no race-free disable of RX MB.
There is still a slight window when the described problem can occur. But
for that all RX MB must be in use which is essentially next to an
overrun. Still there will be no indication if it ever occurs.
Signed-off-by: Alexander Stein <alexander.stein(a)systec-electronic.com>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 0431f8d05518..677c41701cf3 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -135,13 +135,12 @@
/* FLEXCAN interrupt flag register (IFLAG) bits */
/* Errata ERR005829 step7: Reserve first valid MB */
-#define FLEXCAN_TX_MB_RESERVED_OFF_FIFO 8
-#define FLEXCAN_TX_MB_OFF_FIFO 9
+#define FLEXCAN_TX_MB_RESERVED_OFF_FIFO 8
#define FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP 0
-#define FLEXCAN_TX_MB_OFF_TIMESTAMP 1
-#define FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST (FLEXCAN_TX_MB_OFF_TIMESTAMP + 1)
-#define FLEXCAN_RX_MB_OFF_TIMESTAMP_LAST 63
-#define FLEXCAN_IFLAG_MB(x) BIT(x)
+#define FLEXCAN_TX_MB 63
+#define FLEXCAN_RX_MB_OFF_TIMESTAMP_FIRST (FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP + 1)
+#define FLEXCAN_RX_MB_OFF_TIMESTAMP_LAST (FLEXCAN_TX_MB - 1)
+#define FLEXCAN_IFLAG_MB(x) BIT(x & 0x1f)
#define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7)
#define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6)
#define FLEXCAN_IFLAG_RX_FIFO_AVAILABLE BIT(5)
@@ -737,9 +736,9 @@ static inline u64 flexcan_read_reg_iflag_rx(struct flexcan_priv *priv)
struct flexcan_regs __iomem *regs = priv->regs;
u32 iflag1, iflag2;
- iflag2 = priv->read(®s->iflag2) & priv->reg_imask2_default;
- iflag1 = priv->read(®s->iflag1) & priv->reg_imask1_default &
+ iflag2 = priv->read(®s->iflag2) & priv->reg_imask2_default &
~FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
+ iflag1 = priv->read(®s->iflag1) & priv->reg_imask1_default;
return (u64)iflag2 << 32 | iflag1;
}
@@ -751,11 +750,9 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
struct flexcan_priv *priv = netdev_priv(dev);
struct flexcan_regs __iomem *regs = priv->regs;
irqreturn_t handled = IRQ_NONE;
- u32 reg_iflag1, reg_esr;
+ u32 reg_iflag2, reg_esr;
enum can_state last_state = priv->can.state;
- reg_iflag1 = priv->read(®s->iflag1);
-
/* reception interrupt */
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
u64 reg_iflag;
@@ -769,6 +766,9 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
break;
}
} else {
+ u32 reg_iflag1;
+
+ reg_iflag1 = priv->read(®s->iflag1);
if (reg_iflag1 & FLEXCAN_IFLAG_RX_FIFO_AVAILABLE) {
handled = IRQ_HANDLED;
can_rx_offload_irq_offload_fifo(&priv->offload);
@@ -784,8 +784,10 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
}
}
+ reg_iflag2 = priv->read(®s->iflag2);
+
/* transmission complete interrupt */
- if (reg_iflag1 & FLEXCAN_IFLAG_MB(priv->tx_mb_idx)) {
+ if (reg_iflag2 & FLEXCAN_IFLAG_MB(priv->tx_mb_idx)) {
handled = IRQ_HANDLED;
stats->tx_bytes += can_get_echo_skb(dev, 0);
stats->tx_packets++;
@@ -794,7 +796,7 @@ static irqreturn_t flexcan_irq(int irq, void *dev_id)
/* after sending a RTR frame MB is in RX mode */
priv->write(FLEXCAN_MB_CODE_TX_INACTIVE,
&priv->tx_mb->can_ctrl);
- priv->write(FLEXCAN_IFLAG_MB(priv->tx_mb_idx), ®s->iflag1);
+ priv->write(FLEXCAN_IFLAG_MB(priv->tx_mb_idx), ®s->iflag2);
netif_wake_queue(dev);
}
@@ -936,15 +938,13 @@ static int flexcan_chip_start(struct net_device *dev)
reg_mcr &= ~FLEXCAN_MCR_MAXMB(0xff);
reg_mcr |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_HALT | FLEXCAN_MCR_SUPV |
FLEXCAN_MCR_WRN_EN | FLEXCAN_MCR_SRX_DIS | FLEXCAN_MCR_IRMQ |
- FLEXCAN_MCR_IDAM_C;
+ FLEXCAN_MCR_IDAM_C | FLEXCAN_MCR_MAXMB(priv->tx_mb_idx);
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
+ if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
reg_mcr &= ~FLEXCAN_MCR_FEN;
- reg_mcr |= FLEXCAN_MCR_MAXMB(priv->offload.mb_last);
- } else {
- reg_mcr |= FLEXCAN_MCR_FEN |
- FLEXCAN_MCR_MAXMB(priv->tx_mb_idx);
- }
+ else
+ reg_mcr |= FLEXCAN_MCR_FEN;
+
netdev_dbg(dev, "%s: writing mcr=0x%08x", __func__, reg_mcr);
priv->write(reg_mcr, ®s->mcr);
@@ -987,16 +987,17 @@ static int flexcan_chip_start(struct net_device *dev)
priv->write(reg_ctrl2, ®s->ctrl2);
}
- /* clear and invalidate all mailboxes first */
- for (i = priv->tx_mb_idx; i < ARRAY_SIZE(regs->mb); i++) {
- priv->write(FLEXCAN_MB_CODE_RX_INACTIVE,
- ®s->mb[i].can_ctrl);
- }
-
if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
- for (i = priv->offload.mb_first; i <= priv->offload.mb_last; i++)
+ for (i = priv->offload.mb_first; i <= priv->offload.mb_last; i++) {
priv->write(FLEXCAN_MB_CODE_RX_EMPTY,
®s->mb[i].can_ctrl);
+ }
+ } else {
+ /* clear and invalidate unused mailboxes first */
+ for (i = FLEXCAN_TX_MB_RESERVED_OFF_FIFO; i <= ARRAY_SIZE(regs->mb); i++) {
+ priv->write(FLEXCAN_MB_CODE_RX_INACTIVE,
+ ®s->mb[i].can_ctrl);
+ }
}
/* Errata ERR005829: mark first TX mailbox as INACTIVE */
@@ -1360,17 +1361,15 @@ static int flexcan_probe(struct platform_device *pdev)
priv->devtype_data = devtype_data;
priv->reg_xceiver = reg_xceiver;
- if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP) {
- priv->tx_mb_idx = FLEXCAN_TX_MB_OFF_TIMESTAMP;
+ if (priv->devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)
priv->tx_mb_reserved = ®s->mb[FLEXCAN_TX_MB_RESERVED_OFF_TIMESTAMP];
- } else {
- priv->tx_mb_idx = FLEXCAN_TX_MB_OFF_FIFO;
+ else
priv->tx_mb_reserved = ®s->mb[FLEXCAN_TX_MB_RESERVED_OFF_FIFO];
- }
+ priv->tx_mb_idx = FLEXCAN_TX_MB;
priv->tx_mb = ®s->mb[priv->tx_mb_idx];
- priv->reg_imask1_default = FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
- priv->reg_imask2_default = 0;
+ priv->reg_imask1_default = 0;
+ priv->reg_imask2_default = FLEXCAN_IFLAG_MB(priv->tx_mb_idx);
priv->offload.mailbox_read = flexcan_mailbox_read;
The patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From e01ad46d53b59720c6ae69963ee1756506954c85 Mon Sep 17 00:00:00 2001
From: Jianchao Wang <jianchao.w.wang(a)oracle.com>
Date: Fri, 12 Oct 2018 18:07:28 +0800
Subject: [PATCH] blk-mq: fallback to previous nr_hw_queues when updating fails
When we try to increate the nr_hw_queues, we may fail due to
shortage of memory or other reason, then blk_mq_realloc_hw_ctxs stops
and some entries in q->queue_hw_ctx are left with NULL. However,
because queue map has been updated with new nr_hw_queues, some cpus
have been mapped to hw queue which just encounters allocation failure,
thus blk_mq_map_queue could return NULL. This will cause panic in
following blk_mq_map_swqueue.
To fix it, when increase nr_hw_queues fails, fallback to previous
nr_hw_queues and post warning. At the same time, driver's .map_queues
usually use completion irq affinity to map hw and cpu, fallback
nr_hw_queues will cause lack of some cpu's map to hw, so use default
blk_mq_map_queues to do that.
Reported-by: syzbot+83e8cbe702263932d9d4(a)syzkaller.appspotmail.com
Signed-off-by: Jianchao Wang <jianchao.w.wang(a)oracle.com>
Signed-off-by: Jens Axboe <axboe(a)kernel.dk>
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 941f51380077..c2ecd64a2403 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2557,7 +2557,7 @@ static struct blk_mq_hw_ctx *blk_mq_alloc_and_init_hctx(
static void blk_mq_realloc_hw_ctxs(struct blk_mq_tag_set *set,
struct request_queue *q)
{
- int i, j;
+ int i, j, end;
struct blk_mq_hw_ctx **hctxs = q->queue_hw_ctx;
/* protect against switching io scheduler */
@@ -2591,8 +2591,20 @@ static void blk_mq_realloc_hw_ctxs(struct blk_mq_tag_set *set,
break;
}
}
+ /*
+ * Increasing nr_hw_queues fails. Free the newly allocated
+ * hctxs and keep the previous q->nr_hw_queues.
+ */
+ if (i != set->nr_hw_queues) {
+ j = q->nr_hw_queues;
+ end = i;
+ } else {
+ j = i;
+ end = q->nr_hw_queues;
+ q->nr_hw_queues = set->nr_hw_queues;
+ }
- for (j = i; j < q->nr_hw_queues; j++) {
+ for (; j < end; j++) {
struct blk_mq_hw_ctx *hctx = hctxs[j];
if (hctx) {
@@ -2604,7 +2616,6 @@ static void blk_mq_realloc_hw_ctxs(struct blk_mq_tag_set *set,
}
}
- q->nr_hw_queues = i;
mutex_unlock(&q->sysfs_lock);
}
@@ -2989,6 +3000,7 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
{
struct request_queue *q;
LIST_HEAD(head);
+ int prev_nr_hw_queues;
lockdep_assert_held(&set->tag_list_lock);
@@ -3017,10 +3029,19 @@ static void __blk_mq_update_nr_hw_queues(struct blk_mq_tag_set *set,
blk_mq_sysfs_unregister(q);
}
+ prev_nr_hw_queues = set->nr_hw_queues;
set->nr_hw_queues = nr_hw_queues;
blk_mq_update_queue_map(set);
+fallback:
list_for_each_entry(q, &set->tag_list, tag_set_list) {
blk_mq_realloc_hw_ctxs(set, q);
+ if (q->nr_hw_queues != set->nr_hw_queues) {
+ pr_warn("Increasing nr_hw_queues to %d fails, fallback to %d\n",
+ nr_hw_queues, prev_nr_hw_queues);
+ set->nr_hw_queues = prev_nr_hw_queues;
+ blk_mq_map_queues(set);
+ goto fallback;
+ }
blk_mq_map_swqueue(q);
}
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 2f31a67f01a8beb22cae754c53522cb61a005750 Mon Sep 17 00:00:00 2001
From: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Date: Thu, 15 Nov 2018 11:38:41 +0200
Subject: [PATCH] usb: xhci: Prevent bus suspend if a port connect change or
polling state is detected
USB3 roothub might autosuspend before a plugged USB3 device is detected,
causing USB3 device enumeration failure.
USB3 devices don't show up as connected and enabled until USB3 link trainig
completes. On a fast booting platform with a slow USB3 link training the
link might reach the connected enabled state just as the bus is suspending.
If this device is discovered first time by the xhci_bus_suspend() routine
it will be put to U3 suspended state like the other ports which failed to
suspend earlier.
The hub thread will notice the connect change and resume the bus,
moving the port back to U0
This U0 -> U3 -> U0 transition right after being connected seems to be
too much for some devices, causing them to first go to SS.Inactive state,
and finally end up stuck in a polling state with reset asserted
Fix this by failing the bus suspend if a port has a connect change or is
in a polling state in xhci_bus_suspend().
Don't do any port changes until all ports are checked, buffer all port
changes and only write them in the end if suspend can proceed
Cc: stable(a)vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index da98a11244e2..94aca1b5ac8a 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1474,15 +1474,18 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
unsigned long flags;
struct xhci_hub *rhub;
struct xhci_port **ports;
+ u32 portsc_buf[USB_MAXCHILDREN];
+ bool wake_enabled;
rhub = xhci_get_rhub(hcd);
ports = rhub->ports;
max_ports = rhub->num_ports;
bus_state = &xhci->bus_state[hcd_index(hcd)];
+ wake_enabled = hcd->self.root_hub->do_remote_wakeup;
spin_lock_irqsave(&xhci->lock, flags);
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (bus_state->resuming_ports || /* USB2 */
bus_state->port_remote_wakeup) { /* USB3 */
spin_unlock_irqrestore(&xhci->lock, flags);
@@ -1490,26 +1493,36 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
return -EBUSY;
}
}
-
- port_index = max_ports;
+ /*
+ * Prepare ports for suspend, but don't write anything before all ports
+ * are checked and we know bus suspend can proceed
+ */
bus_state->bus_suspended = 0;
+ port_index = max_ports;
while (port_index--) {
- /* suspend the port if the port is not suspended */
u32 t1, t2;
- int slot_id;
t1 = readl(ports[port_index]->addr);
t2 = xhci_port_state_to_neutral(t1);
+ portsc_buf[port_index] = 0;
- if ((t1 & PORT_PE) && !(t1 & PORT_PLS_MASK)) {
- xhci_dbg(xhci, "port %d not suspended\n", port_index);
- slot_id = xhci_find_slot_id_by_port(hcd, xhci,
- port_index + 1);
- if (slot_id) {
+ /* Bail out if a USB3 port has a new device in link training */
+ if ((t1 & PORT_PLS_MASK) == XDEV_POLLING) {
+ bus_state->bus_suspended = 0;
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port in polling\n");
+ return -EBUSY;
+ }
+
+ /* suspend ports in U0, or bail out for new connect changes */
+ if ((t1 & PORT_PE) && (t1 & PORT_PLS_MASK) == XDEV_U0) {
+ if ((t1 & PORT_CSC) && wake_enabled) {
+ bus_state->bus_suspended = 0;
spin_unlock_irqrestore(&xhci->lock, flags);
- xhci_stop_device(xhci, slot_id, 1);
- spin_lock_irqsave(&xhci->lock, flags);
+ xhci_dbg(xhci, "Bus suspend bailout, port connect change\n");
+ return -EBUSY;
}
+ xhci_dbg(xhci, "port %d not suspended\n", port_index);
t2 &= ~PORT_PLS_MASK;
t2 |= PORT_LINK_STROBE | XDEV_U3;
set_bit(port_index, &bus_state->bus_suspended);
@@ -1518,7 +1531,7 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
* including the USB 3.0 roothub, but only if CONFIG_PM
* is enabled, so also enable remote wake here.
*/
- if (hcd->self.root_hub->do_remote_wakeup) {
+ if (wake_enabled) {
if (t1 & PORT_CONNECT) {
t2 |= PORT_WKOC_E | PORT_WKDISC_E;
t2 &= ~PORT_WKCONN_E;
@@ -1538,7 +1551,26 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
t1 = xhci_port_state_to_neutral(t1);
if (t1 != t2)
- writel(t2, ports[port_index]->addr);
+ portsc_buf[port_index] = t2;
+ }
+
+ /* write port settings, stopping and suspending ports if needed */
+ port_index = max_ports;
+ while (port_index--) {
+ if (!portsc_buf[port_index])
+ continue;
+ if (test_bit(port_index, &bus_state->bus_suspended)) {
+ int slot_id;
+
+ slot_id = xhci_find_slot_id_by_port(hcd, xhci,
+ port_index + 1);
+ if (slot_id) {
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ xhci_stop_device(xhci, slot_id, 1);
+ spin_lock_irqsave(&xhci->lock, flags);
+ }
+ }
+ writel(portsc_buf[port_index], ports[port_index]->addr);
}
hcd->state = HC_STATE_SUSPENDED;
bus_state->next_statechange = jiffies + msecs_to_jiffies(10);
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 11644a7659529730eaf2f166efaabe7c3dc7af8c Mon Sep 17 00:00:00 2001
From: "Cherian, George" <George.Cherian(a)cavium.com>
Date: Fri, 9 Nov 2018 17:21:22 +0200
Subject: [PATCH] xhci: Add quirk to workaround the errata seen on Cavium
Thunder-X2 Soc
Implement workaround for ThunderX2 Errata-129 (documented in
CN99XX Known Issues" available at Cavium support site).
As per ThunderX2errata-129, USB 2 device may come up as USB 1
if a connection to a USB 1 device is followed by another connection to
a USB 2 device, the link will come up as USB 1 for the USB 2 device.
Resolution: Reset the PHY after the USB 1 device is disconnected.
The PHY reset sequence is done using private registers in XHCI register
space. After the PHY is reset we check for the PLL lock status and retry
the operation if it fails. From our tests, retrying 4 times is sufficient.
Add a new quirk flag XHCI_RESET_PLL_ON_DISCONNECT to invoke the workaround
in handle_xhci_port_status().
Cc: stable(a)vger.kernel.org
Signed-off-by: George Cherian <george.cherian(a)cavium.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 1fb448cd2667..a9515265db4d 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -248,6 +248,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
if (pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241)
xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7;
+ if ((pdev->vendor == PCI_VENDOR_ID_BROADCOM ||
+ pdev->vendor == PCI_VENDOR_ID_CAVIUM) &&
+ pdev->device == 0x9026)
+ xhci->quirks |= XHCI_RESET_PLL_ON_DISCONNECT;
+
if (xhci->quirks & XHCI_RESET_ON_RESUME)
xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
"QUIRK: Resetting on resume");
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 250b758efe9f..65750582133f 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1521,6 +1521,35 @@ static void handle_device_notification(struct xhci_hcd *xhci,
usb_wakeup_notification(udev->parent, udev->portnum);
}
+/*
+ * Quirk hanlder for errata seen on Cavium ThunderX2 processor XHCI
+ * Controller.
+ * As per ThunderX2errata-129 USB 2 device may come up as USB 1
+ * If a connection to a USB 1 device is followed by another connection
+ * to a USB 2 device.
+ *
+ * Reset the PHY after the USB device is disconnected if device speed
+ * is less than HCD_USB3.
+ * Retry the reset sequence max of 4 times checking the PLL lock status.
+ *
+ */
+static void xhci_cavium_reset_phy_quirk(struct xhci_hcd *xhci)
+{
+ struct usb_hcd *hcd = xhci_to_hcd(xhci);
+ u32 pll_lock_check;
+ u32 retry_count = 4;
+
+ do {
+ /* Assert PHY reset */
+ writel(0x6F, hcd->regs + 0x1048);
+ udelay(10);
+ /* De-assert the PHY reset */
+ writel(0x7F, hcd->regs + 0x1048);
+ udelay(200);
+ pll_lock_check = readl(hcd->regs + 0x1070);
+ } while (!(pll_lock_check & 0x1) && --retry_count);
+}
+
static void handle_port_status(struct xhci_hcd *xhci,
union xhci_trb *event)
{
@@ -1654,8 +1683,12 @@ static void handle_port_status(struct xhci_hcd *xhci,
goto cleanup;
}
- if (hcd->speed < HCD_USB3)
+ if (hcd->speed < HCD_USB3) {
xhci_test_and_clear_bit(xhci, port, PORT_PLC);
+ if ((xhci->quirks & XHCI_RESET_PLL_ON_DISCONNECT) &&
+ (portsc & PORT_CSC) && !(portsc & PORT_CONNECT))
+ xhci_cavium_reset_phy_quirk(xhci);
+ }
cleanup:
/* Update event ring dequeue pointer before dropping the lock */
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 5f0c4f197f13..260b259b72bc 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1849,6 +1849,7 @@ struct xhci_hcd {
#define XHCI_INTEL_USB_ROLE_SW BIT_ULL(31)
#define XHCI_ZERO_64B_REGS BIT_ULL(32)
#define XHCI_DEFAULT_PM_RUNTIME_ALLOW BIT_ULL(33)
+#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
unsigned int num_active_eps;
unsigned int limit_active_eps;
The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 958c0bd86075d4ef1c936998deefe1947e539240 Mon Sep 17 00:00:00 2001
From: Aaron Ma <aaron.ma(a)canonical.com>
Date: Fri, 9 Nov 2018 17:21:20 +0200
Subject: [PATCH] usb: xhci: fix uninitialized completion when USB3 port got
wrong status
Realtek USB3.0 Card Reader [0bda:0328] reports wrong port status on
Cannon lake PCH USB3.1 xHCI [8086:a36d] after resume from S3,
after clear port reset it works fine.
Since this device is registered on USB3 roothub at boot,
when port status reports not superspeed, xhci_get_port_status will call
an uninitialized completion in bus_state[0].
Kernel will hang because of NULL pointer.
Restrict the USB2 resume status check in USB2 roothub to fix hang issue.
Cc: stable(a)vger.kernel.org
Signed-off-by: Aaron Ma <aaron.ma(a)canonical.com>
Signed-off-by: Mathias Nyman <mathias.nyman(a)linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 12eea73d9f20..60e4ac7ae4f8 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -876,7 +876,7 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,
status |= USB_PORT_STAT_SUSPEND;
}
if ((raw_port_status & PORT_PLS_MASK) == XDEV_RESUME &&
- !DEV_SUPERSPEED_ANY(raw_port_status)) {
+ !DEV_SUPERSPEED_ANY(raw_port_status) && hcd->speed < HCD_USB3) {
if ((raw_port_status & PORT_RESET) ||
!(raw_port_status & PORT_PE))
return 0xffffffff;
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 730a6ecd85fc..250b758efe9f 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -1646,7 +1646,7 @@ static void handle_port_status(struct xhci_hcd *xhci,
* RExit to a disconnect state). If so, let the the driver know it's
* out of the RExit state.
*/
- if (!DEV_SUPERSPEED_ANY(portsc) &&
+ if (!DEV_SUPERSPEED_ANY(portsc) && hcd->speed < HCD_USB3 &&
test_and_clear_bit(hcd_portnum,
&bus_state->rexit_ports)) {
complete(&bus_state->rexit_done[hcd_portnum]);
Greg,
Please see the attached mbox of 5 patches. The first required a slight
backport as noted in the commit message, but the others applied
cleanly. Here's a build+boot of them in clang:
https://travis-ci.com/ClangBuiltLinux/continuous-integration/builds/92778054
(obviously we need to backport warning cleanups, but this set gets it
booting at least)
--
Thanks,
~Nick Desaulniers
From: Alistair Strachan <astrachan(a)google.com>
(commit 41f1c48420709470c51ee0e54b6fb28b956bb4e0 upstream)
When building with CONFIG_EFI and CONFIG_EFI_STUB on ARM, the libstub
Makefile would use -mno-single-pic-base without checking it was
supported by the compiler. As the ARM (32-bit) clang backend does not
support this flag, the build would fail.
This changes the Makefile to check the compiler's support for
-mno-single-pic-base before using it, similar to c1c386681bd7 ("ARM:
8767/1: add support for building ARM kernel with clang").
Signed-off-by: Alistair Strachan <astrachan(a)google.com>
Reviewed-by: Stefan Agner <stefan(a)agner.ch>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel(a)linaro.org>
Signed-off-by: Nick Desaulniers <ndesaulniers(a)google.com>
---
Please land in 4.19, 4.18. I'm preparing backports for 4.9 and 4.4 I
will send today or tomorrow. This is for building the Linux kernel for
arm32 with Clang.
drivers/firmware/efi/libstub/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
index 14c40a7750d1..c51627660dbb 100644
--- a/drivers/firmware/efi/libstub/Makefile
+++ b/drivers/firmware/efi/libstub/Makefile
@@ -16,7 +16,8 @@ cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -O2 \
cflags-$(CONFIG_ARM64) := $(subst -pg,,$(KBUILD_CFLAGS)) -fpie \
$(DISABLE_STACKLEAK_PLUGIN)
cflags-$(CONFIG_ARM) := $(subst -pg,,$(KBUILD_CFLAGS)) \
- -fno-builtin -fpic -mno-single-pic-base
+ -fno-builtin -fpic \
+ $(call cc-option,-mno-single-pic-base)
cflags-$(CONFIG_EFI_ARMSTUB) += -I$(srctree)/scripts/dtc/libfdt
--
2.20.0.rc0.387.gc7a69e6b6c-goog
The generic/513 tell that cloning into a file did not strip security
privileges (suid, capabilities) like a regular write would.
Signed-off-by: Lu Fengqi <lufq.fnst(a)cn.fujitsu.com>
---
The xfs and ocfs2 call generic_remap_file_range_prep to drop file
privileges, I'm not sure whether btrfs should do the same thing.
Any suggestion?
fs/btrfs/ioctl.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 410c7e007ba8..bc33c480603b 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -4312,6 +4312,10 @@ static noinline int btrfs_clone_files(struct file *file, struct file *file_src,
goto out_unlock;
}
+ ret = file_remove_privs(file);
+ if (ret)
+ goto out_unlock;
+
if (destoff > inode->i_size) {
ret = btrfs_cont_expand(inode, inode->i_size, destoff);
if (ret)
--
2.19.2
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: b32d16ec9956 Linux 4.19.5
The results of these automated tests are provided below.
Overall result: PASSED
Patch merge: OK
Compile: OK
Kernel tests: OK
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 2 architectures:
aarch64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/b32d16ec995683be888520d12d…
x86_64:
make options: make INSTALL_MOD_STRIP=1 -j56 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/b32d16ec995683be888520d12d8…
Hardware testing
----------------
We booted each kernel and ran the following tests:
arm64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
x86_64:
/distribution/kpkginstall (boot test)
LTP lite - release 20180515
xfstests: ext4
xfstests: xfs
/kernel/misc/amtu
Right now, only way for task->thread_info->syscall to be updated is if
if _TIF_SYSCALL_WORK is set in current's task thread_info->flags
(similar to what has_syscall_work() checks for arm64).
This means that "->syscall" will only be updated if we are tracing the
syscalls through ptrace, for example. This is NOT the same behavior as
arm64, when pt_regs->syscallno is updated in the beginning of svc0
handler for *every* syscall entry.
This patch fixes the issue since this behavior is needed for
/proc/<pid>/syscall 1st argument to be correctly updated.
Link: https://bugs.linaro.org/show_bug.cgi?id=3783
Cc: <stable(a)vger.kernel.org> # v4.4 v4.9 v4.14 v4.19
Signed-off-by: Rafael David Tinoco <rafael.tinoco(a)linaro.org>
---
arch/arm/kernel/asm-offsets.c | 1 +
arch/arm/kernel/entry-common.S | 2 ++
2 files changed, 3 insertions(+)
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
index 3968d6c22455..bfe68a98e1c6 100644
--- a/arch/arm/kernel/asm-offsets.c
+++ b/arch/arm/kernel/asm-offsets.c
@@ -64,6 +64,7 @@ int main(void)
DEFINE(TI_USED_CP, offsetof(struct thread_info, used_cp));
DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value));
DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate));
+ DEFINE(TI_SYSCALL, offsetof(struct thread_info, syscall));
#ifdef CONFIG_VFP
DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate));
#ifdef CONFIG_SMP
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 0465d65d23de..557e2add4e83 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -257,6 +257,8 @@ local_restart:
tst r10, #_TIF_SYSCALL_WORK @ are we tracing syscalls?
bne __sys_trace
+ str r7, [tsk, #TI_SYSCALL] @ update thread_info->syscall
+
invoke_syscall tbl, scno, r10, __ret_fast_syscall
add r1, sp, #S_OFF
--
2.20.0.rc1
stable-rc/linux-3.18.y build: 185 builds: 2 failed, 183 passed, 4 errors, 1621 warnings (v3.18.127)
Full Build Summary: https://kernelci.org/build/stable-rc/branch/linux-3.18.y/kernel/v3.18.127/
Tree: stable-rc
Branch: linux-3.18.y
Git Describe: v3.18.127
Git Commit: 376f405256923b1d1ab14cb2970a25e11b074198
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Built: 5 unique architectures
Build Failures Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: FAIL
tinyconfig: FAIL
Errors and Warnings Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: 2 errors, 666 warnings
tinyconfig: 2 errors, 664 warnings
arm64: gcc version 7.3.0 (Debian 7.3.0-28)
allnoconfig: 2 warnings
defconfig: 2 warnings
tinyconfig: 2 warnings
arm: gcc version 7.3.0 (Debian 7.3.0-28)
acs5k_defconfig: 2 warnings
acs5k_tiny_defconfig: 2 warnings
allnoconfig: 2 warnings
am200epdkit_defconfig: 2 warnings
ape6evm_defconfig: 2 warnings
armadillo800eva_defconfig: 2 warnings
assabet_defconfig: 2 warnings
at91_dt_defconfig: 2 warnings
at91rm9200_defconfig: 2 warnings
at91sam9260_9g20_defconfig: 2 warnings
at91sam9261_9g10_defconfig: 2 warnings
at91sam9263_defconfig: 2 warnings
at91sam9g45_defconfig: 2 warnings
at91sam9rl_defconfig: 2 warnings
at91x40_defconfig: 2 warnings
axm55xx_defconfig: 2 warnings
badge4_defconfig: 2 warnings
bcm2835_defconfig: 2 warnings
bcm_defconfig: 2 warnings
bockw_defconfig: 2 warnings
cerfcube_defconfig: 2 warnings
clps711x_defconfig: 2 warnings
cm_x2xx_defconfig: 2 warnings
cm_x300_defconfig: 2 warnings
cns3420vb_defconfig: 2 warnings
colibri_pxa270_defconfig: 2 warnings
colibri_pxa300_defconfig: 2 warnings
collie_defconfig: 2 warnings
corgi_defconfig: 2 warnings
davinci_all_defconfig: 2 warnings
dove_defconfig: 2 warnings
ebsa110_defconfig: 2 warnings
efm32_defconfig: 2 warnings
em_x270_defconfig: 2 warnings
ep93xx_defconfig: 2 warnings
eseries_pxa_defconfig: 2 warnings
exynos_defconfig: 2 warnings
ezx_defconfig: 2 warnings
footbridge_defconfig: 2 warnings
h3600_defconfig: 2 warnings
h5000_defconfig: 2 warnings
hackkit_defconfig: 2 warnings
hisi_defconfig: 2 warnings
imote2_defconfig: 2 warnings
imx_v4_v5_defconfig: 2 warnings
imx_v6_v7_defconfig: 2 warnings
integrator_defconfig: 2 warnings
iop13xx_defconfig: 2 warnings
iop32x_defconfig: 2 warnings
iop33x_defconfig: 2 warnings
ixp4xx_defconfig: 2 warnings
jornada720_defconfig: 2 warnings
keystone_defconfig: 2 warnings
koelsch_defconfig: 2 warnings
ks8695_defconfig: 2 warnings
kzm9g_defconfig: 2 warnings
lager_defconfig: 2 warnings
lart_defconfig: 2 warnings
lpc32xx_defconfig: 2 warnings
lpd270_defconfig: 2 warnings
lubbock_defconfig: 2 warnings
mackerel_defconfig: 2 warnings
magician_defconfig: 2 warnings
mainstone_defconfig: 2 warnings
marzen_defconfig: 2 warnings
mini2440_defconfig: 2 warnings
mmp2_defconfig: 2 warnings
moxart_defconfig: 2 warnings
msm_defconfig: 2 warnings
multi_v5_defconfig: 2 warnings
multi_v7_defconfig: 2 warnings
mv78xx0_defconfig: 2 warnings
mvebu_v5_defconfig: 2 warnings
mvebu_v7_defconfig: 2 warnings
mxs_defconfig: 2 warnings
neponset_defconfig: 2 warnings
netwinder_defconfig: 2 warnings
netx_defconfig: 2 warnings
nhk8815_defconfig: 2 warnings
nuc910_defconfig: 2 warnings
nuc950_defconfig: 2 warnings
nuc960_defconfig: 2 warnings
omap1_defconfig: 2 warnings
omap2plus_defconfig: 2 warnings
orion5x_defconfig: 2 warnings
palmz72_defconfig: 2 warnings
pcm027_defconfig: 2 warnings
pleb_defconfig: 2 warnings
prima2_defconfig: 2 warnings
pxa168_defconfig: 2 warnings
pxa255-idp_defconfig: 2 warnings
pxa3xx_defconfig: 2 warnings
pxa910_defconfig: 2 warnings
qcom_defconfig: 2 warnings
raumfeld_defconfig: 2 warnings
realview-smp_defconfig: 2 warnings
realview_defconfig: 2 warnings
rpc_defconfig: 2 warnings
s3c2410_defconfig: 2 warnings
s3c6400_defconfig: 2 warnings
s5pv210_defconfig: 2 warnings
sama5_defconfig: 2 warnings
shannon_defconfig: 2 warnings
shmobile_defconfig: 2 warnings
simpad_defconfig: 2 warnings
socfpga_defconfig: 2 warnings
spear13xx_defconfig: 2 warnings
spear3xx_defconfig: 2 warnings
spear6xx_defconfig: 2 warnings
spitz_defconfig: 2 warnings
sunxi_defconfig: 2 warnings
tct_hammer_defconfig: 2 warnings
tegra_defconfig: 2 warnings
tinyconfig: 2 warnings
trizeps4_defconfig: 2 warnings
u300_defconfig: 2 warnings
u8500_defconfig: 2 warnings
versatile_defconfig: 2 warnings
vexpress_defconfig: 2 warnings
viper_defconfig: 2 warnings
vt8500_v6_v7_defconfig: 2 warnings
xcep_defconfig: 2 warnings
zeus_defconfig: 2 warnings
x86: gcc version 7.3.0 (Debian 7.3.0-30)
allnoconfig: 3 warnings
i386_defconfig: 3 warnings
tinyconfig: 3 warnings
x86_64_defconfig: 30 warnings
Errors summary:
2 arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
2 arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
Warnings summary:
663 arc-linux-gcc: warning: '-mno-mpy' is deprecated
654 cc1: warning: '-mno-mpy' is deprecated
128 scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
128 scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
3 arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
2 mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
2 kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
2 include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
2 include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
1 net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
1 mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
1 kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
1 drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
1 block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
1 block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
acs5k_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
allnoconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc) — FAIL, 2 errors, 666 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ape6evm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ar7_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
armadillo800eva_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
assabet_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91_dt_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91rm9200_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9260_9g20_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9261_9g10_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9263_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9g45_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9rl_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91x40_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ath79_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
badge4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm2835_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bigsur_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bockw_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
capcella_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cerfcube_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
clps711x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cobalt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
collie_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
corgi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
davinci_all_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
db1xxx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
dove_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
e55_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ebsa110_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
efm32_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
em_x270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ep93xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
exynos_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ezx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
footbridge_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
h5000_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hackkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hisi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
i386_defconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
imote2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
integrator_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop32x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop33x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ip22_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
jazz_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
keystone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
koelsch_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ks8695_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
kzm9g_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lager_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lasat_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lpd270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ls1b_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mackerel_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
magician_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mainstone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
malta_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaup_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
markeins_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
marzen_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mini2440_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
moxart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mpc30x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
msm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
msp71xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mtx1_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mxs_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
neponset_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netwinder_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nhk8815_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nlm_xlp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nlm_xlr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
nuc910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc950_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc960_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap1_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap2plus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
orion5x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
palmz72_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pcm027_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pleb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
prima2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa168_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qcom_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
raumfeld_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rb532_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview-smp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
realview_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rm200_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rpc_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rt305x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s3c6400_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sama5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3micro_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shannon_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
shmobile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
simpad_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
socfpga_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear6xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spitz_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sunxi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tb0219_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tegra_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
tinyconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arc) — FAIL, 2 errors, 664 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
tinyconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
trizeps4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u8500_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
versatile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vexpress_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
viper_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
workpad_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86) — PASS, 0 errors, 30 warnings, 0 section mismatches
Warnings:
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
--------------------------------------------------------------------------------
xcep_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
xway_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
---
For more info write to <info(a)kernelci.org>
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: dvb-pll: don't re-validate tuner frequencies
Author: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
Date: Fri Nov 23 12:10:57 2018 -0500
The dvb_frontend core already checks for the frequencies. No
need for any additional check inside the driver.
It is part of the fixes for the following bug:
https://bugzilla.opensuse.org/show_bug.cgi?id=1116374
Fixes: a3f90c75b833 ("media: dvb: convert tuner_info frequencies to Hz")
Reported-by: Stakanov Schufter <stakanov(a)eclipso.eu>
Reported-by: Takashi Iwai <tiwai(a)suse.de>
Cc: stable(a)vger.kernel.org # For 4.19
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
drivers/media/dvb-frontends/dvb-pll.c | 3 ---
1 file changed, 3 deletions(-)
---
diff --git a/drivers/media/dvb-frontends/dvb-pll.c b/drivers/media/dvb-frontends/dvb-pll.c
index fff5816f6ec4..29836c1a40e9 100644
--- a/drivers/media/dvb-frontends/dvb-pll.c
+++ b/drivers/media/dvb-frontends/dvb-pll.c
@@ -610,9 +610,6 @@ static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf,
u32 div;
int i;
- if (frequency && (frequency < desc->min || frequency > desc->max))
- return -EINVAL;
-
for (i = 0; i < desc->count; i++) {
if (frequency > desc->entries[i].limit)
continue;
This is an automatic generated email to let you know that the following patch were queued:
Subject: media: dvb-pll: don't re-validate tuner frequencies
Author: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
Date: Fri Nov 23 12:10:57 2018 -0500
The dvb_frontend core already checks for the frequencies. No
need for any additional check inside the driver.
It is part of the fixes for the following bug:
https://bugzilla.opensuse.org/show_bug.cgi?id=1116374
Fixes: a3f90c75b833 ("media: dvb: convert tuner_info frequencies to Hz")
Reported-by: Stakanov Schufter <stakanov(a)eclipso.eu>
Reported-by: Takashi Iwai <tiwai(a)suse.de>
Cc: stable(a)vger.kernel.org # For 4.19
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung(a)kernel.org>
drivers/media/dvb-frontends/dvb-pll.c | 3 ---
1 file changed, 3 deletions(-)
---
diff --git a/drivers/media/dvb-frontends/dvb-pll.c b/drivers/media/dvb-frontends/dvb-pll.c
index fff5816f6ec4..29836c1a40e9 100644
--- a/drivers/media/dvb-frontends/dvb-pll.c
+++ b/drivers/media/dvb-frontends/dvb-pll.c
@@ -610,9 +610,6 @@ static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf,
u32 div;
int i;
- if (frequency && (frequency < desc->min || frequency > desc->max))
- return -EINVAL;
-
for (i = 0; i < desc->count; i++) {
if (frequency > desc->entries[i].limit)
continue;
On Sat, 2018-11-17 at 12:24 +0000, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
>
> The bot has tested the following trees: v4.19.2, v4.18.19, v4.14.81,
> v4.9.137, v4.4.163, v3.18.125,
>
> v4.19.2: Build OK!
> v4.18.19: Build OK!
> v4.14.81: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
> v4.9.137: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
> v4.4.163: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
> v3.18.125: Failed to apply! Possible dependencies:
> e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in
> nv50_mstc_detect()")
>
>
> How should we proceed with this patch?
e46368cf77f2 ("drm/nouveau/drm/nouveau: Grab runtime PM ref in nv50_mstc_detect()")
Should also be backported for v4.9+, and then this patch should be applied on
top of that.
>
> --
> Thanks,
> Sasha
--
Cheers,
Lyude Paul
stable/linux-3.18.y build: 185 builds: 2 failed, 183 passed, 4 errors, 1619 warnings (v3.18.127)
Full Build Summary: https://kernelci.org/build/stable/branch/linux-3.18.y/kernel/v3.18.127/
Tree: stable
Branch: linux-3.18.y
Git Describe: v3.18.127
Git Commit: 376f405256923b1d1ab14cb2970a25e11b074198
Git URL: http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
Built: 5 unique architectures
Build Failures Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: FAIL
tinyconfig: FAIL
Errors and Warnings Detected:
arc: gcc version 7.1.1 20170710 (ARCv2 ISA Linux uClibc toolchain 2017.09)
allnoconfig: 2 errors, 666 warnings
tinyconfig: 2 errors, 664 warnings
arm64: gcc version 7.3.0 (Debian 7.3.0-28)
allnoconfig: 2 warnings
defconfig: 2 warnings
tinyconfig: 2 warnings
arm: gcc version 7.3.0 (Debian 7.3.0-28)
acs5k_defconfig: 2 warnings
acs5k_tiny_defconfig: 2 warnings
allnoconfig: 2 warnings
am200epdkit_defconfig: 2 warnings
ape6evm_defconfig: 2 warnings
armadillo800eva_defconfig: 2 warnings
assabet_defconfig: 2 warnings
at91_dt_defconfig: 2 warnings
at91rm9200_defconfig: 2 warnings
at91sam9260_9g20_defconfig: 2 warnings
at91sam9261_9g10_defconfig: 2 warnings
at91sam9263_defconfig: 2 warnings
at91sam9g45_defconfig: 2 warnings
at91sam9rl_defconfig: 2 warnings
at91x40_defconfig: 2 warnings
axm55xx_defconfig: 2 warnings
badge4_defconfig: 2 warnings
bcm2835_defconfig: 2 warnings
bcm_defconfig: 2 warnings
bockw_defconfig: 2 warnings
cerfcube_defconfig: 2 warnings
clps711x_defconfig: 2 warnings
cm_x2xx_defconfig: 2 warnings
cm_x300_defconfig: 2 warnings
cns3420vb_defconfig: 2 warnings
colibri_pxa270_defconfig: 2 warnings
colibri_pxa300_defconfig: 2 warnings
collie_defconfig: 2 warnings
corgi_defconfig: 2 warnings
davinci_all_defconfig: 2 warnings
dove_defconfig: 2 warnings
ebsa110_defconfig: 2 warnings
efm32_defconfig: 2 warnings
em_x270_defconfig: 2 warnings
ep93xx_defconfig: 2 warnings
eseries_pxa_defconfig: 2 warnings
exynos_defconfig: 2 warnings
ezx_defconfig: 2 warnings
footbridge_defconfig: 2 warnings
h3600_defconfig: 2 warnings
h5000_defconfig: 2 warnings
hackkit_defconfig: 2 warnings
hisi_defconfig: 2 warnings
imote2_defconfig: 2 warnings
imx_v4_v5_defconfig: 2 warnings
imx_v6_v7_defconfig: 2 warnings
integrator_defconfig: 2 warnings
iop13xx_defconfig: 2 warnings
iop32x_defconfig: 2 warnings
iop33x_defconfig: 2 warnings
ixp4xx_defconfig: 2 warnings
jornada720_defconfig: 2 warnings
keystone_defconfig: 2 warnings
koelsch_defconfig: 2 warnings
ks8695_defconfig: 2 warnings
kzm9g_defconfig: 2 warnings
lager_defconfig: 2 warnings
lart_defconfig: 2 warnings
lpc32xx_defconfig: 2 warnings
lpd270_defconfig: 2 warnings
lubbock_defconfig: 2 warnings
mackerel_defconfig: 2 warnings
magician_defconfig: 2 warnings
mainstone_defconfig: 2 warnings
marzen_defconfig: 2 warnings
mini2440_defconfig: 2 warnings
mmp2_defconfig: 2 warnings
moxart_defconfig: 2 warnings
msm_defconfig: 2 warnings
multi_v5_defconfig: 2 warnings
multi_v7_defconfig: 2 warnings
mv78xx0_defconfig: 2 warnings
mvebu_v5_defconfig: 2 warnings
mvebu_v7_defconfig: 2 warnings
mxs_defconfig: 2 warnings
neponset_defconfig: 2 warnings
netwinder_defconfig: 2 warnings
netx_defconfig: 2 warnings
nhk8815_defconfig: 2 warnings
nuc910_defconfig: 2 warnings
nuc950_defconfig: 2 warnings
nuc960_defconfig: 2 warnings
omap1_defconfig: 2 warnings
orion5x_defconfig: 2 warnings
palmz72_defconfig: 2 warnings
pcm027_defconfig: 2 warnings
pleb_defconfig: 2 warnings
prima2_defconfig: 2 warnings
pxa168_defconfig: 2 warnings
pxa255-idp_defconfig: 2 warnings
pxa3xx_defconfig: 2 warnings
pxa910_defconfig: 2 warnings
qcom_defconfig: 2 warnings
raumfeld_defconfig: 2 warnings
realview-smp_defconfig: 2 warnings
realview_defconfig: 2 warnings
rpc_defconfig: 2 warnings
s3c2410_defconfig: 2 warnings
s3c6400_defconfig: 2 warnings
s5pv210_defconfig: 2 warnings
sama5_defconfig: 2 warnings
shannon_defconfig: 2 warnings
shmobile_defconfig: 2 warnings
simpad_defconfig: 2 warnings
socfpga_defconfig: 2 warnings
spear13xx_defconfig: 2 warnings
spear3xx_defconfig: 2 warnings
spear6xx_defconfig: 2 warnings
spitz_defconfig: 2 warnings
sunxi_defconfig: 2 warnings
tct_hammer_defconfig: 2 warnings
tegra_defconfig: 2 warnings
tinyconfig: 2 warnings
trizeps4_defconfig: 2 warnings
u300_defconfig: 2 warnings
u8500_defconfig: 2 warnings
versatile_defconfig: 2 warnings
vexpress_defconfig: 2 warnings
viper_defconfig: 2 warnings
vt8500_v6_v7_defconfig: 2 warnings
xcep_defconfig: 2 warnings
zeus_defconfig: 2 warnings
x86: gcc version 7.3.0 (Debian 7.3.0-30)
allnoconfig: 3 warnings
i386_defconfig: 3 warnings
tinyconfig: 3 warnings
x86_64_defconfig: 30 warnings
Errors summary:
2 arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
2 arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
Warnings summary:
663 arc-linux-gcc: warning: '-mno-mpy' is deprecated
654 cc1: warning: '-mno-mpy' is deprecated
127 scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
127 scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
3 arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
3 arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
2 mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
2 kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
2 include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
2 include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
1 net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
1 mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
1 kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
1 drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
1 drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
1 drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
1 drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
1 block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
1 block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
1 block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
================================================================================
Detailed per-defconfig build reports:
--------------------------------------------------------------------------------
acs5k_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
acs5k_tiny_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
allnoconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
allnoconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
allnoconfig (arc) — FAIL, 2 errors, 666 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/mmap.c:684:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:684:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized]
mm/mmap.c:683:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
am200epdkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ape6evm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ar7_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
armadillo800eva_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
assabet_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91_dt_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91rm9200_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9260_9g20_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9261_9g10_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9263_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9g45_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91sam9rl_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
at91x40_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ath79_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
axm55xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
badge4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm2835_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bcm47xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm63xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bcm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
bigsur_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
bockw_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
capcella_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cavium_octeon_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
cerfcube_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
clps711x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x2xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cm_x300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cns3420vb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
cobalt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
colibri_pxa270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
colibri_pxa300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
collie_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
corgi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
davinci_all_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
db1xxx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
decstation_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
defconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
dove_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
e55_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ebsa110_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
efm32_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
em_x270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ep93xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
eseries_pxa_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
exynos_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ezx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
footbridge_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
fuloong2e_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
gpr_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
h3600_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
h5000_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hackkit_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
hisi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
i386_defconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
imote2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v4_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
imx_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
integrator_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop32x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
iop33x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ip22_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip27_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip28_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ip32_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
ixp4xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
jazz_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jmr3927_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
jornada720_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
keystone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
koelsch_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ks8695_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
kzm9g_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lager_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lasat_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lemote2f_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
loongson3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lpc32xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
lpd270_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
ls1b_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
lubbock_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mackerel_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
magician_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mainstone_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
malta_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
malta_kvm_guest_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltaaprp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
maltasmvp_eva_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
markeins_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
marzen_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mini2440_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mips_paravirt_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
mmp2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
moxart_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mpc30x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
msm_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
msp71xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
multi_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
multi_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mv78xx0_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mvebu_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
mxs_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
neponset_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netwinder_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
netx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nhk8815_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc950_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
nuc960_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
omap1_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
orion5x_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
palmz72_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pcm027_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pleb_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pnx8335_stb225_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
prima2_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa168_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa255-idp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
pxa910_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qcom_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
qi_lb60_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
raumfeld_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rb532_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rbtx49xx_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
realview-smp_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
realview_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rm200_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
rpc_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
rt305x_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
s3c2410_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s3c6400_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
s5pv210_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sama5_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sb1250_swarm_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
sead3micro_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
shannon_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
shmobile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
simpad_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
socfpga_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear13xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear3xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spear6xx_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
spitz_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
sunxi_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tb0219_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0226_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tb0287_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tct_hammer_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tegra_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (x86) — PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings:
arch/x86/kernel/head_32.S:672: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:677: Warning: ignoring fill value in section `.bss..page_aligned'
arch/x86/kernel/head_32.S:679: Warning: ignoring fill value in section `.bss..page_aligned'
--------------------------------------------------------------------------------
tinyconfig (arm64) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
tinyconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
tinyconfig (arc) — FAIL, 2 errors, 664 warnings, 0 section mismatches
Errors:
arch/arc/mm/tlbex.S:291: Error: unknown opcode 'lsl'
arch/arc/mm/tlbex.S:348: Error: unknown opcode 'lsl'
Warnings:
arc-linux-gcc: warning: '-mno-mpy' is deprecated
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
mm/memory.c:581:7: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
kernel/sched/core.c:2766:1: warning: control reaches end of non-void function [-Wreturn-type]
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
include/linux/kernel.h:707:17: warning: comparison of distinct pointer types lacks a cast
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
arc-linux-gcc: warning: '-mno-mpy' is deprecated
cc1: warning: '-mno-mpy' is deprecated
--------------------------------------------------------------------------------
trizeps4_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u300_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
u8500_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
versatile_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vexpress_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
viper_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
vt8500_v6_v7_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
workpad_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
x86_64_defconfig (x86) — PASS, 0 errors, 30 warnings, 0 section mismatches
Warnings:
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
include/linux/ftrace.h:632:36: warning: calling '__builtin_return_address' with a nonzero argument is unsafe [-Wframe-address]
kernel/relay.c:423:35: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/elevator.c:841:14: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
block/partition-generic.c:39:36: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 31 [-Wformat-truncation=]
block/partition-generic.c:41:37: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
fs/nfs/client.c:1380:23: warning: '%u' directive output may be truncated writing between 1 and 7 bytes into a region of size between 3 and 6 [-Wformat-truncation=]
drivers/ata/libata-core.c:2962:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2963:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2964:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2965:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2966:31: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2967:32: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2968:35: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2969:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2970:30: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
drivers/ata/libata-core.c:2141:42: warning: '%d' directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
lib/string_helpers.c:64:33: warning: '%03lld' directive output may be truncated writing between 3 and 13 bytes into a region of size 7 [-Wformat-truncation=]
drivers/input/keyboard/atkbd.c:1069:7: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/psmouse-base.c:1466:52: warning: '/input0' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/alps.c:2418:46: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/input/mouse/lifebook.c:287:7: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11175:9: warning: '-txrx-' directive output may be truncated writing 6 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11178:9: warning: '-tx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11181:9: warning: '-rx-' directive output may be truncated writing 4 bytes into a region of size between 1 and 16 [-Wformat-truncation=]
drivers/net/ethernet/broadcom/tg3.c:11184:10: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
net/sunrpc/clnt.c:527:46: warning: '%s' directive output may be truncated writing up to 107 bytes into a region of size 48 [-Wformat-truncation=]
drivers/usb/core/usb.c:471:9: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size between 0 and 15 [-Wformat-truncation=]
drivers/usb/core/hcd.c:450:34: warning: '%s' directive output may be truncated writing up to 64 bytes into a region of size between 35 and 99 [-Wformat-truncation=]
drivers/video/fbdev/core/../edid.h:74:72: warning: '*' in boolean context, suggest '&&' instead [-Wint-in-bool-context]
--------------------------------------------------------------------------------
xcep_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
--------------------------------------------------------------------------------
xway_defconfig (mips) — PASS, 0 errors, 0 warnings, 0 section mismatches
--------------------------------------------------------------------------------
zeus_defconfig (arm) — PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
scripts/kconfig/confdata.c:767:19: warning: '%s' directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
scripts/kconfig/confdata.c:770:20: warning: '.tmpconfig.' directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
---
For more info write to <info(a)kernelci.org>
The patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 9844fb2e351311210e6660a9a1c62d17424a6145 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:53 +0200
Subject: [PATCH] power: supply: twl4030-charger: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the usb sibling
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related phy-node reference leak.
Fixes: f5e4edb8c888 ("power: twl4030_charger: find associated phy by more reliable means.")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: NeilBrown <neilb(a)suse.de>
Cc: Felipe Balbi <felipe.balbi(a)linux.intel.com>
Cc: Sebastian Reichel <sre(a)kernel.org>
Reviewed-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c
index bbcaee56db9d..b6a7d9f74cf3 100644
--- a/drivers/power/supply/twl4030_charger.c
+++ b/drivers/power/supply/twl4030_charger.c
@@ -996,12 +996,13 @@ static int twl4030_bci_probe(struct platform_device *pdev)
if (bci->dev->of_node) {
struct device_node *phynode;
- phynode = of_find_compatible_node(bci->dev->of_node->parent,
- NULL, "ti,twl4030-usb");
+ phynode = of_get_compatible_child(bci->dev->of_node->parent,
+ "ti,twl4030-usb");
if (phynode) {
bci->usb_nb.notifier_call = twl4030_bci_usb_ncb;
bci->transceiver = devm_usb_get_phy_by_node(
bci->dev, phynode, &bci->usb_nb);
+ of_node_put(phynode);
if (IS_ERR(bci->transceiver)) {
ret = PTR_ERR(bci->transceiver);
if (ret == -EPROBE_DEFER)
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From 9844fb2e351311210e6660a9a1c62d17424a6145 Mon Sep 17 00:00:00 2001
From: Johan Hovold <johan(a)kernel.org>
Date: Mon, 27 Aug 2018 10:21:53 +0200
Subject: [PATCH] power: supply: twl4030-charger: fix OF sibling-node lookup
Use the new of_get_compatible_child() helper to lookup the usb sibling
node instead of using of_find_compatible_node(), which searches the
entire tree from a given start node and thus can return an unrelated
(non-sibling) node.
This also addresses a potential use-after-free (e.g. after probe
deferral) as the tree-wide helper drops a reference to its first
argument (i.e. the parent device node).
While at it, also fix the related phy-node reference leak.
Fixes: f5e4edb8c888 ("power: twl4030_charger: find associated phy by more reliable means.")
Cc: stable <stable(a)vger.kernel.org> # 4.2
Cc: NeilBrown <neilb(a)suse.de>
Cc: Felipe Balbi <felipe.balbi(a)linux.intel.com>
Cc: Sebastian Reichel <sre(a)kernel.org>
Reviewed-by: Sebastian Reichel <sre(a)kernel.org>
Signed-off-by: Johan Hovold <johan(a)kernel.org>
Signed-off-by: Rob Herring <robh(a)kernel.org>
diff --git a/drivers/power/supply/twl4030_charger.c b/drivers/power/supply/twl4030_charger.c
index bbcaee56db9d..b6a7d9f74cf3 100644
--- a/drivers/power/supply/twl4030_charger.c
+++ b/drivers/power/supply/twl4030_charger.c
@@ -996,12 +996,13 @@ static int twl4030_bci_probe(struct platform_device *pdev)
if (bci->dev->of_node) {
struct device_node *phynode;
- phynode = of_find_compatible_node(bci->dev->of_node->parent,
- NULL, "ti,twl4030-usb");
+ phynode = of_get_compatible_child(bci->dev->of_node->parent,
+ "ti,twl4030-usb");
if (phynode) {
bci->usb_nb.notifier_call = twl4030_bci_usb_ncb;
bci->transceiver = devm_usb_get_phy_by_node(
bci->dev, phynode, &bci->usb_nb);
+ of_node_put(phynode);
if (IS_ERR(bci->transceiver)) {
ret = PTR_ERR(bci->transceiver);
if (ret == -EPROBE_DEFER)
Fixes an error caused by 3-bit right rotation on offset address
calculation of MSI-X table in dw_pcie_ep_raise_msix_irq().
During the development time, by default the offset address of MSI-X
table was set to zero, so that even with a 3-bit right rotation the
computed result would still be zero and valid, therefore not being
noticed this bug.
Fixes: beb4641a787d ("PCI: dwc: Add MSI-X callbacks handler")
Signed-off-by: Gustavo Pimentel <gustavo.pimentel(a)synopsys.com>
Cc: stable(a)vger.kernel.org
---
drivers/pci/controller/dwc/pcie-designware-ep.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c
index 1e7b022..de8635a 100644
--- a/drivers/pci/controller/dwc/pcie-designware-ep.c
+++ b/drivers/pci/controller/dwc/pcie-designware-ep.c
@@ -440,7 +440,6 @@ int dw_pcie_ep_raise_msix_irq(struct dw_pcie_ep *ep, u8 func_no,
tbl_offset = dw_pcie_readl_dbi(pci, reg);
bir = (tbl_offset & PCI_MSIX_TABLE_BIR);
tbl_offset &= PCI_MSIX_TABLE_OFFSET;
- tbl_offset >>= 3;
reg = PCI_BASE_ADDRESS_0 + (4 * bir);
bar_addr_upper = 0;
--
2.7.4
On 11/27/18 8:43 AM, Sasha Levin wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: v4.19,
> v4.14, v4.9, v4.4.
>
> The bot has tested the following trees: v4.19.4, v4.14.83, v4.9.140, v4.4.164,
> v3.18.126.
>
> v4.19.4: Build OK!
> v4.14.83: Failed to apply! Possible dependencies:
> afc9f65e01cd ("ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+")
>
> v4.9.140: Failed to apply! Possible dependencies:
> afc9f65e01cd ("ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+")
>
> v4.4.164: Failed to apply! Possible dependencies:
> 10573ae547c8 ("ARM: spectre-v1: fix syscall entry")
> afc9f65e01cd ("ARM: 8781/1: Fix Thumb-2 syscall return for binutils 2.29+")
>
>
> How should we proceed with this patch?
I'm sending a v2 for the same patch. Please hold.
Thank you!
This is the start of the stable review cycle for the 3.18.127 release.
There are 24 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 Wed Nov 28 10:50:13 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v3.x/stable-review/patch-3.18.127-r…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-3.18.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 3.18.127-rc1
Eric Biggers <ebiggers(a)google.com>
HID: uhid: forbid UHID_CREATE under KERNEL_DS or elevated privileges
Al Viro <viro(a)zeniv.linux.org.uk>
new helper: uaccess_kernel()
Hans de Goede <hdegoede(a)redhat.com>
ACPI / platform: Add SMB0001 HID to forbidden_id_list
Mattias Jacobsson <2pi(a)mok.nu>
USB: misc: appledisplay: add 20" Apple Cinema Display
Nathan Chancellor <natechancellor(a)gmail.com>
misc: atmel-ssc: Fix section annotation on atmel_ssc_get_driver_data
Emmanuel Pescosta <emmanuelpescosta099(a)gmail.com>
usb: quirks: Add delay-init quirk for Corsair K70 LUX RGB
Kai-Heng Feng <kai.heng.feng(a)canonical.com>
USB: quirks: Add no-lpm quirk for Raydium touchscreens
Maarten Jacobs <maarten256(a)outlook.com>
usb: cdc-acm: add entry for Hiro (Conexant) modem
Dan Carpenter <dan.carpenter(a)oracle.com>
uio: Fix an Oops on load
Sakari Ailus <sakari.ailus(a)linux.intel.com>
media: v4l: event: Add subscription to list before calling "add" operation
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Revert "Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV"
YueHaibing <yuehaibing(a)huawei.com>
SUNRPC: drop pointless static qualifier in xdr_get_next_encode_buffer()
Sasha Levin <sashal(a)kernel.org>
Revert "Revert "drm/i915: Fix mutex->owner inspection race under DEBUG_MUTEXES""
Minchan Kim <minchan(a)kernel.org>
zram: close udev startup race condition as default groups
Vignesh R <vigneshr(a)ti.com>
i2c: omap: Enable for ARCH_K3
Jeremy Linton <jeremy.linton(a)arm.com>
lib/raid6: Fix arm64 test build
Vasily Gorbik <gor(a)linux.ibm.com>
s390/vdso: add missing FORCE to build targets
Marek Szyprowski <m.szyprowski(a)samsung.com>
clk: samsung: exynos5420: Enable PERIS clocks for suspend
Chengguang Xu <cgxu519(a)gmx.com>
fs/exofs: fix potential memory leak in mount option parsing
Richard Weinberger <richard(a)nod.at>
um: Give start_idle_thread() a return code
Ernesto A. Fernández <ernesto.mnd.fernandez(a)gmail.com>
hfsplus: prevent btree data loss on root split
Ernesto A. Fernández <ernesto.mnd.fernandez(a)gmail.com>
hfs: prevent btree data loss on root split
Jann Horn <jannh(a)google.com>
reiserfs: propagate errors from fill_with_dentries() properly
Eric Dumazet <edumazet(a)google.com>
net-gro: reset skb->pkt_type in napi_reuse_skb()
-------------
Diffstat:
Makefile | 4 ++--
arch/s390/kernel/vdso32/Makefile | 6 ++---
arch/s390/kernel/vdso64/Makefile | 6 ++---
arch/um/os-Linux/skas/process.c | 5 +++++
drivers/acpi/acpi_platform.c | 1 +
drivers/block/zram/zram_drv.c | 18 +++++----------
drivers/bluetooth/Kconfig | 1 -
drivers/clk/samsung/clk-exynos5420.c | 1 +
drivers/gpu/drm/i915/i915_gem.c | 2 +-
drivers/hid/uhid.c | 13 +++++++++++
drivers/i2c/busses/Kconfig | 2 +-
drivers/media/v4l2-core/v4l2-event.c | 43 ++++++++++++++++++++----------------
drivers/misc/atmel-ssc.c | 2 +-
drivers/uio/uio.c | 7 ++++--
drivers/usb/class/cdc-acm.c | 3 +++
drivers/usb/core/quirks.c | 8 +++++++
drivers/usb/misc/appledisplay.c | 1 +
fs/exofs/super.c | 5 ++++-
fs/hfs/brec.c | 4 ++++
fs/hfsplus/brec.c | 4 ++++
fs/reiserfs/xattr.c | 7 ++++++
include/linux/uaccess.h | 3 +++
lib/raid6/test/Makefile | 4 ++--
net/core/dev.c | 4 ++++
net/sunrpc/xdr.c | 2 +-
25 files changed, 107 insertions(+), 49 deletions(-)