mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Merge branch 'irq/for-gpio' into irq/core
Merge the request/release callbacks which are in a separate branch for consumption by the gpio folks. Signed-off-by: Thomas Gleixner <[email protected]>
This commit is contained in:
commit
ffb12cf002
800 changed files with 8233 additions and 5000 deletions
|
|
@ -610,6 +610,7 @@ void chsc_chp_online(struct chp_id chpid)
|
|||
css_wait_for_slow_path();
|
||||
for_each_subchannel_staged(__s390_process_res_acc, NULL,
|
||||
&link);
|
||||
css_schedule_reprobe();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ static int XCRB_msg_to_type6CPRB_msgX(struct zcrypt_device *zdev,
|
|||
} __packed * msg = ap_msg->message;
|
||||
|
||||
int rcblen = CEIL4(xcRB->request_control_blk_length);
|
||||
int replylen;
|
||||
int replylen, req_sumlen, resp_sumlen;
|
||||
char *req_data = ap_msg->message + sizeof(struct type6_hdr) + rcblen;
|
||||
char *function_code;
|
||||
|
||||
|
|
@ -321,12 +321,34 @@ static int XCRB_msg_to_type6CPRB_msgX(struct zcrypt_device *zdev,
|
|||
xcRB->request_data_length;
|
||||
if (ap_msg->length > MSGTYPE06_MAX_MSG_SIZE)
|
||||
return -EINVAL;
|
||||
|
||||
/* Overflow check
|
||||
sum must be greater (or equal) than the largest operand */
|
||||
req_sumlen = CEIL4(xcRB->request_control_blk_length) +
|
||||
xcRB->request_data_length;
|
||||
if ((CEIL4(xcRB->request_control_blk_length) <=
|
||||
xcRB->request_data_length) ?
|
||||
(req_sumlen < xcRB->request_data_length) :
|
||||
(req_sumlen < CEIL4(xcRB->request_control_blk_length))) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
replylen = sizeof(struct type86_fmt2_msg) +
|
||||
CEIL4(xcRB->reply_control_blk_length) +
|
||||
xcRB->reply_data_length;
|
||||
if (replylen > MSGTYPE06_MAX_MSG_SIZE)
|
||||
return -EINVAL;
|
||||
|
||||
/* Overflow check
|
||||
sum must be greater (or equal) than the largest operand */
|
||||
resp_sumlen = CEIL4(xcRB->reply_control_blk_length) +
|
||||
xcRB->reply_data_length;
|
||||
if ((CEIL4(xcRB->reply_control_blk_length) <= xcRB->reply_data_length) ?
|
||||
(resp_sumlen < xcRB->reply_data_length) :
|
||||
(resp_sumlen < CEIL4(xcRB->reply_control_blk_length))) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* prepare type6 header */
|
||||
msg->hdr = static_type6_hdrX;
|
||||
memcpy(msg->hdr.agent_id , &(xcRB->agent_ID), sizeof(xcRB->agent_ID));
|
||||
|
|
|
|||
|
|
@ -1660,7 +1660,6 @@ int qeth_qdio_clear_card(struct qeth_card *card, int use_halt)
|
|||
QDIO_FLAG_CLEANUP_USING_CLEAR);
|
||||
if (rc)
|
||||
QETH_CARD_TEXT_(card, 3, "1err%d", rc);
|
||||
qdio_free(CARD_DDEV(card));
|
||||
atomic_set(&card->qdio.state, QETH_QDIO_ALLOCATED);
|
||||
break;
|
||||
case QETH_QDIO_CLEANING:
|
||||
|
|
@ -2605,6 +2604,7 @@ static int qeth_mpc_initialize(struct qeth_card *card)
|
|||
return 0;
|
||||
out_qdio:
|
||||
qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
|
||||
qdio_free(CARD_DDEV(card));
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
@ -4906,9 +4906,11 @@ retry:
|
|||
if (retries < 3)
|
||||
QETH_DBF_MESSAGE(2, "%s Retrying to do IDX activates.\n",
|
||||
dev_name(&card->gdev->dev));
|
||||
rc = qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
|
||||
ccw_device_set_offline(CARD_DDEV(card));
|
||||
ccw_device_set_offline(CARD_WDEV(card));
|
||||
ccw_device_set_offline(CARD_RDEV(card));
|
||||
qdio_free(CARD_DDEV(card));
|
||||
rc = ccw_device_set_online(CARD_RDEV(card));
|
||||
if (rc)
|
||||
goto retriable;
|
||||
|
|
@ -4918,7 +4920,6 @@ retry:
|
|||
rc = ccw_device_set_online(CARD_DDEV(card));
|
||||
if (rc)
|
||||
goto retriable;
|
||||
rc = qeth_qdio_clear_card(card, card->info.type != QETH_CARD_TYPE_IQD);
|
||||
retriable:
|
||||
if (rc == -ERESTARTSYS) {
|
||||
QETH_DBF_TEXT(SETUP, 2, "break1");
|
||||
|
|
|
|||
|
|
@ -1091,6 +1091,7 @@ out_remove:
|
|||
ccw_device_set_offline(CARD_DDEV(card));
|
||||
ccw_device_set_offline(CARD_WDEV(card));
|
||||
ccw_device_set_offline(CARD_RDEV(card));
|
||||
qdio_free(CARD_DDEV(card));
|
||||
if (recover_flag == CARD_STATE_RECOVER)
|
||||
card->state = CARD_STATE_RECOVER;
|
||||
else
|
||||
|
|
@ -1132,6 +1133,7 @@ static int __qeth_l2_set_offline(struct ccwgroup_device *cgdev,
|
|||
rc = (rc2) ? rc2 : rc3;
|
||||
if (rc)
|
||||
QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
|
||||
qdio_free(CARD_DDEV(card));
|
||||
if (recover_flag == CARD_STATE_UP)
|
||||
card->state = CARD_STATE_RECOVER;
|
||||
/* let user_space know that device is offline */
|
||||
|
|
@ -1194,6 +1196,7 @@ static void qeth_l2_shutdown(struct ccwgroup_device *gdev)
|
|||
qeth_hw_trap(card, QETH_DIAGS_TRAP_DISARM);
|
||||
qeth_qdio_clear_card(card, 0);
|
||||
qeth_clear_qdio_buffers(card);
|
||||
qdio_free(CARD_DDEV(card));
|
||||
}
|
||||
|
||||
static int qeth_l2_pm_suspend(struct ccwgroup_device *gdev)
|
||||
|
|
|
|||
|
|
@ -3447,6 +3447,7 @@ out_remove:
|
|||
ccw_device_set_offline(CARD_DDEV(card));
|
||||
ccw_device_set_offline(CARD_WDEV(card));
|
||||
ccw_device_set_offline(CARD_RDEV(card));
|
||||
qdio_free(CARD_DDEV(card));
|
||||
if (recover_flag == CARD_STATE_RECOVER)
|
||||
card->state = CARD_STATE_RECOVER;
|
||||
else
|
||||
|
|
@ -3493,6 +3494,7 @@ static int __qeth_l3_set_offline(struct ccwgroup_device *cgdev,
|
|||
rc = (rc2) ? rc2 : rc3;
|
||||
if (rc)
|
||||
QETH_DBF_TEXT_(SETUP, 2, "1err%d", rc);
|
||||
qdio_free(CARD_DDEV(card));
|
||||
if (recover_flag == CARD_STATE_UP)
|
||||
card->state = CARD_STATE_RECOVER;
|
||||
/* let user_space know that device is offline */
|
||||
|
|
@ -3545,6 +3547,7 @@ static void qeth_l3_shutdown(struct ccwgroup_device *gdev)
|
|||
qeth_hw_trap(card, QETH_DIAGS_TRAP_DISARM);
|
||||
qeth_qdio_clear_card(card, 0);
|
||||
qeth_clear_qdio_buffers(card);
|
||||
qdio_free(CARD_DDEV(card));
|
||||
}
|
||||
|
||||
static int qeth_l3_pm_suspend(struct ccwgroup_device *gdev)
|
||||
|
|
|
|||
Loading…
Reference in a new issue