In sysfs methods struct device is guaranteed to not be NULL thus bd will not be NULL in any way. Also, checking for bd->magic != DGNC_BOARD_MAGIC and bd->state != BOARD_READY is redundant because we already don't initialize broken boards since "dgnc: Don't save boards in memory that have failed to initialize" and make sysfs files after initializing the board in dgnc_driver.c or IOW they are already set for successfully initialized boards before their sysfs files created (412 and 593 lines in dgnc_driver.c). Signed-off-by: Giedrius Statkevičius <giedrius.statkevicius@xxxxxxxxx> --- drivers/staging/dgnc/dgnc_sysfs.c | 96 ++++++++++----------------------------- 1 file changed, 23 insertions(+), 73 deletions(-) diff --git a/drivers/staging/dgnc/dgnc_sysfs.c b/drivers/staging/dgnc/dgnc_sysfs.c index a72e353..be13eb0 100644 --- a/drivers/staging/dgnc/dgnc_sysfs.c +++ b/drivers/staging/dgnc/dgnc_sysfs.c @@ -105,28 +105,10 @@ void dgnc_remove_driver_sysfiles(struct pci_driver *dgnc_driver) driver_remove_file(driverfs, &driver_attr_pollrate); } - -#define DGNC_VERIFY_BOARD(p, bd) \ - do { \ - if (!p) \ - return 0; \ - \ - bd = dev_get_drvdata(p); \ - if (!bd || bd->magic != DGNC_BOARD_MAGIC) \ - return 0; \ - if (bd->state != BOARD_READY) \ - return 0; \ - } while (0) - - - static ssize_t dgnc_vpd_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); count += sprintf(buf + count, "\n 0 1 2 3 4 5 6 7 8 9 A B C D E F"); for (i = 0; i < 0x40 * 2; i++) { @@ -142,10 +124,8 @@ static DEVICE_ATTR(vpd, S_IRUSR, dgnc_vpd_show, NULL); static ssize_t dgnc_serial_number_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; int count = 0; - - DGNC_VERIFY_BOARD(p, bd); + struct dgnc_board *bd = dev_get_drvdata(p); if (bd->serial_num[0] == '\0') count += sprintf(buf + count, "<UNKNOWN>\n"); @@ -159,11 +139,8 @@ static DEVICE_ATTR(serial_number, S_IRUSR, dgnc_serial_number_show, NULL); static ssize_t dgnc_ports_state_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, @@ -177,11 +154,8 @@ static DEVICE_ATTR(ports_state, S_IRUSR, dgnc_ports_state_show, NULL); static ssize_t dgnc_ports_baud_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, @@ -194,11 +168,8 @@ static DEVICE_ATTR(ports_baud, S_IRUSR, dgnc_ports_baud_show, NULL); static ssize_t dgnc_ports_msignals_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { if (bd->channels[i]->ch_open_count) { @@ -222,11 +193,8 @@ static DEVICE_ATTR(ports_msignals, S_IRUSR, dgnc_ports_msignals_show, NULL); static ssize_t dgnc_ports_iflag_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, "%d %x\n", @@ -239,11 +207,8 @@ static DEVICE_ATTR(ports_iflag, S_IRUSR, dgnc_ports_iflag_show, NULL); static ssize_t dgnc_ports_cflag_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, "%d %x\n", @@ -256,11 +221,8 @@ static DEVICE_ATTR(ports_cflag, S_IRUSR, dgnc_ports_cflag_show, NULL); static ssize_t dgnc_ports_oflag_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, "%d %x\n", @@ -273,11 +235,8 @@ static DEVICE_ATTR(ports_oflag, S_IRUSR, dgnc_ports_oflag_show, NULL); static ssize_t dgnc_ports_lflag_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, "%d %x\n", @@ -290,11 +249,8 @@ static DEVICE_ATTR(ports_lflag, S_IRUSR, dgnc_ports_lflag_show, NULL); static ssize_t dgnc_ports_digi_flag_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, "%d %x\n", @@ -307,11 +263,8 @@ static DEVICE_ATTR(ports_digi_flag, S_IRUSR, dgnc_ports_digi_flag_show, NULL); static ssize_t dgnc_ports_rxcount_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, "%d %ld\n", @@ -324,11 +277,8 @@ static DEVICE_ATTR(ports_rxcount, S_IRUSR, dgnc_ports_rxcount_show, NULL); static ssize_t dgnc_ports_txcount_show(struct device *p, struct device_attribute *attr, char *buf) { - struct dgnc_board *bd; - int count = 0; - int i = 0; - - DGNC_VERIFY_BOARD(p, bd); + int count = 0, i = 0; + struct dgnc_board *bd = dev_get_drvdata(p); for (i = 0; i < bd->nasync; i++) { count += snprintf(buf + count, PAGE_SIZE - count, "%d %ld\n", -- 2.3.2 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel