diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-31 18:46:16 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-10-31 18:46:16 -0400 |
commit | 9bb9d4fdce9e6b351b7b905f150745a0fccccc06 (patch) | |
tree | 75a9caf075e1979ab2e302076c1b0d5478df992d /arch/um/drivers | |
parent | adb6b2b2b59f7872322f255206583b4c3ce661a3 (diff) | |
parent | 917e2fd2c53eb3c4162f5397555cbd394390d4bc (diff) |
Merge branch 'for-linus-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
Pull UML updates from Richard Weinberger:
- removal of old and dead code
- a bug fix for our tty driver
- other minor cleanups across the code base
* 'for-linus-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
um: Make line/tty semantics use true write IRQ
um: trap: fix spelling mistake, EACCESS -> EACCES
um: Don't hardcode path as it is architecture dependent
um: NULL check before kfree is not needed
um: remove unused AIO code
um: Give start_idle_thread() a return code
um: Remove update_debugregs()
um: Drop own definition of PTRACE_SYSEMU/_SINGLESTEP
Diffstat (limited to 'arch/um/drivers')
-rw-r--r-- | arch/um/drivers/line.c | 4 | ||||
-rw-r--r-- | arch/um/drivers/port_user.c | 2 | ||||
-rw-r--r-- | arch/um/drivers/vector_kern.c | 15 | ||||
-rw-r--r-- | arch/um/drivers/vector_user.c | 6 |
4 files changed, 10 insertions, 17 deletions
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index 8d80b27502e6..7e524efed584 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c | |||
@@ -261,7 +261,7 @@ static irqreturn_t line_write_interrupt(int irq, void *data) | |||
261 | if (err == 0) { | 261 | if (err == 0) { |
262 | spin_unlock(&line->lock); | 262 | spin_unlock(&line->lock); |
263 | return IRQ_NONE; | 263 | return IRQ_NONE; |
264 | } else if (err < 0) { | 264 | } else if ((err < 0) && (err != -EAGAIN)) { |
265 | line->head = line->buffer; | 265 | line->head = line->buffer; |
266 | line->tail = line->buffer; | 266 | line->tail = line->buffer; |
267 | } | 267 | } |
@@ -284,7 +284,7 @@ int line_setup_irq(int fd, int input, int output, struct line *line, void *data) | |||
284 | if (err) | 284 | if (err) |
285 | return err; | 285 | return err; |
286 | if (output) | 286 | if (output) |
287 | err = um_request_irq(driver->write_irq, fd, IRQ_NONE, | 287 | err = um_request_irq(driver->write_irq, fd, IRQ_WRITE, |
288 | line_write_interrupt, IRQF_SHARED, | 288 | line_write_interrupt, IRQF_SHARED, |
289 | driver->write_irq_name, data); | 289 | driver->write_irq_name, data); |
290 | return err; | 290 | return err; |
diff --git a/arch/um/drivers/port_user.c b/arch/um/drivers/port_user.c index 9a8e1b64c22e..5f56d11b886f 100644 --- a/arch/um/drivers/port_user.c +++ b/arch/um/drivers/port_user.c | |||
@@ -168,7 +168,7 @@ int port_connection(int fd, int *socket, int *pid_out) | |||
168 | { | 168 | { |
169 | int new, err; | 169 | int new, err; |
170 | char *argv[] = { "/usr/sbin/in.telnetd", "-L", | 170 | char *argv[] = { "/usr/sbin/in.telnetd", "-L", |
171 | "/usr/lib/uml/port-helper", NULL }; | 171 | OS_LIB_PATH "/uml/port-helper", NULL }; |
172 | struct port_pre_exec_data data; | 172 | struct port_pre_exec_data data; |
173 | 173 | ||
174 | new = accept(fd, NULL, 0); | 174 | new = accept(fd, NULL, 0); |
diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c index 10d8d20eb9ec..046fa9ea0ccc 100644 --- a/arch/um/drivers/vector_kern.c +++ b/arch/um/drivers/vector_kern.c | |||
@@ -1118,16 +1118,11 @@ static int vector_net_close(struct net_device *dev) | |||
1118 | os_close_file(vp->fds->tx_fd); | 1118 | os_close_file(vp->fds->tx_fd); |
1119 | vp->fds->tx_fd = -1; | 1119 | vp->fds->tx_fd = -1; |
1120 | } | 1120 | } |
1121 | if (vp->bpf != NULL) | 1121 | kfree(vp->bpf); |
1122 | kfree(vp->bpf); | 1122 | kfree(vp->fds->remote_addr); |
1123 | if (vp->fds->remote_addr != NULL) | 1123 | kfree(vp->transport_data); |
1124 | kfree(vp->fds->remote_addr); | 1124 | kfree(vp->header_rxbuffer); |
1125 | if (vp->transport_data != NULL) | 1125 | kfree(vp->header_txbuffer); |
1126 | kfree(vp->transport_data); | ||
1127 | if (vp->header_rxbuffer != NULL) | ||
1128 | kfree(vp->header_rxbuffer); | ||
1129 | if (vp->header_txbuffer != NULL) | ||
1130 | kfree(vp->header_txbuffer); | ||
1131 | if (vp->rx_queue != NULL) | 1126 | if (vp->rx_queue != NULL) |
1132 | destroy_queue(vp->rx_queue); | 1127 | destroy_queue(vp->rx_queue); |
1133 | if (vp->tx_queue != NULL) | 1128 | if (vp->tx_queue != NULL) |
diff --git a/arch/um/drivers/vector_user.c b/arch/um/drivers/vector_user.c index 4d6a78e31089..3d8cdbdb4e66 100644 --- a/arch/um/drivers/vector_user.c +++ b/arch/um/drivers/vector_user.c | |||
@@ -267,8 +267,7 @@ cleanup: | |||
267 | os_close_file(rxfd); | 267 | os_close_file(rxfd); |
268 | if (txfd >= 0) | 268 | if (txfd >= 0) |
269 | os_close_file(txfd); | 269 | os_close_file(txfd); |
270 | if (result != NULL) | 270 | kfree(result); |
271 | kfree(result); | ||
272 | return NULL; | 271 | return NULL; |
273 | } | 272 | } |
274 | 273 | ||
@@ -434,8 +433,7 @@ cleanup: | |||
434 | if (fd >= 0) | 433 | if (fd >= 0) |
435 | os_close_file(fd); | 434 | os_close_file(fd); |
436 | if (result != NULL) { | 435 | if (result != NULL) { |
437 | if (result->remote_addr != NULL) | 436 | kfree(result->remote_addr); |
438 | kfree(result->remote_addr); | ||
439 | kfree(result); | 437 | kfree(result); |
440 | } | 438 | } |
441 | return NULL; | 439 | return NULL; |