mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-01-31 13:39:47 +00:00
515.76
This commit is contained in:
@@ -619,27 +619,33 @@ typedef enum
|
||||
#define NV_GET_NV_STATE(pGpu) \
|
||||
(nv_state_t *)((pGpu) ? (pGpu)->pOsGpuInfo : NULL)
|
||||
|
||||
#define IS_REG_OFFSET(nv, offset, length) \
|
||||
(((offset) >= (nv)->regs->cpu_address) && \
|
||||
(((offset) + ((length)-1)) <= \
|
||||
(nv)->regs->cpu_address + ((nv)->regs->size-1)))
|
||||
static inline NvBool IS_REG_OFFSET(nv_state_t *nv, NvU64 offset, NvU64 length)
|
||||
{
|
||||
return ((offset >= nv->regs->cpu_address) &&
|
||||
((offset + (length - 1)) <= (nv->regs->cpu_address + (nv->regs->size - 1))));
|
||||
}
|
||||
|
||||
#define IS_FB_OFFSET(nv, offset, length) \
|
||||
(((nv)->fb) && ((offset) >= (nv)->fb->cpu_address) && \
|
||||
(((offset) + ((length)-1)) <= (nv)->fb->cpu_address + ((nv)->fb->size-1)))
|
||||
static inline NvBool IS_FB_OFFSET(nv_state_t *nv, NvU64 offset, NvU64 length)
|
||||
{
|
||||
return ((nv->fb) && (offset >= nv->fb->cpu_address) &&
|
||||
((offset + (length - 1)) <= (nv->fb->cpu_address + (nv->fb->size - 1))));
|
||||
}
|
||||
|
||||
#define IS_UD_OFFSET(nv, offset, length) \
|
||||
(((nv)->ud.cpu_address != 0) && ((nv)->ud.size != 0) && \
|
||||
((offset) >= (nv)->ud.cpu_address) && \
|
||||
(((offset) + ((length)-1)) <= (nv)->ud.cpu_address + ((nv)->ud.size-1)))
|
||||
static inline NvBool IS_UD_OFFSET(nv_state_t *nv, NvU64 offset, NvU64 length)
|
||||
{
|
||||
return ((nv->ud.cpu_address != 0) && (nv->ud.size != 0) &&
|
||||
(offset >= nv->ud.cpu_address) &&
|
||||
((offset + (length - 1)) <= (nv->ud.cpu_address + (nv->ud.size - 1))));
|
||||
}
|
||||
|
||||
#define IS_IMEM_OFFSET(nv, offset, length) \
|
||||
(((nv)->bars[NV_GPU_BAR_INDEX_IMEM].cpu_address != 0) && \
|
||||
((nv)->bars[NV_GPU_BAR_INDEX_IMEM].size != 0) && \
|
||||
((offset) >= (nv)->bars[NV_GPU_BAR_INDEX_IMEM].cpu_address) && \
|
||||
(((offset) + ((length) - 1)) <= \
|
||||
(nv)->bars[NV_GPU_BAR_INDEX_IMEM].cpu_address + \
|
||||
((nv)->bars[NV_GPU_BAR_INDEX_IMEM].size - 1)))
|
||||
static inline NvBool IS_IMEM_OFFSET(nv_state_t *nv, NvU64 offset, NvU64 length)
|
||||
{
|
||||
return ((nv->bars[NV_GPU_BAR_INDEX_IMEM].cpu_address != 0) &&
|
||||
(nv->bars[NV_GPU_BAR_INDEX_IMEM].size != 0) &&
|
||||
(offset >= nv->bars[NV_GPU_BAR_INDEX_IMEM].cpu_address) &&
|
||||
((offset + (length - 1)) <= (nv->bars[NV_GPU_BAR_INDEX_IMEM].cpu_address +
|
||||
(nv->bars[NV_GPU_BAR_INDEX_IMEM].size - 1))));
|
||||
}
|
||||
|
||||
#define NV_RM_MAX_MSIX_LINES 8
|
||||
|
||||
|
||||
@@ -780,10 +780,8 @@ static NV_STATUS RmAccessRegistry(
|
||||
RmStatus = NV_ERR_INVALID_STRING_LENGTH;
|
||||
goto done;
|
||||
}
|
||||
|
||||
// get access to client's parmStr
|
||||
RMAPI_PARAM_COPY_INIT(parmStrParamCopy, tmpParmStr, clientParmStrAddress, ParmStrLength, 1);
|
||||
parmStrParamCopy.flags |= RMAPI_PARAM_COPY_FLAGS_ZERO_BUFFER;
|
||||
RmStatus = rmapiParamsAcquire(&parmStrParamCopy, NV_TRUE);
|
||||
if (RmStatus != NV_OK)
|
||||
{
|
||||
@@ -2026,6 +2024,7 @@ static NV_STATUS RmGetAllocPrivate(
|
||||
PMEMORY_DESCRIPTOR pMemDesc;
|
||||
NvU32 pageOffset;
|
||||
NvU64 pageCount;
|
||||
NvU64 endingOffset;
|
||||
RsResourceRef *pResourceRef;
|
||||
RmResource *pRmResource;
|
||||
void *pMemData;
|
||||
@@ -2086,8 +2085,9 @@ static NV_STATUS RmGetAllocPrivate(
|
||||
if (rmStatus != NV_OK)
|
||||
goto done;
|
||||
|
||||
pageCount = ((pageOffset + length) / os_page_size);
|
||||
pageCount += (*pPageIndex + (((pageOffset + length) % os_page_size) ? 1 : 0));
|
||||
endingOffset = pageOffset + length;
|
||||
pageCount = (endingOffset / os_page_size);
|
||||
pageCount += (*pPageIndex + ((endingOffset % os_page_size) ? 1 : 0));
|
||||
|
||||
if (pageCount > NV_RM_PAGES_TO_OS_PAGES(pMemDesc->PageCount))
|
||||
{
|
||||
|
||||
@@ -362,10 +362,6 @@ osHandleGpuLost
|
||||
pmc_boot_0 = NV_PRIV_REG_RD32(nv->regs->map_u, NV_PMC_BOOT_0);
|
||||
if (pmc_boot_0 != nvp->pmc_boot_0)
|
||||
{
|
||||
RM_API *pRmApi = rmapiGetInterface(RMAPI_GPU_LOCK_INTERNAL);
|
||||
NV2080_CTRL_GPU_GET_OEM_BOARD_INFO_PARAMS *pBoardInfoParams;
|
||||
NV_STATUS status;
|
||||
|
||||
//
|
||||
// This doesn't support PEX Reset and Recovery yet.
|
||||
// This will help to prevent accessing registers of a GPU
|
||||
@@ -376,24 +372,11 @@ osHandleGpuLost
|
||||
|
||||
NV_DEV_PRINTF(NV_DBG_ERRORS, nv, "GPU has fallen off the bus.\n");
|
||||
|
||||
pBoardInfoParams = portMemAllocNonPaged(sizeof(*pBoardInfoParams));
|
||||
if (pBoardInfoParams != NULL)
|
||||
if (pGpu->boardInfo != NULL && pGpu->boardInfo->serialNumber[0] != '\0')
|
||||
{
|
||||
portMemSet(pBoardInfoParams, 0, sizeof(*pBoardInfoParams));
|
||||
|
||||
status = pRmApi->Control(pRmApi, nv->rmapi.hClient,
|
||||
nv->rmapi.hSubDevice,
|
||||
NV2080_CTRL_CMD_GPU_GET_OEM_BOARD_INFO,
|
||||
pBoardInfoParams,
|
||||
sizeof(*pBoardInfoParams));
|
||||
if (status == NV_OK)
|
||||
{
|
||||
NV_DEV_PRINTF(NV_DBG_ERRORS, nv,
|
||||
"GPU serial number is %s.\n",
|
||||
pBoardInfoParams->serialNumber);
|
||||
}
|
||||
|
||||
portMemFree(pBoardInfoParams);
|
||||
NV_DEV_PRINTF(NV_DBG_ERRORS, nv,
|
||||
"GPU serial number is %s.\n",
|
||||
pGpu->boardInfo->serialNumber);
|
||||
}
|
||||
|
||||
gpuSetDisconnectedProperties(pGpu);
|
||||
|
||||
Reference in New Issue
Block a user