mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
zdev: make site specific udev-rule for ccw
The udev-rules must be modified to make it site-specific. The site specific part of the rule should be executed only on the sites where the devices belong. Change the generic udev rule to support the site-specific udev-rule. During boot, the current site-id is read from the LOADPARM which is located at /sys/firmware/ipl. The zdev_id command reads this LOADPARM and prints the SITE_ID based on the value. This SITE_ID is the current site where the udev-rule is executing. Based on this assumption, the rule is divided in to multiple blocks where each site block is executed only for the corresponding sites. The rule executes based on the value read from the LOADPARM. 1. When the LOADPARM specifies a site-id and if the current device has an associated configuration settings, it will be used. 2. When the LOADPARM specifies a site, and the current device does not have any associated configuration set, the udev rule uses the fallback configuration settings. 3. If the device does not have a fallback-configuration settings or any site-specific settings, no configurations will be used. Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com> Signed-off-by: Vineeth Vijayan <vneethv@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
c8ad5f57d0
commit
2e89722ef0
@@ -18,6 +18,7 @@
|
||||
#define MODPROBE_PREFIX "s390x"
|
||||
#define UDEV_PREFIX "41"
|
||||
#define UDEV_SUFFIX ".rules"
|
||||
#define ZDEV_PREFIX "40"
|
||||
|
||||
#define PATH_MODPROBE_CONF "/etc/modprobe.d"
|
||||
#define PATH_MODPROBE "/sbin/modprobe"
|
||||
@@ -65,6 +66,7 @@ char *path_get_zfcp_lun_dev(struct zfcp_lun_devid *);
|
||||
char *path_get_zfcp_port_dev(struct zfcp_lun_devid *);
|
||||
char *path_get_scsi_hctl_dev(const char *);
|
||||
char *path_get_bus_attr(const char *, const char *);
|
||||
char *path_get_zdev_rule(const char *name);
|
||||
|
||||
exit_code_t path_for_each(const char *,
|
||||
exit_code_t (*callback)(const char *, const char *,
|
||||
|
||||
@@ -19,6 +19,9 @@ struct setting_list;
|
||||
extern int udev_need_settle;
|
||||
extern int udev_no_settle;
|
||||
|
||||
#define SITE_BLOCK_START "# site_start"
|
||||
#define SITE_BLOCK_END "# site_end"
|
||||
|
||||
bool udev_file_is_empty(struct util_udev_file *file);
|
||||
|
||||
void udev_get_device_ids(const char *type, struct util_list *list,
|
||||
@@ -31,4 +34,7 @@ void udev_add_internal_from_entry(struct setting_list *list,
|
||||
struct util_udev_entry_node *entry,
|
||||
struct attrib **attribs);
|
||||
|
||||
exit_code_t udev_write_site_rule(void);
|
||||
bool is_legacy_rule(struct util_udev_file *file);
|
||||
|
||||
#endif /* UDEV_H */
|
||||
|
||||
Reference in New Issue
Block a user