Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from torvalds:master #1

Merged
merged 23 commits into from
Nov 14, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
5841734
scsi: target/core: Avoid that a kernel oops is triggered when COMPARE…
bvanassche Nov 6, 2018
f8f4adc
scsi: myrb: fix sprintf buffer overflow warning
arndb Nov 2, 2018
f8d2943
scsi: lpfc: fix remoteport access
arndb Nov 2, 2018
77409c4
scsi: myrs: avoid stack overflow warning
arndb Nov 2, 2018
a3ecf48
scsi: myrs: only build on little-endian platforms
arndb Nov 2, 2018
e34ff8e
scsi: hisi_sas: Remove set but not used variable 'dq_list'
Oct 26, 2018
0d52e64
scsi: qla2xxx: Fix a typo in MODULE_PARM_DESC
standby24x7 Oct 28, 2018
96edebd
scsi: NCR5380: Return false instead of NULL
Oct 24, 2018
86d4d06
parisc: Revert "Release spinlocks using ordered store"
danglin44 Nov 6, 2018
aca49ee
Revert "scsi: ufs: Disable blk-mq for now"
martinkpetersen Nov 6, 2018
f635e48
scsi: qla2xxx: Initialize port speed to avoid setting lower speed
Nov 6, 2018
fbb974b
rtc: cmos: Do not export alarm rtc_ops when we do not support alarms
jwrdegoede Sep 4, 2018
7ce9a99
rtc: hctosys: Add missing range error reporting
Nov 5, 2018
9bde0af
rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write
xulinsun Nov 6, 2018
1e9c75f
mnt: fix __detach_mounts infinite loop
bcodding-rh Oct 3, 2018
5df7a99
ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc
Nov 8, 2018
0d76bcc
Revert "ACPI/PCI: Pay attention to device-specific _PXM node values"
bjorn-helgaas Nov 13, 2018
e2f8b47
Merge branch 'spectre' of git://git.armlinux.org.uk/~rmk/linux-arm
torvalds Nov 14, 2018
857c34c
Merge branch 'parisc-4.20-3' of git://git.kernel.org/pub/scm/linux/ke…
torvalds Nov 14, 2018
47e624c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Nov 14, 2018
b7bbf99
Merge tag 'rtc-4.20-2' of git://git.kernel.org/pub/scm/linux/kernel/g…
torvalds Nov 14, 2018
dbcec2e
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/g…
torvalds Nov 14, 2018
d41217a
Merge tag 'pci-v4.20-fixes-1' of git://git.kernel.org/pub/scm/linux/k…
torvalds Nov 14, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion arch/arm/vfp/vfpmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ int vfp_preserve_user_clear_hwstate(struct user_vfp *ufp,
*/
ufp_exc->fpexc = hwstate->fpexc;
ufp_exc->fpinst = hwstate->fpinst;
ufp_exc->fpinst2 = ufp_exc->fpinst2;
ufp_exc->fpinst2 = hwstate->fpinst2;

/* Ensure that VFP is disabled. */
vfp_flush_hwstate(thread);
Expand Down
4 changes: 2 additions & 2 deletions arch/parisc/include/asm/spinlock.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ static inline void arch_spin_unlock(arch_spinlock_t *x)
volatile unsigned int *a;

a = __ldcw_align(x);
/* Release with ordered store. */
__asm__ __volatile__("stw,ma %0,0(%1)" : : "r"(1), "r"(a) : "memory");
mb();
*a = 1;
}

static inline int arch_spin_trylock(arch_spinlock_t *x)
Expand Down
12 changes: 8 additions & 4 deletions arch/parisc/kernel/syscall.S
Original file line number Diff line number Diff line change
Expand Up @@ -640,7 +640,8 @@ cas_action:
sub,<> %r28, %r25, %r0
2: stw %r24, 0(%r26)
/* Free lock */
stw,ma %r20, 0(%sr2,%r20)
sync
stw %r20, 0(%sr2,%r20)
#if ENABLE_LWS_DEBUG
/* Clear thread register indicator */
stw %r0, 4(%sr2,%r20)
Expand All @@ -654,7 +655,8 @@ cas_action:
3:
/* Error occurred on load or store */
/* Free lock */
stw,ma %r20, 0(%sr2,%r20)
sync
stw %r20, 0(%sr2,%r20)
#if ENABLE_LWS_DEBUG
stw %r0, 4(%sr2,%r20)
#endif
Expand Down Expand Up @@ -855,7 +857,8 @@ cas2_action:

