RE: [PATCH v4 7/8] mmc: block: register RPMB partition with the RPMB subsystem

2016-06-27 Thread Winkler, Tomas
> 2;
> 
> This looks like it does not support 8KB writes added in v5.1 spec.  Can that 
> be
> supported?

You are right there is not support for 8K packet, but the change should be 
simple. 
I will update the patch.
Thanks
Tomas 

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/1] ipr: Clear interrupt on croc/crocodile when running with LSI

2016-06-27 Thread Brian King

If we fall back to using LSI on the Croc or Crocodile chip we need
to clear the interrupt so we don't hang the system.

Cc: stable
Tested-by: Benjamin Herrenschmidt 
Signed-off-by: Brian King 
---

 drivers/scsi/ipr.c |1 +
 1 file changed, 1 insertion(+)

diff -puN drivers/scsi/ipr.c~ipr_clear_isr drivers/scsi/ipr.c
--- linux-2.6.git/drivers/scsi/ipr.c~ipr_clear_isr  2016-06-24 
17:37:24.265197867 -0500
+++ linux-2.6.git-bjking1/drivers/scsi/ipr.c2016-06-24 17:38:39.640943642 
-0500
@@ -10097,6 +10097,7 @@ static int ipr_probe_ioa(struct pci_dev
ioa_cfg->intr_flag = IPR_USE_MSI;
else {
ioa_cfg->intr_flag = IPR_USE_LSI;
+   ioa_cfg->clear_isr = 1;
ioa_cfg->nvectors = 1;
dev_info(&pdev->dev, "Cannot enable MSI.\n");
}
_

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/3] block: provide helpers for reading block count

2016-06-27 Thread Davidlohr Bueso

On Thu, 23 Jun 2016, Arnd Bergmann wrote:


Several drivers use an expensive do_div() to compute the number
of logical or physical blocks in a blockdev, which can be done
more efficiently using a shift, since the blocksize is always
a power of two number.

Let's introduce bdev_logical_block_count() and bdev_physical_block_count()
helper functions mirroring the bdev_logical_block_size() and
bdev_physical_block_size() interfaces for the block size.



@@ -1226,6 +1226,13 @@ static inline unsigned short 
bdev_logical_block_size(struct block_device *bdev)
return queue_logical_block_size(bdev_get_queue(bdev));
}

+static inline sector_t bdev_logical_block_count(struct block_device *bdev)


Curious, why not just return u64 instead for all these instead of sector_t (ie
dealing with lba, it reads weird)?

Thanks,
Davidlohr
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH V3 1/2] smartpqi: initial commit of Microsemi smartpqi driver

2016-06-27 Thread Don Brace
> -Original Message-
> From: Johannes Thumshirn [mailto:jthumsh...@suse.de]
> Sent: Friday, June 17, 2016 4:57 AM
> To: Don Brace
> Cc: j...@linux.vnet.ibm.com; Viswas G; Mahesh Rajashekhara;
> h...@infradead.org; Scott Teel; Kevin Barnett; Justin Lindley; Scott Benesh;
> elli...@hpe.com; linux-scsi@vger.kernel.org
> Subject: Re: [PATCH V3 1/2] smartpqi: initial commit of Microsemi smartpqi
> driver
> 
> EXTERNAL EMAIL
> 
> 
> Hi Don/Kevin,
> 
> some comments inline (mostly stulistic nothing architectural)
> 
> On Thu, Jun 16, 2016 at 05:48:16PM -0500, Don Brace wrote:
> > From: Kevin Barnett 
> >
> > This initial commit contains WIP of Microsemi's smartpqi module.
> >
> > Reviewed-by: Scott Benesh 
> > Reviewed-by: Kevin Barnett 
> 
> if this is From: Kevin it should have his S-o-b as well.
> 
> > Signed-off-by: Don Brace 

Done

> > ---
> 
> [...]
> 
> > + */
> > +
> > +#if !defined(_SMARTPQI_H)
> > +#define _SMARTPQI_H
> > +
> > +#pragma pack(1)
> 
> I know GCC does understand #pragma pack() to be compatible with MSVC
> but please
> use the kernel's __packed convention on structs you want to have packed.
> 

We prefer to leave this "as is" for these reasons:

We do not use __packed on other Microsemi Linux drivers.

There's not consistency in the usage of __packed. Just a quick survey of the 
kernel source reveals at least four styles:

Syntax #1:

struct xxx {
.
} __packed;

Syntax #2:

struct __packed xxx {
.
};

Syntax #3:
struct xxx {
.
} __attribute__((__packed__));

Syntax #4:

struct __attribute__((__packed__)) xxx {
.
};


