Quoting Greg KH (2019-11-05 09:17:05) > On Tue, Nov 05, 2019 at 03:27:15PM +0530, Akash Asthana wrote: > > @@ -1307,7 +1307,21 @@ static int qcom_geni_serial_probe(struct platform_device *pdev) > > port->handle_rx = console ? handle_rx_console : handle_rx_uart; > > if (!console) > > device_create_file(uport->dev, &dev_attr_loopback); > > - return uart_add_one_port(drv, uport); > > + > > + ret = uart_add_one_port(drv, uport); > > + if (ret) > > + return ret; > > What is going to remove the sysfs file you just created above (in a racy > way, it's broken and needs to be fixed, but that's a different issue > here...)? > > > > + > > + irq_set_status_flags(uport->irq, IRQ_NOAUTOEN); > > + ret = devm_request_irq(uport->dev, uport->irq, qcom_geni_serial_isr, > > + IRQF_TRIGGER_HIGH, port->name, uport); > > + if (ret) { > > + dev_err(uport->dev, "Failed to get IRQ ret %d\n", ret); > > + uart_remove_one_port(drv, uport); > > + return ret; > > Does this remove the sysfs file? > The loopback file isn't documented. It isn't removed when the driver is removed either. Can we just remove the whole thing? It would be nicer if that sort of thing was supported in the tty layer somehow. Is it?