Re: [PATCH] bnx2i: Clean up unused pointers in bnx2i_hwi

2017-09-10 Thread Rangankar, Manish

On 10/09/17 5:48 PM, "Christos Gkekas"  wrote:

>Pointers bnx2i_cmd are set but never used, so they can be removed.
>
>Signed-off-by: Christos Gkekas 
>---
> drivers/scsi/bnx2i/bnx2i_hwi.c | 10 --
> 1 file changed, 10 deletions(-)
>
>diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c
>b/drivers/scsi/bnx2i/bnx2i_hwi.c
>index 42921db..e3f22cb 100644
>--- a/drivers/scsi/bnx2i/bnx2i_hwi.c
>+++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
>@@ -332,12 +332,10 @@ static void
>bnx2i_ring_dbell_update_sq_params(struct bnx2i_conn *bnx2i_conn,
> int bnx2i_send_iscsi_login(struct bnx2i_conn *bnx2i_conn,
>  struct iscsi_task *task)
> {
>-  struct bnx2i_cmd *bnx2i_cmd;
>   struct bnx2i_login_request *login_wqe;
>   struct iscsi_login_req *login_hdr;
>   u32 dword;
> 
>-  bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data;
>   login_hdr = (struct iscsi_login_req *)task->hdr;
>   login_wqe = (struct bnx2i_login_request *)
>   bnx2i_conn->ep->qp.sq_prod_qe;
>@@ -391,12 +389,10 @@ int bnx2i_send_iscsi_tmf(struct bnx2i_conn
>*bnx2i_conn,
>   struct iscsi_tm *tmfabort_hdr;
>   struct scsi_cmnd *ref_sc;
>   struct iscsi_task *ctask;
>-  struct bnx2i_cmd *bnx2i_cmd;
>   struct bnx2i_tmf_request *tmfabort_wqe;
>   u32 dword;
>   u32 scsi_lun[2];
> 
>-  bnx2i_cmd = (struct bnx2i_cmd *)mtask->dd_data;
>   tmfabort_hdr = (struct iscsi_tm *)mtask->hdr;
>   tmfabort_wqe = (struct bnx2i_tmf_request *)
>   bnx2i_conn->ep->qp.sq_prod_qe;
>@@ -463,12 +459,10 @@ int bnx2i_send_iscsi_tmf(struct bnx2i_conn
>*bnx2i_conn,
> int bnx2i_send_iscsi_text(struct bnx2i_conn *bnx2i_conn,
> struct iscsi_task *mtask)
> {
>-  struct bnx2i_cmd *bnx2i_cmd;
>   struct bnx2i_text_request *text_wqe;
>   struct iscsi_text *text_hdr;
>   u32 dword;
> 
>-  bnx2i_cmd = (struct bnx2i_cmd *)mtask->dd_data;
>   text_hdr = (struct iscsi_text *)mtask->hdr;
>   text_wqe = (struct bnx2i_text_request *) bnx2i_conn->ep->qp.sq_prod_qe;
> 
>@@ -541,11 +535,9 @@ int bnx2i_send_iscsi_nopout(struct bnx2i_conn
>*bnx2i_conn,
>   char *datap, int data_len, int unsol)
> {
>   struct bnx2i_endpoint *ep = bnx2i_conn->ep;
>-  struct bnx2i_cmd *bnx2i_cmd;
>   struct bnx2i_nop_out_request *nopout_wqe;
>   struct iscsi_nopout *nopout_hdr;
> 
>-  bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data;
>   nopout_hdr = (struct iscsi_nopout *)task->hdr;
>   nopout_wqe = (struct bnx2i_nop_out_request *)ep->qp.sq_prod_qe;
> 
>@@ -602,11 +594,9 @@ int bnx2i_send_iscsi_nopout(struct bnx2i_conn
>*bnx2i_conn,
> int bnx2i_send_iscsi_logout(struct bnx2i_conn *bnx2i_conn,
>   struct iscsi_task *task)
> {
>-  struct bnx2i_cmd *bnx2i_cmd;
>   struct bnx2i_logout_request *logout_wqe;
>   struct iscsi_logout *logout_hdr;
> 
>-  bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data;
>   logout_hdr = (struct iscsi_logout *)task->hdr;
> 
>   logout_wqe = (struct bnx2i_logout_request *)
>-- 
>2.7.4

Thanks,

Acked-by: Manish Rangankar 




[man-pages PATCH] cciss.4, hpsa.4: mention cciss removal in Linux 4.13

2017-09-10 Thread Eugene Syromyatnikov
During the Linux 4.13 development cycle, cciss driver has been removed
in flavor to hpsa driver that has been amended with some legacy board
support.

* man4/cciss.4 (.SH DESCRIPTION): Mention driver removal.
* man4/hpsa.4 (.SH DESCRIPTION): Mention list of boards that recognised
since Linux 4.13.

Signed-off-by: Eugene Syromyatnikov 
---
 man4/cciss.4 |  7 +++
 man4/hpsa.4  | 26 ++
 2 files changed, 33 insertions(+)

diff --git a/man4/cciss.4 b/man4/cciss.4
index e6ba93d..ff4c248 100644
--- a/man4/cciss.4
+++ b/man4/cciss.4
@@ -15,6 +15,13 @@ cciss \- HP Smart Array block driver
 modprobe cciss [ cciss_allow_hpsa=1 ]
 .fi
 .SH DESCRIPTION
+.\" commit 253d2464df446456c0bba5ed4137a7be0b278aa8
+.BR Note :
+This obsolete driver was removed from the kernel in version 4.13,
+as it is superseded by
+.BR hpsa (4)
+driver in newer kernels.
+.PP
 .B cciss
 is a block driver for older HP Smart Array RAID controllers.
 .SS Options
diff --git a/man4/hpsa.4 b/man4/hpsa.4
index 63000bf..9b7fd82 100644
--- a/man4/hpsa.4
+++ b/man4/hpsa.4
@@ -52,6 +52,32 @@ driver supports the following Smart Array boards:
 Smart Array P711m
 StorageWorks P1210m
 .fi
+.PP
+.\" commit 135ae6edeb51979d0998daf1357f149a7d6ebb08
+Since Linux 4.13, the following Smart Array boards are also supported:
+.PP
+.nf
+Smart Array 5300
+Smart Array 5312
+Smart Array 532
+Smart Array 5i
+Smart Array 6400
+Smart Array 6400 EM
+Smart Array 641
+Smart Array 642
+Smart Array 6i
+Smart Array E200
+Smart Array E200i
+Smart Array E200i
+Smart Array E200i
+Smart Array E200i
+Smart Array E500
+Smart Array P400
+Smart Array P400i
+Smart Array P600
+Smart Array P700m
+Smart Array P800
+.fi
 .SS Configuration details
 To configure HP Smart Array controllers,
 use the HP Array Configuration Utility (either
-- 
2.1.4



Re: [PATCH] scsi: ufs: Make use of UFS_BIT macro wherever possible

2017-09-10 Thread Alim Akhtar
Hi,

Ping!!!

Should I drop this patch and send another one which removes UFS_BIT() macro?

On Tue, Aug 29, 2017 at 4:35 PM, Alim Akhtar  wrote:
> Hi Bart,
> Thanks for your review.
>
> On 08/28/2017 09:15 PM, Bart Van Assche wrote:
>> On Mon, 2017-08-28 at 17:49 +0530, Alim Akhtar wrote:
>>> This entire file uses UFS_BIT macro for bits definition, expect for few
>>> places. This patch convert those defines to use UFS_BIT macro to be aligned
>>> with reset of the file.
>>
>> This is the definition of the UFS_BIT() macro I found in
>> drivers/scsi/ufs/ufshci.h:
>>
>> #define UFS_BIT(x)(1L << (x))
>>
>> Using this macro makes code longer instead of shorter and does not improve
>> code readability. Is this macro really useful? Wouldn't it be better to
>> remove the UFS_BIT() macro instead of introducing more uses of it?
>>
> Well, the intension of this patch is to make use of already existing
> UFS_BIT() macro.
>
> I am not aware of the history why this macro was created at first place.
>
> Well, it does improve code readability, for me at least, no need for one
> to do a calculation to see which bit it is, as we pass _bit_ number to
> UFS_BIT.
>
> I am totally okay, if you or other reviewers suggests me to change
> UFS_BIT to actual bit position, something like the original case, which
> this patch is trying to change.
>
>> Thanks,
>>
>> Bart.
>>
> Thanks!
> Alim



-- 
Regards,
Alim


Re: [PATCH] scsi: shost->async_scan should be protected by mutex_lock

2017-09-10 Thread Tyrel Datwyler
On 09/07/2017 11:54 PM, Ouyangzhaowei (Charles) wrote:
> shost->async_scan should be protected by mutex_lock, otherwise the check
> of "called twice" won't work.
> 
> Signed-off-by: Ouyang Zhaowei 
> ---
>  drivers/scsi/scsi_scan.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
> index fd88dab..1d1df51 100644
> --- a/drivers/scsi/scsi_scan.c
> +++ b/drivers/scsi/scsi_scan.c
> @@ -1722,6 +1722,7 @@ static struct async_scan_data
> *scsi_prep_async_scan(struct Scsi_Host *shost)
> if (strncmp(scsi_scan_type, "sync", 4) == 0)
> return NULL;
> 
> +   mutex_lock(>scan_mutex);

The mutex will not be unlocked in the event that either the host has called
scsi_prep_async_scan() twice, or a condition is meet the branches to the "err" 
label prior
to where the original mutex_lock() was located below.

-Tyrel

> if (shost->async_scan) {
> shost_printk(KERN_DEBUG, shost, "%s called twice\n",
> __func__);
> return NULL;
> @@ -1735,7 +1736,6 @@ static struct async_scan_data
> *scsi_prep_async_scan(struct Scsi_Host *shost)
> goto err;
> init_completion(>prev_finished);
> 
> -   mutex_lock(>scan_mutex);
> spin_lock_irqsave(shost->host_lock, flags);
> shost->async_scan = 1;
> spin_unlock_irqrestore(shost->host_lock, flags);
> 



Re: [PATCH 3/3] fcoe: open-code fcoe_destroy_work() for NETDEV_UNREGISTER

2017-09-10 Thread Lee Duncan


On 08/31/2017 02:19 AM, Hannes Reinecke wrote:
> When a NETDEV_UNREGISTER notification is received the network
> device is _deleted_ after the callback returns.
> So we cannot use a workqueue here, as this would cause an
> inversion when removing the device as the netdev is already gone.
> This manifests with a nasty warning during shutdown:
> 
< ...
> 

Reviewed-by: Lee Duncan 
-- 
Lee Duncan
SUSE Labs


Re: [PATCH 2/3] fcoe: separate out fcoe_vport_remove()

2017-09-10 Thread Lee Duncan
On 08/31/2017 02:19 AM, Hannes Reinecke wrote:
> Separate out fcoe_vport_remove() from fcoe_destroy_work().
> No functional change.
> 
> Signed-off-by: Hannes Reinecke 
> ---
>  drivers/scsi/fcoe/fcoe.c | 55 
> +---
>  1 file changed, 33 insertions(+), 22 deletions(-)
> 
> ...
> 

Reviewed-by: Lee Duncan 
-- 
Lee Duncan
SUSE Labs


Re: [PATCH 1/3] fcoe: move fcoe_interface_remove() out of fcoe_interface_cleanup()

2017-09-10 Thread Lee Duncan
On 08/31/2017 02:19 AM, Hannes Reinecke wrote:
> No functional change.

Nit: Then why do it? Perhaps the description can say why such a change
is being done?

> 
> Signed-off-by: Hannes Reinecke 
> ---
>  drivers/scsi/fcoe/fcoe.c | 12 +++-
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
> index 85f9a3e..135bdcf 100644
> --- a/drivers/scsi/fcoe/fcoe.c
> +++ b/drivers/scsi/fcoe/fcoe.c
> @@ -501,11 +501,6 @@ static void fcoe_interface_cleanup(struct fcoe_interface 
> *fcoe)
>   struct net_device *netdev = fcoe->netdev;
>   struct fcoe_ctlr *fip = fcoe_to_ctlr(fcoe);
>  
> - rtnl_lock();
> - if (!fcoe->removed)
> - fcoe_interface_remove(fcoe);
> - rtnl_unlock();
> -
>   /* Release the self-reference taken during fcoe_interface_create() */
>   /* tear-down the FCoE controller */
>   fcoe_ctlr_destroy(fip);
> @@ -2140,6 +2135,11 @@ static void fcoe_destroy_work(struct work_struct *work)
>   cdev = fcoe_ctlr_to_ctlr_dev(ctlr);
>  
>   fcoe_if_destroy(port->lport);
> +
> + rtnl_lock();
> + if (!fcoe->removed)
> + fcoe_interface_remove(fcoe);
> + rtnl_unlock();
>   fcoe_interface_cleanup(fcoe);
>  
>   mutex_unlock(_config_mutex);
> @@ -2254,6 +2254,8 @@ static int _fcoe_create(struct net_device *netdev, enum 
> fip_mode fip_mode,
>   printk(KERN_ERR "fcoe: Failed to create interface (%s)\n",
>  netdev->name);
>   rc = -EIO;
> + if (!fcoe->removed)
> + fcoe_interface_remove(fcoe);
>   rtnl_unlock();
>   fcoe_interface_cleanup(fcoe);
>   mutex_unlock(_config_mutex);
> 

Looks good to me (other than the comment nit).

Reviewed-by: Lee Duncan 
-- 
Lee Duncan
SUSE Labs


[PATCH] bnx2i: Clean up unused pointers in bnx2i_hwi

2017-09-10 Thread Christos Gkekas
Pointers bnx2i_cmd are set but never used, so they can be removed.

Signed-off-by: Christos Gkekas 
---
 drivers/scsi/bnx2i/bnx2i_hwi.c | 10 --
 1 file changed, 10 deletions(-)

diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c
index 42921db..e3f22cb 100644
--- a/drivers/scsi/bnx2i/bnx2i_hwi.c
+++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
@@ -332,12 +332,10 @@ static void bnx2i_ring_dbell_update_sq_params(struct 
bnx2i_conn *bnx2i_conn,
 int bnx2i_send_iscsi_login(struct bnx2i_conn *bnx2i_conn,
   struct iscsi_task *task)
 {
-   struct bnx2i_cmd *bnx2i_cmd;
struct bnx2i_login_request *login_wqe;
struct iscsi_login_req *login_hdr;
u32 dword;
 
-   bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data;
login_hdr = (struct iscsi_login_req *)task->hdr;
login_wqe = (struct bnx2i_login_request *)
bnx2i_conn->ep->qp.sq_prod_qe;
@@ -391,12 +389,10 @@ int bnx2i_send_iscsi_tmf(struct bnx2i_conn *bnx2i_conn,
struct iscsi_tm *tmfabort_hdr;
struct scsi_cmnd *ref_sc;
struct iscsi_task *ctask;
-   struct bnx2i_cmd *bnx2i_cmd;
struct bnx2i_tmf_request *tmfabort_wqe;
u32 dword;
u32 scsi_lun[2];
 
-   bnx2i_cmd = (struct bnx2i_cmd *)mtask->dd_data;
tmfabort_hdr = (struct iscsi_tm *)mtask->hdr;
tmfabort_wqe = (struct bnx2i_tmf_request *)
bnx2i_conn->ep->qp.sq_prod_qe;
@@ -463,12 +459,10 @@ int bnx2i_send_iscsi_tmf(struct bnx2i_conn *bnx2i_conn,
 int bnx2i_send_iscsi_text(struct bnx2i_conn *bnx2i_conn,
  struct iscsi_task *mtask)
 {
-   struct bnx2i_cmd *bnx2i_cmd;
struct bnx2i_text_request *text_wqe;
struct iscsi_text *text_hdr;
u32 dword;
 
-   bnx2i_cmd = (struct bnx2i_cmd *)mtask->dd_data;
text_hdr = (struct iscsi_text *)mtask->hdr;
text_wqe = (struct bnx2i_text_request *) bnx2i_conn->ep->qp.sq_prod_qe;
 
@@ -541,11 +535,9 @@ int bnx2i_send_iscsi_nopout(struct bnx2i_conn *bnx2i_conn,
char *datap, int data_len, int unsol)
 {
struct bnx2i_endpoint *ep = bnx2i_conn->ep;
-   struct bnx2i_cmd *bnx2i_cmd;
struct bnx2i_nop_out_request *nopout_wqe;
struct iscsi_nopout *nopout_hdr;
 
-   bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data;
nopout_hdr = (struct iscsi_nopout *)task->hdr;
nopout_wqe = (struct bnx2i_nop_out_request *)ep->qp.sq_prod_qe;
 
@@ -602,11 +594,9 @@ int bnx2i_send_iscsi_nopout(struct bnx2i_conn *bnx2i_conn,
 int bnx2i_send_iscsi_logout(struct bnx2i_conn *bnx2i_conn,
struct iscsi_task *task)
 {
-   struct bnx2i_cmd *bnx2i_cmd;
struct bnx2i_logout_request *logout_wqe;
struct iscsi_logout *logout_hdr;
 
-   bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data;
logout_hdr = (struct iscsi_logout *)task->hdr;
 
logout_wqe = (struct bnx2i_logout_request *)
-- 
2.7.4



[SUSPECTED SPAM] I am a Buyer

2017-09-10 Thread mackenzie


Dear Sir/Madam,

I am Becca MacKenzie, We are interested in your products and want to make you 
and your company our major suppliers but first we would like your to send us 
your best price list and Catalog if possible.

We will be ordering in large quantity so we are looking forward in making a 
good relationship with you and your company.

For my quick response write only to my contact email: 
becca.mackenzie...@outlook.com

Regards
Becca MacKenzie