> > +
> > +#define PQI_DEVICE_SIGNATURE "PQI DREG"
> 
> [...]
> 
> > + pqi_index_t oq_ci_copy;
> > + struct task_struct *task;
> > + u16 int_msg_num;
> > +};
> > +
> 
> Just for clarification (sorry haven't looked up the sepecs yet) is this a
> queue pair or more than two queues (looks like 3 to me)?
> 

There are 3 queues


> > +struct pqi_queue_group {
> > + struct pqi_ctrl_info *ctrl_info;/* backpointer */
> > + u16 iq_id[2];
> > + u16 oq_id;
> 
> [...]
> 
> > +#define RAID_CTLR_LUNID  "\0\0\0\0\0\0\0\0"
> > +
> > +struct pqi_scsi_dev_t {
> 
> For sake of consistency with the other structs "struct pqi_scsi_dev"?

Done

> 
> > + int devtype;/* as reported by INQUIRY commmand */
> > + u8  device_type;/* as reported by */
> 
> [...]
> 
> > +
> > +/* Define the PCI IDs for the controllers that we support. */
> > +static const struct pci_device_id pqi_pci_id_table[] = {
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .subdevice = 0x0110,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_HP,
> > + .subdevice = 0x0600,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_HP,
> > + .subdevice = 0x0601,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_HP,
> > + .subdevice = 0x0602,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_HP,
> > + .subdevice = 0x0603,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_HP,
> > + .subdevice = 0x0650,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_HP,
> > + .subdevice = 0x0651,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > + {
> > + .vendor = PCI_VENDOR_ID_ADAPTEC2,
> > + .device = 0x028f,
> > + .subvendor = PCI_VENDOR_ID_HP,
> > + .subdevice = 0x0652,
> > + .class = 0,
> > + .class_mask = 0,
> > + .driver_data = 0
> > + },
> > +   

[PATCH V4 0/2] smartpqi: initial commit of Microsemi smartpqi driver

2016-06-27 Thread Don Brace
This driver is based on Linus's tree

This initial commit contains WIP of Microsemi's smartpqi module.

- add smartpqi to kernel.org
- remove PCI IDs from aacraid driver
  - Depends on adoption of smartpqi driver

Changes since V3
 - removed 'devices' and 'PQI info' sysfs attributes
   according to Hannes's review.
 - changes suggested by Hannes and Johannes Thumshirn:
   - removed statistics
 - fixed issues raised by Johannes Thumshirn
 - answers to other Johannes Thumshirn's review posted in a
   separate reply.

Changes since V2
 - Corrected make ARCH=s390 kbuild test robot issue.
 - Answers to Hannes's Review posted in a separate reply

Changes since V1
 - Corrected make ARCH=i386 kbuild test robot issue.

Changes since initial upload
 - Forgot to give correct ownership to the author.

---

Don Brace (1):
  aacraid: remove wildcard for series 9 controllers

Kevin Barnett (1):
  smartpqi: initial commit of Microsemi smartpqi driver


 MAINTAINERS|   11 
 drivers/scsi/Kconfig   |1 
 drivers/scsi/Makefile  |1 
 drivers/scsi/aacraid/linit.c   |2 
 drivers/scsi/smartpqi/Kconfig  |   50 
 drivers/scsi/smartpqi/Makefile |3 
 drivers/scsi/smartpqi/smartpqi.h   | 1133 
 drivers/scsi/smartpqi/smartpqi_init.c  | 6306 
 drivers/scsi/smartpqi/smartpqi_sas_transport.c |  350 +
 drivers/scsi/smartpqi/smartpqi_sis.c   |  394 +
 drivers/scsi/smartpqi/smartpqi_sis.h   |   32 
 11 files changed, 8281 insertions(+), 2 deletions(-)
 create mode 100644 drivers/scsi/smartpqi/Kconfig
 create mode 100644 drivers/scsi/smartpqi/Makefile
 create mode 100644 drivers/scsi/smartpqi/smartpqi.h
 create mode 100644 drivers/scsi/smartpqi/smartpqi_init.c
 create mode 100644 drivers/scsi/smartpqi/smartpqi_sas_transport.c
 create mode 100644 drivers/scsi/smartpqi/smartpqi_sis.c
 create mode 100644 drivers/scsi/smartpqi/smartpqi_sis.h

--
Signature
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH V4 2/2] aacraid: remove wildcard for series 9 controllers

2016-06-27 Thread Don Brace
Depends on smartpqi driver adoption

Reviewed-by: Kevin Barnett 
Reviewed-by: Scott Teel 
Signed-off-by: Kevin Barnett 
Signed-off-by: Don Brace 
---
 drivers/scsi/aacraid/linit.c |2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c
index 79871f3..d5b26fa 100644
--- a/drivers/scsi/aacraid/linit.c
+++ b/drivers/scsi/aacraid/linit.c
@@ -160,7 +160,6 @@ static const struct pci_device_id aac_pci_tbl[] = {
{ 0x9005, 0x028b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 62 }, /* Adaptec PMC 
Series 6 (Tupelo) */
{ 0x9005, 0x028c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 63 }, /* Adaptec PMC 
Series 7 (Denali) */
{ 0x9005, 0x028d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 64 }, /* Adaptec PMC 
Series 8 */
-   { 0x9005, 0x028f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 65 }, /* Adaptec PMC 
Series 9 */
{ 0,}
 };
 MODULE_DEVICE_TABLE(pci, aac_pci_tbl);
@@ -239,7 +238,6 @@ static struct aac_driver_ident aac_drivers[] = {
{ aac_src_init, "aacraid", "ADAPTEC ", "RAID", 2, 
AAC_QUIRK_SRC }, /* Adaptec PMC Series 6 (Tupelo) */
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID", 2, 
AAC_QUIRK_SRC }, /* Adaptec PMC Series 7 (Denali) */
{ aac_srcv_init, "aacraid", "ADAPTEC ", "RAID", 2, 
AAC_QUIRK_SRC }, /* Adaptec PMC Series 8 */
-   { aac_srcv_init, "aacraid", "ADAPTEC ", "RAID", 2, 
AAC_QUIRK_SRC } /* Adaptec PMC Series 9 */
 };
 
 /**

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html