Lines Matching refs:device

187 int dasd_alias_make_device_known_to_lcu(struct dasd_device *device)  in dasd_alias_make_device_known_to_lcu()  argument
189 struct dasd_eckd_private *private = device->private; in dasd_alias_make_device_known_to_lcu()
195 device->discipline->get_uid(device, &uid); in dasd_alias_make_device_known_to_lcu()
231 list_add(&device->alias_list, &lcu->inactive_devices); in dasd_alias_make_device_known_to_lcu()
244 void dasd_alias_disconnect_device_from_lcu(struct dasd_device *device) in dasd_alias_disconnect_device_from_lcu() argument
246 struct dasd_eckd_private *private = device->private; in dasd_alias_disconnect_device_from_lcu()
257 device->discipline->get_uid(device, &uid); in dasd_alias_disconnect_device_from_lcu()
260 if (device == lcu->suc_data.device) { in dasd_alias_disconnect_device_from_lcu()
264 if (device == lcu->suc_data.device) { in dasd_alias_disconnect_device_from_lcu()
265 dasd_put_device(device); in dasd_alias_disconnect_device_from_lcu()
266 lcu->suc_data.device = NULL; in dasd_alias_disconnect_device_from_lcu()
270 if (device == lcu->ruac_data.device) { in dasd_alias_disconnect_device_from_lcu()
275 if (device == lcu->ruac_data.device) { in dasd_alias_disconnect_device_from_lcu()
276 dasd_put_device(device); in dasd_alias_disconnect_device_from_lcu()
277 lcu->ruac_data.device = NULL; in dasd_alias_disconnect_device_from_lcu()
285 list_del_init(&device->alias_list); in dasd_alias_disconnect_device_from_lcu()
313 struct dasd_device *device, in _add_device_to_lcu() argument
317 struct dasd_eckd_private *private = device->private; in _add_device_to_lcu()
321 spin_lock(get_ccwdev_lock(device->cdev)); in _add_device_to_lcu()
326 spin_unlock(get_ccwdev_lock(device->cdev)); in _add_device_to_lcu()
329 list_move(&device->alias_list, &lcu->active_devices); in _add_device_to_lcu()
351 list_move(&device->alias_list, &group->baselist); in _add_device_to_lcu()
353 list_move(&device->alias_list, &group->aliaslist); in _add_device_to_lcu()
359 struct dasd_device *device) in _remove_device_from_lcu() argument
361 struct dasd_eckd_private *private = device->private; in _remove_device_from_lcu()
364 list_move(&device->alias_list, &lcu->inactive_devices); in _remove_device_from_lcu()
374 if (group->next == device) in _remove_device_from_lcu()
415 static int read_unit_address_configuration(struct dasd_device *device, in read_unit_address_configuration() argument
426 device, NULL); in read_unit_address_configuration()
429 cqr->startdev = device; in read_unit_address_configuration()
430 cqr->memdev = device; in read_unit_address_configuration()
486 struct dasd_device *device, *tempdev; in _lcu_update() local
492 list_for_each_entry_safe(device, tempdev, &pavgroup->baselist, in _lcu_update()
494 list_move(&device->alias_list, &lcu->active_devices); in _lcu_update()
495 private = device->private; in _lcu_update()
498 list_for_each_entry_safe(device, tempdev, &pavgroup->aliaslist, in _lcu_update()
500 list_move(&device->alias_list, &lcu->active_devices); in _lcu_update()
501 private = device->private; in _lcu_update()
536 list_for_each_entry_safe(device, tempdev, &lcu->active_devices, in _lcu_update()
538 _add_device_to_lcu(lcu, device, refdev); in _lcu_update()
549 struct dasd_device *device; in lcu_update_work() local
555 device = ruac_data->device; in lcu_update_work()
556 rc = _lcu_update(device, lcu); in lcu_update_work()
564 DBF_DEV_EVENT(DBF_WARNING, device, "could not update" in lcu_update_work()
567 dasd_put_device(device); in lcu_update_work()
569 dasd_put_device(device); in lcu_update_work()
570 lcu->ruac_data.device = NULL; in lcu_update_work()
577 struct dasd_device *device) in _schedule_lcu_update() argument
583 if (lcu->ruac_data.device) { in _schedule_lcu_update()
587 if (device && !list_empty(&device->alias_list)) in _schedule_lcu_update()
588 usedev = device; in _schedule_lcu_update()
613 lcu->ruac_data.device = usedev; in _schedule_lcu_update()
619 int dasd_alias_add_device(struct dasd_device *device) in dasd_alias_add_device() argument
621 struct dasd_eckd_private *private = device->private; in dasd_alias_add_device()
635 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_alias_add_device()
639 rc = _add_device_to_lcu(lcu, device, device); in dasd_alias_add_device()
644 list_move(&device->alias_list, &lcu->active_devices); in dasd_alias_add_device()
646 _schedule_lcu_update(lcu, device); in dasd_alias_add_device()
652 int dasd_alias_update_add_device(struct dasd_device *device) in dasd_alias_update_add_device() argument
654 struct dasd_eckd_private *private = device->private; in dasd_alias_update_add_device()
657 return dasd_alias_add_device(device); in dasd_alias_update_add_device()
660 int dasd_alias_remove_device(struct dasd_device *device) in dasd_alias_remove_device() argument
662 struct dasd_eckd_private *private = device->private; in dasd_alias_remove_device()
670 _remove_device_from_lcu(lcu, device); in dasd_alias_remove_device()
736 struct dasd_device *device, in reset_summary_unit_check() argument
755 cqr->startdev = device; in reset_summary_unit_check()
756 cqr->memdev = device; in reset_summary_unit_check()
769 struct dasd_device *device; in _restart_all_base_devices_on_lcu() local
773 list_for_each_entry(device, &lcu->active_devices, alias_list) { in _restart_all_base_devices_on_lcu()
774 private = device->private; in _restart_all_base_devices_on_lcu()
777 dasd_schedule_block_bh(device->block); in _restart_all_base_devices_on_lcu()
778 dasd_schedule_device_bh(device); in _restart_all_base_devices_on_lcu()
780 list_for_each_entry(device, &lcu->inactive_devices, alias_list) { in _restart_all_base_devices_on_lcu()
781 private = device->private; in _restart_all_base_devices_on_lcu()
784 dasd_schedule_block_bh(device->block); in _restart_all_base_devices_on_lcu()
785 dasd_schedule_device_bh(device); in _restart_all_base_devices_on_lcu()
788 list_for_each_entry(device, &pavgroup->baselist, alias_list) { in _restart_all_base_devices_on_lcu()
789 dasd_schedule_block_bh(device->block); in _restart_all_base_devices_on_lcu()
790 dasd_schedule_device_bh(device); in _restart_all_base_devices_on_lcu()
798 struct dasd_device *device, *temp; in flush_all_alias_devices_on_lcu() local
815 list_for_each_entry_safe(device, temp, &lcu->active_devices, in flush_all_alias_devices_on_lcu()
817 private = device->private; in flush_all_alias_devices_on_lcu()
820 list_move(&device->alias_list, &active); in flush_all_alias_devices_on_lcu()
827 device = list_first_entry(&active, struct dasd_device, in flush_all_alias_devices_on_lcu()
830 dasd_flush_device_queue(device); in flush_all_alias_devices_on_lcu()
836 if (device == list_first_entry(&active, in flush_all_alias_devices_on_lcu()
838 list_move(&device->alias_list, &lcu->active_devices); in flush_all_alias_devices_on_lcu()
839 private = device->private; in flush_all_alias_devices_on_lcu()
849 struct dasd_device *device; in _stop_all_devices_on_lcu() local
851 list_for_each_entry(device, &lcu->active_devices, alias_list) { in _stop_all_devices_on_lcu()
852 spin_lock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
853 dasd_device_set_stop_bits(device, DASD_STOPPED_SU); in _stop_all_devices_on_lcu()
854 spin_unlock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
856 list_for_each_entry(device, &lcu->inactive_devices, alias_list) { in _stop_all_devices_on_lcu()
857 spin_lock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
858 dasd_device_set_stop_bits(device, DASD_STOPPED_SU); in _stop_all_devices_on_lcu()
859 spin_unlock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
862 list_for_each_entry(device, &pavgroup->baselist, alias_list) { in _stop_all_devices_on_lcu()
863 spin_lock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
864 dasd_device_set_stop_bits(device, DASD_STOPPED_SU); in _stop_all_devices_on_lcu()
865 spin_unlock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
867 list_for_each_entry(device, &pavgroup->aliaslist, alias_list) { in _stop_all_devices_on_lcu()
868 spin_lock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
869 dasd_device_set_stop_bits(device, DASD_STOPPED_SU); in _stop_all_devices_on_lcu()
870 spin_unlock(get_ccwdev_lock(device->cdev)); in _stop_all_devices_on_lcu()
878 struct dasd_device *device; in _unstop_all_devices_on_lcu() local
880 list_for_each_entry(device, &lcu->active_devices, alias_list) { in _unstop_all_devices_on_lcu()
881 spin_lock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
882 dasd_device_remove_stop_bits(device, DASD_STOPPED_SU); in _unstop_all_devices_on_lcu()
883 spin_unlock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
885 list_for_each_entry(device, &lcu->inactive_devices, alias_list) { in _unstop_all_devices_on_lcu()
886 spin_lock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
887 dasd_device_remove_stop_bits(device, DASD_STOPPED_SU); in _unstop_all_devices_on_lcu()
888 spin_unlock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
891 list_for_each_entry(device, &pavgroup->baselist, alias_list) { in _unstop_all_devices_on_lcu()
892 spin_lock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
893 dasd_device_remove_stop_bits(device, DASD_STOPPED_SU); in _unstop_all_devices_on_lcu()
894 spin_unlock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
896 list_for_each_entry(device, &pavgroup->aliaslist, alias_list) { in _unstop_all_devices_on_lcu()
897 spin_lock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
898 dasd_device_remove_stop_bits(device, DASD_STOPPED_SU); in _unstop_all_devices_on_lcu()
899 spin_unlock(get_ccwdev_lock(device->cdev)); in _unstop_all_devices_on_lcu()
909 struct dasd_device *device; in summary_unit_check_handling_work() local
914 device = suc_data->device; in summary_unit_check_handling_work()
920 spin_lock_irqsave(get_ccwdev_lock(device->cdev), flags); in summary_unit_check_handling_work()
921 dasd_device_remove_stop_bits(device, in summary_unit_check_handling_work()
923 spin_unlock_irqrestore(get_ccwdev_lock(device->cdev), flags); in summary_unit_check_handling_work()
924 reset_summary_unit_check(lcu, device, suc_data->reason); in summary_unit_check_handling_work()
930 _schedule_lcu_update(lcu, device); in summary_unit_check_handling_work()
931 lcu->suc_data.device = NULL; in summary_unit_check_handling_work()
932 dasd_put_device(device); in summary_unit_check_handling_work()
938 struct dasd_device *device = container_of(work, struct dasd_device, in dasd_alias_handle_summary_unit_check() local
940 struct dasd_eckd_private *private = device->private; in dasd_alias_handle_summary_unit_check()
946 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_alias_handle_summary_unit_check()
955 if (list_empty(&device->alias_list)) { in dasd_alias_handle_summary_unit_check()
956 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_alias_handle_summary_unit_check()
961 if (lcu->suc_data.device) { in dasd_alias_handle_summary_unit_check()
963 DBF_DEV_EVENT(DBF_WARNING, device, "%s", in dasd_alias_handle_summary_unit_check()
972 lcu->suc_data.device = device; in dasd_alias_handle_summary_unit_check()
973 dasd_get_device(device); in dasd_alias_handle_summary_unit_check()
975 dasd_put_device(device); in dasd_alias_handle_summary_unit_check()
979 clear_bit(DASD_FLAG_SUC, &device->flags); in dasd_alias_handle_summary_unit_check()
980 dasd_put_device(device); in dasd_alias_handle_summary_unit_check()