mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
Merge patch series "Simplify multiple create*_workqueue() invocations"
Bart Van Assche <bvanassche@acm.org> says: Hi Martin, Multiple SCSI drivers use snprintf() to format a workqueue name before invoking one of the create*_workqueue() macros. This patch series simplifies such code by passing the format string and arguments to alloc_workqueue(). Additionally, the structure members that are only used as a temporary buffer for formatting workqueue names are removed. Please consider this patch series for the next merge window. Thanks, Bart. Link: https://lore.kernel.org/r/20240822195944.654691-1-bvanassche@acm.org Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
@@ -1856,10 +1856,8 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
/* Initialize workqueue */
|
||||
INIT_DELAYED_WORK(&ioc->fault_reset_work, mpt_fault_reset_work);
|
||||
|
||||
snprintf(ioc->reset_work_q_name, MPT_KOBJ_NAME_LEN,
|
||||
"mpt_poll_%d", ioc->id);
|
||||
ioc->reset_work_q = alloc_workqueue(ioc->reset_work_q_name,
|
||||
WQ_MEM_RECLAIM, 0);
|
||||
ioc->reset_work_q =
|
||||
alloc_workqueue("mpt_poll_%d", WQ_MEM_RECLAIM, 0, ioc->id);
|
||||
if (!ioc->reset_work_q) {
|
||||
printk(MYIOC_s_ERR_FMT "Insufficient memory to add adapter!\n",
|
||||
ioc->name);
|
||||
@@ -1986,9 +1984,7 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
|
||||
INIT_LIST_HEAD(&ioc->fw_event_list);
|
||||
spin_lock_init(&ioc->fw_event_lock);
|
||||
snprintf(ioc->fw_event_q_name, MPT_KOBJ_NAME_LEN, "mpt/%d", ioc->id);
|
||||
ioc->fw_event_q = alloc_workqueue(ioc->fw_event_q_name,
|
||||
WQ_MEM_RECLAIM, 0);
|
||||
ioc->fw_event_q = alloc_workqueue("mpt/%d", WQ_MEM_RECLAIM, 0, ioc->id);
|
||||
if (!ioc->fw_event_q) {
|
||||
printk(MYIOC_s_ERR_FMT "Insufficient memory to add adapter!\n",
|
||||
ioc->name);
|
||||
|
||||
@@ -729,7 +729,6 @@ typedef struct _MPT_ADAPTER
|
||||
struct list_head fw_event_list;
|
||||
spinlock_t fw_event_lock;
|
||||
u8 fw_events_off; /* if '1', then ignore events */
|
||||
char fw_event_q_name[MPT_KOBJ_NAME_LEN];
|
||||
|
||||
struct mutex sas_discovery_mutex;
|
||||
u8 sas_discovery_runtime;
|
||||
@@ -764,7 +763,6 @@ typedef struct _MPT_ADAPTER
|
||||
u8 fc_link_speed[2];
|
||||
spinlock_t fc_rescan_work_lock;
|
||||
struct work_struct fc_rescan_work;
|
||||
char fc_rescan_work_q_name[MPT_KOBJ_NAME_LEN];
|
||||
struct workqueue_struct *fc_rescan_work_q;
|
||||
|
||||
/* driver forced bus resets count */
|
||||
@@ -778,7 +776,6 @@ typedef struct _MPT_ADAPTER
|
||||
spinlock_t scsi_lookup_lock;
|
||||
u64 dma_mask;
|
||||
u32 broadcast_aen_busy;
|
||||
char reset_work_q_name[MPT_KOBJ_NAME_LEN];
|
||||
struct workqueue_struct *reset_work_q;
|
||||
struct delayed_work fault_reset_work;
|
||||
|
||||
|
||||
@@ -1349,11 +1349,8 @@ mptfc_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
||||
|
||||
/* initialize workqueue */
|
||||
|
||||
snprintf(ioc->fc_rescan_work_q_name, sizeof(ioc->fc_rescan_work_q_name),
|
||||
"mptfc_wq_%d", sh->host_no);
|
||||
ioc->fc_rescan_work_q =
|
||||
alloc_ordered_workqueue(ioc->fc_rescan_work_q_name,
|
||||
WQ_MEM_RECLAIM);
|
||||
ioc->fc_rescan_work_q = alloc_ordered_workqueue(
|
||||
"mptfc_wq_%d", WQ_MEM_RECLAIM, sh->host_no);
|
||||
if (!ioc->fc_rescan_work_q) {
|
||||
error = -ENOMEM;
|
||||
goto out_mptfc_host;
|
||||
|
||||
@@ -5528,7 +5528,6 @@ static int beiscsi_dev_probe(struct pci_dev *pcidev,
|
||||
struct beiscsi_hba *phba = NULL;
|
||||
struct be_eq_obj *pbe_eq;
|
||||
unsigned int s_handle;
|
||||
char wq_name[20];
|
||||
int ret, i;
|
||||
|
||||
ret = beiscsi_enable_pci(pcidev);
|
||||
@@ -5634,9 +5633,8 @@ static int beiscsi_dev_probe(struct pci_dev *pcidev,
|
||||
|
||||
phba->ctrl.mcc_alloc_index = phba->ctrl.mcc_free_index = 0;
|
||||
|
||||
snprintf(wq_name, sizeof(wq_name), "beiscsi_%02x_wq",
|
||||
phba->shost->host_no);
|
||||
phba->wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 1, wq_name);
|
||||
phba->wq = alloc_workqueue("beiscsi_%02x_wq", WQ_MEM_RECLAIM, 1,
|
||||
phba->shost->host_no);
|
||||
if (!phba->wq) {
|
||||
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_INIT,
|
||||
"BM_%d : beiscsi_dev_probe-"
|
||||
|
||||
@@ -766,9 +766,8 @@ bfad_thread_workq(struct bfad_s *bfad)
|
||||
struct bfad_im_s *im = bfad->im;
|
||||
|
||||
bfa_trc(bfad, 0);
|
||||
snprintf(im->drv_workq_name, KOBJ_NAME_LEN, "bfad_wq_%d",
|
||||
bfad->inst_no);
|
||||
im->drv_workq = create_singlethread_workqueue(im->drv_workq_name);
|
||||
im->drv_workq = alloc_ordered_workqueue("bfad_wq_%d", WQ_MEM_RECLAIM,
|
||||
bfad->inst_no);
|
||||
if (!im->drv_workq)
|
||||
return BFA_STATUS_FAILED;
|
||||
|
||||
|
||||
@@ -134,7 +134,6 @@ struct bfad_fcp_binding {
|
||||
struct bfad_im_s {
|
||||
struct bfad_s *bfad;
|
||||
struct workqueue_struct *drv_workq;
|
||||
char drv_workq_name[KOBJ_NAME_LEN];
|
||||
struct work_struct aen_im_notify_work;
|
||||
};
|
||||
|
||||
|
||||
@@ -2363,8 +2363,8 @@ static int _bnx2fc_create(struct net_device *netdev,
|
||||
interface->vlan_id = vlan_id;
|
||||
interface->tm_timeout = BNX2FC_TM_TIMEOUT;
|
||||
|
||||
interface->timer_work_queue =
|
||||
create_singlethread_workqueue("bnx2fc_timer_wq");
|
||||
interface->timer_work_queue = alloc_ordered_workqueue(
|
||||
"%s", WQ_MEM_RECLAIM, "bnx2fc_timer_wq");
|
||||
if (!interface->timer_work_queue) {
|
||||
printk(KERN_ERR PFX "ulp_init could not create timer_wq\n");
|
||||
rc = -EINVAL;
|
||||
|
||||
@@ -822,7 +822,8 @@ static int __init rdac_init(void)
|
||||
/*
|
||||
* Create workqueue to handle mode selects for rdac
|
||||
*/
|
||||
kmpath_rdacd = create_singlethread_workqueue("kmpath_rdacd");
|
||||
kmpath_rdacd =
|
||||
alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, "kmpath_rdacd");
|
||||
if (!kmpath_rdacd) {
|
||||
scsi_unregister_device_handler(&rdac_dh);
|
||||
printk(KERN_ERR "kmpath_rdacd creation failed.\n");
|
||||
|
||||
@@ -1114,7 +1114,8 @@ int efct_scsi_tgt_new_device(struct efct *efct)
|
||||
atomic_set(&efct->tgt_efct.watermark_hit, 0);
|
||||
atomic_set(&efct->tgt_efct.initiator_count, 0);
|
||||
|
||||
lio_wq = create_singlethread_workqueue("efct_lio_worker");
|
||||
lio_wq = alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM,
|
||||
"efct_lio_worker");
|
||||
if (!lio_wq) {
|
||||
efc_log_err(efct, "workqueue create failed\n");
|
||||
return -EIO;
|
||||
|
||||
@@ -929,7 +929,6 @@ struct esas2r_adapter {
|
||||
struct list_head fw_event_list;
|
||||
spinlock_t fw_event_lock;
|
||||
u8 fw_events_off; /* if '1', then ignore events */
|
||||
char fw_event_q_name[ESAS2R_KOBJ_NAME_LEN];
|
||||
/*
|
||||
* intr_mode stores the interrupt mode currently being used by this
|
||||
* adapter. it is based on the interrupt_mode module parameter, but
|
||||
|
||||
@@ -311,9 +311,8 @@ int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid,
|
||||
sema_init(&a->nvram_semaphore, 1);
|
||||
|
||||
esas2r_fw_event_off(a);
|
||||
snprintf(a->fw_event_q_name, ESAS2R_KOBJ_NAME_LEN, "esas2r/%d",
|
||||
a->index);
|
||||
a->fw_event_q = create_singlethread_workqueue(a->fw_event_q_name);
|
||||
a->fw_event_q =
|
||||
alloc_ordered_workqueue("esas2r/%d", WQ_MEM_RECLAIM, a->index);
|
||||
|
||||
init_waitqueue_head(&a->buffered_ioctl_waiter);
|
||||
init_waitqueue_head(&a->nvram_waiter);
|
||||
|
||||
@@ -45,12 +45,8 @@ MODULE_PARM_DESC(fcf_dev_loss_tmo,
|
||||
*/
|
||||
#define fcoe_ctlr_id(x) \
|
||||
((x)->id)
|
||||
#define fcoe_ctlr_work_q_name(x) \
|
||||
((x)->work_q_name)
|
||||
#define fcoe_ctlr_work_q(x) \
|
||||
((x)->work_q)
|
||||
#define fcoe_ctlr_devloss_work_q_name(x) \
|
||||
((x)->devloss_work_q_name)
|
||||
#define fcoe_ctlr_devloss_work_q(x) \
|
||||
((x)->devloss_work_q)
|
||||
#define fcoe_ctlr_mode(x) \
|
||||
@@ -797,18 +793,14 @@ struct fcoe_ctlr_device *fcoe_ctlr_device_add(struct device *parent,
|
||||
|
||||
ctlr->fcf_dev_loss_tmo = fcoe_fcf_dev_loss_tmo;
|
||||
|
||||
snprintf(ctlr->work_q_name, sizeof(ctlr->work_q_name),
|
||||
"ctlr_wq_%d", ctlr->id);
|
||||
ctlr->work_q = create_singlethread_workqueue(
|
||||
ctlr->work_q_name);
|
||||
ctlr->work_q = alloc_ordered_workqueue("ctlr_wq_%d", WQ_MEM_RECLAIM,
|
||||
ctlr->id);
|
||||
if (!ctlr->work_q)
|
||||
goto out_del;
|
||||
|
||||
snprintf(ctlr->devloss_work_q_name,
|
||||
sizeof(ctlr->devloss_work_q_name),
|
||||
"ctlr_dl_wq_%d", ctlr->id);
|
||||
ctlr->devloss_work_q = create_singlethread_workqueue(
|
||||
ctlr->devloss_work_q_name);
|
||||
ctlr->devloss_work_q = alloc_ordered_workqueue("ctlr_dl_wq_%d",
|
||||
WQ_MEM_RECLAIM,
|
||||
ctlr->id);
|
||||
if (!ctlr->devloss_work_q)
|
||||
goto out_del_q;
|
||||
|
||||
|
||||
@@ -1161,14 +1161,16 @@ static int __init fnic_init_module(void)
|
||||
goto err_create_fnic_ioreq_slab;
|
||||
}
|
||||
|
||||
fnic_event_queue = create_singlethread_workqueue("fnic_event_wq");
|
||||
fnic_event_queue =
|
||||
alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, "fnic_event_wq");
|
||||
if (!fnic_event_queue) {
|
||||
printk(KERN_ERR PFX "fnic work queue create failed\n");
|
||||
err = -ENOMEM;
|
||||
goto err_create_fnic_workq;
|
||||
}
|
||||
|
||||
fnic_fip_queue = create_singlethread_workqueue("fnic_fip_q");
|
||||
fnic_fip_queue =
|
||||
alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, "fnic_fip_q");
|
||||
if (!fnic_fip_queue) {
|
||||
printk(KERN_ERR PFX "fnic FIP work queue create failed\n");
|
||||
err = -ENOMEM;
|
||||
|
||||
@@ -2302,7 +2302,8 @@ int hisi_sas_alloc(struct hisi_hba *hisi_hba)
|
||||
|
||||
hisi_hba->last_slot_index = 0;
|
||||
|
||||
hisi_hba->wq = create_singlethread_workqueue(dev_name(dev));
|
||||
hisi_hba->wq =
|
||||
alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, dev_name(dev));
|
||||
if (!hisi_hba->wq) {
|
||||
dev_err(dev, "sas_alloc: failed to create workqueue\n");
|
||||
goto err_out;
|
||||
|
||||
@@ -292,11 +292,10 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
|
||||
}
|
||||
|
||||
if (shost->transportt->create_work_queue) {
|
||||
snprintf(shost->work_q_name, sizeof(shost->work_q_name),
|
||||
"scsi_wq_%d", shost->host_no);
|
||||
shost->work_q = alloc_workqueue("%s",
|
||||
WQ_SYSFS | __WQ_LEGACY | WQ_MEM_RECLAIM | WQ_UNBOUND,
|
||||
1, shost->work_q_name);
|
||||
shost->work_q = alloc_workqueue(
|
||||
"scsi_wq_%d",
|
||||
WQ_SYSFS | __WQ_LEGACY | WQ_MEM_RECLAIM | WQ_UNBOUND, 1,
|
||||
shost->host_no);
|
||||
|
||||
if (!shost->work_q) {
|
||||
error = -EINVAL;
|
||||
|
||||
@@ -3425,7 +3425,6 @@ static int ibmvscsis_probe(struct vio_dev *vdev,
|
||||
struct scsi_info *vscsi;
|
||||
int rc = 0;
|
||||
long hrc = 0;
|
||||
char wq_name[24];
|
||||
|
||||
vscsi = kzalloc(sizeof(*vscsi), GFP_KERNEL);
|
||||
if (!vscsi) {
|
||||
@@ -3536,8 +3535,8 @@ static int ibmvscsis_probe(struct vio_dev *vdev,
|
||||
init_completion(&vscsi->wait_idle);
|
||||
init_completion(&vscsi->unconfig);
|
||||
|
||||
snprintf(wq_name, 24, "ibmvscsis%s", dev_name(&vdev->dev));
|
||||
vscsi->work_q = create_workqueue(wq_name);
|
||||
vscsi->work_q = alloc_workqueue("ibmvscsis%s", WQ_MEM_RECLAIM, 1,
|
||||
dev_name(&vdev->dev));
|
||||
if (!vscsi->work_q) {
|
||||
rc = -ENOMEM;
|
||||
dev_err(&vscsi->dev, "create_workqueue failed\n");
|
||||
|
||||
@@ -2693,7 +2693,8 @@ int fc_setup_exch_mgr(void)
|
||||
fc_cpu_order = ilog2(roundup_pow_of_two(nr_cpu_ids));
|
||||
fc_cpu_mask = (1 << fc_cpu_order) - 1;
|
||||
|
||||
fc_exch_workqueue = create_singlethread_workqueue("fc_exch_workqueue");
|
||||
fc_exch_workqueue = alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM,
|
||||
"fc_exch_workqueue");
|
||||
if (!fc_exch_workqueue)
|
||||
goto err;
|
||||
return 0;
|
||||
|
||||
@@ -2263,7 +2263,8 @@ struct fc4_prov fc_rport_t0_prov = {
|
||||
*/
|
||||
int fc_setup_rport(void)
|
||||
{
|
||||
rport_event_queue = create_singlethread_workqueue("fc_rport_eq");
|
||||
rport_event_queue =
|
||||
alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, "fc_rport_eq");
|
||||
if (!rport_event_queue)
|
||||
return -ENOMEM;
|
||||
return 0;
|
||||
|
||||
@@ -122,12 +122,12 @@ int sas_register_ha(struct sas_ha_struct *sas_ha)
|
||||
|
||||
error = -ENOMEM;
|
||||
snprintf(name, sizeof(name), "%s_event_q", dev_name(sas_ha->dev));
|
||||
sas_ha->event_q = create_singlethread_workqueue(name);
|
||||
sas_ha->event_q = alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, name);
|
||||
if (!sas_ha->event_q)
|
||||
goto Undo_ports;
|
||||
|
||||
snprintf(name, sizeof(name), "%s_disco_q", dev_name(sas_ha->dev));
|
||||
sas_ha->disco_q = create_singlethread_workqueue(name);
|
||||
sas_ha->disco_q = alloc_ordered_workqueue("%s", WQ_MEM_RECLAIM, name);
|
||||
if (!sas_ha->disco_q)
|
||||
goto Undo_event_q;
|
||||
|
||||
|
||||
@@ -1988,8 +1988,8 @@ megasas_fusion_start_watchdog(struct megasas_instance *instance)
|
||||
sizeof(instance->fault_handler_work_q_name),
|
||||
"poll_megasas%d_status", instance->host->host_no);
|
||||
|
||||
instance->fw_fault_work_q =
|
||||
create_singlethread_workqueue(instance->fault_handler_work_q_name);
|
||||
instance->fw_fault_work_q = alloc_ordered_workqueue(
|
||||
"%s", WQ_MEM_RECLAIM, instance->fault_handler_work_q_name);
|
||||
if (!instance->fw_fault_work_q) {
|
||||
dev_err(&instance->pdev->dev, "Failed from %s %d\n",
|
||||
__func__, __LINE__);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user