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 'for-linus-20180920' of git://git.kernel.dk/linux-block

Jens writes:
"Storage fixes for 4.19-rc5

- Fix for leaking kernel pointer in floppy ioctl (Andy Whitcroft)

- NVMe pull request from Christoph, and a single ANA log page fix
(Hannes)

- Regression fix for libata qd32 support, where we trigger an illegal
active command transition. This fixes a CD-ROM detection issue that
was reported, but could also trigger premature completion of the
internal tag (me)"

* tag 'for-linus-20180920' of git://git.kernel.dk/linux-block:
floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl
libata: mask swap internal and hardware tag
nvme: count all ANA groups for ANA Log page

+19 -2
+12 -2
drivers/ata/libata-core.c
··· 5359 5359 */ 5360 5360 int ata_qc_complete_multiple(struct ata_port *ap, u64 qc_active) 5361 5361 { 5362 + u64 done_mask, ap_qc_active = ap->qc_active; 5362 5363 int nr_done = 0; 5363 - u64 done_mask; 5364 5364 5365 - done_mask = ap->qc_active ^ qc_active; 5365 + /* 5366 + * If the internal tag is set on ap->qc_active, then we care about 5367 + * bit0 on the passed in qc_active mask. Move that bit up to match 5368 + * the internal tag. 5369 + */ 5370 + if (ap_qc_active & (1ULL << ATA_TAG_INTERNAL)) { 5371 + qc_active |= (qc_active & 0x01) << ATA_TAG_INTERNAL; 5372 + qc_active ^= qc_active & 0x01; 5373 + } 5374 + 5375 + done_mask = ap_qc_active ^ qc_active; 5366 5376 5367 5377 if (unlikely(done_mask & qc_active)) { 5368 5378 ata_port_err(ap, "illegal qc_active transition (%08llx->%08llx)\n",
+3
drivers/block/floppy.c
··· 3467 3467 (struct floppy_struct **)&outparam); 3468 3468 if (ret) 3469 3469 return ret; 3470 + memcpy(&inparam.g, outparam, 3471 + offsetof(struct floppy_struct, name)); 3472 + outparam = &inparam.g; 3470 3473 break; 3471 3474 case FDMSGON: 3472 3475 UDP->flags |= FTD_MSG;
+4
drivers/nvme/target/admin-cmd.c
··· 245 245 offset += len; 246 246 ngrps++; 247 247 } 248 + for ( ; grpid <= NVMET_MAX_ANAGRPS; grpid++) { 249 + if (nvmet_ana_group_enabled[grpid]) 250 + ngrps++; 251 + } 248 252 249 253 hdr.chgcnt = cpu_to_le64(nvmet_ana_chgcnt); 250 254 hdr.ngrps = cpu_to_le16(ngrps);