s390-ccw.c (0db949f1810f4d497762d57d8db6f219c0607529) s390-ccw.c (46ea3841edaff2a7657b8f6c7f474e5e3850cd62)
1/*
2 * s390 CCW Assignment Support
3 *
4 * Copyright 2017 IBM Corp
5 * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
6 * Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
7 * Pierre Morel <pmorel@linux.vnet.ibm.com>
8 *

--- 37 unchanged lines hidden (view full) ---

46 S390CCWDeviceClass *cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data);
47
48 if (!cdc->handle_clear) {
49 return -ENOSYS;
50 }
51 return cdc->handle_clear(sch);
52}
53
1/*
2 * s390 CCW Assignment Support
3 *
4 * Copyright 2017 IBM Corp
5 * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
6 * Xiao Feng Ren <renxiaof@linux.vnet.ibm.com>
7 * Pierre Morel <pmorel@linux.vnet.ibm.com>
8 *

--- 37 unchanged lines hidden (view full) ---

46 S390CCWDeviceClass *cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data);
47
48 if (!cdc->handle_clear) {
49 return -ENOSYS;
50 }
51 return cdc->handle_clear(sch);
52}
53
54IOInstEnding s390_ccw_store(SubchDev *sch)
55{
56 S390CCWDeviceClass *cdc = NULL;
57 int ret = IOINST_CC_EXPECTED;
58
59 /*
60 * This code is called for both virtual and passthrough devices,
61 * but only applies to to the latter. This ugly check makes that
62 * distinction for us.
63 */
64 if (object_dynamic_cast(OBJECT(sch->driver_data), TYPE_S390_CCW)) {
65 cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data);
66 }
67
68 if (cdc && cdc->handle_store) {
69 ret = cdc->handle_store(sch);
70 }
71
72 return ret;
73}
74
54static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
55 char *sysfsdev,
56 Error **errp)
57{
58 unsigned int cssid, ssid, devid;
59 char dev_path[PATH_MAX] = {0}, *tmp;
60
61 if (!sysfsdev) {

--- 121 unchanged lines hidden ---
75static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
76 char *sysfsdev,
77 Error **errp)
78{
79 unsigned int cssid, ssid, devid;
80 char dev_path[PATH_MAX] = {0}, *tmp;
81
82 if (!sysfsdev) {

--- 121 unchanged lines hidden ---