We need the char-misc fixes in here as well.
Showing the changes to include/linux (16 of 807 files). Show all
Unified · Split
| @@ -170,6 +170,8 @@ struct ccp_aes_engine { · 169 unmodified lines | ||
| 170 | 170 | enum ccp_aes_mode mode; |
| 171 | 171 | enum ccp_aes_action action; |
| 172 | 172 | |
| 173 | + u32 authsize; | |
| 174 | + | |
| 173 | 175 | struct scatterlist *key; |
| 174 | 176 | u32 key_len; /* In bytes */ |
| 175 | 177 | |
| @@ -359,6 +359,7 @@ int __must_check devm_clk_bulk_get(struct device *dev, int num_clks, · 358 unmodified lines | ||
| 359 | 359 | /** |
| 360 | 360 | * devm_clk_bulk_get_optional - managed get multiple optional consumer clocks |
| 361 | 361 | * @dev: device for clock "consumer" |
| 362 | + * @num_clks: the number of clk_bulk_data | |
| 362 | 363 | * @clks: pointer to the clk_bulk_data table of consumer |
| 363 | 364 | * |
| 364 | 365 | * Behaves the same as devm_clk_bulk_get() except where there is no clock |
| @@ -272,62 +272,6 @@ dim_update_sample_with_comps(u16 event_ctr, u64 packets, u64 bytes, u64 comps, · 271 unmodified lines | ||
| 272 | 272 | |
| 273 | 273 | /* Net DIM */ |
| 274 | 274 | |
| 275 | −/* | |
| 276 | − * Net DIM profiles: | |
| 277 | − * There are different set of profiles for each CQ period mode. | |
| 278 | − * There are different set of profiles for RX/TX CQs. | |
| 279 | − * Each profile size must be of NET_DIM_PARAMS_NUM_PROFILES | |
| 280 | − */ | |
| 281 | −#define NET_DIM_PARAMS_NUM_PROFILES 5 | |
| 282 | −#define NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE 256 | |
| 283 | −#define NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE 128 | |
| 284 | −#define NET_DIM_DEF_PROFILE_CQE 1 | |
| 285 | −#define NET_DIM_DEF_PROFILE_EQE 1 | |
| 286 | − | |
| 287 | −#define NET_DIM_RX_EQE_PROFILES { \ | |
| 288 | − {1, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 289 | − {8, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 290 | − {64, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 291 | − {128, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 292 | − {256, NET_DIM_DEFAULT_RX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 293 | −} | |
| 294 | − | |
| 295 | −#define NET_DIM_RX_CQE_PROFILES { \ | |
| 296 | − {2, 256}, \ | |
| 297 | − {8, 128}, \ | |
| 298 | − {16, 64}, \ | |
| 299 | − {32, 64}, \ | |
| 300 | − {64, 64} \ | |
| 301 | −} | |
| 302 | − | |
| 303 | −#define NET_DIM_TX_EQE_PROFILES { \ | |
| 304 | − {1, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 305 | − {8, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 306 | − {32, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 307 | − {64, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE}, \ | |
| 308 | − {128, NET_DIM_DEFAULT_TX_CQ_MODERATION_PKTS_FROM_EQE} \ | |
| 309 | −} | |
| 310 | − | |
| 311 | −#define NET_DIM_TX_CQE_PROFILES { \ | |
| 312 | − {5, 128}, \ | |
| 313 | − {8, 64}, \ | |
| 314 | − {16, 32}, \ | |
| 315 | − {32, 32}, \ | |
| 316 | − {64, 32} \ | |
| 317 | −} | |
| 318 | − | |
| 319 | −static const struct dim_cq_moder | |
| 320 | −rx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { | |
| 321 | − NET_DIM_RX_EQE_PROFILES, | |
| 322 | − NET_DIM_RX_CQE_PROFILES, | |
| 323 | −}; | |
| 324 | − | |
| 325 | −static const struct dim_cq_moder | |
| 326 | −tx_profile[DIM_CQ_PERIOD_NUM_MODES][NET_DIM_PARAMS_NUM_PROFILES] = { | |
| 327 | − NET_DIM_TX_EQE_PROFILES, | |
| 328 | − NET_DIM_TX_CQE_PROFILES, | |
| 329 | −}; | |
| 330 | − | |
| 331 | 275 | /** |
| 332 | 276 | * net_dim_get_rx_moderation - provide a CQ moderation object for the given RX profile |
| 333 | 277 | * @cq_period_mode: CQ period mode |
| @@ -24,6 +24,7 @@ · 23 unmodified lines | ||
| 24 | 24 | |
| 25 | 25 | #include <net/sch_generic.h> |
| 26 | 26 | |
| 27 | +#include <asm/byteorder.h> | |
| 27 | 28 | #include <uapi/linux/filter.h> |
| 28 | 29 | #include <uapi/linux/bpf.h> |
| 29 | 30 | |
| @@ -747,6 +748,18 @@ bpf_ctx_narrow_access_ok(u32 off, u32 size, u32 size_default) · 717 unmodified lines | ||
| 747 | 748 | return size <= size_default && (size & (size - 1)) == 0; |
| 748 | 749 | } |
| 749 | 750 | |
| 751 | +static inline u8 | |
| 752 | +bpf_ctx_narrow_load_shift(u32 off, u32 size, u32 size_default) | |
| 753 | +{ | |
| 754 | + u8 load_off = off & (size_default - 1); | |
| 755 | + | |
| 756 | +#ifdef __LITTLE_ENDIAN | |
| 757 | + return load_off * 8; | |
| 758 | +#else | |
| 759 | + return (size_default - (load_off + size)) * 8; | |
| 760 | +#endif | |
| 761 | +} | |
| 762 | + | |
| 750 | 763 | #define bpf_ctx_wide_access_ok(off, size, type, field) \ |
| 751 | 764 | (size == sizeof(__u64) && \ |
| 752 | 765 | off >= offsetof(type, field) && \ |
| @@ -2598,6 +2598,12 @@ extern struct block_device *blkdev_get_by_path(const char *path, fmode_t mode, · 2597 unmodified lines | ||
| 2598 | 2598 | void *holder); |
| 2599 | 2599 | extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, |
| 2600 | 2600 | void *holder); |
| 2601 | +extern struct block_device *bd_start_claiming(struct block_device *bdev, | |
| 2602 | + void *holder); | |
| 2603 | +extern void bd_finish_claiming(struct block_device *bdev, | |
| 2604 | + struct block_device *whole, void *holder); | |
| 2605 | +extern void bd_abort_claiming(struct block_device *bdev, | |
| 2606 | + struct block_device *whole, void *holder); | |
| 2601 | 2607 | extern void blkdev_put(struct block_device *bdev, fmode_t mode); |
| 2602 | 2608 | extern int __blkdev_reread_part(struct block_device *bdev); |
| 2603 | 2609 | extern int blkdev_reread_part(struct block_device *bdev); |
| @@ -247,7 +247,7 @@ static inline void gpiod_put(struct gpio_desc *desc) · 246 unmodified lines | ||
| 247 | 247 | might_sleep(); |
| 248 | 248 | |
| 249 | 249 | /* GPIO can never have been requested */ |
| 250 | − WARN_ON(1); | |
| 250 | + WARN_ON(desc); | |
| 251 | 251 | } |
| 252 | 252 | |
| 253 | 253 | static inline void devm_gpiod_unhinge(struct device *dev, |
| @@ -256,7 +256,7 @@ static inline void devm_gpiod_unhinge(struct device *dev, · 2 unmodified lines | ||
| 256 | 256 | might_sleep(); |
| 257 | 257 | |
| 258 | 258 | /* GPIO can never have been requested */ |
| 259 | − WARN_ON(1); | |
| 259 | + WARN_ON(desc); | |
| 260 | 260 | } |
| 261 | 261 | |
| 262 | 262 | static inline void gpiod_put_array(struct gpio_descs *descs) |
| @@ -264,7 +264,7 @@ static inline void gpiod_put_array(struct gpio_descs *descs) · 1 unmodified line | ||
| 264 | 264 | might_sleep(); |
| 265 | 265 | |
| 266 | 266 | /* GPIO can never have been requested */ |
| 267 | − WARN_ON(1); | |
| 267 | + WARN_ON(descs); | |
| 268 | 268 | } |
| 269 | 269 | |
| 270 | 270 | static inline struct gpio_desc *__must_check |
| @@ -317,7 +317,7 @@ static inline void devm_gpiod_put(struct device *dev, struct gpio_desc *desc) · 46 unmodified lines | ||
| 317 | 317 | might_sleep(); |
| 318 | 318 | |
| 319 | 319 | /* GPIO can never have been requested */ |
| 320 | − WARN_ON(1); | |
| 320 | + WARN_ON(desc); | |
| 321 | 321 | } |
| 322 | 322 | |
| 323 | 323 | static inline void devm_gpiod_put_array(struct device *dev, |
| @@ -326,32 +326,32 @@ static inline void devm_gpiod_put_array(struct device *dev, · 2 unmodified lines | ||
| 326 | 326 | might_sleep(); |
| 327 | 327 | |
| 328 | 328 | /* GPIO can never have been requested */ |
| 329 | − WARN_ON(1); | |
| 329 | + WARN_ON(descs); | |
| 330 | 330 | } |
| 331 | 331 | |
| 332 | 332 | |
| 333 | 333 | static inline int gpiod_get_direction(const struct gpio_desc *desc) |
| 334 | 334 | { |
| 335 | 335 | /* GPIO can never have been requested */ |
| 336 | − WARN_ON(1); | |
| 336 | + WARN_ON(desc); | |
| 337 | 337 | return -ENOSYS; |
| 338 | 338 | } |
| 339 | 339 | static inline int gpiod_direction_input(struct gpio_desc *desc) |
| 340 | 340 | { |
| 341 | 341 | /* GPIO can never have been requested */ |
| 342 | − WARN_ON(1); | |
| 342 | + WARN_ON(desc); | |
| 343 | 343 | return -ENOSYS; |
| 344 | 344 | } |
| 345 | 345 | static inline int gpiod_direction_output(struct gpio_desc *desc, int value) |
| 346 | 346 | { |
| 347 | 347 | /* GPIO can never have been requested */ |
| 348 | − WARN_ON(1); | |
| 348 | + WARN_ON(desc); | |
| 349 | 349 | return -ENOSYS; |
| 350 | 350 | } |
| 351 | 351 | static inline int gpiod_direction_output_raw(struct gpio_desc *desc, int value) |
| 352 | 352 | { |
| 353 | 353 | /* GPIO can never have been requested */ |
| 354 | − WARN_ON(1); | |
| 354 | + WARN_ON(desc); | |
| 355 | 355 | return -ENOSYS; |
| 356 | 356 | } |
| 357 | 357 | |
| @@ -359,7 +359,7 @@ static inline int gpiod_direction_output_raw(struct gpio_desc *desc, int value) · 1 unmodified line | ||
| 359 | 359 | static inline int gpiod_get_value(const struct gpio_desc *desc) |
| 360 | 360 | { |
| 361 | 361 | /* GPIO can never have been requested */ |
| 362 | − WARN_ON(1); | |
| 362 | + WARN_ON(desc); | |
| 363 | 363 | return 0; |
| 364 | 364 | } |
| 365 | 365 | static inline int gpiod_get_array_value(unsigned int array_size, |
| @@ -368,13 +368,13 @@ static inline int gpiod_get_array_value(unsigned int array_size, · 2 unmodified lines | ||
| 368 | 368 | unsigned long *value_bitmap) |
| 369 | 369 | { |
| 370 | 370 | /* GPIO can never have been requested */ |
| 371 | − WARN_ON(1); | |
| 371 | + WARN_ON(desc_array); | |
| 372 | 372 | return 0; |
| 373 | 373 | } |
| 374 | 374 | static inline void gpiod_set_value(struct gpio_desc *desc, int value) |
| 375 | 375 | { |
| 376 | 376 | /* GPIO can never have been requested */ |
| 377 | − WARN_ON(1); | |
| 377 | + WARN_ON(desc); | |
| 378 | 378 | } |
| 379 | 379 | static inline int gpiod_set_array_value(unsigned int array_size, |
| 380 | 380 | struct gpio_desc **desc_array, |
| @@ -382,13 +382,13 @@ static inline int gpiod_set_array_value(unsigned int array_size, · 1 unmodified line | ||
| 382 | 382 | unsigned long *value_bitmap) |
| 383 | 383 | { |
| 384 | 384 | /* GPIO can never have been requested */ |
| 385 | − WARN_ON(1); | |
| 385 | + WARN_ON(desc_array); | |
| 386 | 386 | return 0; |
| 387 | 387 | } |
| 388 | 388 | static inline int gpiod_get_raw_value(const struct gpio_desc *desc) |
| 389 | 389 | { |
| 390 | 390 | /* GPIO can never have been requested */ |
| 391 | − WARN_ON(1); | |
| 391 | + WARN_ON(desc); | |
| 392 | 392 | return 0; |
| 393 | 393 | } |
| 394 | 394 | static inline int gpiod_get_raw_array_value(unsigned int array_size, |
| @@ -397,13 +397,13 @@ static inline int gpiod_get_raw_array_value(unsigned int array_size, · 2 unmodified lines | ||
| 397 | 397 | unsigned long *value_bitmap) |
| 398 | 398 | { |
| 399 | 399 | /* GPIO can never have been requested */ |
| 400 | − WARN_ON(1); | |
| 400 | + WARN_ON(desc_array); | |
| 401 | 401 | return 0; |
| 402 | 402 | } |
| 403 | 403 | static inline void gpiod_set_raw_value(struct gpio_desc *desc, int value) |
| 404 | 404 | { |
| 405 | 405 | /* GPIO can never have been requested */ |
| 406 | − WARN_ON(1); | |
| 406 | + WARN_ON(desc); | |
| 407 | 407 | } |
| 408 | 408 | static inline int gpiod_set_raw_array_value(unsigned int array_size, |
| 409 | 409 | struct gpio_desc **desc_array, |
| @@ -411,14 +411,14 @@ static inline int gpiod_set_raw_array_value(unsigned int array_size, · 1 unmodified line | ||
| 411 | 411 | unsigned long *value_bitmap) |
| 412 | 412 | { |
| 413 | 413 | /* GPIO can never have been requested */ |
| 414 | − WARN_ON(1); | |
| 414 | + WARN_ON(desc_array); | |
| 415 | 415 | return 0; |
| 416 | 416 | } |
| 417 | 417 | |
| 418 | 418 | static inline int gpiod_get_value_cansleep(const struct gpio_desc *desc) |
| 419 | 419 | { |
| 420 | 420 | /* GPIO can never have been requested */ |
| 421 | − WARN_ON(1); | |
| 421 | + WARN_ON(desc); | |
| 422 | 422 | return 0; |
| 423 | 423 | } |
| 424 | 424 | static inline int gpiod_get_array_value_cansleep(unsigned int array_size, |
| @@ -427,13 +427,13 @@ static inline int gpiod_get_array_value_cansleep(unsigned int array_size, · 2 unmodified lines | ||
| 427 | 427 | unsigned long *value_bitmap) |
| 428 | 428 | { |
| 429 | 429 | /* GPIO can never have been requested */ |
| 430 | − WARN_ON(1); | |
| 430 | + WARN_ON(desc_array); | |
| 431 | 431 | return 0; |
| 432 | 432 | } |
| 433 | 433 | static inline void gpiod_set_value_cansleep(struct gpio_desc *desc, int value) |
| 434 | 434 | { |
| 435 | 435 | /* GPIO can never have been requested */ |
| 436 | − WARN_ON(1); | |
| 436 | + WARN_ON(desc); | |
| 437 | 437 | } |
| 438 | 438 | static inline int gpiod_set_array_value_cansleep(unsigned int array_size, |
| 439 | 439 | struct gpio_desc **desc_array, |
| @@ -441,13 +441,13 @@ static inline int gpiod_set_array_value_cansleep(unsigned int array_size, · 1 unmodified line | ||
| 441 | 441 | unsigned long *value_bitmap) |
| 442 | 442 | { |
| 443 | 443 | /* GPIO can never have been requested */ |
| 444 | − WARN_ON(1); | |
| 444 | + WARN_ON(desc_array); | |
| 445 | 445 | return 0; |
| 446 | 446 | } |
| 447 | 447 | static inline int gpiod_get_raw_value_cansleep(const struct gpio_desc *desc) |
| 448 | 448 | { |
| 449 | 449 | /* GPIO can never have been requested */ |
| 450 | − WARN_ON(1); | |
| 450 | + WARN_ON(desc); | |
| 451 | 451 | return 0; |
| 452 | 452 | } |
| 453 | 453 | static inline int gpiod_get_raw_array_value_cansleep(unsigned int array_size, |
| @@ -456,14 +456,14 @@ static inline int gpiod_get_raw_array_value_cansleep(unsigned int array_size, · 2 unmodified lines | ||
| 456 | 456 | unsigned long *value_bitmap) |
| 457 | 457 | { |
| 458 | 458 | /* GPIO can never have been requested */ |
| 459 | − WARN_ON(1); | |
| 459 | + WARN_ON(desc_array); | |
| 460 | 460 | return 0; |
| 461 | 461 | } |
| 462 | 462 | static inline void gpiod_set_raw_value_cansleep(struct gpio_desc *desc, |
| 463 | 463 | int value) |
| 464 | 464 | { |
| 465 | 465 | /* GPIO can never have been requested */ |
| 466 | − WARN_ON(1); | |
| 466 | + WARN_ON(desc); | |
| 467 | 467 | } |
| 468 | 468 | static inline int gpiod_set_raw_array_value_cansleep(unsigned int array_size, |
| 469 | 469 | struct gpio_desc **desc_array, |
| @@ -471,41 +471,41 @@ static inline int gpiod_set_raw_array_value_cansleep(unsigned int array_size, · 1 unmodified line | ||
| 471 | 471 | unsigned long *value_bitmap) |
| 472 | 472 | { |
| 473 | 473 | /* GPIO can never have been requested */ |
| 474 | − WARN_ON(1); | |
| 474 | + WARN_ON(desc_array); | |
| 475 | 475 | return 0; |
| 476 | 476 | } |
| 477 | 477 | |
| 478 | 478 | static inline int gpiod_set_debounce(struct gpio_desc *desc, unsigned debounce) |
| 479 | 479 | { |
| 480 | 480 | /* GPIO can never have been requested */ |
| 481 | − WARN_ON(1); | |
| 481 | + WARN_ON(desc); | |
| 482 | 482 | return -ENOSYS; |
| 483 | 483 | } |
| 484 | 484 | |
| 485 | 485 | static inline int gpiod_set_transitory(struct gpio_desc *desc, bool transitory) |
| 486 | 486 | { |
| 487 | 487 | /* GPIO can never have been requested */ |
| 488 | − WARN_ON(1); | |
| 488 | + WARN_ON(desc); | |
| 489 | 489 | return -ENOSYS; |
| 490 | 490 | } |
| 491 | 491 | |
| 492 | 492 | static inline int gpiod_is_active_low(const struct gpio_desc *desc) |
| 493 | 493 | { |
| 494 | 494 | /* GPIO can never have been requested */ |
| 495 | − WARN_ON(1); | |
| 495 | + WARN_ON(desc); | |
| 496 | 496 | return 0; |
| 497 | 497 | } |
| 498 | 498 | static inline int gpiod_cansleep(const struct gpio_desc *desc) |
| 499 | 499 | { |
| 500 | 500 | /* GPIO can never have been requested */ |
| 501 | − WARN_ON(1); | |
| 501 | + WARN_ON(desc); | |
| 502 | 502 | return 0; |
| 503 | 503 | } |
| 504 | 504 | |
| 505 | 505 | static inline int gpiod_to_irq(const struct gpio_desc *desc) |
| 506 | 506 | { |
| 507 | 507 | /* GPIO can never have been requested */ |
| 508 | − WARN_ON(1); | |
| 508 | + WARN_ON(desc); | |
| 509 | 509 | return -EINVAL; |
| 510 | 510 | } |
| 511 | 511 | |
| @@ -513,7 +513,7 @@ static inline int gpiod_set_consumer_name(struct gpio_desc *desc, · 1 unmodified line | ||
| 513 | 513 | const char *name) |
| 514 | 514 | { |
| 515 | 515 | /* GPIO can never have been requested */ |
| 516 | − WARN_ON(1); | |
| 516 | + WARN_ON(desc); | |
| 517 | 517 | return -EINVAL; |
| 518 | 518 | } |
| 519 | 519 | |
| @@ -525,7 +525,7 @@ static inline struct gpio_desc *gpio_to_desc(unsigned gpio) · 5 unmodified lines | ||
| 525 | 525 | static inline int desc_to_gpio(const struct gpio_desc *desc) |
| 526 | 526 | { |
| 527 | 527 | /* GPIO can never have been requested */ |
| 528 | − WARN_ON(1); | |
| 528 | + WARN_ON(desc); | |
| 529 | 529 | return -EINVAL; |
| 530 | 530 | } |
| 531 | 531 | |
| @@ -484,60 +484,6 @@ long hmm_range_dma_unmap(struct hmm_range *range, · 483 unmodified lines | ||
| 484 | 484 | */ |
| 485 | 485 | #define HMM_RANGE_DEFAULT_TIMEOUT 1000 |
| 486 | 486 | |
| 487 | −/* This is a temporary helper to avoid merge conflict between trees. */ | |
| 488 | −static inline bool hmm_vma_range_done(struct hmm_range *range) | |
| 489 | −{ | |
| 490 | − bool ret = hmm_range_valid(range); | |
| 491 | − | |
| 492 | − hmm_range_unregister(range); | |
| 493 | − return ret; | |
| 494 | −} | |
| 495 | − | |
| 496 | −/* This is a temporary helper to avoid merge conflict between trees. */ | |
| 497 | −static inline int hmm_vma_fault(struct hmm_mirror *mirror, | |
| 498 | − struct hmm_range *range, bool block) | |
| 499 | −{ | |
| 500 | − long ret; | |
| 501 | − | |
| 502 | − /* | |
| 503 | − * With the old API the driver must set each individual entries with | |
| 504 | − * the requested flags (valid, write, ...). So here we set the mask to | |
| 505 | − * keep intact the entries provided by the driver and zero out the | |
| 506 | − * default_flags. | |
| 507 | − */ | |
| 508 | − range->default_flags = 0; | |
| 509 | − range->pfn_flags_mask = -1UL; | |
| 510 | − | |
| 511 | − ret = hmm_range_register(range, mirror, | |
| 512 | − range->start, range->end, | |
| 513 | − PAGE_SHIFT); | |
| 514 | − if (ret) | |
| 515 | − return (int)ret; | |
| 516 | − | |
| 517 | − if (!hmm_range_wait_until_valid(range, HMM_RANGE_DEFAULT_TIMEOUT)) { | |
| 518 | − /* | |
| 519 | − * The mmap_sem was taken by driver we release it here and | |
| 520 | − * returns -EAGAIN which correspond to mmap_sem have been | |
| 521 | − * drop in the old API. | |
| 522 | − */ | |
| 523 | − up_read(&range->vma->vm_mm->mmap_sem); | |
| 524 | − return -EAGAIN; | |
| 525 | − } | |
| 526 | − | |
| 527 | − ret = hmm_range_fault(range, block); | |
| 528 | − if (ret <= 0) { | |
| 529 | − if (ret == -EBUSY || !ret) { | |
| 530 | − /* Same as above, drop mmap_sem to match old API. */ | |
| 531 | − up_read(&range->vma->vm_mm->mmap_sem); | |
| 532 | − ret = -EBUSY; | |
| 533 | − } else if (ret == -EAGAIN) | |
| 534 | − ret = -EBUSY; | |
| 535 | − hmm_range_unregister(range); | |
| 536 | − return ret; | |
| 537 | − } | |
| 538 | − return 0; | |
| 539 | −} | |
| 540 | − | |
| 541 | 487 | /* Below are for HMM internal use only! Not to be used by device driver! */ |
| 542 | 488 | static inline void hmm_mm_init(struct mm_struct *mm) |
| 543 | 489 | { |
| @@ -80,6 +80,9 @@ extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp); · 79 unmodified lines | ||
| 80 | 80 | extern void unregister_pppox_proto(int proto_num); |
| 81 | 81 | extern void pppox_unbind_sock(struct sock *sk);/* delete ppp-channel binding */ |
| 82 | 82 | extern int pppox_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg); |
| 83 | +extern int pppox_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg); | |
| 84 | + | |
| 85 | +#define PPPOEIOCSFWD32 _IOW(0xB1 ,0, compat_size_t) | |
| 83 | 86 | |
| 84 | 87 | /* PPPoX socket states */ |
| 85 | 88 | enum { |
| @@ -41,11 +41,11 @@ struct rmnet_map_ul_csum_header { · 40 unmodified lines | ||
| 41 | 41 | __be16 csum_start_offset; |
| 42 | 42 | #if defined(__LITTLE_ENDIAN_BITFIELD) |
| 43 | 43 | u16 csum_insert_offset:14; |
| 44 | − u16 udp_ip4_ind:1; | |
| 44 | + u16 udp_ind:1; | |
| 45 | 45 | u16 csum_enabled:1; |
| 46 | 46 | #elif defined (__BIG_ENDIAN_BITFIELD) |
| 47 | 47 | u16 csum_enabled:1; |
| 48 | − u16 udp_ip4_ind:1; | |
| 48 | + u16 udp_ind:1; | |
| 49 | 49 | u16 csum_insert_offset:14; |
| 50 | 50 | #else |
| 51 | 51 | #error "Please fix <asm/byteorder.h>" |
| @@ -861,8 +861,9 @@ int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu); · 860 unmodified lines | ||
| 861 | 861 | void kvm_arch_vcpu_postcreate(struct kvm_vcpu *vcpu); |
| 862 | 862 | void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu); |
| 863 | 863 | |
| 864 | −bool kvm_arch_has_vcpu_debugfs(void); | |
| 865 | −int kvm_arch_create_vcpu_debugfs(struct kvm_vcpu *vcpu); | |
| 864 | +#ifdef __KVM_HAVE_ARCH_VCPU_DEBUGFS | |
| 865 | +void kvm_arch_create_vcpu_debugfs(struct kvm_vcpu *vcpu); | |
| 866 | +#endif | |
| 866 | 867 | |
| 867 | 868 | int kvm_arch_hardware_enable(void); |
| 868 | 869 | void kvm_arch_hardware_disable(void); |
| @@ -872,6 +873,7 @@ int kvm_arch_check_processor_compat(void); · 3 unmodified lines | ||
| 872 | 873 | int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu); |
| 873 | 874 | bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu); |
| 874 | 875 | int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu); |
| 876 | +bool kvm_arch_dy_runnable(struct kvm_vcpu *vcpu); | |
| 875 | 877 | |
| 876 | 878 | #ifndef __KVM_HAVE_ARCH_VM_ALLOC |
| 877 | 879 | /* |
| @@ -220,6 +220,7 @@ int mlx5_modify_rule_destination(struct mlx5_flow_handle *handler, · 219 unmodified lines | ||
| 220 | 220 | |
| 221 | 221 | struct mlx5_fc *mlx5_fc_create(struct mlx5_core_dev *dev, bool aging); |
| 222 | 222 | void mlx5_fc_destroy(struct mlx5_core_dev *dev, struct mlx5_fc *counter); |
| 223 | +u64 mlx5_fc_query_lastuse(struct mlx5_fc *counter); | |
| 223 | 224 | void mlx5_fc_query_cached(struct mlx5_fc *counter, |
| 224 | 225 | u64 *bytes, u64 *packets, u64 *lastuse); |
| 225 | 226 | int mlx5_fc_query(struct mlx5_core_dev *dev, struct mlx5_fc *counter, |
| @@ -5975,10 +5975,12 @@ struct mlx5_ifc_modify_cq_in_bits { · 5974 unmodified lines | ||
| 5975 | 5975 | |
| 5976 | 5976 | struct mlx5_ifc_cqc_bits cq_context; |
| 5977 | 5977 | |
| 5978 | − u8 reserved_at_280[0x40]; | |
| 5978 | + u8 reserved_at_280[0x60]; | |
| 5979 | 5979 | |
| 5980 | 5980 | u8 cq_umem_valid[0x1]; |
| 5981 | − u8 reserved_at_2c1[0x5bf]; | |
| 5981 | + u8 reserved_at_2e1[0x1f]; | |
| 5982 | + | |
| 5983 | + u8 reserved_at_300[0x580]; | |
| 5982 | 5984 | |
| 5983 | 5985 | u8 pas[0][0x40]; |
| 5984 | 5986 | }; |
| @@ -814,6 +814,7 @@ struct tee_client_device_id { · 813 unmodified lines | ||
| 814 | 814 | /** |
| 815 | 815 | * struct wmi_device_id - WMI device identifier |
| 816 | 816 | * @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba |
| 817 | + * @context: pointer to driver specific data | |
| 817 | 818 | */ |
| 818 | 819 | struct wmi_device_id { |
| 819 | 820 | const char guid_string[UUID_STRING_LEN+1]; |
| @@ -32,6 +32,7 @@ · 31 unmodified lines | ||
| 32 | 32 | |
| 33 | 33 | #endif /* CONFIG_SPARSEMEM */ |
| 34 | 34 | |
| 35 | +#ifndef BUILD_VDSO32_64 | |
| 35 | 36 | /* |
| 36 | 37 | * page->flags layout: |
| 37 | 38 | * |
| @@ -76,20 +77,22 @@ · 38 unmodified lines | ||
| 76 | 77 | #define LAST_CPUPID_SHIFT 0 |
| 77 | 78 | #endif |
| 78 | 79 | |
| 79 | −#if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT+LAST_CPUPID_SHIFT <= BITS_PER_LONG - NR_PAGEFLAGS | |
| 80 | +#ifdef CONFIG_KASAN_SW_TAGS | |
| 81 | +#define KASAN_TAG_WIDTH 8 | |
| 82 | +#else | |
| 83 | +#define KASAN_TAG_WIDTH 0 | |
| 84 | +#endif | |
| 85 | + | |
| 86 | +#if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT+LAST_CPUPID_SHIFT+KASAN_TAG_WIDTH \ | |
| 87 | + <= BITS_PER_LONG - NR_PAGEFLAGS | |
| 80 | 88 | #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT |
| 81 | 89 | #else |
| 82 | 90 | #define LAST_CPUPID_WIDTH 0 |
| 83 | 91 | #endif |
| 84 | 92 | |
| 85 | −#ifdef CONFIG_KASAN_SW_TAGS | |
| 86 | −#define KASAN_TAG_WIDTH 8 | |
| 87 | 93 | #if SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH+LAST_CPUPID_WIDTH+KASAN_TAG_WIDTH \ |
| 88 | 94 | > BITS_PER_LONG - NR_PAGEFLAGS |
| 89 | −#error "KASAN: not enough bits in page flags for tag" | |
| 90 | −#endif | |
| 91 | −#else | |
| 92 | −#define KASAN_TAG_WIDTH 0 | |
| 95 | +#error "Not enough bits in page flags" | |
| 93 | 96 | #endif |
| 94 | 97 | |
| 95 | 98 | /* |
| @@ -104,4 +107,5 @@ · 8 unmodified lines | ||
| 104 | 107 | #define LAST_CPUPID_NOT_IN_PAGE_FLAGS |
| 105 | 108 | #endif |
| 106 | 109 | |
| 110 | +#endif | |
| 107 | 111 | #endif /* _LINUX_PAGE_FLAGS_LAYOUT */ |
| @@ -152,6 +152,8 @@ enum pageflags { · 151 unmodified lines | ||
| 152 | 152 | PG_savepinned = PG_dirty, |
| 153 | 153 | /* Has a grant mapping of another (foreign) domain's page. */ |
| 154 | 154 | PG_foreign = PG_owner_priv_1, |
| 155 | + /* Remapped by swiotlb-xen. */ | |
| 156 | + PG_xen_remapped = PG_owner_priv_1, | |
| 155 | 157 | |
| 156 | 158 | /* SLOB */ |
| 157 | 159 | PG_slob_free = PG_private, |
| @@ -329,6 +331,8 @@ PAGEFLAG(Pinned, pinned, PF_NO_COMPOUND) · 171 unmodified lines | ||
| 329 | 331 | TESTSCFLAG(Pinned, pinned, PF_NO_COMPOUND) |
| 330 | 332 | PAGEFLAG(SavePinned, savepinned, PF_NO_COMPOUND); |
| 331 | 333 | PAGEFLAG(Foreign, foreign, PF_NO_COMPOUND); |
| 334 | +PAGEFLAG(XenRemapped, xen_remapped, PF_NO_COMPOUND) | |
| 335 | + TESTCLEARFLAG(XenRemapped, xen_remapped, PF_NO_COMPOUND) | |
| 332 | 336 | |
| 333 | 337 | PAGEFLAG(Reserved, reserved, PF_NO_COMPOUND) |
| 334 | 338 | __CLEARPAGEFLAG(Reserved, reserved, PF_NO_COMPOUND) |
| @@ -354,7 +354,13 @@ static inline void sk_psock_restore_proto(struct sock *sk, · 353 unmodified lines | ||
| 354 | 354 | sk->sk_write_space = psock->saved_write_space; |
| 355 | 355 | |
| 356 | 356 | if (psock->sk_proto) { |
| 357 | − sk->sk_prot = psock->sk_proto; | |
| 357 | + struct inet_connection_sock *icsk = inet_csk(sk); | |
| 358 | + bool has_ulp = !!icsk->icsk_ulp_data; | |
| 359 | + | |
| 360 | + if (has_ulp) | |
| 361 | + tcp_update_ulp(sk, psock->sk_proto); | |
| 362 | + else | |
| 363 | + sk->sk_prot = psock->sk_proto; | |
| 358 | 364 | psock->sk_proto = NULL; |
| 359 | 365 | } |
| 360 | 366 | } |