|
@@ -258,10 +258,6 @@ static int qcom_smem_alloc_private(struct qcom_smem *smem,
|
|
|
size_t alloc_size;
|
|
|
void *p;
|
|
|
|
|
|
- /* We're not going to find it if there's no matching partition */
|
|
|
- if (host >= SMEM_HOST_COUNT || !smem->partitions[host])
|
|
|
- return -ENOENT;
|
|
|
-
|
|
|
phdr = smem->partitions[host];
|
|
|
|
|
|
p = (void *)phdr + sizeof(*phdr);
|
|
@@ -371,8 +367,9 @@ int qcom_smem_alloc(unsigned host, unsigned item, size_t size)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- ret = qcom_smem_alloc_private(__smem, host, item, size);
|
|
|
- if (ret == -ENOENT)
|
|
|
+ if (host < SMEM_HOST_COUNT && __smem->partitions[host])
|
|
|
+ ret = qcom_smem_alloc_private(__smem, host, item, size);
|
|
|
+ else
|
|
|
ret = qcom_smem_alloc_global(__smem, item, size);
|
|
|
|
|
|
hwspin_unlock_irqrestore(__smem->hwlock, &flags);
|
|
@@ -428,10 +425,6 @@ static int qcom_smem_get_private(struct qcom_smem *smem,
|
|
|
struct smem_private_entry *hdr;
|
|
|
void *p;
|
|
|
|
|
|
- /* We're not going to find it if there's no matching partition */
|
|
|
- if (host >= SMEM_HOST_COUNT || !smem->partitions[host])
|
|
|
- return -ENOENT;
|
|
|
-
|
|
|
phdr = smem->partitions[host];
|
|
|
|
|
|
p = (void *)phdr + sizeof(*phdr);
|
|
@@ -484,8 +477,9 @@ int qcom_smem_get(unsigned host, unsigned item, void **ptr, size_t *size)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- ret = qcom_smem_get_private(__smem, host, item, ptr, size);
|
|
|
- if (ret == -ENOENT)
|
|
|
+ if (host < SMEM_HOST_COUNT && __smem->partitions[host])
|
|
|
+ ret = qcom_smem_get_private(__smem, host, item, ptr, size);
|
|
|
+ else
|
|
|
ret = qcom_smem_get_global(__smem, item, ptr, size);
|
|
|
|
|
|
hwspin_unlock_irqrestore(__smem->hwlock, &flags);
|