Loading drivers/scsi/qla2xxx/qla_attr.c +0 −140 Original line number Diff line number Diff line Loading @@ -627,144 +627,6 @@ static struct bin_attribute sysfs_reset_attr = { .write = qla2x00_sysfs_write_reset, }; static ssize_t qla2x00_sysfs_write_edc(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count) { struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj, struct device, kobj))); struct qla_hw_data *ha = vha->hw; uint16_t dev, adr, opt, len; int rval; ha->edc_data_len = 0; if (!capable(CAP_SYS_ADMIN) || off != 0 || count < 8) return -EINVAL; if (!ha->edc_data) { ha->edc_data = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &ha->edc_data_dma); if (!ha->edc_data) { ql_log(ql_log_warn, vha, 0x7073, "Unable to allocate memory for EDC write.\n"); return -ENOMEM; } } dev = le16_to_cpup((void *)&buf[0]); adr = le16_to_cpup((void *)&buf[2]); opt = le16_to_cpup((void *)&buf[4]); len = le16_to_cpup((void *)&buf[6]); if (!(opt & BIT_0)) if (len == 0 || len > DMA_POOL_SIZE || len > count - 8) return -EINVAL; memcpy(ha->edc_data, &buf[8], len); rval = qla2x00_write_sfp(vha, ha->edc_data_dma, ha->edc_data, dev, adr, len, opt); if (rval != QLA_SUCCESS) { ql_log(ql_log_warn, vha, 0x7074, "Unable to write EDC (%x) %02x:%02x:%04x:%02x:%02hhx\n", rval, dev, adr, opt, len, buf[8]); return -EIO; } return count; } static struct bin_attribute sysfs_edc_attr = { .attr = { .name = "edc", .mode = S_IWUSR, }, .size = 0, .write = qla2x00_sysfs_write_edc, }; static ssize_t qla2x00_sysfs_write_edc_status(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count) { struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj, struct device, kobj))); struct qla_hw_data *ha = vha->hw; uint16_t dev, adr, opt, len; int rval; ha->edc_data_len = 0; if (!capable(CAP_SYS_ADMIN) || off != 0 || count < 8) return -EINVAL; if (!ha->edc_data) { ha->edc_data = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &ha->edc_data_dma); if (!ha->edc_data) { ql_log(ql_log_warn, vha, 0x708c, "Unable to allocate memory for EDC status.\n"); return -ENOMEM; } } dev = le16_to_cpup((void *)&buf[0]); adr = le16_to_cpup((void *)&buf[2]); opt = le16_to_cpup((void *)&buf[4]); len = le16_to_cpup((void *)&buf[6]); if (!(opt & BIT_0)) if (len == 0 || len > DMA_POOL_SIZE) return -EINVAL; memset(ha->edc_data, 0, len); rval = qla2x00_read_sfp(vha, ha->edc_data_dma, ha->edc_data, dev, adr, len, opt); if (rval != QLA_SUCCESS) { ql_log(ql_log_info, vha, 0x7075, "Unable to write EDC status (%x) %02x:%02x:%04x:%02x.\n", rval, dev, adr, opt, len); return -EIO; } ha->edc_data_len = len; return count; } static ssize_t qla2x00_sysfs_read_edc_status(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count) { struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj, struct device, kobj))); struct qla_hw_data *ha = vha->hw; if (!capable(CAP_SYS_ADMIN) || off != 0 || count == 0) return 0; if (!ha->edc_data || ha->edc_data_len == 0 || ha->edc_data_len > count) return -EINVAL; memcpy(buf, ha->edc_data, ha->edc_data_len); return ha->edc_data_len; } static struct bin_attribute sysfs_edc_status_attr = { .attr = { .name = "edc_status", .mode = S_IRUSR | S_IWUSR, }, .size = 0, .write = qla2x00_sysfs_write_edc_status, .read = qla2x00_sysfs_read_edc_status, }; static ssize_t qla2x00_sysfs_read_xgmac_stats(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, Loading Loading @@ -880,8 +742,6 @@ static struct sysfs_entry { { "vpd", &sysfs_vpd_attr, 1 }, { "sfp", &sysfs_sfp_attr, 1 }, { "reset", &sysfs_reset_attr, }, { "edc", &sysfs_edc_attr, 2 }, { "edc_status", &sysfs_edc_status_attr, 2 }, { "xgmac_stats", &sysfs_xgmac_stats_attr, 3 }, { "dcbx_tlv", &sysfs_dcbx_tlv_attr, 3 }, { NULL }, Loading drivers/scsi/qla2xxx/qla_dbg.c +4 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,10 @@ * | Async Events | 0x505d | 0x502b-0x502f | * | | | 0x5047,0x5052 | * | Timer Routines | 0x6011 | 0x600e-0x600f | * | User Space Interactions | 0x709e | 0x7018,0x702e | * | | | 0x7039,0x7045 | * | User Space Interactions | 0x709f | 0x7018,0x702e, | * | | | 0x7039,0x7045, | * | | | 0x7073-0x7075, | * | | | 0x708c | * | Task Management | 0x803c | 0x8025-0x8026 | * | | | 0x800b,0x8039 | * | AER/EEH | 0x900f | | Loading drivers/scsi/qla2xxx/qla_def.h +0 −4 Original line number Diff line number Diff line Loading @@ -2646,10 +2646,6 @@ struct qla_hw_data { void *sfp_data; dma_addr_t sfp_data_dma; uint8_t *edc_data; dma_addr_t edc_data_dma; uint16_t edc_data_len; #define XGMAC_DATA_SIZE 4096 void *xgmac_data; dma_addr_t xgmac_data_dma; Loading drivers/scsi/qla2xxx/qla_os.c +0 −3 Original line number Diff line number Diff line Loading @@ -3233,9 +3233,6 @@ qla2x00_mem_free(struct qla_hw_data *ha) if (ha->sfp_data) dma_pool_free(ha->s_dma_pool, ha->sfp_data, ha->sfp_data_dma); if (ha->edc_data) dma_pool_free(ha->s_dma_pool, ha->edc_data, ha->edc_data_dma); if (ha->ms_iocb) dma_pool_free(ha->s_dma_pool, ha->ms_iocb, ha->ms_iocb_dma); Loading Loading
drivers/scsi/qla2xxx/qla_attr.c +0 −140 Original line number Diff line number Diff line Loading @@ -627,144 +627,6 @@ static struct bin_attribute sysfs_reset_attr = { .write = qla2x00_sysfs_write_reset, }; static ssize_t qla2x00_sysfs_write_edc(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count) { struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj, struct device, kobj))); struct qla_hw_data *ha = vha->hw; uint16_t dev, adr, opt, len; int rval; ha->edc_data_len = 0; if (!capable(CAP_SYS_ADMIN) || off != 0 || count < 8) return -EINVAL; if (!ha->edc_data) { ha->edc_data = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &ha->edc_data_dma); if (!ha->edc_data) { ql_log(ql_log_warn, vha, 0x7073, "Unable to allocate memory for EDC write.\n"); return -ENOMEM; } } dev = le16_to_cpup((void *)&buf[0]); adr = le16_to_cpup((void *)&buf[2]); opt = le16_to_cpup((void *)&buf[4]); len = le16_to_cpup((void *)&buf[6]); if (!(opt & BIT_0)) if (len == 0 || len > DMA_POOL_SIZE || len > count - 8) return -EINVAL; memcpy(ha->edc_data, &buf[8], len); rval = qla2x00_write_sfp(vha, ha->edc_data_dma, ha->edc_data, dev, adr, len, opt); if (rval != QLA_SUCCESS) { ql_log(ql_log_warn, vha, 0x7074, "Unable to write EDC (%x) %02x:%02x:%04x:%02x:%02hhx\n", rval, dev, adr, opt, len, buf[8]); return -EIO; } return count; } static struct bin_attribute sysfs_edc_attr = { .attr = { .name = "edc", .mode = S_IWUSR, }, .size = 0, .write = qla2x00_sysfs_write_edc, }; static ssize_t qla2x00_sysfs_write_edc_status(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count) { struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj, struct device, kobj))); struct qla_hw_data *ha = vha->hw; uint16_t dev, adr, opt, len; int rval; ha->edc_data_len = 0; if (!capable(CAP_SYS_ADMIN) || off != 0 || count < 8) return -EINVAL; if (!ha->edc_data) { ha->edc_data = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &ha->edc_data_dma); if (!ha->edc_data) { ql_log(ql_log_warn, vha, 0x708c, "Unable to allocate memory for EDC status.\n"); return -ENOMEM; } } dev = le16_to_cpup((void *)&buf[0]); adr = le16_to_cpup((void *)&buf[2]); opt = le16_to_cpup((void *)&buf[4]); len = le16_to_cpup((void *)&buf[6]); if (!(opt & BIT_0)) if (len == 0 || len > DMA_POOL_SIZE) return -EINVAL; memset(ha->edc_data, 0, len); rval = qla2x00_read_sfp(vha, ha->edc_data_dma, ha->edc_data, dev, adr, len, opt); if (rval != QLA_SUCCESS) { ql_log(ql_log_info, vha, 0x7075, "Unable to write EDC status (%x) %02x:%02x:%04x:%02x.\n", rval, dev, adr, opt, len); return -EIO; } ha->edc_data_len = len; return count; } static ssize_t qla2x00_sysfs_read_edc_status(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count) { struct scsi_qla_host *vha = shost_priv(dev_to_shost(container_of(kobj, struct device, kobj))); struct qla_hw_data *ha = vha->hw; if (!capable(CAP_SYS_ADMIN) || off != 0 || count == 0) return 0; if (!ha->edc_data || ha->edc_data_len == 0 || ha->edc_data_len > count) return -EINVAL; memcpy(buf, ha->edc_data, ha->edc_data_len); return ha->edc_data_len; } static struct bin_attribute sysfs_edc_status_attr = { .attr = { .name = "edc_status", .mode = S_IRUSR | S_IWUSR, }, .size = 0, .write = qla2x00_sysfs_write_edc_status, .read = qla2x00_sysfs_read_edc_status, }; static ssize_t qla2x00_sysfs_read_xgmac_stats(struct file *filp, struct kobject *kobj, struct bin_attribute *bin_attr, Loading Loading @@ -880,8 +742,6 @@ static struct sysfs_entry { { "vpd", &sysfs_vpd_attr, 1 }, { "sfp", &sysfs_sfp_attr, 1 }, { "reset", &sysfs_reset_attr, }, { "edc", &sysfs_edc_attr, 2 }, { "edc_status", &sysfs_edc_status_attr, 2 }, { "xgmac_stats", &sysfs_xgmac_stats_attr, 3 }, { "dcbx_tlv", &sysfs_dcbx_tlv_attr, 3 }, { NULL }, Loading
drivers/scsi/qla2xxx/qla_dbg.c +4 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,10 @@ * | Async Events | 0x505d | 0x502b-0x502f | * | | | 0x5047,0x5052 | * | Timer Routines | 0x6011 | 0x600e-0x600f | * | User Space Interactions | 0x709e | 0x7018,0x702e | * | | | 0x7039,0x7045 | * | User Space Interactions | 0x709f | 0x7018,0x702e, | * | | | 0x7039,0x7045, | * | | | 0x7073-0x7075, | * | | | 0x708c | * | Task Management | 0x803c | 0x8025-0x8026 | * | | | 0x800b,0x8039 | * | AER/EEH | 0x900f | | Loading
drivers/scsi/qla2xxx/qla_def.h +0 −4 Original line number Diff line number Diff line Loading @@ -2646,10 +2646,6 @@ struct qla_hw_data { void *sfp_data; dma_addr_t sfp_data_dma; uint8_t *edc_data; dma_addr_t edc_data_dma; uint16_t edc_data_len; #define XGMAC_DATA_SIZE 4096 void *xgmac_data; dma_addr_t xgmac_data_dma; Loading
drivers/scsi/qla2xxx/qla_os.c +0 −3 Original line number Diff line number Diff line Loading @@ -3233,9 +3233,6 @@ qla2x00_mem_free(struct qla_hw_data *ha) if (ha->sfp_data) dma_pool_free(ha->s_dma_pool, ha->sfp_data, ha->sfp_data_dma); if (ha->edc_data) dma_pool_free(ha->s_dma_pool, ha->edc_data, ha->edc_data_dma); if (ha->ms_iocb) dma_pool_free(ha->s_dma_pool, ha->ms_iocb, ha->ms_iocb_dma); Loading