~tyhicks/ubuntu/+source/linux/+git/bionic:master

Last commit made on 2019-02-06
Get this branch:
git clone -b master https://git.launchpad.net/~tyhicks/ubuntu/+source/linux/+git/bionic
Only Tyler Hicks can upload to this branch. If you are Tyler Hicks please log in for upload directions.

Branch merges

Branch information

Recent commits

aa07f7d... by Khaled El Mously

UBUNTU: Ubuntu-4.15.0-46.49

Signed-off-by: Khalid Elmously <email address hidden>

12813bc... by Khaled El Mously

UBUNTU: link-to-tracker: update tracking bug

BugLink: https://bugs.launchpad.net/bugs/1814726
Signed-off-by: Khalid Elmously <email address hidden>

cb649fe... by Sean Christopherson <email address hidden>

x86/speculation/l1tf: Exempt zeroed PTEs from inversion

BugLink: http://bugs.launchpad.net/bugs/1799237

It turns out that we should *not* invert all not-present mappings,
because the all zeroes case is obviously special.

clear_page() does not undergo the XOR logic to invert the address bits,
i.e. PTE, PMD and PUD entries that have not been individually written
will have val=0 and so will trigger __pte_needs_invert(). As a result,
{pte,pmd,pud}_pfn() will return the wrong PFN value, i.e. all ones
(adjusted by the max PFN mask) instead of zero. A zeroed entry is ok
because the page at physical address 0 is reserved early in boot
specifically to mitigate L1TF, so explicitly exempt them from the
inversion when reading the PFN.

Manifested as an unexpected mprotect(..., PROT_NONE) failure when called
on a VMA that has VM_PFNMAP and was mmap'd to as something other than
PROT_NONE but never used. mprotect() sends the PROT_NONE request down
prot_none_walk(), which walks the PTEs to check the PFNs.
prot_none_pte_entry() gets the bogus PFN from pte_pfn() and returns
-EACCES because it thinks mprotect() is trying to adjust a high MMIO
address.

