lpcb 473 arch/s390/pci/pci_clp.c static int clp_base_slpc(struct clp_req *req, struct clp_req_rsp_slpc *lpcb) lpcb 475 arch/s390/pci/pci_clp.c unsigned long limit = PAGE_SIZE - sizeof(lpcb->request); lpcb 477 arch/s390/pci/pci_clp.c if (lpcb->request.hdr.len != sizeof(lpcb->request) || lpcb 478 arch/s390/pci/pci_clp.c lpcb->response.hdr.len > limit) lpcb 480 arch/s390/pci/pci_clp.c return clp_req(lpcb, CLP_LPS_BASE) ? -EOPNOTSUPP : 0; lpcb 483 arch/s390/pci/pci_clp.c static int clp_base_command(struct clp_req *req, struct clp_req_hdr *lpcb) lpcb 485 arch/s390/pci/pci_clp.c switch (lpcb->cmd) { lpcb 487 arch/s390/pci/pci_clp.c return clp_base_slpc(req, (void *) lpcb); lpcb 493 arch/s390/pci/pci_clp.c static int clp_pci_slpc(struct clp_req *req, struct clp_req_rsp_slpc *lpcb) lpcb 495 arch/s390/pci/pci_clp.c unsigned long limit = PAGE_SIZE - sizeof(lpcb->request); lpcb 497 arch/s390/pci/pci_clp.c if (lpcb->request.hdr.len != sizeof(lpcb->request) || lpcb 498 arch/s390/pci/pci_clp.c lpcb->response.hdr.len > limit) lpcb 500 arch/s390/pci/pci_clp.c return clp_req(lpcb, CLP_LPS_PCI) ? -EOPNOTSUPP : 0; lpcb 503 arch/s390/pci/pci_clp.c static int clp_pci_list(struct clp_req *req, struct clp_req_rsp_list_pci *lpcb) lpcb 505 arch/s390/pci/pci_clp.c unsigned long limit = PAGE_SIZE - sizeof(lpcb->request); lpcb 507 arch/s390/pci/pci_clp.c if (lpcb->request.hdr.len != sizeof(lpcb->request) || lpcb 508 arch/s390/pci/pci_clp.c lpcb->response.hdr.len > limit) lpcb 510 arch/s390/pci/pci_clp.c if (lpcb->request.reserved2 != 0) lpcb 512 arch/s390/pci/pci_clp.c return clp_req(lpcb, CLP_LPS_PCI) ? -EOPNOTSUPP : 0; lpcb 516 arch/s390/pci/pci_clp.c struct clp_req_rsp_query_pci *lpcb) lpcb 518 arch/s390/pci/pci_clp.c unsigned long limit = PAGE_SIZE - sizeof(lpcb->request); lpcb 520 arch/s390/pci/pci_clp.c if (lpcb->request.hdr.len != sizeof(lpcb->request) || lpcb 521 arch/s390/pci/pci_clp.c lpcb->response.hdr.len > limit) lpcb 523 arch/s390/pci/pci_clp.c if (lpcb->request.reserved2 != 0 || lpcb->request.reserved3 != 0) lpcb 525 arch/s390/pci/pci_clp.c return clp_req(lpcb, CLP_LPS_PCI) ? -EOPNOTSUPP : 0; lpcb 529 arch/s390/pci/pci_clp.c struct clp_req_rsp_query_pci_grp *lpcb) lpcb 531 arch/s390/pci/pci_clp.c unsigned long limit = PAGE_SIZE - sizeof(lpcb->request); lpcb 533 arch/s390/pci/pci_clp.c if (lpcb->request.hdr.len != sizeof(lpcb->request) || lpcb 534 arch/s390/pci/pci_clp.c lpcb->response.hdr.len > limit) lpcb 536 arch/s390/pci/pci_clp.c if (lpcb->request.reserved2 != 0 || lpcb->request.reserved3 != 0 || lpcb 537 arch/s390/pci/pci_clp.c lpcb->request.reserved4 != 0) lpcb 539 arch/s390/pci/pci_clp.c return clp_req(lpcb, CLP_LPS_PCI) ? -EOPNOTSUPP : 0; lpcb 542 arch/s390/pci/pci_clp.c static int clp_pci_command(struct clp_req *req, struct clp_req_hdr *lpcb) lpcb 544 arch/s390/pci/pci_clp.c switch (lpcb->cmd) { lpcb 546 arch/s390/pci/pci_clp.c return clp_pci_slpc(req, (void *) lpcb); lpcb 548 arch/s390/pci/pci_clp.c return clp_pci_list(req, (void *) lpcb); lpcb 550 arch/s390/pci/pci_clp.c return clp_pci_query(req, (void *) lpcb); lpcb 552 arch/s390/pci/pci_clp.c return clp_pci_query_grp(req, (void *) lpcb); lpcb 560 arch/s390/pci/pci_clp.c struct clp_req_hdr *lpcb; lpcb 569 arch/s390/pci/pci_clp.c lpcb = clp_alloc_block(GFP_KERNEL); lpcb 570 arch/s390/pci/pci_clp.c if (!lpcb) lpcb 575 arch/s390/pci/pci_clp.c if (copy_from_user(lpcb, uptr, PAGE_SIZE) != 0) lpcb 579 arch/s390/pci/pci_clp.c if (lpcb->fmt != 0 || lpcb->reserved1 != 0 || lpcb->reserved2 != 0) lpcb 584 arch/s390/pci/pci_clp.c rc = clp_base_command(req, lpcb); lpcb 587 arch/s390/pci/pci_clp.c rc = clp_pci_command(req, lpcb); lpcb 594 arch/s390/pci/pci_clp.c if (copy_to_user(uptr, lpcb, PAGE_SIZE) != 0) lpcb 600 arch/s390/pci/pci_clp.c clp_free_block(lpcb);