Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17785fd1 authored by Matthew Maurer's avatar Matthew Maurer
Browse files

trusty: storageproxyd: Fix rebase of UFS support

The UFS support got rebased on top of the RPMB socket support
improperly. As a result, RPMB socket support was broken due to an
unconditional rmpb_fd = rc which would set the rpmb_fd to be connect()'s
error code in the case of an RPMB socket.

Bug: 146903427
Test: Boot Trusty+Android with the rpmb_dev mock, check for liveness
Change-Id: Ib1220dc49392f1a10369eed7716e44680bd83a66
parent e1c879c8
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -361,6 +361,15 @@ int rpmb_open(const char* rpmb_devname, enum dev_type open_dev_type) {
            return rc;
        }
        rpmb_fd = rc;

        /* For UFS, it is prudent to check we have a sg device by calling an ioctl */
        if (dev_type == UFS_RPMB) {
            if ((ioctl(rpmb_fd, SG_GET_VERSION_NUM, &sg_version_num) < 0) ||
                (sg_version_num < RPMB_MIN_SG_VERSION_NUM)) {
                ALOGE("%s is not a sg device, or old sg driver\n", rpmb_devname);
                return -1;
            }
        }
    } else {
        struct sockaddr_un unaddr;
        struct sockaddr *addr = (struct sockaddr *)&unaddr;
@@ -382,15 +391,6 @@ int rpmb_open(const char* rpmb_devname, enum dev_type open_dev_type) {
        }
    }

    /* For UFS, it is prudent to check we hava a sg device by calling an ioctl */
    if (dev_type == UFS_RPMB) {
        if ((ioctl(rc, SG_GET_VERSION_NUM, &sg_version_num) < 0) ||
            (sg_version_num < RPMB_MIN_SG_VERSION_NUM)) {
            ALOGE("%s is not a sg device, or old sg driver\n", rpmb_devname);
            return -1;
        }
    }
    rpmb_fd = rc;
    return 0;
}