[ This is a very modified version of Sean's original patch, but all
  credit goes to Sean for doing this and also pointing out that
  sometimes the __pte_needs_invert() function only gets the protection
  bits, not the full eventual pte. But zero remains special even in
  just protection bits, so that's ok. - Linus ]

Fixes: f22cc87f6c1f ("x86/speculation/l1tf: Invert all not present mappings")
Signed-off-by: Sean Christopherson <email address hidden>
Acked-by: Andi Kleen <email address hidden>
Cc: Thomas Gleixner <email address hidden>
Cc: Josh Poimboeuf <email address hidden>
Cc: Michal Hocko <email address hidden>
Cc: Vlastimil Babka <email address hidden>
Cc: Dave Hansen <email address hidden>
Cc: Greg Kroah-Hartman <email address hidden>
Signed-off-by: Linus Torvalds <email address hidden>
(cherry picked from commit f19f5c49bbc3ffcc9126cc245fc1b24cc29f4a37)
Signed-off-by: Khalid Elmously <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Acked-by: Kleber Sacilotto de Souza <email address hidden>
Signed-off-by: Kleber Sacilotto de Souza <email address hidden>

fbb61dd... by Mike Christie <email address hidden>

scsi: iscsi: target: Fix conn_ops double free

BugLink: https://bugs.launchpad.net/bugs/1812086

If iscsi_login_init_conn fails it can free conn_ops.
__iscsi_target_login_thread will then call iscsi_target_login_sess_out
which will also free it.

This fixes the problem by organizing conn allocation/setup into parts that
are needed through the life of the conn and parts that are only needed for
the login. The free functions then release what was allocated in the alloc
functions.

With this patch we have:

iscsit_alloc_conn/iscsit_free_conn - allocs/frees the conn we need for the
entire life of the conn.

iscsi_login_init_conn/iscsi_target_nego_release - allocs/frees the parts
of the conn that are only needed during login.

Signed-off-by: Mike Christie <email address hidden>
Signed-off-by: Martin K. Petersen <email address hidden>
(cherry picked from commit 05a86e78ea9823ec25b3515db078dd8a76fc263c)
Signed-off-by: Juerg Haefliger <email address hidden>
Acked-by: Kleber Souza <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Khalid Elmously <email address hidden>

0cb3fa0... by Vincent Pelletier <email address hidden>

scsi: iscsi: target: Set conn->sess to NULL when iscsi_login_set_conn_values fails

BugLink: https://bugs.launchpad.net/bugs/1812086

Fixes a use-after-free reported by KASAN when later
iscsi_target_login_sess_out gets called and it tries to access
conn->sess->se_sess:

Disabling lock debugging due to kernel taint
iSCSI Login timeout on Network Portal [::]:3260
iSCSI Login negotiation failed.
==================================================================
BUG: KASAN: use-after-free in
iscsi_target_login_sess_out.cold.12+0x58/0xff [iscsi_target_mod]
Read of size 8 at addr ffff880109d070c8 by task iscsi_np/980

CPU: 1 PID: 980 Comm: iscsi_np Tainted: G O
4.17.8kasan.sess.connops+ #4
Hardware name: To be filled by O.E.M. To be filled by O.E.M./Aptio CRB,
BIOS 5.6.5 05/19/2014
Call Trace:
 dump_stack+0x71/0xac
 print_address_description+0x65/0x22e
 ? iscsi_target_login_sess_out.cold.12+0x58/0xff [iscsi_target_mod]
 kasan_report.cold.6+0x241/0x2fd
 iscsi_target_login_sess_out.cold.12+0x58/0xff [iscsi_target_mod]
 iscsi_target_login_thread+0x1086/0x1710 [iscsi_target_mod]
 ? __sched_text_start+0x8/0x8
 ? iscsi_target_login_sess_out+0x250/0x250 [iscsi_target_mod]
 ? __kthread_parkme+0xcc/0x100
 ? parse_args.cold.14+0xd3/0xd3
 ? iscsi_target_login_sess_out+0x250/0x250 [iscsi_target_mod]
 kthread+0x1a0/0x1c0
 ? kthread_bind+0x30/0x30
 ret_from_fork+0x35/0x40

Allocated by task 980:
 kasan_kmalloc+0xbf/0xe0
 kmem_cache_alloc_trace+0x112/0x210
 iscsi_target_login_thread+0x816/0x1710 [iscsi_target_mod]
 kthread+0x1a0/0x1c0
 ret_from_fork+0x35/0x40

Freed by task 980:
 __kasan_slab_free+0x125/0x170
 kfree+0x90/0x1d0
 iscsi_target_login_thread+0x1577/0x1710 [iscsi_target_mod]
 kthread+0x1a0/0x1c0
 ret_from_fork+0x35/0x40

The buggy address belongs to the object at ffff880109d06f00
 which belongs to the cache kmalloc-512 of size 512
The buggy address is located 456 bytes inside of
 512-byte region [ffff880109d06f00, ffff880109d07100)
The buggy address belongs to the page:
page:ffffea0004274180 count:1 mapcount:0 mapping:0000000000000000
index:0x0 compound_mapcount: 0
flags: 0x17fffc000008100(slab|head)
raw: 017fffc000008100 0000000000000000 0000000000000000 00000001000c000c
raw: dead000000000100 dead000000000200 ffff88011b002e00 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff880109d06f80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff880109d07000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff880109d07080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                              ^
 ffff880109d07100: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff880109d07180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================

Signed-off-by: Vincent Pelletier <email address hidden>
[rebased against idr/ida changes and to handle ret review comments from Matthew]
Signed-off-by: Mike Christie <email address hidden>
Cc: Matthew Wilcox <email address hidden>
Reviewed-by: Matthew Wilcox <email address hidden>
Signed-off-by: Martin K. Petersen <email address hidden>
(cherry picked from commit 7915919bb94e12460c58e27c708472e6f85f6699)
Signed-off-by: Juerg Haefliger <email address hidden>
Acked-by: Kleber Souza <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Khalid Elmously <email address hidden>

a8abcce... by Mike Christie <email address hidden>

iscsi target: fix session creation failure handling

BugLink: https://bugs.launchpad.net/bugs/1812086

The problem is that iscsi_login_zero_tsih_s1 sets conn->sess early in
iscsi_login_set_conn_values. If the function fails later like when we
alloc the idr it does kfree(sess) and leaves the conn->sess pointer set.
iscsi_login_zero_tsih_s1 then returns -Exyz and we then call
iscsi_target_login_sess_out and access the freed memory.

This patch has iscsi_login_zero_tsih_s1 either completely setup the
session or completely tear it down, so later in
iscsi_target_login_sess_out we can just check for it being set to the
connection.

Cc: <email address hidden>
Fixes: 0957627a9960 ("iscsi-target: Fix sess allocation leak in...")
Signed-off-by: Mike Christie <email address hidden>
Acked-by: Martin K. Petersen <email address hidden>
Signed-off-by: Matthew Wilcox <email address hidden>
(cherry picked from commit 26abc916a898d34c5ad159315a2f683def3c5555)
Signed-off-by: Juerg Haefliger <email address hidden>
Acked-by: Kleber Souza <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Khalid Elmously <email address hidden>

70dd2c1... by Thiago Jung Bauermann <email address hidden>

selftests: kselftest: Remove outdated comment

BugLink: https://bugs.launchpad.net/bugs/1812198

Commit 3c07aaef6598 ("selftests: kselftest: change KSFT_SKIP=4 instead of
KSFT_PASS") reverted commit 11867a77eb85 ("selftests: kselftest framework:
change skip exit code to 0") but missed removing the comment which that
commit added, so do that now.

Signed-off-by: Thiago Jung Bauermann <email address hidden>
Signed-off-by: Shuah Khan (Samsung OSG) <email address hidden>
(cherry picked from commit c31d02d1290e1e82a08015199e408228e152991f)
Signed-off-by: Po-Hsu Lin <email address hidden>
Acked-by: Kleber Souza <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Khalid Elmously <email address hidden>

48c9781... by "Shuah Khan (Samsung OSG)" <email address hidden>

selftests: kselftest: change KSFT_SKIP=4 instead of KSFT_PASS

BugLink: https://bugs.launchpad.net/bugs/1812198

KSFT_SKIP points to KSFT_PASS resulting in reporting skipped tests as
Passed, when test programs exit with KSFT_SKIP or call ksft_exit_skip().
If tests are skipped because of unmet dependencies and/or unsupported
configuration, reporting them as passed leads to too many false positives.

Fix it to return a skip code of 4 to clearly differentiate the skipped
tests.

Signed-off-by: Shuah Khan (Samsung OSG) <email address hidden>
(cherry picked from commit 3c07aaef65988473c6cea5bd194125f905953fcc)
Signed-off-by: Po-Hsu Lin <email address hidden>
Acked-by: Kleber Souza <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Khalid Elmously <email address hidden>

0670b4f... by "Shuah Khan (Samsung OSG)" <email address hidden>

selftests: user: return Kselftest Skip code for skipped tests

BugLink: https://bugs.launchpad.net/bugs/1812198

When user test is skipped because of unmet dependencies and/or
unsupported configuration, it exits with error which is treated as
a fail by the Kselftest framework. This leads to false negative result
even when the test could not be run.

Change it to return kselftest skip code when a test gets skipped to
clearly report that the test could not be run. Add an explicit check
for module presence and return skip code if module isn't present.

Kselftest framework SKIP code is 4 and the framework prints appropriate
messages to indicate that the test is skipped.

Signed-off-by: Shuah Khan (Samsung OSG) <email address hidden>
(cherry picked from commit d7d5311d4aa9611fe1a5a851e6f75733237a668a)
Signed-off-by: Po-Hsu Lin <email address hidden>
Acked-by: Kleber Souza <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Khalid Elmously <email address hidden>

83bc801... by Kai-Heng Feng

UBUNTU: SAUCE: Add r8822be to signature inclusion list

BugLink: https://bugs.launchpad.net/bugs/1806472

r8822be is sent and maintained by <email address hidden>, so it's in a good
shape. Let's add it to signature inclusion list.

Signed-off-by: Kai-Heng Feng <email address hidden>
Acked-by: Kleber Souza <email address hidden>
Acked-by: Stefan Bader <email address hidden>
Signed-off-by: Khalid Elmously <email address hidden>