Having fixed the biggest objtool issue in this file; fix up the rest
and remove the exception.
Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20200324160924.202621656@infradead.org
Normally identity_mapped is not visible to objtool, due to:
arch/x86/kernel/Makefile:OBJECT_FILES_NON_STANDARD_relocate_kernel_$(BITS).o := y
However, when we want to run objtool on vmlinux.o there is no hiding
it:
vmlinux.o: warning: objtool: .text+0x4c0f1: unsupported intra-function call
Replace the (i386 inspired) pattern:
call 1f
1: popq %r8
subq $(1b - relocate_kernel), %r8
With a x86_64 RIP-relative LEA:
leaq relocate_kernel(%rip), %r8
Suggested-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20200324160924.143334345@infradead.org
Now that func_for_each_insn() is available, rename
func_for_each_insn_all(). This gets us:
sym_for_each_insn() - iterate on symbol offset/len
func_for_each_insn() - iterate on insn->func
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20200324160924.083720147@infradead.org
There is func_for_each_insn() and func_for_each_insn_all(), the both
iterate the instructions, but the first uses symbol offset/length
while the second uses insn->func.
Rename func_for_each_insn() to sym_for_eac_insn() because it iterates
on symbol information.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20200324160924.024341229@infradead.org
Trivial 'cleanup' to save one indentation level and match
validate_call().
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20200324160923.963996225@infradead.org
Add Intel Comet Lake PCH-V PCI ID to the list of supported controllers.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Add Intel Comet Lake PCH-H PCI ID to the list of supported controllers.
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
When we spawn a SCSI device from an ATA device in libata-scsi
the SCSI device had no relation to the device tree.
The DT binding allows us to define port nodes under a
PATA (IDE) or SATA host controller, so we can have proper device
nodes for these devices.
If OF is enabled, walk the children of the host controller node
to see if there is a valid device tree node to assign. The reg
is used to match to ID 0 for the master device and ID 1 for the
slave device.
The corresponding device tree bindings have been accepted by
the device tree maintainers.
Cc: Chris Healy <cphealy@gmail.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
If the call to scsi_add_host_with_dma() in ata_scsi_add_hosts() fails,
then we may get use-after-free KASAN warns:
==================================================================
BUG: KASAN: use-after-free in kobject_put+0x24/0x180
Read of size 1 at addr ffff0026b8c80364 by task swapper/0/1
CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W 5.6.0-rc3-00004-g5a71b206ea82-dirty #1765
Hardware name: Huawei TaiShan 200 (Model 2280)/BC82AMDD, BIOS 2280-V2 CS V3.B160.01 02/24/2020
Call trace:
dump_backtrace+0x0/0x298
show_stack+0x14/0x20
dump_stack+0x118/0x190
print_address_description.isra.9+0x6c/0x3b8
__kasan_report+0x134/0x23c
kasan_report+0xc/0x18
__asan_load1+0x5c/0x68
kobject_put+0x24/0x180
put_device+0x10/0x20
scsi_host_put+0x10/0x18
ata_devres_release+0x74/0xb0
release_nodes+0x2d0/0x470
devres_release_all+0x50/0x78
really_probe+0x2d4/0x560
driver_probe_device+0x7c/0x148
device_driver_attach+0x94/0xa0
__driver_attach+0xa8/0x110
bus_for_each_dev+0xe8/0x158
driver_attach+0x30/0x40
bus_add_driver+0x220/0x2e0
driver_register+0xbc/0x1d0
__pci_register_driver+0xbc/0xd0
ahci_pci_driver_init+0x20/0x28
do_one_initcall+0xf0/0x608
kernel_init_freeable+0x31c/0x384
kernel_init+0x10/0x118
ret_from_fork+0x10/0x18
Allocated by task 5:
save_stack+0x28/0xc8
__kasan_kmalloc.isra.8+0xbc/0xd8
kasan_kmalloc+0xc/0x18
__kmalloc+0x1a8/0x280
scsi_host_alloc+0x44/0x678
ata_scsi_add_hosts+0x74/0x268
ata_host_register+0x228/0x488
ahci_host_activate+0x1c4/0x2a8
ahci_init_one+0xd18/0x1298
local_pci_probe+0x74/0xf0
work_for_cpu_fn+0x2c/0x48
process_one_work+0x488/0xc08
worker_thread+0x330/0x5d0
kthread+0x1c8/0x1d0
ret_from_fork+0x10/0x18
Freed by task 5:
save_stack+0x28/0xc8
__kasan_slab_free+0x118/0x180
kasan_slab_free+0x10/0x18
slab_free_freelist_hook+0xa4/0x1a0
kfree+0xd4/0x3a0
scsi_host_dev_release+0x100/0x148
device_release+0x7c/0xe0
kobject_put+0xb0/0x180
put_device+0x10/0x20
scsi_host_put+0x10/0x18
ata_scsi_add_hosts+0x210/0x268
ata_host_register+0x228/0x488
ahci_host_activate+0x1c4/0x2a8
ahci_init_one+0xd18/0x1298
local_pci_probe+0x74/0xf0
work_for_cpu_fn+0x2c/0x48
process_one_work+0x488/0xc08
worker_thread+0x330/0x5d0
kthread+0x1c8/0x1d0
ret_from_fork+0x10/0x18
There is also refcount issue, as well:
WARNING: CPU: 1 PID: 1 at lib/refcount.c:28 refcount_warn_saturate+0xf8/0x170
The issue is that we make an erroneous extra call to scsi_host_put()
for that host:
So in ahci_init_one()->ata_host_alloc_pinfo()->ata_host_alloc(), we setup
a device release method - ata_devres_release() - which intends to release
the SCSI hosts:
static void ata_devres_release(struct device *gendev, void *res)
{
...
for (i = 0; i < host->n_ports; i++) {
struct ata_port *ap = host->ports[i];
if (!ap)
continue;
if (ap->scsi_host)
scsi_host_put(ap->scsi_host);
}
...
}
However in the ata_scsi_add_hosts() error path, we also call
scsi_host_put() for the SCSI hosts.
Fix by removing the the scsi_host_put() calls in ata_scsi_add_hosts() and
leave this to ata_devres_release().
Fixes: f31871951b ("libata: separate out ata_host_alloc() and ata_host_register()")
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Add the PCI ID to the driver list to support this new device.
Cc: stable@vger.kernel.org
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
- Add sama5d4 watchdog to at91_dt_defconfig as it is present on sam9x60
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEycoQi/giopmpPgB12wIijOdRNOUFAl53JUAACgkQ2wIijOdR
NOV7XA//RXE5gwrPNvvVw8Uo/7vafXcAp4872Za8BQ5tE5xRzdXnHMd5WFpM4cUu
8anDa02PpqK7A6xvyYP5Er79gip6LF0B5SwJ5od5YVoDr/4zbHtu+DjtmgvvsD/U
59fU8uUV1S8fxQ95AzCQiW5Sa8D5BQyFjOebrgSsQIl8bGchE5sfdsVpMBueS1im
AEF5aS1bwBAJ7wyEpHt7B5Q3QGPfqcloZXBAw4156P3BuRyG6TjZG5JKY+0+qLUl
YGLAh60w3pW0Q1FB3xdIv0YqTPxwKC3gEqu6me8Hv2xIQmA0V1Pfje+Vx+a7pByf
Iu/KtvcRJakdwYnHXkr9UZXYDly1exY/Ak+nJHxmWzkXBZpGlqge1o/YyNXS98Tn
sbIKwyO99+VbTqtJeSYtE8pmF2rCUJ+wuC9MjEYvP2wE1vfnPnHdQTBf8fEmv3zT
RsIXp0e+h3Oq0FETeHQUs4zB/l1qDIqz+wZc0EViBdqJZOkocy2SFho/Zeu1CWaS
S/tAiRQLtEXJBnSVtN9Bz3hZImISE2GBPbeUZMIPDmg3JipNUvLLP9euHz1P782r
YJxPnZhvzygtI1dAUE+7tHOIsKaleHDivQp6r59q0nYoiQZYK9Ux6uUyeZGE87jy
PvbvkBUShamhJcnwc3TcsfmlbDCGxN/lshctP944+tOgjXhpgRc=
=27k/
-----END PGP SIGNATURE-----
Merge tag 'at91-5.7-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/config
AT91 defconfig for 5.7
- Add sama5d4 watchdog to at91_dt_defconfig as it is present on sam9x60
* tag 'at91-5.7-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
ARM: configs: at91: enable sama5d4 compatible watchdog
Link: https://lore.kernel.org/r/20200322085711.GA208700@piout.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
We want to enable some more features for omap2plus_defconfig to make it
more usable:
- Enable scururity for ext4 so setcap works
- Enable simple-pm-bus so it can be later on be configured in the dts
files as needed
- Enable zram as loadable modules as we do have devices using it
- Enable more devices for droid4 for 1-wire battery eeprom and isl29028
proximity sensor
- Enable mcpdm clocks from the PMIC as loadable modules
- Enable ina2xx_adc as loadable module
- And finally let's also omap2plus_deconfig for moved and dropped options
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAl5xBl0RHHRvbnlAYXRv
bWlkZS5jb20ACgkQG9Q+yVyrpXP6Qw/9H9X3lNoPXjAocE/BK5BNKBpg4ef11Ivy
sWS9Ok1wZ3wIsHAbGvhNpzQbTvlrLvF/8KFFClRmiATMH2+xDwjKDw5iuR2qYr7t
5c252gOQ2NoK6RqtYZJwdKird++d427/0J9QXlYmtDy6Jf+aJrbIzEnGadHyEVES
uag8S/91pmJyqpGTndW1N9TruEmsIWXc/CEDHwIyShT+XYyiXr5djPK+oFRm7ReV
BM6Ho6Rq1Ps5oTIYANeNMnxdhwocEIjmqwolb9Hw9qmM9d8StMqx6Svw+NyRN3Xb
TZANXvV00Zk6ZwzFRBEsLiVdDZPuo9rlLiJsYUBDOg5JMf6cFaVvL1K5pbWFP8l2
Uw+hDu7O2eBeX+Q9ksudkipYly+PWqdZ74Fe7Er87fq8KM3OT12gDVcMJX3mtz9v
CMzoXzno8w2KMLLNQnnWsSCkWD37p9EUrGgKYKo9LGGUZsmJA2y5f89tep2TwCNQ
69V8vdFRlhtXpV/U5+UuCtM0G8ebeP/cD8qvzRjojbaN0EJ/v06kSQyu5De2743a
2T+azAZbHSQpYy1Ap+bklRPMxtFNO33K6TC4Mtlg+0JwL560wsHziIlUkfNOajV0
ZVaNlyQVuSUVNHSw+65mNZZkNj7XdDFdNSFrf+t3FMDWEKHCedFhbYJBpMef8x95
uG14G7R2rXE=
=Icp5
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v5.7/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/config
Defconfig changes for omaps for v5.7 merge window
We want to enable some more features for omap2plus_defconfig to make it
more usable:
- Enable scururity for ext4 so setcap works
- Enable simple-pm-bus so it can be later on be configured in the dts
files as needed
- Enable zram as loadable modules as we do have devices using it
- Enable more devices for droid4 for 1-wire battery eeprom and isl29028
proximity sensor
- Enable mcpdm clocks from the PMIC as loadable modules
- Enable ina2xx_adc as loadable module
- And finally let's also omap2plus_deconfig for moved and dropped options
* tag 'omap-for-v5.7/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: omap2plus_defconfig: Update for moved and dropped options
ARM: omap2plus_defconfig: Enable ina2xx_adc as a loadable module
ARM: omap2plus_defconfig: Enable McPDM optional PMIC clock as modules
ARM: omap2plus_defconfig: Enable more droid4 devices as loadable modules
ARM: omap2plus_defconfig: Enable zram as loadable modules
ARM: omap2plus_defconfig: Enable simple-pm-bus
ARM: omap2plus_defconfig: Enable ext4 security for setcap
Link: https://lore.kernel.org/r/pull-1584575344-983293@atomide.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- A seris from Li Yang to make defconfig useful for NXP LS family SoCs.
Most drivers are built as module there, but those helping boot system
with NFS are enabled built-in.
- Enable i.MX8MP pinctrl and i.MX8MM thermal driver support in
defconfig.
- Enable i.MX DRM driver support for multi_v7_defconfig.
- Enable ATMEL_MXT and AD7879 touch support for imx_v6_v7_defconfig.
-----BEGIN PGP SIGNATURE-----
iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAl5xnT0UHHNoYXduZ3Vv
QGtlcm5lbC5vcmcACgkQUFdYWoewfM7/cwf/W3mjSLA4MhY8brUydqYYlPTPDhZT
ZNvQLG8/dfeCnfuTF9Z8kXTkEXI+CgyzzLwWvRSxPDIvCcxFV38yjWEWodMWSMPc
gTPMHkRRCu63VuE0suwDSDsaPn4/g3s5E51kFzSoEnSSy0n+fVmXJosVoB9bEDNF
o15R3qT7leFwoR+bAB+h7X8EloPCC7QzZKpKZfNlIFfDd6aMObo1++HY+FqeNy7S
88lD+JdW2yyoj9r9Qkx3k/c3Hh+1uMysIM8FsVqeYSPGSrN8eK+wA5CqtHQ3TF8/
jcB7LdH0US8qL3oSnweCuT3Pb6zRtQwrsnpMZVR7Urue6Thq9i08jVuvUw==
=5yPc
-----END PGP SIGNATURE-----
Merge tag 'imx-defconfig-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/config
i.MX defconfig changes for 5.7:
- A seris from Li Yang to make defconfig useful for NXP LS family SoCs.
Most drivers are built as module there, but those helping boot system
with NFS are enabled built-in.
- Enable i.MX8MP pinctrl and i.MX8MM thermal driver support in
defconfig.
- Enable i.MX DRM driver support for multi_v7_defconfig.
- Enable ATMEL_MXT and AD7879 touch support for imx_v6_v7_defconfig.
* tag 'imx-defconfig-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (22 commits)
arm64: defconfig: Enable e1000 device
arm64: defconfig: Enable PHY devices used on QorIQ boards
arm64: defconfig: Enable RTC devices for QorIQ boards
arm64: defconfig: Enable flash device drivers for QorIQ boards
arm64: defconfig: Enable ARM Mali display driver
arm64: defconfig: Enable QorIQ GPIO driver
arm64: defconfig: Enable QorIQ IFC NAND controller driver
arm64: defconfig: Enable ARM SBSA watchdog driver
arm64: defconfig: Enable QorIQ cpufreq driver
arm64: defconfig: Enable NXP/FSL SPI controller drivers
arm64: defconfig: Enable ENETC Ethernet controller and FELIX switch
arm64: defconfig: Enable QorIQ DPAA2 drivers
arm64: defconfig: Enable QorIQ DPAA1 drivers
arm64: defconfig: Enable NXP flexcan driver
arm64: defconfig: run through savedefconfig for ordering
arm64: defconfig: Enable CONFIG_IMX8MM_THERMAL as module
arm64: defconfig: add i.MX system controller thermal support
ARM: multi_v7_defconfig: enable drm imx support
arm64: defconfig: Enable CONFIG_PCIE_LAYERSCAPE_GEN4
ARM: imx_v6_v7_defconfig: Enable TOUCHSCREEN_AD7879
...
Link: https://lore.kernel.org/r/20200318051918.32579-6-shawnguo@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Enable QRTR and the Broadcomm bluetooth driver in the qcom_defconfig,
for usage on the 8974 devices.
-----BEGIN PGP SIGNATURE-----
iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAl5xpIMbHGJqb3JuLmFu
ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FPfEP/1LAgxraodf3d+V/Qb5i
LiMj9JVFrx1r8xeH9hMEvoJzjvaj9aCHVkRyO4eZaqPvSDnHqGKUajhzJBldxQzc
RXGOhCwuw+ZkMi9ilCoVDUIFXbysvOPWZiJvzhvux4DT1r+L1uOyFwze3VQDr24g
QJQkXyzg0bbTx1I5O4hi0mBZ/A6wj0CxhIDZAF3dzKOhZsobuZ7ZqFeTIDqRuG73
/vH4pWBSg3TELL65GbOQyK1YvD4K27CRmILi0M8OX9v67NppAIElSZfqg7H0j6Ec
2I/ueWqQ6E4d96E3x984EgGIQcDPk9n2J17GfEEn2RTfhUfq711IQJUG/tnzLT9g
F7LbK/M83SU3ejZ3nH/nbDhEUaz60drwFZQOZ5X971kr6bvFhsaCbKd0FA1FmzrO
LvoJU9pxagil5fO9FKNWcoCoCrXyfA4hR6oT9jQVj09PvRQ/A9TrGj+Vi7kSssuC
i5Q9hZ9VzwE0fSNPw9F6qwCsR+qOHkOIV95R+ghJOj+x5jOrOrfEPf5BcbOG6iiu
l3QIrwRPvA0g5u5fcQcv8nHNd97XCpRSUaYLgX+0uzw//IeLUYopWa3yLncZfGVl
Hwn6P3OfW2dZYUXOLwrtKmLFi8yUmpFbqkJaNpNBWDXqrdZVhHDHtb3dl3+dZyyA
dAFF8AYncYisnUA1m0+qFOlj
=RP0d
-----END PGP SIGNATURE-----
Merge tag 'qcom-defconfig-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/config
Qualcomm ARM defconfig updates for v5.7
Enable QRTR and the Broadcomm bluetooth driver in the qcom_defconfig,
for usage on the 8974 devices.
* tag 'qcom-defconfig-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
ARM: qcom_defconfig: Enable QRTR
ARM: qcom_defconfig: add Broadcom bluetooth options
Link: https://lore.kernel.org/r/20200318043931.GC470201@yoga
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Enable SDM845 audio, display and gpu related configs and the Truly
NT35597 panel driver, all relevant for various SDM845 based boards.
Enable IPQ6018 clocks and pinctrl and the pmic vibrator driver for
PM8916.
-----BEGIN PGP SIGNATURE-----
iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAl5xpEwbHGJqb3JuLmFu
ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FResQALEYZ1hptpViAtgKo9kO
8He1u+jCdS7lVcHjZowmCBL9MhuLKlE56ZxHSGR0qhdBJ32LVl5IM//Uj1NQuk2V
a86J0GpJ5JT11spzjXpvdxZ5NcrXPErPjpIdBDnC57yXfCPrOkPeiAO1MX3vSolQ
ABWZOTxK1eexa4MRyd7Ml9U0SEAo4uB0XXFGw/2vcjGCQOfr3NzDCshx693RIAQm
Q/74FBF1Ww2XXLRZaq4s15jFFzeaIGafpmVpJKPJAWowDZPIlWZIPooOBGElghak
2P+hHZlKol+umHvVOC+dbsk1Tr4/ZHQsLYiD0zqKogmPZNRzuJwXgEUCbQl/AGbt
T5rQ3HCnIO5Q9+g/bA67F51ycSFqsdnONvgaEk+VDE9EBmpoU9F9y8HeDHttgjUe
aadGvoI2eX8iF78iGSdmxrnudCnO3KmN1jPiKThwwfNmpZ+NkwlT0BAylf2m44tM
42gvLhZ+UbVlZmC/+QykVYYRsvmj8hPCTZF7/dyvvAnyw41VFTv8u5OZxNl6Ltnq
CBLJhYAfTxFcFux/cu2yumPeRjTAQiLWiEXgJecpk21xIs98okNaNjczDEIi3Bg2
kOgKOQJ/BKzwrzS1ALQghde1h4TZdakme+TIOA3Zn75KNkDmMsclk2gS3QVhYV5M
NTcbraHWjSkpe5KK98pMZFYC
=GDt8
-----END PGP SIGNATURE-----
Merge tag 'qcom-arm64-defconfig-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/config
Qualcomm ARM64 defconfig updates for v5.7
Enable SDM845 audio, display and gpu related configs and the Truly
NT35597 panel driver, all relevant for various SDM845 based boards.
Enable IPQ6018 clocks and pinctrl and the pmic vibrator driver for
PM8916.
* tag 'qcom-arm64-defconfig-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
arm64: defconfig: Enable Qualcomm SDM845 audio configs
arm64: defconfig: Enable Truly NT35597 WQXGA panel
arm64: defconfig: Enable Qualcomm SDM845 display and gpu clocks
arm64: defconfig: Enable qcom ipq6018 clock and pinctrl
arm64: defconfig: Enable Qualcomm PM8XXX vibrator support
Link: https://lore.kernel.org/r/20200318043856.GB470201@yoga
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
1. Enable Energy Model and Multi-core scheduler because they fit common
use of Exynos SoCs - mobile devices,
2. Enable more drivers for GalaxyS3/Trats2.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAl5vvEUQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD17inEACazIONK//wzfmqnNKlT+WnJuEiZn7iX8bn
dN8qsrT3LQMSxQhx3urce/WSMSkcWmYqWn4JkQsfYHYidoLCvsmZuAbTcWJCHCEF
dLY4diaVGeXVQE9F2zUlsyAOErxgnV8fv8yzmu9c7g3s6aF1k3SztGgu0xASXjO2
IxOEFKZ7P5lhuO/rvdi4afGKxssY5pSlzdaRWpXZYkXDiE8MCJrRC/fiQaiywqi8
8eVIYcotTmHNpWGL2+Zt9wHZnG4ZWFHVjYxdwVDG8NMGE910HPXT4IQSCBXf4am8
hjae7dppdjuufraNw4cX4z1n7hUPZ3Y808nIcp2uD2Si6LwnkA/S0DlIl0a+RbpA
6nkxyeKhz1WIzucyAk0W7wkmMs5AHmmAfnW6ODxOiNaS4+wPzSwmsdHZFLD+9LF8
vz0Nt77q5OvEw5tcA8i2JqwcBoOlHx4zoU9lmmdGXZjBGUZ4jPQyqiSL2qbNhOo5
9RSWetCf/IqImGW68MQ6L/BLhoJrim3mFHLYJB2s9QxaXpDLEV7OC+NZsR+i4/qW
KxZFl6nEO6AjXZjHMWsG5yjmLJDdIGH5l+M4Rjhs1WG859nJWCVuF9j3RM6vcY4Y
5PtDrjJWJbAxZ/NZp//tgY3iumVECFLfNSO3Pis+PajfmcbF8JnrO++ylWG0KDLB
UfGKhMqT1Q==
=KSB7
-----END PGP SIGNATURE-----
Merge tag 'samsung-defconfig-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/config
Samsung defconfig changes for v5.7
1. Enable Energy Model and Multi-core scheduler because they fit common
use of Exynos SoCs - mobile devices,
2. Enable more drivers for GalaxyS3/Trats2.
* tag 'samsung-defconfig-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
ARM: exynos_defconfig: Add more drivers for GalaxyS3/Trats2
ARM: exynos_defconfig: Enable SCHED_MC and ENERGY_MODEL
ARM: exynos_defconfig: Enable SquashFS and increase RAM block device size
Link: https://lore.kernel.org/r/20200316175652.5604-2-krzk@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
v5.7, please pull the following:
- Marek enables the Raspberry Pi 4 specific drivers: GENET, thermal, and
GPIO regulator support in bcm2835_defconfig
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAl5pU9wACgkQh9CWnEQH
BwTRuBAApsno1KRwzGgFV0XRAKtAlzAIBcugIMZvu9jNYW024fhbLkrFpJDapWV6
Bs12fAlNZ90QuihmjEcsuCb6oLlS1GSTDbWyOdK0eyJmFFR64jNut91oJVD7nEJr
MnsB0zNAbWzW7pyy/w/D6liP2QtQ3cMKeui5R1XcnY4jkNvvB+hTP5/W8lqoWPE6
UPbA010c20PYzmzjR/Rj36oKTcUKIOng+On0gphoewbriFQRDLt5MkoiKvLzpBsf
JRHCU2mK7j9TAfPuPDQLlPkRKYPEU0fyFGkXuoyugwnI8UcwVtxQEXfR9ea2fZ8l
IJcAMHf7tmfBWaOJEQ6VF/Gjg5AC1qkq583j9vc2lfUG6Lead5Q/St1EuHu6G141
r19OZXn81YNhxZbeFAH3OhiD8RZKe3sG1But64p2LfCRFHWTqSsy0SWEC1zsamVq
c/O2hOiWYjKoJXaZaF8NrJfXwfVqRC/XsNILM6/LL7YvjnhNry+YyKfNYgCa62SH
I1KIQdHB3nRNDtVu1gCuUiXU/1tT33xcl+g8/FH5FmP0UaoTDyDvDTsVXMlfoedR
foOOFGFMPt4bjZm3/Q4CiU5FWSMg4PYRZjgrZoXhhDy1X1qKnUFkrOLFVU4T/wdj
hOziExlNVOYxYGIcX8/9CfpQ7+lr+vW9KgMlbA/cSTxh+ZOE3bM=
=XFZP
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-5.7/defconfig' of https://github.com/Broadcom/stblinux into arm/config
This pull request contains Broadcom ARM-based SoCs defconfig changes for
v5.7, please pull the following:
- Marek enables the Raspberry Pi 4 specific drivers: GENET, thermal, and
GPIO regulator support in bcm2835_defconfig
* tag 'arm-soc/for-5.7/defconfig' of https://github.com/Broadcom/stblinux:
ARM: bcm2835_defconfig: add support for Raspberry Pi4
Link: https://lore.kernel.org/r/20200311212012.9418-1-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
These macros are just used by a few files. Move them out of genhd.h,
which is included everywhere into a new standalone header.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This is bio layer functionality and not related to buffer heads.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
- Enable MEGARAID_SAS to be able to boot from
disk for the D06CS development board
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJeYL3BAAoJEAvIV27ZiWZcso8P/0QtYy0Faf1+nKKJaGg5QhPH
37PJvsCsoqhVIF30OUnprv3dt8Y7y3XmoEP8raXp4mWQctukjIl2AFlUfqw4ci3x
Dy8IYKR9GhqBF/+ITVSZPivnsNrs+DgRPEUqCeaEXe9pjGafuyDl0zrD0rEhXLLz
c5m6jG4u42lC4AS1IlHajNwECKGAPsaE1eCEl1ZEIhBE/vRKaWVlxoK1hasCxRZj
L2RtHWtni1ToQ8K2BzIJ06zp23Hq1fDUx6DJ9xDvJsrd7BWFlkOZArEEKRyFdyku
wENIOSyEbo98zDZ6xcHf17zCpnnUXJF7hbNsAGyBYLmfZIMfSl8yJB7ICwKxmLwh
oBQQOoZYfyXwcNVUrxTS7E0iNeUAYNw0S10W4ILsrS7KFBvt4bMIgP/DLuWa0YYz
/KUIWNapQg83d1qVBtHddHkv42HwgEIdmiOkmNi1qtNcD8YZSHVxNKq/x1HUpyR6
nCTrMFgAMZtTwZFVBz5VVe4JOFZQnta+FuAz9z/E120n/EHjBF5XAkunZZnViuy9
XU2DoVHTM/meJQtP9bOFTSoNeiT6jOxBpDkjQFu3rHVDHRw4vrR2fjIChtuws7HJ
i/3C1HXycyKRva61sy6LNliIgff63n/1QvNsadHU17nthLMm4BbkMyeq/ktTWD9l
AczotXpDZ/LaryQN1HgC
=+dLX
-----END PGP SIGNATURE-----
Merge tag 'hisi-arm64-defconfig-for-5.7' of git://github.com/hisilicon/linux-hisi into arm/config
ARM64: hisilicon: defconfig updates for 5.7
- Enable MEGARAID_SAS to be able to boot from
disk for the D06CS development board
* tag 'hisi-arm64-defconfig-for-5.7' of git://github.com/hisilicon/linux-hisi:
arm64: defconfig: Enable MEGARAID_SAS
Link: https://lore.kernel.org/r/5E61F3C1.1080909@hisilicon.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Factor out the requeue handling from the dispatch code, this will make
subsequent addition of different requeueing schemes easier.
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Ordered ops are started twice in sync file, once outside of inode mutex
and once inside, taking the dio semaphore. There was one error path
missing the semaphore unlock.
Fixes: aab15e8ec2 ("Btrfs: fix rare chances for data loss when doing a fast fsync")
CC: stable@vger.kernel.org # 4.19+
Signed-off-by: Robbie Ko <robbieko@synology.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
[ add changelog ]
Signed-off-by: David Sterba <dsterba@suse.com>
This furthers what commit 42b10815d5 ("MIPS: Don't compile math-emu
when CONFIG_MIPS_FP_SUPPORT=n") has done
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
LDDIR/LDPTE is Loongson-3's acceleration for Page Table Walking. If BD
(Base Directory, the 4th page directory) is not enabled, then GDOffset
is biased by BadVAddr[63:62]. So, if GDOffset (aka. BadVAddr[47:36] for
Loongson-3) is big enough, "0b11(BadVAddr[63:62])|BadVAddr[47:36]|...."
can far beyond pg_swapper_dir. This means the pg_swapper_dir may NOT be
accessed by LDDIR correctly, so fix it by set PWDirExt in CP0_PWCtl.
Cc: <stable@vger.kernel.org>
Signed-off-by: Pei Huang <huangpei@loongson.cn>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
MIPS provides multiple definitions for the following functions:
fw_init_cmdline
__delay
__udelay
__ndelay
memmove
__rmemcpy
memcpy
__copy_user
The generic ones are defined in lib-y objects, which are overridden by
the Octeon ones when CONFIG_CAVIUM_OCTEON_SOC is enabled.
The use of EXPORT_SYMBOL in static libraries potentially causes a
problem for the llvm linker [1]. So, I want to forcibly link lib-y
objects to vmlinux when CONFIG_MODULES=y.
As a groundwork, we must fix multiple definitions that have previously
been hidden by lib-y.
If you look at lib/string.c, arch can define __HAVE_ARCH_* to opt out
the generic implementation.
Similarly, this commit adds CONFIG_HAVE_PLAT_* to allow a platform
to opt out the MIPS generic code.
[1]: https://github.com/ClangBuiltLinux/linux/issues/515
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
To include newly added irqchip drivers.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Load proper dtb according to firmware passed parameters and
CPU PRID.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Co-developed-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Add generic device dts for Loongson-3 devices.
They are currently almost identical but will be different later.
Some PCH devices like PCI Host Bridge is still enabled by platform
code for now.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Co-developed-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Prepare for later dts.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Co-developed-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
We've made generic irqchip drivers for Loongson-3 platform, it's time
to say goodbye to these legacy code.
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Co-developed-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This is an infrastructure change that makes way for fixing this issue.
Each patch was already posted previously so this is just a cleanup of
the original mailing list thread(s) which got out of control by now.
Everything started here:
https://lore.kernel.org/lkml/AM6PR03MB5170B06F3A2B75EFB98D071AE4E60@AM6PR03MB5170.eurprd03.prod.outlook.com/
I added reviewed-by tags from the mailing list threads, except when
withdrawn.
It took a lot longer than expected to collect everything from the
mailinglist threads, since several commit messages have been infected
with typos, and they got fixed without a new patch version.
- Correct the point of no return.
- Add two new mutexes to replace cred_guard_mutex.
- Fix each use of cred_guard_mutex.
- Update documentation.
- Add a test case.
-- EWB Removed the last 2 patches they need more work
Bernd Edlinger (9):
exec: Fix a deadlock in strace
selftests/ptrace: add test cases for dead-locks
mm: docs: Fix a comment in process_vm_rw_core
kernel: doc: remove outdated comment cred.c
kernel/kcmp.c: Use new infrastructure to fix deadlocks in execve
proc: Use new infrastructure to fix deadlocks in execve
proc: io_accounting: Use new infrastructure to fix deadlocks in execve
perf: Use new infrastructure to fix deadlocks in execve
pidfd: Use new infrastructure to fix deadlocks in execve
Eric W. Biederman (5):
exec: Only compute current once in flush_old_exec
exec: Factor unshare_sighand out of de_thread and call it separately
exec: Move cleanup of posix timers on exec out of de_thread
exec: Move exec_mmap right after de_thread in flush_old_exec
exec: Add exec_update_mutex to replace cred_guard_mutex
fs/exec.c | 78 +++++++++++++++++++---------
fs/proc/base.c | 10 ++--
include/linux/binfmts.h | 8 ++-
include/linux/sched/signal.h | 9 +++-
init/init_task.c | 1 +
kernel/cred.c | 2 -
kernel/events/core.c | 12 ++---
kernel/fork.c | 5 +-
kernel/kcmp.c | 8 +--
kernel/pid.c | 4 +-
mm/process_vm_access.c | 2 +-
tools/testing/selftests/ptrace/Makefile | 4 +-
tools/testing/selftests/ptrace/vmaccess.c | 86 +++++++++++++++++++++++++++++++
13 files changed, 179 insertions(+), 50 deletions(-)
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This changes __pidfd_fget to use the new exec_update_mutex
instead of cred_guard_mutex.
This should be safe, as the credentials do not change
before exec_update_mutex is locked. Therefore whatever
file access is possible with holding the cred_guard_mutex
here is also possbile with the exec_update_mutex.
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This changes perf_event_set_clock to use the new exec_update_mutex
instead of cred_guard_mutex.
This should be safe, as the credentials are only used for reading.
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This changes do_io_accounting to use the new exec_update_mutex
instead of cred_guard_mutex.
This fixes possible deadlocks when the trace is accessing
/proc/$pid/io for instance.
This should be safe, as the credentials are only used for reading.
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This changes lock_trace to use the new exec_update_mutex
instead of cred_guard_mutex.
This fixes possible deadlocks when the trace is accessing
/proc/$pid/stack for instance.
This should be safe, as the credentials are only used for reading,
and task->mm is updated on execve under the new exec_update_mutex.
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This changes kcmp_epoll_target to use the new exec_update_mutex
instead of cred_guard_mutex.
This should be safe, as the credentials are only used for reading,
and furthermore ->mm and ->sighand are updated on execve,
but only under the new exec_update_mutex.
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This removes an outdated comment in prepare_kernel_cred.
There is no "cred_replace_mutex" any more, so the comment must
go away.
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
This removes a duplicate "a" in the comment in process_vm_rw_core.
Signed-off-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>