stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Cc: chenxiang <chenxiang66@hisilicon.com>,
	Jason Yan <yanaijie@huawei.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL for 3.18 097/102] scsi: libsas: initialize sas_phy status according to response of DISCOVER
Date: Mon, 19 Mar 2018 16:13:33 +0000	[thread overview]
Message-ID: <20180319161117.17833-97-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180319161117.17833-1-alexander.levin@microsoft.com>

From: chenxiang <chenxiang66@hisilicon.com>

[ Upstream commit affc67788fe5dfffad5cda3d461db5cf2b2ff2b0 ]

The status of SAS PHY is in sas_phy->enabled. There is an issue that the
status of a remote SAS PHY may be initialized incorrectly: if disable
remote SAS PHY through sysfs interface (such as echo 0 >
/sys/class/sas_phy/phy-1:0:0/enable), then reboot the system, and we
will find the status of remote SAS PHY which is disabled before is
1 (cat /sys/class/sas_phy/phy-1:0:0/enable). But actually the status of
remote SAS PHY is disabled and the device attached is not found.

In SAS protocol, NEGOTIATED LOGICAL LINK RATE field of DISCOVER response
is 0x1 when remote SAS PHY is disabled. So initialize sas_phy->enabled
according to the value of NEGOTIATED LOGICAL LINK RATE field.

Signed-off-by: chenxiang <chenxiang66@hisilicon.com>
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Jason Yan <yanaijie@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 drivers/scsi/libsas/sas_expander.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
index 9ee5a359248c..e2630aea4e9f 100644
--- a/drivers/scsi/libsas/sas_expander.c
+++ b/drivers/scsi/libsas/sas_expander.c
@@ -282,6 +282,7 @@ static void sas_set_ex_phy(struct domain_device *dev, int phy_id, void *rsp)
 	phy->phy->minimum_linkrate = dr->pmin_linkrate;
 	phy->phy->maximum_linkrate = dr->pmax_linkrate;
 	phy->phy->negotiated_linkrate = phy->linkrate;
+	phy->phy->enabled = (phy->linkrate != SAS_PHY_DISABLED);
 
  skip:
 	if (new_phy)
-- 
2.14.1

  parent reply	other threads:[~2018-03-19 16:14 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-19 16:11 [PATCH AUTOSEL for 3.18 001/102] NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 002/102] IB/srpt: Fix abort handling Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 003/102] af_key: Fix slab-out-of-bounds in pfkey_compile_policy Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 004/102] mac80211: bail out from prep_connection() if a reconfig is ongoing Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 005/102] bna: Avoid reading past end of buffer Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 006/102] qlge: " Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 007/102] net: ethernet: ti: cpsw: adjust cpsw fifos depth for fullduplex flow control Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 008/102] lockd: fix lockd shutdown race Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 009/102] pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 010/102] s390: move _text symbol to address higher than zero Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 011/102] net/mlx4_en: Avoid adding steering rules with invalid ring Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 012/102] CIFS: silence lockdep splat in cifs_relock_file() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 013/102] net: qca_spi: Fix alignment issues in rx path Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 014/102] netxen_nic: set rcode to the return status from the call to netxen_issue_cmd Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 015/102] scsi: sg: don't return bogus Sg_requests Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 016/102] KVM: PPC: Book3S PR: Check copy_to/from_user return values Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 017/102] vmxnet3: ensure that adapter is in proper state during force_close Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 018/102] SMB2: Fix share type handling Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 019/102] PowerCap: Fix an error code in powercap_register_zone() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 020/102] staging: wlan-ng: prism2mgmt.c: fixed a double endian conversion before calling hfa384x_drvr_setconfig16, also fixes relative sparse warning Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 021/102] x86/tsc: Provide 'tsc=unstable' boot parameter Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 022/102] ARM: dts: imx6qdl-wandboard: Fix audio channel swap Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 023/102] ipv6: avoid dad-failures for addresses with NODAD Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 024/102] async_tx: Fix DMA_PREP_FENCE usage in do_async_gen_syndrome() Sasha Levin
