mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
libnvdimm-for-4.19_misc
Collection of misc libnvdimm patches for 4.19 submission
* Adding support to read locked nvdimm capacity.
* Change test code to make DSM failure code injection an override.
* Add support for calculate maximum contiguous area for namespace.
* Add support for queueing a short ARS when there is on going ARS for
nvdimm.
* Allow NULL to be passed in to ->direct_access() for kaddr and
pfn params.
* Improve smart injection support for nvdimm emulation testing.
* Fix test code that supports for emulating controller temperature.
* Fix hang on error before devm_memremap_pages()
* Fix a bug that causes user memory corruption when data returned
to user for ars_status.
* Maintainer updates for Ross Zwisler emails and adding Jan Kara to fsdax.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE5DAy15EJMCV1R6v9YGjFFmlTOEoFAlt9uUIACgkQYGjFFmlT
OErL+xAAgWHSGs8w98VtYA9kLDeTYEXutq93wJZQoBu/FMAXuuU3hYmQYnOQU87h
KKYmfDkeusaih1R3IX7mzlegnnzSfQ6MraNSV76M43noJHbRTunknCPZH6ebp4fo
b/eljvWlZF/idM+7YcsnoFMnHSRj2pjJGXmKQDlKedHD+KMxpmk6zEl2s5Y0zvPU
4U7UQLtk3D5IIpLNsLEmxge32BfvNf5IzoSO1aZp7Eqk0+U5Tq3Sq/Tjmd+J0RKt
6WH5yA6NqXQgBh+ayHsYU8YX62RqnbKQZXqVxD35OH64zJEUefnP1fpt9pmaZ9eL
43BPMkpM09eLAikO2ET3/3c2k6h3h9ttz1sH8t/hiroCtfmxs3XgskY06hxpKjZV
EbN+BUmut5Mr+zzYitRr3dbK2aHPVU9IbU7jUw/1Tz23rq3kU5iI7SHHv1b/eWup
1Cr77Z1M6HB8VBhjnJ+R607sbRrnKQUOV7fGzAaIskyUOTWsEvIgTh/6MRiaj9MD
5HXIgc/0y9E+G93s7MsUWwzpB7J6E7EGoybST2SKPtqwtDMPsBNeWRjyA9quBCoN
u1s+e+lWHYutqRW0eisDTTlq3nJwPijSx1nnzhJxw9s1EkCXz3f7KRZhyH1C79Co
7wjiuvKQ79e/HI/oXvGmTnv5lbLEpWYyJ3U3KIFfoUqugeyhr0k=
=5p2n
-----END PGP SIGNATURE-----
Merge tag 'libnvdimm-for-4.19_misc' of gitolite.kernel.org:pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm updates from Dave Jiang:
"Collection of misc libnvdimm patches for 4.19 submission:
- Adding support to read locked nvdimm capacity.
- Change test code to make DSM failure code injection an override.
- Add support for calculate maximum contiguous area for namespace.
- Add support for queueing a short ARS when there is on going ARS for
nvdimm.
- Allow NULL to be passed in to ->direct_access() for kaddr and pfn
params.
- Improve smart injection support for nvdimm emulation testing.
- Fix test code that supports for emulating controller temperature.
- Fix hang on error before devm_memremap_pages()
- Fix a bug that causes user memory corruption when data returned to
user for ars_status.
- Maintainer updates for Ross Zwisler emails and adding Jan Kara to
fsdax"
* tag 'libnvdimm-for-4.19_misc' of gitolite.kernel.org:pub/scm/linux/kernel/git/nvdimm/nvdimm:
libnvdimm: fix ars_status output length calculation
device-dax: avoid hang on error before devm_memremap_pages()
tools/testing/nvdimm: improve emulation of smart injection
filesystem-dax: Do not request kaddr and pfn when not required
md/dm-writecache: Don't request pointer dummy_addr when not required
dax/super: Do not request a pointer kaddr when not required
tools/testing/nvdimm: kaddr and pfn can be NULL to ->direct_access()
s390, dcssblk: kaddr and pfn can be NULL to ->direct_access()
libnvdimm, pmem: kaddr and pfn can be NULL to ->direct_access()
acpi/nfit: queue issuing of ars when an uc error notification comes in
libnvdimm: Export max available extent
libnvdimm: Use max contiguous area for namespace size
MAINTAINERS: Add Jan Kara for filesystem DAX
MAINTAINERS: update Ross Zwisler's email address
tools/testing/nvdimm: Fix support for emulating controller temperature
tools/testing/nvdimm: Make DSM failure code injection an override
acpi, nfit: Prefer _DSM over _LSR for namespace label reads
libnvdimm: Introduce locked DIMM capacity support
This commit is contained in:
commit
828bf6e904
19 changed files with 270 additions and 90 deletions
|
|
@ -1699,7 +1699,7 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
|
|||
{
|
||||
struct acpi_device *adev, *adev_dimm;
|
||||
struct device *dev = acpi_desc->dev;
|
||||
unsigned long dsm_mask;
|
||||
unsigned long dsm_mask, label_mask;
|
||||
const guid_t *guid;
|
||||
int i;
|
||||
int family = -1;
|
||||
|
|
@ -1771,6 +1771,16 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc,
|
|||
1ULL << i))
|
||||
set_bit(i, &nfit_mem->dsm_mask);
|
||||
|
||||
/*
|
||||
* Prefer the NVDIMM_FAMILY_INTEL label read commands if present
|
||||
* due to their better semantics handling locked capacity.
|
||||
*/
|
||||
label_mask = 1 << ND_CMD_GET_CONFIG_SIZE | 1 << ND_CMD_GET_CONFIG_DATA
|
||||
| 1 << ND_CMD_SET_CONFIG_DATA;
|
||||
if (family == NVDIMM_FAMILY_INTEL
|
||||
&& (dsm_mask & label_mask) == label_mask)
|
||||
return 0;
|
||||
|
||||
if (acpi_nvdimm_has_method(adev_dimm, "_LSI")
|
||||
&& acpi_nvdimm_has_method(adev_dimm, "_LSR")) {
|
||||
dev_dbg(dev, "%s: has _LSR\n", dev_name(&adev_dimm->dev));
|
||||
|
|
@ -2559,7 +2569,12 @@ static void ars_complete(struct acpi_nfit_desc *acpi_desc,
|
|||
test_bit(ARS_SHORT, &nfit_spa->ars_state)
|
||||
? "short" : "long");
|
||||
clear_bit(ARS_SHORT, &nfit_spa->ars_state);
|
||||
set_bit(ARS_DONE, &nfit_spa->ars_state);
|
||||
if (test_and_clear_bit(ARS_REQ_REDO, &nfit_spa->ars_state)) {
|
||||
set_bit(ARS_SHORT, &nfit_spa->ars_state);
|
||||
set_bit(ARS_REQ, &nfit_spa->ars_state);
|
||||
dev_dbg(dev, "ARS: processing scrub request received while in progress\n");
|
||||
} else
|
||||
set_bit(ARS_DONE, &nfit_spa->ars_state);
|
||||
}
|
||||
|
||||
static int ars_status_process_records(struct acpi_nfit_desc *acpi_desc)
|
||||
|
|
@ -3256,9 +3271,10 @@ int acpi_nfit_ars_rescan(struct acpi_nfit_desc *acpi_desc, unsigned long flags)
|
|||
if (test_bit(ARS_FAILED, &nfit_spa->ars_state))
|
||||
continue;
|
||||
|
||||
if (test_and_set_bit(ARS_REQ, &nfit_spa->ars_state))
|
||||
if (test_and_set_bit(ARS_REQ, &nfit_spa->ars_state)) {
|
||||
busy++;
|
||||
else {
|
||||
set_bit(ARS_REQ_REDO, &nfit_spa->ars_state);
|
||||
} else {
|
||||
if (test_bit(ARS_SHORT, &flags))
|
||||
set_bit(ARS_SHORT, &nfit_spa->ars_state);
|
||||
scheduled++;
|
||||
|
|
|
|||
|
|
@ -119,6 +119,7 @@ enum nfit_dimm_notifiers {
|
|||
|
||||
enum nfit_ars_state {
|
||||
ARS_REQ,
|
||||
ARS_REQ_REDO,
|
||||
ARS_DONE,
|
||||
ARS_SHORT,
|
||||
ARS_FAILED,
|
||||
|
|
|
|||
Loading…
Reference in a new issue