···6161CONFIG_KPROBES=y6262CONFIG_JUMP_LABEL=y6363CONFIG_STATIC_KEYS_SELFTEST=y6464+CONFIG_SECCOMP_CACHE_DEBUG=y6465CONFIG_LOCK_EVENT_COUNTS=y6666+# CONFIG_GCC_PLUGINS is not set6567CONFIG_MODULES=y6668CONFIG_MODULE_FORCE_LOAD=y6769CONFIG_MODULE_UNLOAD=y···412410CONFIG_SCSI_CONSTANTS=y413411CONFIG_SCSI_LOGGING=y414412CONFIG_SCSI_SPI_ATTRS=m415415-CONFIG_SCSI_FC_ATTRS=y413413+CONFIG_SCSI_FC_ATTRS=m416414CONFIG_SCSI_SAS_LIBSAS=m417415CONFIG_SCSI_SRP_ATTRS=m418416CONFIG_ISCSI_TCP=m419417CONFIG_SCSI_DEBUG=m420420-CONFIG_ZFCP=y418418+CONFIG_ZFCP=m421419CONFIG_SCSI_VIRTIO=m422420CONFIG_SCSI_DH=y423421CONFIG_SCSI_DH_RDAC=m···446444CONFIG_DM_MULTIPATH_QL=m447445CONFIG_DM_MULTIPATH_ST=m448446CONFIG_DM_MULTIPATH_HST=m447447+CONFIG_DM_MULTIPATH_IOA=m449448CONFIG_DM_DELAY=m450449CONFIG_DM_UEVENT=y451450CONFIG_DM_FLAKEY=m···545542# CONFIG_INPUT_MOUSE is not set546543# CONFIG_SERIO is not set547544CONFIG_LEGACY_PTY_COUNT=0548548-CONFIG_NULL_TTY=m549545CONFIG_VIRTIO_CONSOLE=y550546CONFIG_HW_RANDOM_VIRTIO=m551547CONFIG_RAW_DRIVER=m···576574CONFIG_VIRTIO_INPUT=y577575CONFIG_VHOST_NET=m578576CONFIG_VHOST_VSOCK=m577577+# CONFIG_SURFACE_PLATFORMS is not set579578CONFIG_S390_CCW_IOMMU=y580579CONFIG_S390_AP_IOMMU=y581580CONFIG_EXT4_FS=y···658655CONFIG_CIFS_POSIX=y659656# CONFIG_CIFS_DEBUG is not set660657CONFIG_CIFS_DFS_UPCALL=y658658+CONFIG_CIFS_SWN_UPCALL=y661659CONFIG_NLS_DEFAULT="utf8"662660CONFIG_NLS_CODEPAGE_437=m663661CONFIG_NLS_CODEPAGE_850=m···830826CONFIG_BLK_DEV_IO_TRACE=y831827CONFIG_BPF_KPROBE_OVERRIDE=y832828CONFIG_HIST_TRIGGERS=y829829+CONFIG_FTRACE_STARTUP_TEST=y830830+# CONFIG_EVENT_TRACE_STARTUP_TEST is not set833831CONFIG_DEBUG_USER_ASCE=y834832CONFIG_NOTIFIER_ERROR_INJECTION=m835833CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m
+7-4
arch/s390/configs/defconfig
···5858CONFIG_OPROFILE=m5959CONFIG_KPROBES=y6060CONFIG_JUMP_LABEL=y6161+# CONFIG_GCC_PLUGINS is not set6162CONFIG_MODULES=y6263CONFIG_MODULE_FORCE_LOAD=y6364CONFIG_MODULE_UNLOAD=y···9695CONFIG_DEFERRED_STRUCT_PAGE_INIT=y9796CONFIG_IDLE_PAGE_TRACKING=y9897CONFIG_PERCPU_STATS=y9999-CONFIG_GUP_TEST=y10098CONFIG_NET=y10199CONFIG_PACKET=y102100CONFIG_PACKET_DIAG=m···403403CONFIG_SCSI_CONSTANTS=y404404CONFIG_SCSI_LOGGING=y405405CONFIG_SCSI_SPI_ATTRS=m406406-CONFIG_SCSI_FC_ATTRS=y406406+CONFIG_SCSI_FC_ATTRS=m407407CONFIG_SCSI_SAS_LIBSAS=m408408CONFIG_SCSI_SRP_ATTRS=m409409CONFIG_ISCSI_TCP=m410410CONFIG_SCSI_DEBUG=m411411-CONFIG_ZFCP=y411411+CONFIG_ZFCP=m412412CONFIG_SCSI_VIRTIO=m413413CONFIG_SCSI_DH=y414414CONFIG_SCSI_DH_RDAC=m···437437CONFIG_DM_MULTIPATH_QL=m438438CONFIG_DM_MULTIPATH_ST=m439439CONFIG_DM_MULTIPATH_HST=m440440+CONFIG_DM_MULTIPATH_IOA=m440441CONFIG_DM_DELAY=m441442CONFIG_DM_UEVENT=y442443CONFIG_DM_FLAKEY=m···537536# CONFIG_INPUT_MOUSE is not set538537# CONFIG_SERIO is not set539538CONFIG_LEGACY_PTY_COUNT=0540540-CONFIG_NULL_TTY=m541539CONFIG_VIRTIO_CONSOLE=y542540CONFIG_HW_RANDOM_VIRTIO=m543541CONFIG_RAW_DRIVER=m···568568CONFIG_VIRTIO_INPUT=y569569CONFIG_VHOST_NET=m570570CONFIG_VHOST_VSOCK=m571571+# CONFIG_SURFACE_PLATFORMS is not set571572CONFIG_S390_CCW_IOMMU=y572573CONFIG_S390_AP_IOMMU=y573574CONFIG_EXT4_FS=y···646645CONFIG_CIFS_POSIX=y647646# CONFIG_CIFS_DEBUG is not set648647CONFIG_CIFS_DFS_UPCALL=y648648+CONFIG_CIFS_SWN_UPCALL=y649649CONFIG_NLS_DEFAULT="utf8"650650CONFIG_NLS_CODEPAGE_437=m651651CONFIG_NLS_CODEPAGE_850=m···780778CONFIG_BLK_DEV_IO_TRACE=y781779CONFIG_BPF_KPROBE_OVERRIDE=y782780CONFIG_HIST_TRIGGERS=y781781+CONFIG_DEBUG_USER_ASCE=y783782CONFIG_LKDTM=m784783CONFIG_PERCPU_TEST=m785784CONFIG_ATOMIC64_SELFTEST=y
+2
arch/s390/configs/zfcpdump_defconfig
···2222# CONFIG_VIRTUALIZATION is not set2323# CONFIG_S390_GUEST is not set2424# CONFIG_SECCOMP is not set2525+# CONFIG_GCC_PLUGINS is not set2526CONFIG_PARTITION_ADVANCED=y2627CONFIG_IBM_PARTITION=y2728# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set···5958# CONFIG_HID is not set6059# CONFIG_VIRTIO_MENU is not set6160# CONFIG_VHOST_MENU is not set6161+# CONFIG_SURFACE_PLATFORMS is not set6262# CONFIG_IOMMU_SUPPORT is not set6363# CONFIG_DNOTIFY is not set6464# CONFIG_INOTIFY_USER is not set
···515515 * above to return us whatever is in the queue. Since we call516516 * ide_do_request() ourselves, we end up taking requests while517517 * the queue is blocked...518518- * 519519- * We let requests forced at head of queue with ide-preempt520520- * though. I hope that doesn't happen too much, hopefully not521521- * unless the subdriver triggers such a thing in its own PM522522- * state machine.523518 */524519 if ((drive->dev_flags & IDE_DFLAG_BLOCKED) &&525520 ata_pm_request(rq) == 0 &&526526- (rq->rq_flags & RQF_PREEMPT) == 0) {521521+ (rq->rq_flags & RQF_PM) == 0) {527522 /* there should be no pending command at this point */528523 ide_unlock_port(hwif);529524 goto plug_device;
···249249250250 req = blk_get_request(sdev->request_queue,251251 data_direction == DMA_TO_DEVICE ?252252- REQ_OP_SCSI_OUT : REQ_OP_SCSI_IN, BLK_MQ_REQ_PREEMPT);252252+ REQ_OP_SCSI_OUT : REQ_OP_SCSI_IN,253253+ rq_flags & RQF_PM ? BLK_MQ_REQ_PM : 0);253254 if (IS_ERR(req))254255 return ret;255256 rq = scsi_req(req);···12071206scsi_device_state_check(struct scsi_device *sdev, struct request *req)12081207{12091208 switch (sdev->sdev_state) {12091209+ case SDEV_CREATED:12101210+ return BLK_STS_OK;12101211 case SDEV_OFFLINE:12111212 case SDEV_TRANSPORT_OFFLINE:12121213 /*···12351232 return BLK_STS_RESOURCE;12361233 case SDEV_QUIESCE:12371234 /*12381238- * If the devices is blocked we defer normal commands.12351235+ * If the device is blocked we only accept power management12361236+ * commands.12391237 */12401240- if (req && !(req->rq_flags & RQF_PREEMPT))12381238+ if (req && WARN_ON_ONCE(!(req->rq_flags & RQF_PM)))12411239 return BLK_STS_RESOURCE;12421240 return BLK_STS_OK;12431241 default:12441242 /*12451243 * For any other not fully online state we only allow12461246- * special commands. In particular any user initiated12471247- * command is not allowed.12441244+ * power management commands.12481245 */12491249- if (req && !(req->rq_flags & RQF_PREEMPT))12461246+ if (req && !(req->rq_flags & RQF_PM))12501247 return BLK_STS_IOERR;12511248 return BLK_STS_OK;12521249 }···25192516EXPORT_SYMBOL_GPL(sdev_evt_send_simple);2520251725212518/**25222522- * scsi_device_quiesce - Block user issued commands.25192519+ * scsi_device_quiesce - Block all commands except power management.25232520 * @sdev: scsi device to quiesce.25242521 *25252522 * This works by trying to transition to the SDEV_QUIESCE state25262523 * (which must be a legal transition). When the device is in this25272527- * state, only special requests will be accepted, all others will25282528- * be deferred. Since special requests may also be requeued requests,25292529- * a successful return doesn't guarantee the device will be25302530- * totally quiescent.25242524+ * state, only power management requests will be accepted, all others will25252525+ * be deferred.25312526 *25322527 * Must be called with user context, may sleep.25332528 *···25872586 * device deleted during suspend)25882587 */25892588 mutex_lock(&sdev->state_mutex);25892589+ if (sdev->sdev_state == SDEV_QUIESCE)25902590+ scsi_device_set_state(sdev, SDEV_RUNNING);25902591 if (sdev->quiesced_by) {25912592 sdev->quiesced_by = NULL;25922593 blk_clear_pm_only(sdev->request_queue);25932594 }25942594- if (sdev->sdev_state == SDEV_QUIESCE)25952595- scsi_device_set_state(sdev, SDEV_RUNNING);25962595 mutex_unlock(&sdev->state_mutex);25972596}25982597EXPORT_SYMBOL(scsi_device_resume);
+19-8
drivers/scsi/scsi_transport_spi.c
···117117 sshdr = &sshdr_tmp;118118119119 for(i = 0; i < DV_RETRIES; i++) {120120+ /*121121+ * The purpose of the RQF_PM flag below is to bypass the122122+ * SDEV_QUIESCE state.123123+ */120124 result = scsi_execute(sdev, cmd, dir, buffer, bufflen, sense,121125 sshdr, DV_TIMEOUT, /* retries */ 1,122126 REQ_FAILFAST_DEV |123127 REQ_FAILFAST_TRANSPORT |124128 REQ_FAILFAST_DRIVER,125125- 0, NULL);129129+ RQF_PM, NULL);126130 if (driver_byte(result) != DRIVER_SENSE ||127131 sshdr->sense_key != UNIT_ATTENTION)128132 break;···10091005 */10101006 lock_system_sleep();1011100710081008+ if (scsi_autopm_get_device(sdev))10091009+ goto unlock_system_sleep;10101010+10121011 if (unlikely(spi_dv_in_progress(starget)))10131013- goto unlock;10121012+ goto put_autopm;1014101310151014 if (unlikely(scsi_device_get(sdev)))10161016- goto unlock;10151015+ goto put_autopm;1017101610181017 spi_dv_in_progress(starget) = 1;1019101810201019 buffer = kzalloc(len, GFP_KERNEL);1021102010221021 if (unlikely(!buffer))10231023- goto out_put;10221022+ goto put_sdev;1024102310251024 /* We need to verify that the actual device will quiesce; the10261025 * later target quiesce is just a nice to have */10271026 if (unlikely(scsi_device_quiesce(sdev)))10281028- goto out_free;10271027+ goto free_buffer;1029102810301029 scsi_target_quiesce(starget);10311030···1048104110491042 spi_initial_dv(starget) = 1;1050104310511051- out_free:10441044+free_buffer:10521045 kfree(buffer);10531053- out_put:10461046+10471047+put_sdev:10541048 spi_dv_in_progress(starget) = 0;10551049 scsi_device_put(sdev);10561056-unlock:10501050+put_autopm:10511051+ scsi_autopm_put_device(sdev);10521052+10531053+unlock_system_sleep:10571054 unlock_system_sleep();10581055}10591056EXPORT_SYMBOL(spi_dv_device);
···148148{149149 struct intel_host *host;150150151151+ hba->caps |= UFSHCD_CAP_RPM_AUTOSUSPEND;152152+151153 host = devm_kzalloc(hba->dev, sizeof(*host), GFP_KERNEL);152154 if (!host)153155 return -ENOMEM;···165163 intel_ltr_hide(hba->dev);166164}167165166166+static int ufs_intel_resume(struct ufs_hba *hba, enum ufs_pm_op op)167167+{168168+ /*169169+ * To support S4 (suspend-to-disk) with spm_lvl other than 5, the base170170+ * address registers must be restored because the restore kernel can171171+ * have used different addresses.172172+ */173173+ ufshcd_writel(hba, lower_32_bits(hba->utrdl_dma_addr),174174+ REG_UTP_TRANSFER_REQ_LIST_BASE_L);175175+ ufshcd_writel(hba, upper_32_bits(hba->utrdl_dma_addr),176176+ REG_UTP_TRANSFER_REQ_LIST_BASE_H);177177+ ufshcd_writel(hba, lower_32_bits(hba->utmrdl_dma_addr),178178+ REG_UTP_TASK_REQ_LIST_BASE_L);179179+ ufshcd_writel(hba, upper_32_bits(hba->utmrdl_dma_addr),180180+ REG_UTP_TASK_REQ_LIST_BASE_H);181181+182182+ if (ufshcd_is_link_hibern8(hba)) {183183+ int ret = ufshcd_uic_hibern8_exit(hba);184184+185185+ if (!ret) {186186+ ufshcd_set_link_active(hba);187187+ } else {188188+ dev_err(hba->dev, "%s: hibern8 exit failed %d\n",189189+ __func__, ret);190190+ /*191191+ * Force reset and restore. Any other actions can lead192192+ * to an unrecoverable state.193193+ */194194+ ufshcd_set_link_off(hba);195195+ }196196+ }197197+198198+ return 0;199199+}200200+168201static int ufs_intel_ehl_init(struct ufs_hba *hba)169202{170203 hba->quirks |= UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8;···211174 .init = ufs_intel_common_init,212175 .exit = ufs_intel_common_exit,213176 .link_startup_notify = ufs_intel_link_startup_notify,177177+ .resume = ufs_intel_resume,214178};215179216180static struct ufs_hba_variant_ops ufs_intel_ehl_hba_vops = {···219181 .init = ufs_intel_ehl_init,220182 .exit = ufs_intel_common_exit,221183 .link_startup_notify = ufs_intel_link_startup_notify,184184+ .resume = ufs_intel_resume,222185};223186224187#ifdef CONFIG_PM_SLEEP···246207{247208 return ufshcd_system_resume(dev_get_drvdata(dev));248209}210210+211211+/**212212+ * ufshcd_pci_poweroff - suspend-to-disk poweroff function213213+ * @dev: pointer to PCI device handle214214+ *215215+ * Returns 0 if successful216216+ * Returns non-zero otherwise217217+ */218218+static int ufshcd_pci_poweroff(struct device *dev)219219+{220220+ struct ufs_hba *hba = dev_get_drvdata(dev);221221+ int spm_lvl = hba->spm_lvl;222222+ int ret;223223+224224+ /*225225+ * For poweroff we need to set the UFS device to PowerDown mode.226226+ * Force spm_lvl to ensure that.227227+ */228228+ hba->spm_lvl = 5;229229+ ret = ufshcd_system_suspend(hba);230230+ hba->spm_lvl = spm_lvl;231231+ return ret;232232+}233233+249234#endif /* !CONFIG_PM_SLEEP */250235251236#ifdef CONFIG_PM···365302}366303367304static const struct dev_pm_ops ufshcd_pci_pm_ops = {368368- SET_SYSTEM_SLEEP_PM_OPS(ufshcd_pci_suspend,369369- ufshcd_pci_resume)305305+#ifdef CONFIG_PM_SLEEP306306+ .suspend = ufshcd_pci_suspend,307307+ .resume = ufshcd_pci_resume,308308+ .freeze = ufshcd_pci_suspend,309309+ .thaw = ufshcd_pci_resume,310310+ .poweroff = ufshcd_pci_poweroff,311311+ .restore = ufshcd_pci_resume,312312+#endif370313 SET_RUNTIME_PM_OPS(ufshcd_pci_runtime_suspend,371314 ufshcd_pci_runtime_resume,372315 ufshcd_pci_runtime_idle)
+29-16
drivers/scsi/ufs/ufshcd.c
···225225static int ufshcd_eh_host_reset_handler(struct scsi_cmnd *cmd);226226static int ufshcd_clear_tm_cmd(struct ufs_hba *hba, int tag);227227static void ufshcd_hba_exit(struct ufs_hba *hba);228228+static int ufshcd_clear_ua_wluns(struct ufs_hba *hba);228229static int ufshcd_probe_hba(struct ufs_hba *hba, bool async);229230static int ufshcd_setup_clocks(struct ufs_hba *hba, bool on);230231static int ufshcd_uic_hibern8_enter(struct ufs_hba *hba);···579578 names[hba->pwr_info.pwr_rx],580579 names[hba->pwr_info.pwr_tx],581580 hba->pwr_info.hs_rate);581581+}582582+583583+static void ufshcd_device_reset(struct ufs_hba *hba)584584+{585585+ int err;586586+587587+ err = ufshcd_vops_device_reset(hba);588588+589589+ if (!err) {590590+ ufshcd_set_ufs_dev_active(hba);591591+ if (ufshcd_is_wb_allowed(hba)) {592592+ hba->wb_enabled = false;593593+ hba->wb_buf_flush_enabled = false;594594+ }595595+ }596596+ if (err != -EOPNOTSUPP)597597+ ufshcd_update_evt_hist(hba, UFS_EVT_DEV_RESET, err);582598}583599584600void ufshcd_delay_us(unsigned long us, unsigned long tolerance)···36833665 ret = ufshcd_send_uic_cmd(hba, &uic_cmd);36843666 if (ret)36853667 dev_err(hba->dev,36863686- "dme-reset: error code %d\n", ret);36683668+ "dme-enable: error code %d\n", ret);3687366936883670 return ret;36893671}···39823964 spin_unlock_irqrestore(hba->host->host_lock, flags);3983396539843966 /* Reset the attached device */39853985- ufshcd_vops_device_reset(hba);39673967+ ufshcd_device_reset(hba);3986396839873969 ret = ufshcd_host_reset_and_restore(hba);39883970···6948693069496931 /* Establish the link again and restore the device */69506932 err = ufshcd_probe_hba(hba, false);69516951-69336933+ if (!err)69346934+ ufshcd_clear_ua_wluns(hba);69526935out:69536936 if (err)69546937 dev_err(hba->dev, "%s: Host init failed %d\n", __func__, err);···6987696869886969 do {69896970 /* Reset the attached device */69906990- ufshcd_vops_device_reset(hba);69716971+ ufshcd_device_reset(hba);6991697269926973 err = ufshcd_host_reset_and_restore(hba);69936974 } while (err && --retries);···80648045{80658046 int ret = 0;8066804780678067- if (!vreg || !vreg->enabled)80488048+ if (!vreg || !vreg->enabled || vreg->always_on)80688049 goto out;8069805080708051 ret = regulator_disable(vreg->reg);···84338414 * handling context.84348415 */84358416 hba->host->eh_noresume = 1;84368436- if (hba->wlun_dev_clr_ua) {84378437- ret = ufshcd_send_request_sense(hba, sdp);84388438- if (ret)84398439- goto out;84408440- /* Unit attention condition is cleared now */84418441- hba->wlun_dev_clr_ua = false;84428442- }84178417+ ufshcd_clear_ua_wluns(hba);8443841884448419 cmd[4] = pwr_mode << 4;84458420···8454844184558442 if (!ret)84568443 hba->curr_dev_pwr_mode = pwr_mode;84578457-out:84448444+84588445 scsi_device_put(sdp);84598446 hba->host->eh_noresume = 0;84608447 return ret;···87608747 * further below.87618748 */87628749 if (ufshcd_is_ufs_dev_deepsleep(hba)) {87638763- ufshcd_vops_device_reset(hba);87508750+ ufshcd_device_reset(hba);87648751 WARN_ON(!ufshcd_is_link_off(hba));87658752 }87668753 if (ufshcd_is_link_hibern8(hba) && !ufshcd_uic_hibern8_exit(hba))···87708757set_dev_active:87718758 /* Can also get here needing to exit DeepSleep */87728759 if (ufshcd_is_ufs_dev_deepsleep(hba)) {87738773- ufshcd_vops_device_reset(hba);87608760+ ufshcd_device_reset(hba);87748761 ufshcd_host_reset_and_restore(hba);87758762 }87768763 if (!ufshcd_set_dev_pwr_mode(hba, UFS_ACTIVE_PWR_MODE))···93669353 }9367935493689355 /* Reset the attached device */93699369- ufshcd_vops_device_reset(hba);93569356+ ufshcd_device_reset(hba);9370935793719358 ufshcd_init_crypto(hba);93729359
+4-8
drivers/scsi/ufs/ufshcd.h
···12181218 hba->vops->dbg_register_dump(hba);12191219}1220122012211221-static inline void ufshcd_vops_device_reset(struct ufs_hba *hba)12211221+static inline int ufshcd_vops_device_reset(struct ufs_hba *hba)12221222{12231223- if (hba->vops && hba->vops->device_reset) {12241224- int err = hba->vops->device_reset(hba);12231223+ if (hba->vops && hba->vops->device_reset)12241224+ return hba->vops->device_reset(hba);1225122512261226- if (!err)12271227- ufshcd_set_ufs_dev_active(hba);12281228- if (err != -EOPNOTSUPP)12291229- ufshcd_update_evt_hist(hba, UFS_EVT_DEV_RESET, err);12301230- }12261226+ return -EOPNOTSUPP;12311227}1232122812331229static inline void ufshcd_vops_config_scaling_param(struct ufs_hba *hba,
+1-1
fs/block_dev.c
···10551055/**10561056 * bd_abort_claiming - abort claiming of a block device10571057 * @bdev: block device of interest10581058- * @whole: whole block device10591058 * @holder: holder that has claimed @bdev10601059 *10611060 * Abort claiming of a block device when the exclusive open failed. This can be···18271828/**18281829 * lookup_bdev - lookup a struct block_device by name18291830 * @pathname: special file representing the block device18311831+ * @dev: return value of the block device's dev_t18301832 *18311833 * Get a reference to the blockdevice at @pathname in the current18321834 * namespace if possible and return it. Return ERR_PTR(error)
+22-31
fs/ceph/mds_client.c
···24752475 return r;24762476}2477247724782478+static void encode_timestamp_and_gids(void **p,24792479+ const struct ceph_mds_request *req)24802480+{24812481+ struct ceph_timespec ts;24822482+ int i;24832483+24842484+ ceph_encode_timespec64(&ts, &req->r_stamp);24852485+ ceph_encode_copy(p, &ts, sizeof(ts));24862486+24872487+ /* gid_list */24882488+ ceph_encode_32(p, req->r_cred->group_info->ngroups);24892489+ for (i = 0; i < req->r_cred->group_info->ngroups; i++)24902490+ ceph_encode_64(p, from_kgid(&init_user_ns,24912491+ req->r_cred->group_info->gid[i]));24922492+}24932493+24782494/*24792495 * called under mdsc->mutex24802496 */···25072491 u64 ino1 = 0, ino2 = 0;25082492 int pathlen1 = 0, pathlen2 = 0;25092493 bool freepath1 = false, freepath2 = false;25102510- int len, i;24942494+ int len;25112495 u16 releases;25122496 void *p, *end;25132497 int ret;···25332517 goto out_free1;25342518 }2535251925362536- if (legacy) {25372537- /* Old style */25382538- len = sizeof(*head);25392539- } else {25402540- /* New style: add gid_list and any later fields */25412541- len = sizeof(struct ceph_mds_request_head) + sizeof(u32) +25422542- (sizeof(u64) * req->r_cred->group_info->ngroups);25432543- }25442544-25202520+ len = legacy ? sizeof(*head) : sizeof(struct ceph_mds_request_head);25452521 len += pathlen1 + pathlen2 + 2*(1 + sizeof(u32) + sizeof(u64)) +25462522 sizeof(struct ceph_timespec);25232523+ len += sizeof(u32) + (sizeof(u64) * req->r_cred->group_info->ngroups);2547252425482525 /* calculate (max) length for cap releases */25492526 len += sizeof(struct ceph_mds_request_release) *···25572548 msg->hdr.tid = cpu_to_le64(req->r_tid);2558254925592550 /*25602560- * The old ceph_mds_request_header didn't contain a version field, and25512551+ * The old ceph_mds_request_head didn't contain a version field, and25612552 * one was added when we moved the message version from 3->4.25622553 */25632554 if (legacy) {···2618260926192610 head->num_releases = cpu_to_le16(releases);2620261126212621- /* time stamp */26222622- {26232623- struct ceph_timespec ts;26242624- ceph_encode_timespec64(&ts, &req->r_stamp);26252625- ceph_encode_copy(&p, &ts, sizeof(ts));26262626- }26272627-26282628- /* gid list */26292629- if (!legacy) {26302630- ceph_encode_32(&p, req->r_cred->group_info->ngroups);26312631- for (i = 0; i < req->r_cred->group_info->ngroups; i++)26322632- ceph_encode_64(&p, from_kgid(&init_user_ns,26332633- req->r_cred->group_info->gid[i]));26342634- }26122612+ encode_timestamp_and_gids(&p, req);2635261326362614 if (WARN_ON_ONCE(p > end)) {26372615 ceph_msg_put(msg);···27262730 /* remove cap/dentry releases from message */27272731 rhead->num_releases = 0;2728273227292729- /* time stamp */27302733 p = msg->front.iov_base + req->r_request_release_offset;27312731- {27322732- struct ceph_timespec ts;27332733- ceph_encode_timespec64(&ts, &req->r_stamp);27342734- ceph_encode_copy(&p, &ts, sizeof(ts));27352735- }27342734+ encode_timestamp_and_gids(&p, req);2736273527372736 msg->front.iov_len = p - msg->front.iov_base;27382737 msg->hdr.front_len = cpu_to_le32(msg->front.iov_len);
-2
fs/file.c
···2121#include <linux/rcupdate.h>2222#include <linux/close_range.h>2323#include <net/sock.h>2424-#include <linux/io_uring.h>25242625unsigned int sysctl_nr_open __read_mostly = 1024*1024;2726unsigned int sysctl_nr_open_min = BITS_PER_LONG;···427428 struct files_struct * files = tsk->files;428429429430 if (files) {430430- io_uring_files_cancel(files);431431 task_lock(tsk);432432 tsk->files = NULL;433433 task_unlock(tsk);
+41-19
fs/io_uring.c
···992992 ACCT_PINNED,993993};994994995995+static void destroy_fixed_file_ref_node(struct fixed_file_ref_node *ref_node);996996+static struct fixed_file_ref_node *alloc_fixed_file_ref_node(997997+ struct io_ring_ctx *ctx);998998+995999static void __io_complete_rw(struct io_kiocb *req, long res, long res2,9961000 struct io_comp_state *cs);9971001static void io_cqring_fill_event(struct io_kiocb *req, long res);···15051501 spin_unlock_irq(&ctx->inflight_lock);15061502 req->work.flags |= IO_WQ_WORK_FILES;15071503 }15041504+ if (!(req->work.flags & IO_WQ_WORK_MM) &&15051505+ (def->work_flags & IO_WQ_WORK_MM)) {15061506+ if (id->mm != current->mm)15071507+ return false;15081508+ mmgrab(id->mm);15091509+ req->work.flags |= IO_WQ_WORK_MM;15101510+ }1508151115091512 return true;15101513}···15341523 } else {15351524 if (def->unbound_nonreg_file)15361525 req->work.flags |= IO_WQ_WORK_UNBOUND;15371537- }15381538-15391539- /* ->mm can never change on us */15401540- if (!(req->work.flags & IO_WQ_WORK_MM) &&15411541- (def->work_flags & IO_WQ_WORK_MM)) {15421542- mmgrab(id->mm);15431543- req->work.flags |= IO_WQ_WORK_MM;15441526 }1545152715461528 /* if we fail grabbing identity, we must COW, regrab, and retry */···72357231 complete(&data->done);72367232}7237723372347234+static void io_sqe_files_set_node(struct fixed_file_data *file_data,72357235+ struct fixed_file_ref_node *ref_node)72367236+{72377237+ spin_lock_bh(&file_data->lock);72387238+ file_data->node = ref_node;72397239+ list_add_tail(&ref_node->node, &file_data->ref_list);72407240+ spin_unlock_bh(&file_data->lock);72417241+ percpu_ref_get(&file_data->refs);72427242+}72437243+72387244static int io_sqe_files_unregister(struct io_ring_ctx *ctx)72397245{72407246 struct fixed_file_data *data = ctx->file_data;72417241- struct fixed_file_ref_node *ref_node = NULL;72477247+ struct fixed_file_ref_node *backup_node, *ref_node = NULL;72427248 unsigned nr_tables, i;72497249+ int ret;7243725072447251 if (!data)72457252 return -ENXIO;72537253+ backup_node = alloc_fixed_file_ref_node(ctx);72547254+ if (!backup_node)72557255+ return -ENOMEM;7246725672477257 spin_lock_bh(&data->lock);72487258 ref_node = data->node;···7268725072697251 /* wait for all refs nodes to complete */72707252 flush_delayed_work(&ctx->file_put_work);72717271- wait_for_completion(&data->done);72537253+ do {72547254+ ret = wait_for_completion_interruptible(&data->done);72557255+ if (!ret)72567256+ break;72577257+ ret = io_run_task_work_sig();72587258+ if (ret < 0) {72597259+ percpu_ref_resurrect(&data->refs);72607260+ reinit_completion(&data->done);72617261+ io_sqe_files_set_node(data, backup_node);72627262+ return ret;72637263+ }72647264+ } while (1);7272726572737266 __io_sqe_files_unregister(ctx);72747267 nr_tables = DIV_ROUND_UP(ctx->nr_user_files, IORING_MAX_FILES_TABLE);···72907261 kfree(data);72917262 ctx->file_data = NULL;72927263 ctx->nr_user_files = 0;72647264+ destroy_fixed_file_ref_node(backup_node);72937265 return 0;72947266}72957267···77887758 return PTR_ERR(ref_node);77897759 }7790776077917791- file_data->node = ref_node;77927792- spin_lock_bh(&file_data->lock);77937793- list_add_tail(&ref_node->node, &file_data->ref_list);77947794- spin_unlock_bh(&file_data->lock);77957795- percpu_ref_get(&file_data->refs);77617761+ io_sqe_files_set_node(file_data, ref_node);77967762 return ret;77977763out_fput:77987764 for (i = 0; i < ctx->nr_user_files; i++) {···7944791879457919 if (needs_switch) {79467920 percpu_ref_kill(&data->node->refs);79477947- spin_lock_bh(&data->lock);79487948- list_add_tail(&ref_node->node, &data->ref_list);79497949- data->node = ref_node;79507950- spin_unlock_bh(&data->lock);79517951- percpu_ref_get(&ctx->file_data->refs);79217921+ io_sqe_files_set_node(data, ref_node);79527922 } else79537923 destroy_fixed_file_ref_node(ref_node);79547924
···447447 BLK_MQ_REQ_NOWAIT = (__force blk_mq_req_flags_t)(1 << 0),448448 /* allocate from reserved pool */449449 BLK_MQ_REQ_RESERVED = (__force blk_mq_req_flags_t)(1 << 1),450450- /* set RQF_PREEMPT */451451- BLK_MQ_REQ_PREEMPT = (__force blk_mq_req_flags_t)(1 << 3),450450+ /* set RQF_PM */451451+ BLK_MQ_REQ_PM = (__force blk_mq_req_flags_t)(1 << 2),452452};453453454454struct request *blk_mq_alloc_request(struct request_queue *q, unsigned int op,
+13-5
include/linux/blkdev.h
···7979#define RQF_MQ_INFLIGHT ((__force req_flags_t)(1 << 6))8080/* don't call prep for this one */8181#define RQF_DONTPREP ((__force req_flags_t)(1 << 7))8282-/* set for "ide_preempt" requests and also for requests for which the SCSI8383- "quiesce" state must be ignored. */8484-#define RQF_PREEMPT ((__force req_flags_t)(1 << 8))8582/* vaguely specified driver internal error. Ignored by the block layer */8683#define RQF_FAILED ((__force req_flags_t)(1 << 10))8784/* don't warn about errors */···427430 unsigned long queue_flags;428431 /*429432 * Number of contexts that have called blk_set_pm_only(). If this430430- * counter is above zero then only RQF_PM and RQF_PREEMPT requests are431431- * processed.433433+ * counter is above zero then only RQF_PM requests are processed.432434 */433435 atomic_t pm_only;434436···691695{692696 return q->mq_ops;693697}698698+699699+#ifdef CONFIG_PM700700+static inline enum rpm_status queue_rpm_status(struct request_queue *q)701701+{702702+ return q->rpm_status;703703+}704704+#else705705+static inline enum rpm_status queue_rpm_status(struct request_queue *q)706706+{707707+ return RPM_ACTIVE;708708+}709709+#endif694710695711static inline enum blk_zoned_model696712blk_queue_zoned_model(struct request_queue *q)
···216216 loff_t *);217217int overcommit_policy_handler(struct ctl_table *, int, void *, size_t *,218218 loff_t *);219219+/*220220+ * Any attempt to mark this function as static leads to build failure221221+ * when CONFIG_DEBUG_INFO_BTF is enabled because __add_to_page_cache_locked()222222+ * is referred to by BPF code. This must be visible for error injection.223223+ */224224+int __add_to_page_cache_locked(struct page *page, struct address_space *mapping,225225+ pgoff_t index, gfp_t gfp, void **shadowp);219226220227#define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n))221228···24392432#endif2440243324412434extern void set_dma_reserve(unsigned long new_dma_reserve);24422442-extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long,24432443- enum meminit_context, struct vmem_altmap *, int migratetype);24352435+extern void memmap_init_zone(unsigned long, int, unsigned long,24362436+ unsigned long, unsigned long, enum meminit_context,24372437+ struct vmem_altmap *, int migratetype);24442438extern void setup_per_zone_wmarks(void);24452439extern int __meminit init_per_zone_wmark_min(void);24462440extern void mem_init(void);
···908908 opt = fs_parse(fc, cgroup1_fs_parameters, param, &result);909909 if (opt == -ENOPARAM) {910910 if (strcmp(param->key, "source") == 0) {911911+ if (fc->source)912912+ return invalf(fc, "Multiple sources not supported");911913 fc->source = param->string;912914 param->string = NULL;913915 return 0;
+15-15
kernel/cgroup/cgroup.c
···244244 *245245 * The default hierarchy is the v2 interface of cgroup and this function246246 * can be used to test whether a cgroup is on the default hierarchy for247247- * cases where a subsystem should behave differnetly depending on the247247+ * cases where a subsystem should behave differently depending on the248248 * interface version.249249 *250250 * List of changed behaviors:···262262 * "cgroup.procs" instead.263263 *264264 * - "cgroup.procs" is not sorted. pids will be unique unless they got265265- * recycled inbetween reads.265265+ * recycled in-between reads.266266 *267267 * - "release_agent" and "notify_on_release" are removed. Replacement268268 * notification mechanism will be implemented.···342342 return !cgroup_parent(cgrp);343343}344344345345-/* can @cgrp become a thread root? should always be true for a thread root */345345+/* can @cgrp become a thread root? Should always be true for a thread root */346346static bool cgroup_can_be_thread_root(struct cgroup *cgrp)347347{348348 /* mixables don't care */···527527 * the root css is returned, so this function always returns a valid css.528528 *529529 * The returned css is not guaranteed to be online, and therefore it is the530530- * callers responsiblity to tryget a reference for it.530530+ * callers responsibility to try get a reference for it.531531 */532532struct cgroup_subsys_state *cgroup_e_css(struct cgroup *cgrp,533533 struct cgroup_subsys *ss)···699699 ; \700700 else701701702702-/* walk live descendants in preorder */702702+/* walk live descendants in pre order */703703#define cgroup_for_each_live_descendant_pre(dsct, d_css, cgrp) \704704 css_for_each_descendant_pre((d_css), cgroup_css((cgrp), NULL)) \705705 if (({ lockdep_assert_held(&cgroup_mutex); \···933933934934 WARN_ON_ONCE(!list_empty(&cset->threaded_csets));935935936936- /* This css_set is dead. unlink it and release cgroup and css refs */936936+ /* This css_set is dead. Unlink it and release cgroup and css refs */937937 for_each_subsys(ss, ssid) {938938 list_del(&cset->e_cset_node[ssid]);939939 css_put(cset->subsys[ssid]);···1058105810591059 /*10601060 * Build the set of subsystem state objects that we want to see in the10611061- * new css_set. while subsystems can change globally, the entries here10611061+ * new css_set. While subsystems can change globally, the entries here10621062 * won't change, so no need for locking.10631063 */10641064 for_each_subsys(ss, i) {···1148114811491149 /*11501150 * Always add links to the tail of the lists so that the lists are11511151- * in choronological order.11511151+ * in chronological order.11521152 */11531153 list_move_tail(&link->cset_link, &cgrp->cset_links);11541154 list_add_tail(&link->cgrp_link, &cset->cgrp_links);···3654365436553655static int cgroup_file_open(struct kernfs_open_file *of)36563656{36573657- struct cftype *cft = of->kn->priv;36573657+ struct cftype *cft = of_cft(of);3658365836593659 if (cft->open)36603660 return cft->open(of);···3663366336643664static void cgroup_file_release(struct kernfs_open_file *of)36653665{36663666- struct cftype *cft = of->kn->priv;36663666+ struct cftype *cft = of_cft(of);3667366736683668 if (cft->release)36693669 cft->release(of);···36743674{36753675 struct cgroup_namespace *ns = current->nsproxy->cgroup_ns;36763676 struct cgroup *cgrp = of->kn->parent->priv;36773677- struct cftype *cft = of->kn->priv;36773677+ struct cftype *cft = of_cft(of);36783678 struct cgroup_subsys_state *css;36793679 int ret;36803680···3724372437253725static __poll_t cgroup_file_poll(struct kernfs_open_file *of, poll_table *pt)37263726{37273727- struct cftype *cft = of->kn->priv;37273727+ struct cftype *cft = of_cft(of);3728372837293729 if (cft->poll)37303730 return cft->poll(of, pt);···41344134 * implies that if we observe !CSS_RELEASED on @pos in this RCU41354135 * critical section, the one pointed to by its next pointer is41364136 * guaranteed to not have finished its RCU grace period even if we41374137- * have dropped rcu_read_lock() inbetween iterations.41374137+ * have dropped rcu_read_lock() in-between iterations.41384138 *41394139 * If @pos has CSS_RELEASED set, its next pointer can't be41404140 * dereferenced; however, as each css is given a monotonically···43824382}4383438343844384/**43854385- * css_task_iter_advance_css_set - advance a task itererator to the next css_set43854385+ * css_task_iter_advance_css_set - advance a task iterator to the next css_set43864386 * @it: the iterator to advance43874387 *43884388 * Advance @it to the next css_set to walk.···63086308 *63096309 * Find the cgroup at @path on the default hierarchy, increment its63106310 * reference count and return it. Returns pointer to the found cgroup on63116311- * success, ERR_PTR(-ENOENT) if @path doens't exist and ERR_PTR(-ENOTDIR)63116311+ * success, ERR_PTR(-ENOENT) if @path doesn't exist and ERR_PTR(-ENOTDIR)63126312 * if @path points to a non-directory.63136313 */63146314struct cgroup *cgroup_get_from_path(const char *path)
···37313731 * is updated and visible.37323732 */37333733 if (!freezable || !workqueue_freezing) {37343734+ bool kick = false;37353735+37343736 pwq->max_active = wq->saved_max_active;3735373737363738 while (!list_empty(&pwq->delayed_works) &&37373737- pwq->nr_active < pwq->max_active)37393739+ pwq->nr_active < pwq->max_active) {37383740 pwq_activate_first_delayed(pwq);37413741+ kick = true;37423742+ }3739374337403744 /*37413745 * Need to kick a worker after thawed or an unbound wq's37423742- * max_active is bumped. It's a slow path. Do it always.37463746+ * max_active is bumped. In realtime scenarios, always kicking a37473747+ * worker will cause interference on the isolated cpu cores, so37483748+ * let's kick iff work items were activated.37433749 */37443744- wake_up_worker(pwq->pool);37503750+ if (kick)37513751+ wake_up_worker(pwq->pool);37453752 } else {37463753 pwq->max_active = 0;37473754 }
+13-12
lib/genalloc.c
···8181 * users set the same bit, one user will return remain bits, otherwise8282 * return 0.8383 */8484-static int bitmap_set_ll(unsigned long *map, int start, int nr)8484+static int bitmap_set_ll(unsigned long *map, unsigned long start, unsigned long nr)8585{8686 unsigned long *p = map + BIT_WORD(start);8787- const int size = start + nr;8787+ const unsigned long size = start + nr;8888 int bits_to_set = BITS_PER_LONG - (start % BITS_PER_LONG);8989 unsigned long mask_to_set = BITMAP_FIRST_WORD_MASK(start);90909191- while (nr - bits_to_set >= 0) {9191+ while (nr >= bits_to_set) {9292 if (set_bits_ll(p, mask_to_set))9393 return nr;9494 nr -= bits_to_set;···116116 * users clear the same bit, one user will return remain bits,117117 * otherwise return 0.118118 */119119-static int bitmap_clear_ll(unsigned long *map, int start, int nr)119119+static unsigned long120120+bitmap_clear_ll(unsigned long *map, unsigned long start, unsigned long nr)120121{121122 unsigned long *p = map + BIT_WORD(start);122122- const int size = start + nr;123123+ const unsigned long size = start + nr;123124 int bits_to_clear = BITS_PER_LONG - (start % BITS_PER_LONG);124125 unsigned long mask_to_clear = BITMAP_FIRST_WORD_MASK(start);125126126126- while (nr - bits_to_clear >= 0) {127127+ while (nr >= bits_to_clear) {127128 if (clear_bits_ll(p, mask_to_clear))128129 return nr;129130 nr -= bits_to_clear;···184183 size_t size, int nid, void *owner)185184{186185 struct gen_pool_chunk *chunk;187187- int nbits = size >> pool->min_alloc_order;188188- int nbytes = sizeof(struct gen_pool_chunk) +186186+ unsigned long nbits = size >> pool->min_alloc_order;187187+ unsigned long nbytes = sizeof(struct gen_pool_chunk) +189188 BITS_TO_LONGS(nbits) * sizeof(long);190189191190 chunk = vzalloc_node(nbytes, nid);···243242 struct list_head *_chunk, *_next_chunk;244243 struct gen_pool_chunk *chunk;245244 int order = pool->min_alloc_order;246246- int bit, end_bit;245245+ unsigned long bit, end_bit;247246248247 list_for_each_safe(_chunk, _next_chunk, &pool->chunks) {249248 chunk = list_entry(_chunk, struct gen_pool_chunk, next_chunk);···279278 struct gen_pool_chunk *chunk;280279 unsigned long addr = 0;281280 int order = pool->min_alloc_order;282282- int nbits, start_bit, end_bit, remain;281281+ unsigned long nbits, start_bit, end_bit, remain;283282284283#ifndef CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG285284 BUG_ON(in_nmi());···488487{489488 struct gen_pool_chunk *chunk;490489 int order = pool->min_alloc_order;491491- int start_bit, nbits, remain;490490+ unsigned long start_bit, nbits, remain;492491493492#ifndef CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG494493 BUG_ON(in_nmi());···756755 index = bitmap_find_next_zero_area(map, size, start, nr, 0);757756758757 while (index < size) {759759- int next_bit = find_next_bit(map, size, index + nr);758758+ unsigned long next_bit = find_next_bit(map, size, index + nr);760759 if ((next_bit - index) < len) {761760 len = next_bit - index;762761 start_bit = index;
···41054105 * may get SIGKILLed if it later faults.41064106 */41074107 if (outside_reserve) {41084108+ struct address_space *mapping = vma->vm_file->f_mapping;41094109+ pgoff_t idx;41104110+ u32 hash;41114111+41084112 put_page(old_page);41094113 BUG_ON(huge_pte_none(pte));41144114+ /*41154115+ * Drop hugetlb_fault_mutex and i_mmap_rwsem before41164116+ * unmapping. unmapping needs to hold i_mmap_rwsem41174117+ * in write mode. Dropping i_mmap_rwsem in read mode41184118+ * here is OK as COW mappings do not interact with41194119+ * PMD sharing.41204120+ *41214121+ * Reacquire both after unmap operation.41224122+ */41234123+ idx = vma_hugecache_offset(h, vma, haddr);41244124+ hash = hugetlb_fault_mutex_hash(mapping, idx);41254125+ mutex_unlock(&hugetlb_fault_mutex_table[hash]);41264126+ i_mmap_unlock_read(mapping);41274127+41104128 unmap_ref_private(mm, vma, old_page, haddr);41114111- BUG_ON(huge_pte_none(pte));41294129+41304130+ i_mmap_lock_read(mapping);41314131+ mutex_lock(&hugetlb_fault_mutex_table[hash]);41124132 spin_lock(ptl);41134133 ptep = huge_pte_offset(mm, haddr, huge_page_size(h));41144134 if (likely(ptep &&
···28922892 entry = mk_pte(new_page, vma->vm_page_prot);28932893 entry = pte_sw_mkyoung(entry);28942894 entry = maybe_mkwrite(pte_mkdirty(entry), vma);28952895+28952896 /*28962897 * Clear the pte entry and flush it first, before updating the28972897- * pte with the new entry. This will avoid a race condition28982898- * seen in the presence of one thread doing SMC and another28992899- * thread doing COW.28982898+ * pte with the new entry, to keep TLBs on different CPUs in28992899+ * sync. This code used to set the new PTE then flush TLBs, but29002900+ * that left a window where the new PTE could be loaded into29012901+ * some TLBs while the old PTE remains in others.29002902 */29012903 ptep_clear_flush_notify(vma, vmf->address, vmf->pte);29022904 page_add_new_anon_rmap(new_page, vma, vmf->address, false);
+1-1
mm/memory_hotplug.c
···713713 * expects the zone spans the pfn range. All the pages in the range714714 * are reserved so nobody should be touching them so we should be safe715715 */716716- memmap_init_zone(nr_pages, nid, zone_idx(zone), start_pfn,716716+ memmap_init_zone(nr_pages, nid, zone_idx(zone), start_pfn, 0,717717 MEMINIT_HOTPLUG, altmap, migratetype);718718719719 set_zone_contiguous(zone);
+3-1
mm/mremap.c
···358358359359 next = (old_addr + size) & mask;360360 /* even if next overflowed, extent below will be ok */361361- extent = (next > old_end) ? old_end - old_addr : next - old_addr;361361+ extent = next - old_addr;362362+ if (extent > old_end - old_addr)363363+ extent = old_end - old_addr;362364 next = (new_addr + size) & mask;363365 if (extent > next - new_addr)364366 extent = next - new_addr;
+5-3
mm/page_alloc.c
···423423 if (end_pfn < pgdat_end_pfn(NODE_DATA(nid)))424424 return false;425425426426+ if (NODE_DATA(nid)->first_deferred_pfn != ULONG_MAX)427427+ return true;426428 /*427429 * We start only with one section of pages, more pages are added as428430 * needed until the rest of deferred pages are initialized.···61186116 * zone stats (e.g., nr_isolate_pageblock) are touched.61196117 */61206118void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone,61216121- unsigned long start_pfn,61196119+ unsigned long start_pfn, unsigned long zone_end_pfn,61226120 enum meminit_context context,61236121 struct vmem_altmap *altmap, int migratetype)61246122{···61546152 if (context == MEMINIT_EARLY) {61556153 if (overlap_memmap_init(zone, &pfn))61566154 continue;61576157- if (defer_init(nid, pfn, end_pfn))61556155+ if (defer_init(nid, pfn, zone_end_pfn))61586156 break;61596157 }61606158···6268626662696267 if (end_pfn > start_pfn) {62706268 size = end_pfn - start_pfn;62716271- memmap_init_zone(size, nid, zone, start_pfn,62696269+ memmap_init_zone(size, nid, zone, start_pfn, range_end_pfn,62726270 MEMINIT_EARLY, NULL, MIGRATE_MOVABLE);62736271 }62746272 }
···13331333 void *buf;13341334 int ret;1335133513361336- buf = alloc_conn_buf(con, head_onwire_len(SHA256_DIGEST_SIZE, false));13361336+ buf = alloc_conn_buf(con, head_onwire_len(SHA256_DIGEST_SIZE,13371337+ con_secure(con)));13371338 if (!buf)13381339 return -ENOMEM;13391340···20332032 return -EINVAL;20342033}2035203420352035+/*20362036+ * Align session_key and con_secret to avoid GFP_ATOMIC allocation20372037+ * inside crypto_shash_setkey() and crypto_aead_setkey() called from20382038+ * setup_crypto(). __aligned(16) isn't guaranteed to work for stack20392039+ * objects, so do it by hand.20402040+ */20362041static int process_auth_done(struct ceph_connection *con, void *p, void *end)20372042{20382038- u8 session_key[CEPH_KEY_LEN];20392039- u8 con_secret[CEPH_MAX_CON_SECRET_LEN];20432043+ u8 session_key_buf[CEPH_KEY_LEN + 16];20442044+ u8 con_secret_buf[CEPH_MAX_CON_SECRET_LEN + 16];20452045+ u8 *session_key = PTR_ALIGN(&session_key_buf[0], 16);20462046+ u8 *con_secret = PTR_ALIGN(&con_secret_buf[0], 16);20402047 int session_key_len, con_secret_len;20412048 int payload_len;20422049 u64 global_id;
+6
scripts/checkpatch.pl
···66466646# }66476647# }6648664866496649+# strlcpy uses that should likely be strscpy66506650+ if ($line =~ /\bstrlcpy\s*\(/) {66516651+ WARN("STRLCPY",66526652+ "Prefer strscpy over strlcpy - see: https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=V6A6G1oUZcprmknw\@mail.gmail.com/\n" . $herecurr);66536653+ }66546654+66496655# typecasts on min/max could be min_t/max_t66506656 if ($perl_version_ok &&66516657 defined $stat &&
+2
scripts/depmod.sh
···1515 exit 01616fi17171818+# legacy behavior: "depmod" in /sbin, no /sbin in PATH1919+PATH="$PATH:/sbin"1820if [ -z $(command -v $DEPMOD) ]; then1921 echo "Warning: 'make modules_install' requires $DEPMOD. Please install it." >&22022 echo "This is probably in the kmod package." >&2