Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'cxl-fixes-6.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl

Pull cxl fix from Dave Jiang:

- Fix potential payload size confusion in cxl_mem_get_poison()

* tag 'cxl-fixes-6.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl:
cxl/core: Fix potential payload size confusion in cxl_mem_get_poison()

+17 -21
+17 -21
drivers/cxl/core/mbox.c
··· 946 946 struct cxl_memdev *cxlmd = mds->cxlds.cxlmd; 947 947 struct device *dev = mds->cxlds.dev; 948 948 struct cxl_get_event_payload *payload; 949 - struct cxl_mbox_cmd mbox_cmd; 950 949 u8 log_type = type; 951 950 u16 nr_rec; 952 951 953 952 mutex_lock(&mds->event.log_lock); 954 953 payload = mds->event.buf; 955 954 956 - mbox_cmd = (struct cxl_mbox_cmd) { 957 - .opcode = CXL_MBOX_OP_GET_EVENT_RECORD, 958 - .payload_in = &log_type, 959 - .size_in = sizeof(log_type), 960 - .payload_out = payload, 961 - .min_out = struct_size(payload, records, 0), 962 - }; 963 - 964 955 do { 965 956 int rc, i; 966 - 967 - mbox_cmd.size_out = mds->payload_size; 957 + struct cxl_mbox_cmd mbox_cmd = (struct cxl_mbox_cmd) { 958 + .opcode = CXL_MBOX_OP_GET_EVENT_RECORD, 959 + .payload_in = &log_type, 960 + .size_in = sizeof(log_type), 961 + .payload_out = payload, 962 + .size_out = mds->payload_size, 963 + .min_out = struct_size(payload, records, 0), 964 + }; 968 965 969 966 rc = cxl_internal_send_cmd(mds, &mbox_cmd); 970 967 if (rc) { ··· 1294 1297 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); 1295 1298 struct cxl_mbox_poison_out *po; 1296 1299 struct cxl_mbox_poison_in pi; 1297 - struct cxl_mbox_cmd mbox_cmd; 1298 1300 int nr_records = 0; 1299 1301 int rc; 1300 1302 ··· 1305 1309 pi.offset = cpu_to_le64(offset); 1306 1310 pi.length = cpu_to_le64(len / CXL_POISON_LEN_MULT); 1307 1311 1308 - mbox_cmd = (struct cxl_mbox_cmd) { 1309 - .opcode = CXL_MBOX_OP_GET_POISON, 1310 - .size_in = sizeof(pi), 1311 - .payload_in = &pi, 1312 - .size_out = mds->payload_size, 1313 - .payload_out = po, 1314 - .min_out = struct_size(po, record, 0), 1315 - }; 1316 - 1317 1312 do { 1313 + struct cxl_mbox_cmd mbox_cmd = (struct cxl_mbox_cmd){ 1314 + .opcode = CXL_MBOX_OP_GET_POISON, 1315 + .size_in = sizeof(pi), 1316 + .payload_in = &pi, 1317 + .size_out = mds->payload_size, 1318 + .payload_out = po, 1319 + .min_out = struct_size(po, record, 0), 1320 + }; 1321 + 1318 1322 rc = cxl_internal_send_cmd(mds, &mbox_cmd); 1319 1323 if (rc) 1320 1324 break;