cas2_end:
/* Free lock */
stw,ma %r20, 0(%sr2,%r20)
sync
stw %r20, 0(%sr2,%r20)
/* Enable interrupts */
ssm PSW_SM_I, %r0
/* Return to userspace, set no error */
Expand All @@ -865,7 +868,8 @@ cas2_end:
22:
/* Error occurred on load or store */
/* Free lock */
stw,ma %r20, 0(%sr2,%r20)
sync
stw %r20, 0(%sr2,%r20)
ssm PSW_SM_I, %r0
ldo 1(%r0),%r28
b lws_exit
Expand Down
5 changes: 0 additions & 5 deletions drivers/pci/pci-acpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -793,15 +793,10 @@ static void pci_acpi_setup(struct device *dev)
{
struct pci_dev *pci_dev = to_pci_dev(dev);
struct acpi_device *adev = ACPI_COMPANION(dev);
int node;

if (!adev)
return;

node = acpi_get_node(adev->handle);
if (node != NUMA_NO_NODE)
set_dev_node(dev, node);

pci_acpi_optimize_delay(pci_dev, adev->handle);

pci_acpi_add_pm_notifier(adev, pci_dev);
Expand Down
4 changes: 3 additions & 1 deletion drivers/rtc/hctosys.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,10 @@ static int __init rtc_hctosys(void)
tv64.tv_sec = rtc_tm_to_time64(&tm);

#if BITS_PER_LONG == 32
if (tv64.tv_sec > INT_MAX)
if (tv64.tv_sec > INT_MAX) {
err = -ERANGE;
goto err_read;
}
#endif

err = do_settimeofday64(&tv64);
Expand Down
16 changes: 12 additions & 4 deletions drivers/rtc/rtc-cmos.c
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,7 @@ static int cmos_read_alarm(struct device *dev, struct rtc_wkalrm *t)
struct cmos_rtc *cmos = dev_get_drvdata(dev);
unsigned char rtc_control;

/* This not only a rtc_op, but also called directly */
if (!is_valid_irq(cmos->irq))
return -EIO;

Expand Down Expand Up @@ -452,6 +453,7 @@ static int cmos_set_alarm(struct device *dev, struct rtc_wkalrm *t)
unsigned char mon, mday, hrs, min, sec, rtc_control;
int ret;

/* This not only a rtc_op, but also called directly */
if (!is_valid_irq(cmos->irq))
return -EIO;

Expand Down Expand Up @@ -516,9 +518,6 @@ static int cmos_alarm_irq_enable(struct device *dev, unsigned int enabled)
struct cmos_rtc *cmos = dev_get_drvdata(dev);
unsigned long flags;

if (!is_valid_irq(cmos->irq))
return -EINVAL;

spin_lock_irqsave(&rtc_lock, flags);

if (enabled)
Expand Down Expand Up @@ -579,6 +578,12 @@ static const struct rtc_class_ops cmos_rtc_ops = {
.alarm_irq_enable = cmos_alarm_irq_enable,
};

static const struct rtc_class_ops cmos_rtc_ops_no_alarm = {
.read_time = cmos_read_time,
.set_time = cmos_set_time,
.proc = cmos_procfs,
};

/*----------------------------------------------------------------*/

/*
Expand Down Expand Up @@ -855,9 +860,12 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
dev_dbg(dev, "IRQ %d is already in use\n", rtc_irq);
goto cleanup1;
}

cmos_rtc.rtc->ops = &cmos_rtc_ops;
} else {
cmos_rtc.rtc->ops = &cmos_rtc_ops_no_alarm;
}

cmos_rtc.rtc->ops = &cmos_rtc_ops;
cmos_rtc.rtc->nvram_old_abi = true;
retval = rtc_register_device(cmos_rtc.rtc);
if (retval)
Expand Down
3 changes: 3 additions & 0 deletions drivers/rtc/rtc-pcf2127.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,9 @@ static int pcf2127_i2c_gather_write(void *context,
memcpy(buf + 1, val, val_size);

ret = i2c_master_send(client, buf, val_size + 1);

kfree(buf);

if (ret != val_size + 1)
return ret < 0 ? ret : -EIO;

Expand Down
1 change: 1 addition & 0 deletions drivers/scsi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -578,6 +578,7 @@ config SCSI_MYRB
config SCSI_MYRS
tristate "Mylex DAC960/DAC1100 PCI RAID Controller (SCSI Interface)"
depends on PCI
depends on !CPU_BIG_ENDIAN || COMPILE_TEST
select RAID_ATTRS
help
This driver adds support for the Mylex DAC960, AcceleRAID, and
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/NCR5380.c
Original file line number Diff line number Diff line change
Expand Up @@ -1198,7 +1198,7 @@ static bool NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd)

out:
if (!hostdata->selecting)
return NULL;
return false;
hostdata->selecting = NULL;
return ret;
}
Expand Down
2 changes: 0 additions & 2 deletions drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -904,11 +904,9 @@ static void start_delivery_v1_hw(struct hisi_sas_dq *dq)
{
struct hisi_hba *hisi_hba = dq->hisi_hba;
struct hisi_sas_slot *s, *s1, *s2 = NULL;
struct list_head *dq_list;
int dlvry_queue = dq->id;
int wp;

dq_list = &dq->list;
list_for_each_entry_safe(s, s1, &dq->list, delivery) {
if (!s->ready)
break;
Expand Down
2 changes: 0 additions & 2 deletions drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1670,11 +1670,9 @@ static void start_delivery_v2_hw(struct hisi_sas_dq *dq)
{
struct hisi_hba *hisi_hba = dq->hisi_hba;
struct hisi_sas_slot *s, *s1, *s2 = NULL;
struct list_head *dq_list;
int dlvry_queue = dq->id;
int wp;

dq_list = &dq->list;
list_for_each_entry_safe(s, s1, &dq->list, delivery) {
if (!s->ready)
break;
Expand Down
2 changes: 0 additions & 2 deletions drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -886,11 +886,9 @@ static void start_delivery_v3_hw(struct hisi_sas_dq *dq)
{
struct hisi_hba *hisi_hba = dq->hisi_hba;
struct hisi_sas_slot *s, *s1, *s2 = NULL;
struct list_head *dq_list;
int dlvry_queue = dq->id;
int wp;

dq_list = &dq->list;
list_for_each_entry_safe(s, s1, &dq->list, delivery) {
if (!s->ready)
break;
Expand Down
2 changes: 2 additions & 0 deletions drivers/scsi/lpfc/lpfc_debugfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -698,6 +698,8 @@ lpfc_debugfs_nodelist_data(struct lpfc_vport *vport, char *buf, int size)
rport = lpfc_ndlp_get_nrport(ndlp);
if (rport)
nrport = rport->remoteport;
else
nrport = NULL;
spin_unlock(&phba->hbalock);
if (!nrport)
continue;
Expand Down
3 changes: 2 additions & 1 deletion drivers/scsi/myrb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1049,7 +1049,8 @@ static int myrb_get_hba_config(struct myrb_hba *cb)
enquiry2->fw.firmware_type = '0';
enquiry2->fw.turn_id = 0;
}
sprintf(cb->fw_version, "%d.%02d-%c-%02d",
snprintf(cb->fw_version, sizeof(cb->fw_version),
"%d.%02d-%c-%02d",
enquiry2->fw.major_version,
enquiry2->fw.minor_version,
enquiry2->fw.firmware_type,
Expand Down
13 changes: 8 additions & 5 deletions drivers/scsi/myrs.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,12 @@ static unsigned char myrs_get_ctlr_info(struct myrs_hba *cs)
dma_addr_t ctlr_info_addr;
union myrs_sgl *sgl;
unsigned char status;
struct myrs_ctlr_info old;
unsigned short ldev_present, ldev_critical, ldev_offline;

ldev_present = cs->ctlr_info->ldev_present;
ldev_critical = cs->ctlr_info->ldev_critical;
ldev_offline = cs->ctlr_info->ldev_offline;

memcpy(&old, cs->ctlr_info, sizeof(struct myrs_ctlr_info));
ctlr_info_addr = dma_map_single(&cs->pdev->dev, cs->ctlr_info,
sizeof(struct myrs_ctlr_info),
DMA_FROM_DEVICE);
Expand Down Expand Up @@ -198,9 +201,9 @@ static unsigned char myrs_get_ctlr_info(struct myrs_hba *cs)
cs->ctlr_info->rbld_active +
cs->ctlr_info->exp_active != 0)
cs->needs_update = true;
if (cs->ctlr_info->ldev_present != old.ldev_present ||
cs->ctlr_info->ldev_critical != old.ldev_critical ||
cs->ctlr_info->ldev_offline != old.ldev_offline)
if (cs->ctlr_info->ldev_present != ldev_present ||
cs->ctlr_info->ldev_critical != ldev_critical ||
cs->ctlr_info->ldev_offline != ldev_offline)
shost_printk(KERN_INFO, cs->host,
"Logical drive count changes (%d/%d/%d)\n",
cs->ctlr_info->ldev_critical,
Expand Down
1 change: 1 addition & 0 deletions drivers/scsi/qla2xxx/qla_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -4763,6 +4763,7 @@ qla2x00_alloc_fcport(scsi_qla_host_t *vha, gfp_t flags)
fcport->loop_id = FC_NO_LOOP_ID;
qla2x00_set_fcport_state(fcport, FCS_UNCONFIGURED);
fcport->supported_classes = FC_COS_UNSPECIFIED;
fcport->fp_speed = PORT_SPEED_UNKNOWN;

fcport->ct_desc.ct_sns = dma_alloc_coherent(&vha->hw->pdev->dev,
sizeof(struct ct_sns_pkt), &fcport->ct_desc.ct_sns_dma,
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/qla2xxx/qla_os.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ module_param(ql2xplogiabsentdevice, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(ql2xplogiabsentdevice,
"Option to enable PLOGI to devices that are not present after "
"a Fabric scan. This is needed for several broken switches. "
"Default is 0 - no PLOGI. 1 - perfom PLOGI.");
"Default is 0 - no PLOGI. 1 - perform PLOGI.");

int ql2xloginretrycount = 0;
module_param(ql2xloginretrycount, int, S_IRUGO);
Expand Down
7 changes: 0 additions & 7 deletions drivers/scsi/ufs/ufshcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -8099,13 +8099,6 @@ int ufshcd_alloc_host(struct device *dev, struct ufs_hba **hba_handle)
err = -ENOMEM;
goto out_error;
}

/*
* Do not use blk-mq at this time because blk-mq does not support
* runtime pm.
*/
host->use_blk_mq = false;

hba = shost_priv(host);
hba->host = host;
hba->dev = dev;
Expand Down
4 changes: 2 additions & 2 deletions drivers/target/target_core_transport.c
Original file line number Diff line number Diff line change
Expand Up @@ -1778,7 +1778,7 @@ EXPORT_SYMBOL(target_submit_tmr);
void transport_generic_request_failure(struct se_cmd *cmd,
sense_reason_t sense_reason)
{
int ret = 0;
int ret = 0, post_ret;

pr_debug("-----[ Storage Engine Exception; sense_reason %d\n",
sense_reason);
Expand All @@ -1790,7 +1790,7 @@ void transport_generic_request_failure(struct se_cmd *cmd,
transport_complete_task_attr(cmd);

if (cmd->transport_complete_callback)
cmd->transport_complete_callback(cmd, false, NULL);
cmd->transport_complete_callback(cmd, false, &post_ret);

if (transport_check_aborted_status(cmd, 1))
return;
Expand Down
6 changes: 3 additions & 3 deletions fs/namespace.c
Original file line number Diff line number Diff line change
Expand Up @@ -695,9 +695,6 @@ static struct mountpoint *lookup_mountpoint(struct dentry *dentry)

hlist_for_each_entry(mp, chain, m_hash) {
if (mp->m_dentry == dentry) {
/* might be worth a WARN_ON() */
if (d_unlinked(dentry))
return ERR_PTR(-ENOENT);
mp->m_count++;
return mp;
}
Expand All @@ -711,6 +708,9 @@ static struct mountpoint *get_mountpoint(struct dentry *dentry)
int ret;

if (d_mountpoint(dentry)) {
/* might be worth a WARN_ON() */
if (d_unlinked(dentry))
return ERR_PTR(-ENOENT);
mountpoint:
read_seqlock_excl(&mount_lock);
mp = lookup_mountpoint(dentry);
Expand Down