Lines Matching refs:persist

55 	ret = pci_read_config_word(dev->persist->pdev, 0, &vendor_id);
76 if (!pci_channel_offline(dev->persist->pdev)) {
103 if (pci_channel_offline(dev->persist->pdev))
163 void mlx4_enter_error_state(struct mlx4_dev_persistent *persist)
171 mutex_lock(&persist->device_state_mutex);
172 if (persist->state & MLX4_DEVICE_STATE_INTERNAL_ERROR)
175 dev = persist->dev;
190 if (!pci_channel_offline(dev->persist->pdev))
193 dev->persist->state |= MLX4_DEVICE_STATE_INTERNAL_ERROR;
194 mutex_unlock(&persist->device_state_mutex);
202 mutex_unlock(&persist->device_state_mutex);
205 static void mlx4_handle_error_state(struct mlx4_dev_persistent *persist)
207 struct mlx4_dev *dev = persist->dev;
211 mlx4_enter_error_state(persist);
214 mutex_lock(&persist->interface_state_mutex);
215 if (persist->interface_state & MLX4_INTERFACE_STATE_UP &&
216 !(persist->interface_state & MLX4_INTERFACE_STATE_DELETION)) {
217 err = mlx4_restart_one(persist->pdev);
218 mlx4_info(persist->dev, "mlx4_restart_one was ended, ret=%d\n",
221 mutex_unlock(&persist->interface_state_mutex);
254 if (dev->persist->state & MLX4_DEVICE_STATE_INTERNAL_ERROR) {
265 queue_work(dev->persist->catas_wq, &dev->persist->catas_work);
270 struct mlx4_dev_persistent *persist =
274 mlx4_handle_error_state(persist);
287 addr = pci_resource_start(dev->persist->pdev,
315 if (dev->persist->interface_state & MLX4_INTERFACE_STATE_DELETION)
316 flush_workqueue(dev->persist->catas_wq);
321 INIT_WORK(&dev->persist->catas_work, catas_reset);
322 dev->persist->catas_wq = create_singlethread_workqueue("mlx4_health");
323 if (!dev->persist->catas_wq)
331 if (dev->persist->catas_wq) {
332 destroy_workqueue(dev->persist->catas_wq);
333 dev->persist->catas_wq = NULL;