2018-03-19 16:11 ` [PATCH AUTOSEL for 3.18 025/102] usb: dwc3: keystone: check return value Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 026/102] btrfs: fix incorrect error return ret being passed to mapping_set_error Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 027/102] ata: libahci: properly propagate return value of platform_get_irq() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 028/102] neighbour: update neigh timestamps iff update is effective Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 029/102] usb: chipidea: properly handle host or gadget initialization failure Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 030/102] USB: ene_usb6250: fix first command execution Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 031/102] net: x25: fix one potential use-after-free issue Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 032/102] USB: ene_usb6250: fix SCSI residue overwriting Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 033/102] sh_eth: Use platform device for printing before register_netdev() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 034/102] ath5k: fix memory leak on buf on failed eeprom read Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 035/102] selftests/powerpc: Fix TM resched DSCR test with some compilers Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 036/102] xfrm: fix state migration copy replay sequence numbers Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 037/102] ARM: davinci: da8xx: Create DSP device only when assigned memory Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 038/102] ray_cs: Avoid reading past end of buffer Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 039/102] leds: pca955x: Correct I2C Functionality Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 040/102] block: fix an error code in add_partition() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 041/102] libceph: NULL deref on crush_decode() error path Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 042/102] netfilter: ctnetlink: fix incorrect nf_ct_put during hash resize Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 043/102] scsi: bnx2fc: fix race condition in bnx2fc_get_host_stats() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 044/102] fix race in drivers/char/random.c:get_reg() Sasha Levin
2018-03-20  9:48   ` Geert Uytterhoeven
2018-03-21 18:13     ` Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 045/102] ext4: fix off-by-one on max nr_pages in ext4_find_unwritten_pgoff() Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 046/102] net: move somaxconn init from sysctl code Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 047/102] bonding: Don't update slave->link until ready to commit Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 048/102] KVM: nVMX: Fix handling of lmsw instruction Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 049/102] net: llc: add lock_sock in llc_ui_bind to avoid a race condition Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 050/102] l2tp: fix missing print session offset info Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 051/102] scsi: libiscsi: Allow sd_shutdown on bad transport Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 052/102] vfb: fix video mode and line_length being set when loaded Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 053/102] wl1251: check return from call to wl1251_acx_arp_ip_filter Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 054/102] hdlcdrv: Fix divide by zero in hdlcdrv_ioctl Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 055/102] HID: i2c: Call acpi_device_fix_up_power for ACPI-enumerated devices Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 056/102] ovl: filter trusted xattr for non-admin Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 057/102] powerpc/[booke|4xx]: Don't clobber TCR[WP] when setting TCR[DIE] Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 058/102] arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 059/102] rtc: interface: Validate alarm-time before handling rollover Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 060/102] net: freescale: fix potential null pointer dereference Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 061/102] KVM: SVM: do not zero out segment attributes if segment is unusable or not present Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 062/102] powerpc/spufs: Fix coredump of SPU contexts Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 063/102] perf trace: Add mmap alias for s390 Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 064/102] qlcnic: Fix a sleep-in-atomic bug in qlcnic_82xx_hw_write_wx_2M and qlcnic_82xx_hw_read_wx_2M Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 065/102] mISDN: Fix a sleep-in-atomic bug Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 066/102] drm/omap: fix tiled buffer stride calculations Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 067/102] Fix serial console on SNI RM400 machines Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 068/102] bio-integrity: Do not allocate integrity context for bio w/o data Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 069/102] skbuff: return -EMSGSIZE in skb_to_sgvec to prevent overflow Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 070/102] net/mlx4: Fix the check in attaching steering rules Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 071/102] perf report: Ensure the perf DSO mapping matches what libdw sees Sasha Levin
2018-03-19 16:12 ` [PATCH AUTOSEL for 3.18 072/102] tags: honor COMPILED_SOURCE with apart output directory Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 073/102] e1000e: fix race condition around skb_tstamp_tx() Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 074/102] [media] cx25840: fix unchecked return values Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 075/102] [media] mceusb: sporadic RX truncation corruption fix Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 076/102] net: phy: avoid genphy_aneg_done() for PHYs without clause 22 support Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 077/102] e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 078/102] perf/core: Correct event creation with PERF_FORMAT_GROUP Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 079/102] MIPS: mm: fixed mappings: correct initialisation Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 080/102] MIPS: kprobes: flush_insn_slot should flush only if probe initialised Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 081/102] net: emac: fix reset timeout with AR8035 phy Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 082/102] perf tests: Decompress kernel module before objdump Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 083/102] xen: avoid type warning in xchg_xen_ulong Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 084/102] bnx2x: Allow vfs to disable txvlan offload Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 085/102] sctp: fix recursive locking warning in sctp_do_peeloff Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 086/102] sparc64: ldc abort during vds iso boot Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 087/102] iio: magnetometer: st_magn_spi: fix spi_device_id table Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 088/102] Bluetooth: Send HCI Set Event Mask Page 2 command only when needed Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 089/102] ACPICA: Events: Add runtime stub support for event APIs Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 090/102] ACPICA: Disassembler: Abort on an invalid/unknown AML opcode Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 091/102] vxlan: dont migrate permanent fdb entries during learn Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 092/102] xfs: fix up agi unlinked list reservations Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 093/102] bcache: stop writeback thread after detaching Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 094/102] bcache: segregate flash only volume write streams Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 095/102] scsi: libsas: fix memory leak in sas_smp_get_phy_events() Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 096/102] scsi: libsas: fix error when getting phy events Sasha Levin
2018-03-19 16:13 ` Sasha Levin [this message]
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 098/102] tty: n_gsm: Allow ADM response in addition to UA for control dlci Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 099/102] EDAC, mv64x60: Fix an error handling path Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 100/102] signal/metag: Document a conflict with SI_USER with SIGFPE Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 101/102] signal/powerpc: Document conflicts with SI_USER and SIGFPE and SIGTRAP Sasha Levin
2018-03-19 16:13 ` [PATCH AUTOSEL for 3.18 102/102] signal/arm: Document conflicts with SI_USER and SIGFPE Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180319161117.17833-97-alexander.levin@microsoft.com \
    --to=alexander.levin@microsoft.com \
    --cc=chenxiang66@hisilicon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=stable@vger.kernel.org \
    --cc=yanaijie@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).