]> git.pld-linux.org Git - packages/parted.git/blob - 0081-Add-support-for-NVDIMM-devices.patch
- release 6 (by relup.sh)
[packages/parted.git] / 0081-Add-support-for-NVDIMM-devices.patch
1 From b5bbee5db418e85c8fd26bf07142e71302914738 Mon Sep 17 00:00:00 2001
2 From: Sebastian Parschauer <sparschauer@suse.de>
3 Date: Tue, 24 Oct 2017 10:22:21 +0200
4 Subject: [PATCH] Add support for NVDIMM devices
5
6 Recognize NVDIMM devices, so that "parted -s /dev/pmem7 p" now
7 prints "Model: NVDIMM Device (pmem)" instead of
8 "Model: Unknown (unknown)".
9
10 In order for a device to be recognized as NVDIMM, it has to
11 have a 'blkext' major number. But since this major can be
12 used also by other device types, we also check that the device
13 path contains 'pmem' as a substring.
14
15 * NEWS: Mention the change
16 * include/parted/device.h.in(PedDeviceType): Add PED_DEVICE_PMEM
17 * libparted/arch/linux.c(_device_probe_type): Recognize NVDIMM devices.
18 * libparted/arch/linux.c(linux_new): Handle NVDIMM devices.
19 * parted/parted.c(do_print): Add "pmem" to list of transports.
20
21 Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
22 (cherry picked from commit 71885c5f493f3a5d950adbb3e8d17eff7e023053)
23 ---
24  include/parted/device.in.h | 3 ++-
25  libparted/arch/linux.c     | 7 +++++++
26  parted/parted.c            | 3 ++-
27  3 files changed, 11 insertions(+), 2 deletions(-)
28
29 diff --git a/include/parted/device.in.h b/include/parted/device.in.h
30 index 1b6e7b8..d3af6bb 100644
31 --- a/include/parted/device.in.h
32 +++ b/include/parted/device.in.h
33 @@ -51,7 +51,8 @@ typedef enum {
34          PED_DEVICE_MD           = 17,
35          PED_DEVICE_LOOP         = 18,
36          PED_DEVICE_NVME         = 19,
37 -        PED_DEVICE_RAM          = 20
38 +        PED_DEVICE_RAM          = 20,
39 +        PED_DEVICE_PMEM         = 21
40  } PedDeviceType;
41  
42  typedef struct _PedDevice PedDevice;
43 diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
44 index b76000e..1c26b8c 100644
45 --- a/libparted/arch/linux.c
46 +++ b/libparted/arch/linux.c
47 @@ -704,6 +704,8 @@ _device_probe_type (PedDevice* dev)
48                  dev->type = PED_DEVICE_NVME;
49          } else if (dev_major == RAM_MAJOR) {
50                  dev->type = PED_DEVICE_RAM;
51 +        } else if (_is_blkext_major(dev_major) && dev->path && strstr(dev->path, "pmem")) {
52 +                dev->type = PED_DEVICE_PMEM;
53          } else {
54                  dev->type = PED_DEVICE_UNKNOWN;
55          }
56 @@ -1487,6 +1489,11 @@ linux_new (const char* path)
57                          goto error_free_arch_specific;
58                  break;
59  
60 +        case PED_DEVICE_PMEM:
61 +                if (!init_generic (dev, _("NVDIMM Device")))
62 +                        goto error_free_arch_specific;
63 +                break;
64 +
65          case PED_DEVICE_ATARAID:
66                  if (!init_generic (dev, _("ATARAID Controller")))
67                          goto error_free_arch_specific;
68 diff --git a/parted/parted.c b/parted/parted.c
69 index d2e1f24..b49e1df 100644
70 --- a/parted/parted.c
71 +++ b/parted/parted.c
72 @@ -986,7 +986,8 @@ _print_disk_info (const PedDevice *dev, const PedDisk *diskp)
73                                           "cpqarray", "file", "ataraid", "i2o",
74                                           "ubd", "dasd", "viodasd", "sx8", "dm",
75                                           "xvd", "sd/mmc", "virtblk", "aoe",
76 -                                         "md", "loopback", "nvme", "brd"};
77 +                                         "md", "loopback", "nvme", "brd",
78 +                                         "pmem"};
79  
80          char* start = ped_unit_format (dev, 0);
81          PedUnit default_unit = ped_unit_get_default ();
82 -- 
83 2.13.6
84
This page took 0.063611 seconds and 3 git commands to generate.