Commit ec5d292d authored by Umang Jain's avatar Umang Jain Committed by Greg Kroah-Hartman
Browse files

staging: vchiq_arm: Do not retry bulk transfers on -EINTR



-EINTR is returned by various vchiq bulk transfer code paths
on receiving a fatal signal to the process. Since the process is
deemed to be terminated anyway, do not retry the bulk transfer
on -EINTR.

Signed-off-by: default avatarUmang Jain <umang.jain@ideasonboard.com>
Link: https://lore.kernel.org/r/20240918163100.870596-6-umang.jain@ideasonboard.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 80f8ea98
Loading
Loading
Loading
Loading
+25 −49
Original line number Diff line number Diff line
@@ -853,7 +853,6 @@ vchiq_bulk_transmit(struct vchiq_instance *instance, unsigned int handle, const
{
	int ret;

	while (1) {
	switch (mode) {
	case VCHIQ_BULK_MODE_NOCALLBACK:
	case VCHIQ_BULK_MODE_CALLBACK:
@@ -869,17 +868,6 @@ vchiq_bulk_transmit(struct vchiq_instance *instance, unsigned int handle, const
		return -EINVAL;
	}

		/*
		 * vchiq_*_bulk_transfer() may return -EINTR, so we need
		 * to implement a retry mechanism since this function is
		 * supposed to block until queued
		 */
		if (ret != -EINTR)
			break;

		msleep(1);
	}

	return ret;
}
EXPORT_SYMBOL(vchiq_bulk_transmit);
@@ -890,7 +878,6 @@ int vchiq_bulk_receive(struct vchiq_instance *instance, unsigned int handle,
{
	int ret;

	while (1) {
	switch (mode) {
	case VCHIQ_BULK_MODE_NOCALLBACK:
	case VCHIQ_BULK_MODE_CALLBACK:
@@ -905,17 +892,6 @@ int vchiq_bulk_receive(struct vchiq_instance *instance, unsigned int handle,
		return -EINVAL;
	}

		/*
		 * vchiq_*_bulk_transfer() may return -EINTR, so we need
		 * to implement a retry mechanism since this function is
		 * supposed to block until queued
		 */
		if (ret != -EINTR)
			break;

		msleep(1);
	}

	return ret;
}
EXPORT_SYMBOL(vchiq_bulk_receive);