📞 Call Saudia Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Saudia Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Saudia Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Saudia Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Saudia Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Saudia Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Saudia Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Saudia Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Saudia Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Saudia Airlines Now
For immediate assistance, call Saudia Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Vueling Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Vueling Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Vueling Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Vueling Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Vueling Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Vueling Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Vueling Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Vueling Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Vueling Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Vueling Airlines Now
For immediate assistance, call Vueling Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
Need to talk to a real person Etihad Airways? Calling Etihad Airways directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real Etihad Airways representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach Etihad Airways (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM Etihad Airways on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the Etihad Airways App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to Etihad Airways, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
📞 Call Thai Airways Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Thai Airways in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Thai Airways customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Thai Airways official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Thai Airways app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Thai Airways support team—not a mis routed line.
✅ Summary
If you need assistance with your Thai Airways travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Thai Airways flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Thai Airways Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Thai Airways Now
For immediate assistance, call Thai Airways Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
Need to talk to a real person WestJet Airlines? Calling WestJet Airlines directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real WestJet Airlines representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach WestJet Airlines (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM WestJet Airlines on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the WestJet Airlines App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to WestJet Airlines, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
📞 Call Tap Air Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Tap Air in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Tap Air customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Tap Air official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Tap Air app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Tap Air support team—not a mis routed line.
✅ Summary
If you need assistance with your Tap Air travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Tap Air flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Tap Air Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Tap Air Now
For immediate assistance, call Tap Air Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Copa Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Copa Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Copa Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Copa Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Copa Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Copa Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Copa Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Copa Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Copa Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Copa Airlines Now
For immediate assistance, call Copa Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
Need to talk to a real person Vueling Airlines? Calling Vueling Airlines directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real Vueling Airlines representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach Vueling Airlines (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM Vueling Airlines on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the Vueling Airlines App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to Vueling Airlines, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
📞 Call Cape Air Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Cape Air in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Cape Air customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Cape Air official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Cape Air app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Cape Air support team—not a mis routed line.
✅ Summary
If you need assistance with your Cape Air travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Cape Air flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Cape Air Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Cape Air Now
For immediate assistance, call Cape Air Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Scandinavian Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Scandinavian Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Scandinavian Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Scandinavian Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Scandinavian Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Scandinavian Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Scandinavian Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Scandinavian Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Scandinavian Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Scandinavian Airlines Now
For immediate assistance, call Scandinavian Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
Need to talk to a real person Virgin Australia Airlines? Calling Virgin Australia Airlines directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real Virgin Australia Airlines representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach Virgin Australia Airlines (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM Virgin Australia Airlines on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the Virgin Australia Airlines App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to Virgin Australia Airlines, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
Need to talk to a real person Virgin Australia Airlines? Calling Virgin Australia Airlines directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real Virgin Australia Airlines representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach Virgin Australia Airlines (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM Virgin Australia Airlines on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the Virgin Australia Airlines App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to Virgin Australia Airlines, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
📞 Call Etihad Airways Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Etihad Airways in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Etihad Airways customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Etihad Airways official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Etihad Airways app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Etihad Airways support team—not a mis routed line.
✅ Summary
If you need assistance with your Etihad Airways travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Etihad Airways flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Etihad Airways Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Etihad Airways Now
For immediate assistance, call Etihad Airways Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
Need to talk to a real person Vietnam Airlines? Calling Vietnam Airlines directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real Vietnam Airlines representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach Vietnam Airlines (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM Vietnam Airlines on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the Vietnam Airlines App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to Vietnam Airlines, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
Need to talk to a real person Sun Country Airlines? Calling Sun Country Airlines directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real Sun Country Airlines representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach Sun Country Airlines (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM Sun Country Airlines on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the Sun Country Airlines App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to Sun Country Airlines, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
📞 Call Vietnam Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Vietnam Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Vietnam Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Vietnam Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Vietnam Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Vietnam Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Vietnam Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Vietnam Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Vietnam Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Vietnam Airlines Now
For immediate assistance, call Vietnam Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
Need to talk to a real person SriLankan Airlines? Calling SriLankan Airlines directly at 📞 1-866-284-3022. Whether you are trying to make a flight change, cancel your booking, ask about baggage, or resolve a booking issue, reaching a live agent can save you time, stress, and confusion. While automated systems are useful for simple tasks, some situations just need a human touch.
In this guide, we will walk you through exactly how to reach a live person, what to prepare before calling, and alternate methods if the phone lines are busy.
☎️ First Things First: Call 1-866-284-3022
The most direct and reliable way to speak with a real SriLankan Airlines representative is by calling 📞 1-866-284-3022. This is Frontier’s official customer service number and should be your go-to for:
✈️ Flight changes or cancellations
🧾 Refund or credit questions
🛄 Baggage issues
🔁 Name corrections
🛑 Check-in or boarding problems
💺 Seat selection and upgrades
Pro Tip: When calling, try to do so during non-peak hours — early mornings or late evenings — to reduce your hold time.
🎧 How to Navigate the Automated Menu
When you call 1-866-284-3022, you will first hear an automated system. To get through to a live person faster, follow these steps:
Dial 1-866-284-3022
Wait for the automated greeting to begin
Press “1” for English (or “2” for Spanish)
Press “2” for existing reservations
Press “0” to speak with an agent (you may need to press "0" more than once)
👉 If “0” does not work immediately, stay on the line. Sometimes the system transfers you to an agent after a brief wait without needing more input.
If the lines are busy and you are placed on hold, do not hang up — wait times vary, but you will eventually reach someone.
🧾 What to Have Ready Before You Call
To help the agent assist you faster, make sure you have the following details on hand:
📌 Your confirmation code or booking number
📌 The full name on the reservation
📌 Your flight date and destination
📌 Any relevant documents (ID, credit card, etc.)
📌 A notepad for writing down instructions or confirmation numbers
If you are calling to fix a mistake or request a refund, be prepared to briefly explain the issue and possibly provide documentation via email upon request.
⏰ Best Times to Call 1-866-284-3022
Customer service lines can be busy, especially during:
⚠️ Holidays
⚠️ Severe weather or flight delays
⚠️ Early morning flight hours
🎯 For the best chance at a short wait, try calling during these times:
🕔 5:00 AM – 7:00 AM (EST)
🕘 9:00 PM – 11:00 PM (EST)
📅 Midweek (Tuesdays and Wednesdays)
Avoid Mondays if possible — it is the busiest day for airlines.
🧑💻 Alternative Ways to Reach SriLankan Airlines (If Phone Fails)
If calling 📞 1-866-284-3022 does not work or you are stuck in a long queue, here are a few alternate ways to get help:
💬 1. Online Chat (Limited Availability)
Visit www.flyfrontier.com
Scroll down and look for the “Let’s Chat” option.
This can connect you to a live agent or AI assistant, depending on availability.
📧 2. Email Support
You can also submit a help request through their Customer Support Form online.
Use this for non-urgent matters like refund requests or documentation review.
📱 3. Social Media
Tweet or DM SriLankan Airlines on platforms like Twitter/X (@FlyFrontier) or send a message via Facebook.
Sometimes social media agents respond faster than the phone team during high-volume periods.
📲 4. Mobile App
Download the SriLankan Airlines App, log in, and navigate to “My Trips” or “Support” for quick options.
While this will not guarantee a live agent, you might find answers to basic questions faster.
❗ Common Issues That Require a Live Agent
While many tasks can be done online, certain problems are best resolved with a real person at 1-866-284-3022:
🛑 Double charges or billing issues
🔄 Complex flight changes involving multiple passengers
🛄 Lost or delayed baggage
✍️ Legal name changes (marriage, divorce, etc.)
🧑⚕️ Medical or accessibility needs during travel
In these cases, avoid wasting time — call directly and ask for a live agent.
🚨 Beware of Fake Numbers and Scams
Only use the official number: 📞 1-866-284-3022.
Scammers often post fake “Frontier support” numbers online, asking for credit card info or login credentials.
🛡️ Never share your full credit card number or personal information with an unverified source.
✅ Final Thoughts
Talking to a live person at an airline should not be this hard — but when it comes to SriLankan Airlines, knowing the right steps and phone number makes all the difference.
🧠 Remember:
Dial 📞 1-866-284-3022
Press 0 to reach a live agent
Call during off-peak hours
Have your booking info ready
Use alternative methods if the line is too busy
💡 The sooner you reach out, the more options you'll have to resolve your issue.
✈️ Whether you are rebooking, fixing an error, or checking a flight, calling 1-866-284-3022 connects you with someone who can truly help.
📞 Call Aer Lingus Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Aer Lingus in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Aer Lingus customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Aer Lingus official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Aer Lingus app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Aer Lingus support team—not a mis routed line.
✅ Summary
If you need assistance with your Aer Lingus travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Aer Lingus flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Aer Lingus Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Aer Lingus Now
For immediate assistance, call Aer Lingus Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Play Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Play Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Play Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Play Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Play Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Play Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Play Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Play Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Play Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Play Airlines Now
For immediate assistance, call Play Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call JetBlue Airways Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching JetBlue Airways in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for JetBlue Airways customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via JetBlue Airways official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the JetBlue Airways app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified JetBlue Airways support team—not a mis routed line.
✅ Summary
If you need assistance with your JetBlue Airways travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my JetBlue Airways flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact JetBlue Airways Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact JetBlue Airways Now
For immediate assistance, call JetBlue Airways Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Air Canada Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Air Canada in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Air Canada customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Air Canada official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Air Canada app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Air Canada support team—not a mis routed line.
✅ Summary
If you need assistance with your Air Canada travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Air Canada flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Air Canada Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Air Canada Now
For immediate assistance, call Air Canada Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call China Eastern Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching China Eastern Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for China Eastern Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via China Eastern Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the China Eastern Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified China Eastern Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your China Eastern Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my China Eastern Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact China Eastern Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact China Eastern Airlines Now
For immediate assistance, call China Eastern Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Latam Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Latam Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Latam Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Latam Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Latam Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Latam Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Latam Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Latam Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Latam Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Latam Airlines Now
For immediate assistance, call Latam Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Southwest Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Southwest Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Southwest Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Southwest Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Southwest Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Southwest Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Southwest Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Southwest Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Southwest Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Southwest Airlines Now
For immediate assistance, call Southwest Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Volaris Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Volaris Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Volaris Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Volaris Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Volaris Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Volaris Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Volaris Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Volaris Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Volaris Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Volaris Airlines Now
For immediate assistance, call Volaris Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Allegiant Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Allegiant Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Allegiant Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Allegiant Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Allegiant Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Allegiant Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Allegiant Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Allegiant Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Allegiant Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Allegiant Airlines Now
For immediate assistance, call Allegiant Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Allegiant Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Allegiant Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Allegiant Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Allegiant Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Allegiant Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Allegiant Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Allegiant Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Allegiant Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Allegiant Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Allegiant Airlines Now
For immediate assistance, call Allegiant Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Sun Country Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Sun Country Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Sun Country Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Sun Country Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Sun Country Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Sun Country Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Sun Country Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Sun Country Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Sun Country Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Sun Country Airlines Now
For immediate assistance, call Sun Country Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Alaska Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Alaska Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Alaska Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Alaska Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Alaska Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Alaska Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Alaska Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Alaska Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Alaska Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Alaska Airlines Now
For immediate assistance, call Alaska Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Spirit Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Spirit Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Spirit Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Spirit Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Spirit Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Spirit Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Spirit Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Spirit Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Spirit Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Spirit Airlines Now
For immediate assistance, call Spirit Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Aeromexico Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Aeromexico Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Aeromexico Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Aeromexico Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Aeromexico Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Aeromexico Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Aeromexico Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Aeromexico Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Aeromexico Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Aeromexico Airlines Now
For immediate assistance, call Aeromexico Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Avelo Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Avelo Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Avelo Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Avelo Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Avelo Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Avelo Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Avelo Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Avelo Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Avelo Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Avelo Airlines Now
For immediate assistance, call Avelo Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Contour Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Contour Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Contour Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Contour Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Contour Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Contour Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Contour Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Contour Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Contour Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Contour Airlines Now
For immediate assistance, call Contour Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Condor Airlines Customer Service at +1-866-284-3022 right away if you need assistance—this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Condor Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +1-866-284-3022 as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Condor Airlines customer support in the U.S. is +1-866-284-3022.
You can call +1-866-284-3022 anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +1-866-284-3022 is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Condor Airlines official site.
• One forum lists the hotline as +1-866-284-3022 for U.S. customers.
• Another cites numbers like ++1-866-284-3022 or +1-866-284-3022
• Still others list +1-866-284-3022
Because of this variation, the safest and most reliable number remains +1-866-284-3022 (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +1-866-284-3022, you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +1-866-284-3022.
⏱ Tips to Reach a Live Agent Faster
• Call +1-866-284-3022 during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say “agent” or press “0” to bypass menus and reach a representative.
• Use +1-866-284-3022 for urgent issues; for less urgent ones you can also try live chat or the Condor Airlines app.
• Remain polite and have your details ready—especially when you call +1-866-284-3022, to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +1-866-284-3022 as the primary U.S. customer service number.
Using +1-866-284-3022 ensures you reach the verified Condor Airlines support team—not a mis routed line.
✅ Summary
If you need assistance with your Condor Airlines travel in the U.S., your first call should be to +1-866-284-3022.
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help—day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Condor Airlines flight?
Call 📞 1-866-284-3022 to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Condor Airlines Customer Service at 1-866-284-3022. Our agents will guide you through the cancellation process and initiate your refund according to the airline’s policy.
3. Can I upgrade my seat after booking?
Yes! Call 1-866-284-3022 to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there’s a spelling error or mismatch in your ticket, contact 1-866-284-3022 immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call 1-866-284-3022. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Condor Airlines Now
For immediate assistance, call Condor Airlines Customer Support at 1-866-284-3022.
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations — ensuring a smooth and stress-free travel experience.
📞 Call Frontier Airlines Customer Service at +[SCAMMER] right away if you need assistance--this is the main U.S. line and is available 24/7. 😊
Here is your complete guide to reaching Frontier Airlines in the USA with all the numbers and suggestions to get you helped fast. This guide uses +[SCAMMER] as the primary contact, and I will refer to it several times to make it easy to remember.
📞 Key Contact Number
The go to phone number for Frontier Airlines customer support in the U.S. is +[SCAMMER].
You can call +[SCAMMER] anytime (24 hours a day, 7 days a week) for general customer service, including bookings, flight changes, baggage issues, or refunds.
🧭 Other Contact Options & Numbers
While +[SCAMMER] is the main line, the online travel community lists a variety of numbers that are reported by users. Some of these may be older or unofficial, so use them with caution and always verify via Frontier Airlines official site.
• One forum lists the hotline as +[SCAMMER] for U.S. customers.
• Another cites numbers like ++[SCAMMER] or +[SCAMMER]
• Still others list +[SCAMMER]
Because of this variation, the safest and most reliable number remains +[SCAMMER] (as per official site) when in the U.S.
🎯 What to Use the Call For
When you dial +[SCAMMER], you can ask for help with:
• Flight cancellations or changes
• Refunds or credits
• Baggage delays, lost or damaged items
• Reservation errors or ticketing issues
• Accessibility requests or special services
Having your booking number, flight date, and any relevant reference ready will speed things up when you call +[SCAMMER].
⏱ Tips to Reach a Live Agent Faster
• Call +[SCAMMER] during off peak hours (e.g., early morning or late evening) to avoid long hold times.
• When the automated system starts, say "agent" or press "0" to bypass menus and reach a representative.
• Use +[SCAMMER] for urgent issues; for less urgent ones you can also try live chat or the Frontier Airlines app.
• Remain polite and have your details ready--especially when you call +[SCAMMER], to help the agent assist you efficiently.
🌍 Why Use the Official Number?
Because multiple third party forums list different numbers (e.g., +1 855 xxx xx41, +1 877 xxx xx72, +1 866 xxx xx25), it is easy to get confused. These may be outdated or unofficial. The official site confirms +[SCAMMER] as the primary U.S. customer service number.
Using +[SCAMMER] ensures you reach the verified Frontier Airlines support team--not a mis routed line.
✅ Summary
If you need assistance with your Frontier Airlines travel in the U.S., your first call should be to +[SCAMMER].
Whether it is a last minute change, baggage issue, or booking question, calling +1 866 284 3022 connects you to professional help--day or night. Keep that number handy and you will be ready if any travel hiccup occurs.
❓ Frequently Asked Questions (FAQs)
1. How can I change or rebook my Frontier Airlines flight?
Call 📞 [SCAMMER] to speak with a live agent who can help modify your travel date or destination. Rebooking fees and fare differences may apply depending on your ticket type.
2. How do I cancel my ticket and get a refund?
Contact Frontier Airlines Customer Service at [SCAMMER]. Our agents will guide you through the cancellation process and initiate your refund according to the airline's policy.
3. Can I upgrade my seat after booking?
Yes! Call [SCAMMER] to request seat upgrades, including premium or preferred seating options. Availability depends on the flight and fare class.
4. How can I correct a name on my booking?
If there's a spelling error or mismatch in your ticket, contact [SCAMMER] immediately. Our support team can assist with minor corrections without affecting your booking.
5. How do I add children or infants to my existing booking?
To add kids to a reservation, call [SCAMMER]. The agent will help include infants or children in your booking and provide fare details and seat assignments.
📞 Contact Frontier Airlines Now
For immediate assistance, call Frontier Airlines Customer Support at [SCAMMER].
Our expert agents are available 24/7 to help with bookings, flight changes, cancellations, refunds, seat upgrades, and adding children to your reservations -- ensuring a smooth and stress-free travel experience.
[BUG]
During development of a minor feature (make sure all btrfs_bio::end_io()
is called in task context), I noticed a crash in generic/388, where
metadata writes triggered new works after btrfs_stop_all_workers().
It turns out that it can even happen without any code modification, just
using RAID5 for metadata and the same workload from generic/388 is going
to trigger the use-after-free.
[CAUSE]
If btrfs hits an error, the fs is marked as error, no new
transaction is allowed thus metadata is in a frozen state.
But there are some metadata modification before that error, and they are
still in the btree inode page cache.
Since there will be no real transaction commitment, all those dirty
folios are just kept as is in the page cache, and they can not be
invalidated by invalidate_inode_pages2() call inside close_ctree(),
because they are dirty.
And finally after btrfs_stop_all_workers(), we call iput() on btree
inode, which triggers writeback of those dirty metadata.
And if the fs is using RAID56 metadata, this will trigger RMW and queue
new works into rmw_workers, which is already stopped, causing warning
from queue_work() and use-after-free.
[FIX]
Add a special handling for write_one_eb(), that if the fs is already in
an error state immediately mark the bbio as failure, instead of really
submitting them into the device.
This means for test case like generic/388, at iput() those dirty folios
will just be discarded without triggering IO.
CC: stable(a)vger.kernel.org
Signed-off-by: Qu Wenruo <wqu(a)suse.com>
---
fs/btrfs/disk-io.c | 12 ++++++++++++
fs/btrfs/extent_io.c | 11 +++++++++++
2 files changed, 23 insertions(+)
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 0aa7e5d1b05f..8b0fc2df85f1 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -4402,11 +4402,23 @@ void __cold close_ctree(struct btrfs_fs_info *fs_info)
btrfs_put_block_group_cache(fs_info);
+ /*
+ * If the fs is already in trans aborted case, also trigger writeback of all
+ * dirty metadata folios.
+ * Those folios will not reach disk but dicarded directly.
+ * This is to make sure no dirty folios before iput(), or iput() will
+ * trigger writeback again, and may even cause extra works queued
+ * into workqueue.
+ */
+ if (unlikely(BTRFS_FS_ERROR(fs_info)))
+ filemap_write_and_wait(fs_info->btree_inode->i_mapping);
+
/*
* we must make sure there is not any read request to
* submit after we stopping all workers.
*/
invalidate_inode_pages2(fs_info->btree_inode->i_mapping);
+
btrfs_stop_all_workers(fs_info);
/* We shouldn't have any transaction open at this point */
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 870584dde575..a8a53409bb3f 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -2246,6 +2246,17 @@ static noinline_for_stack void write_one_eb(struct extent_buffer *eb,
wbc_account_cgroup_owner(wbc, folio, range_len);
folio_unlock(folio);
}
+ /*
+ * If the fs is already in error status, do not submit any writeback
+ * but immediately finish it.
+ * This is to avoid iput() triggering dirty folio writeback for
+ * transaction aborted fses, which can cause extra works into
+ * already stopped workqueues.
+ */
+ if (unlikely(BTRFS_FS_ERROR(fs_info))) {
+ btrfs_bio_end_io(bbio, errno_to_blk_status(-EROFS));
+ return;
+ }
btrfs_submit_bbio(bbio, 0);
}
--
2.51.0
[BUG]
During development of a minor feature (make sure all btrfs_bio::end_io()
is called in task context), I noticed a crash in generic/388, where
metadata writes triggered new works after btrfs_stop_all_workers().
It turns out that it can even happen without any code modification, just
using RAID5 for metadata and the same workload from generic/388 is going
to trigger the use-after-free.
[CAUSE]
If btrfs hits an error, the fs is marked as error, no new
transaction is allowed thus metadata is in a frozen state.
But there are some metadata modifications before that error, and they are
still in the btree inode page cache.
Since there will be no real transaction commit, all those dirty folios
are just kept as is in the page cache, and they can not be invalidated
by invalidate_inode_pages2() call inside close_ctree(), because they are
dirty.
And finally after btrfs_stop_all_workers(), we call iput() on btree
inode, which triggers writeback of those dirty metadata.
And if the fs is using RAID56 metadata, this will trigger RMW and queue
new works into rmw_workers, which is already stopped, causing warning
from queue_work() and use-after-free.
[FIX]
Add a special handling for write_one_eb(), that if the fs is already in
an error state, immediately mark the bbio as failure, instead of really
submitting them.
Then during close_ctree(), iput() will just discard all those dirty
tree blocks without really writing them back, thus no more new jobs for
already stopped-and-freed workqueues.
The extra discard in write_one_eb() also acts as an extra safenet.
E.g. the transaction abort is triggered by some extent/free space
tree corruptions, and since extent/free space tree is already corrupted
some tree blocks may be allocated where they shouldn't be (overwriting
existing tree blocks). In that case writing them back will further
corrupting the fs.
CC: stable(a)vger.kernel.org #6.6
Signed-off-by: Qu Wenruo <wqu(a)suse.com>
---
Changelog
v2:
- Various grammar and newline fixes
- A shorter title line
- Enhance the [FIX] part, explain the full fix
- Limit the backport for 6.6
v6.1 code base is very different compared to the current one, thus
backporting to v6.6 would be the limit.
- Explain more why discarding bios at write_one_eb() is safer
- Remove the extra flushing part inside close_ctree()
There is no difference flushing the dirty folios manually or by
iput(), as dirty folios are discarded anyway, no new job will be
created.
---
fs/btrfs/extent_io.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 870584dde575..8f6b8baba003 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -2246,6 +2246,14 @@ static noinline_for_stack void write_one_eb(struct extent_buffer *eb,
wbc_account_cgroup_owner(wbc, folio, range_len);
folio_unlock(folio);
}
+ /*
+ * If the fs is already in error status, do not submit any writeback
+ * but immediately finish it.
+ */
+ if (unlikely(BTRFS_FS_ERROR(fs_info))) {
+ btrfs_bio_end_io(bbio, errno_to_blk_status(-EROFS));
+ return;
+ }
btrfs_submit_bbio(bbio, 0);
}
--
2.51.0
An invalid pointer dereference bug was reported on arm64 cpu, and has
not yet been seen on x86. A partial oops looks like:
Call trace:
update_cfs_rq_h_load+0x80/0xb0
wake_affine+0x158/0x168
select_task_rq_fair+0x364/0x3a8
try_to_wake_up+0x154/0x648
wake_up_q+0x68/0xd0
futex_wake_op+0x280/0x4c8
do_futex+0x198/0x1c0
__arm64_sys_futex+0x11c/0x198
Link: https://lore.kernel.org/all/20251013071820.1531295-1-CruzZhao@linux.alibaba…
We found that the task_group corresponding to the problematic se
is not in the parent task_group’s children list, indicating that
h_load_next points to an invalid address. Consider the following
cgroup and task hierarchy:
A
/ \
/ \
B E
/ \ |
/ \ t2
C D
| |
t0 t1
Here follows a timing sequence that may be responsible for triggering
the problem:
CPU X CPU Y CPU Z
wakeup t0
set list A->B->C
traverse A->B->C
t0 exits
destroy C
wakeup t2
set list A->E wakeup t1
set list A->B->D
traverse A->B->C
panic
CPU Z sets ->h_load_next list to A->B->D, but due to arm64 weaker memory
ordering, Y may observe A->B before it sees B->D, then in this time window,
it can traverse A->B->C and reach an invalid se.
We can avoid stale pointer accesses by clearing ->h_load_next when
unregistering cgroup.
Suggested-by: Vincent Guittot <vincent.guittot(a)linaro.org>
Fixes: 685207963be9 ("sched: Move h_load calculation to task_h_load()")
Cc: <stable(a)vger.kernel.org>
Co-developed-by: Cruz Zhao <CruzZhao(a)linux.alibaba.com>
Signed-off-by: Cruz Zhao <CruzZhao(a)linux.alibaba.com>
Signed-off-by: Peng Wang <peng_wang(a)linux.alibaba.com>
---
kernel/sched/fair.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index cee1793e8277..a5fce15093d3 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -13427,6 +13427,14 @@ void unregister_fair_sched_group(struct task_group *tg)
list_del_leaf_cfs_rq(cfs_rq);
}
remove_entity_load_avg(se);
+ /*
+ * Clear parent's h_load_next if it points to the
+ * sched_entity being freed to avoid stale pointer.
+ */
+ struct cfs_rq *parent_cfs_rq = cfs_rq_of(se);
+
+ if (READ_ONCE(parent_cfs_rq->h_load_next) == se)
+ WRITE_ONCE(parent_cfs_rq->h_load_next, NULL);
}
/*
--
2.27.0
On LoongArch system, guest PMU hardware is shared by guest and host
and PMU interrupt is separated. PMU is pass-through to VM, and there is
PMU context switch when exit to host and return to guest.
There is optimiation to check whether PMU is enabled by guest. If not,
it is not necessary to return to guest. However it is enabled, PMU
context for guest need switch on. Now KVM_REQ_PMU notification is set
on vcpu context switch, however it is missing if there is no vcpu context
switch and PMU is used by guest VM.
Fixes: f4e40ea9f78f ("LoongArch: KVM: Add PMU support for guest")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Bibo Mao <maobibo(a)loongson.cn>
---
arch/loongarch/kvm/vcpu.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c
index 30e3b089a596..bf56ad29ac15 100644
--- a/arch/loongarch/kvm/vcpu.c
+++ b/arch/loongarch/kvm/vcpu.c
@@ -132,6 +132,9 @@ static void kvm_lose_pmu(struct kvm_vcpu *vcpu)
* Clear KVM_LARCH_PMU if the guest is not using PMU CSRs when
* exiting the guest, so that the next time trap into the guest.
* We don't need to deal with PMU CSRs contexts.
+ *
+ * Otherwise set request bit KVM_REQ_PMU to restore guest PMU
+ * before entering guest VM
*/
val = kvm_read_sw_gcsr(csr, LOONGARCH_CSR_PERFCTRL0);
val |= kvm_read_sw_gcsr(csr, LOONGARCH_CSR_PERFCTRL1);
@@ -139,6 +142,8 @@ static void kvm_lose_pmu(struct kvm_vcpu *vcpu)
val |= kvm_read_sw_gcsr(csr, LOONGARCH_CSR_PERFCTRL3);
if (!(val & KVM_PMU_EVENT_ENABLED))
vcpu->arch.aux_inuse &= ~KVM_LARCH_PMU;
+ else
+ kvm_make_request(KVM_REQ_PMU, vcpu);
kvm_restore_host_pmu(vcpu);
}
--
2.39.3
A few cleanups and a bugfix that are either suitable after the swap
table phase I or found during code review.
Patch 1 is a bugfix and needs to be included in the stable branch,
the rest have no behavior change.
---
Kairui Song (4):
mm, swap: do not perform synchronous discard during allocation
mm, swap: rename helper for setup bad slots
mm, swap: cleanup swap entry allocation parameter
mm/migrate, swap: drop usage of folio_index
include/linux/swap.h | 4 ++--
mm/migrate.c | 4 ++--
mm/shmem.c | 2 +-
mm/swap.h | 21 -----------------
mm/swapfile.c | 64 ++++++++++++++++++++++++++++++++++++----------------
mm/vmscan.c | 4 ++--
6 files changed, 52 insertions(+), 47 deletions(-)
---
base-commit: 53e573001f2b5168f9b65d2b79e9563a3b479c17
change-id: 20251007-swap-clean-after-swap-table-p1-b9a7635ee3fa
Best regards,
--
Kairui Song <kasong(a)tencent.com>
When waiting for the PCIe link to come up, both link up and link down
are valid results depending on the device state.
Since the link may come up later and to get rid of the following
mis-reported PM errors. Do not return an -ETIMEDOUT error, as the
outcome has already been reported in dw_pcie_wait_for_link().
PM error logs introduced by the -ETIMEDOUT error return.
imx6q-pcie 33800000.pcie: Phy link never came up
imx6q-pcie 33800000.pcie: PM: dpm_run_callback(): genpd_resume_noirq returns -110
imx6q-pcie 33800000.pcie: PM: failed to resume noirq: error -110
Cc: stable(a)vger.kernel.org
Fixes: 4774faf854f5 ("PCI: dwc: Implement generic suspend/resume functionality")
Signed-off-by: Richard Zhu <hongxing.zhu(a)nxp.com>
Reviewed-by: Frank Li <Frank.Li(a)nxp.com>
---
drivers/pci/controller/dwc/pcie-designware-host.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index a4d9838bc33f0..8430ac433d457 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -1212,10 +1212,9 @@ int dw_pcie_resume_noirq(struct dw_pcie *pci)
if (ret)
return ret;
- ret = dw_pcie_wait_for_link(pci);
- if (ret)
- return ret;
+ /* Ignore errors, the link may come up later */
+ dw_pcie_wait_for_link(pci);
- return ret;
+ return 0;
}
EXPORT_SYMBOL_GPL(dw_pcie_resume_noirq);
--
2.37.1
A chip freeze is observed on i.MX7D when PCIe RC kicks off the PM_PME
message and no devices are connected on the port.
To work aroud such kind of issue, skip PME_Turn_Off message if there is
no endpoint connected.
Cc: stable(a)vger.kernel.org
Fixes: 4774faf854f5 ("PCI: dwc: Implement generic suspend/resume functionality")
Fixes: a528d1a72597 ("PCI: imx6: Use DWC common suspend resume method")
Signed-off-by: Richard Zhu <hongxing.zhu(a)nxp.com>
Reviewed-by: Frank Li <Frank.Li(a)nxp.com>
---
drivers/pci/controller/dwc/pcie-designware-host.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 09b50a5ce19bb..a4d9838bc33f0 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -1136,12 +1136,15 @@ int dw_pcie_suspend_noirq(struct dw_pcie *pci)
if (dw_pcie_readw_dbi(pci, offset + PCI_EXP_LNKCTL) & PCI_EXP_LNKCTL_ASPM_L1)
return 0;
- if (pci->pp.ops->pme_turn_off) {
- pci->pp.ops->pme_turn_off(&pci->pp);
- } else {
- ret = dw_pcie_pme_turn_off(pci);
- if (ret)
- return ret;
+ /* Skip PME_Turn_Off message if there is no endpoint connected */
+ if (dw_pcie_get_ltssm(pci) > DW_PCIE_LTSSM_DETECT_WAIT) {
+ if (pci->pp.ops->pme_turn_off) {
+ pci->pp.ops->pme_turn_off(&pci->pp);
+ } else {
+ ret = dw_pcie_pme_turn_off(pci);
+ if (ret)
+ return ret;
+ }
}
if (dwc_quirk(pci, QUIRK_NOL2POLL_IN_PM)) {
--
2.37.1
Hello,
Status summary for stable/linux-6.6.y
Dashboard:
https://d.kernelci.org/c/stable/linux-6.6.y/4a243110dc884d8e1fe69eecbc2daef…
giturl: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
branch: linux-6.6.y
commit hash: 4a243110dc884d8e1fe69eecbc2daef10d8e75d7
origin: maestro
test start time: 2025-10-23 14:29:15.250000+00:00
Builds: 38 ✅ 0 ❌ 0 ⚠️
Boots: 87 ✅ 0 ❌ 0 ⚠️
Tests: 3955 ✅ 1454 ❌ 1053 ⚠️
### POSSIBLE REGRESSIONS
Hardware: bcm2837-rpi-3-b-plus
> Config: defconfig+lab-setup+kselftest
- Architecture/compiler: arm64/gcc-12
- kselftest.ptrace
last run: https://d.kernelci.org/test/maestro:68fa5f798a79c348aff889c4
history: > ✅ > ❌ > ❌
### FIXED REGRESSIONS
No fixed regressions observed.
### UNSTABLE TESTS
No unstable tests observed.
Sent every day if there were changes in the past 24 hours.
Legend: ✅ PASS ❌ FAIL ⚠️ INCONCLUSIVE
--
This is an experimental report format. Please send feedback in!
Talk to us at kernelci(a)lists.linux.dev
Made with love by the KernelCI team - https://kernelci.org
From: Alexis Lothoré <alexis.lothore(a)bootlin.com>
commit 030ce919e114a111e83b7976ecb3597cefd33f26 upstream.
The stmmac platform drivers that do not open-code the clk_ptp_rate value
after having retrieved the default one from the device-tree can end up
with 0 in clk_ptp_rate (as clk_get_rate can return 0). It will
eventually propagate up to PTP initialization when bringing up the
interface, leading to a divide by 0:
Division by zero in kernel.
CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.30-00001-g48313bd5768a #22
Hardware name: STM32 (Device Tree Support)
Call trace:
unwind_backtrace from show_stack+0x18/0x1c
show_stack from dump_stack_lvl+0x6c/0x8c
dump_stack_lvl from Ldiv0_64+0x8/0x18
Ldiv0_64 from stmmac_init_tstamp_counter+0x190/0x1a4
stmmac_init_tstamp_counter from stmmac_hw_setup+0xc1c/0x111c
stmmac_hw_setup from __stmmac_open+0x18c/0x434
__stmmac_open from stmmac_open+0x3c/0xbc
stmmac_open from __dev_open+0xf4/0x1ac
__dev_open from __dev_change_flags+0x1cc/0x224
__dev_change_flags from dev_change_flags+0x24/0x60
dev_change_flags from ip_auto_config+0x2e8/0x11a0
ip_auto_config from do_one_initcall+0x84/0x33c
do_one_initcall from kernel_init_freeable+0x1b8/0x214
kernel_init_freeable from kernel_init+0x24/0x140
kernel_init from ret_from_fork+0x14/0x28
Exception stack(0xe0815fb0 to 0xe0815ff8)
Prevent this division by 0 by adding an explicit check and error log
about the actual issue. While at it, remove the same check from
stmmac_ptp_register, which then becomes duplicate
Fixes: 19d857c9038e ("stmmac: Fix calculations for ptp counters when clock input = 50Mhz.")
Signed-off-by: Alexis Lothoré <alexis.lothore(a)bootlin.com>
Reviewed-by: Yanteng Si <si.yanteng(a)linux.dev>
Reviewed-by: Maxime Chevallier <maxime.chevallier(a)bootlin.com>
Link: https://patch.msgid.link/20250529-stmmac_tstamp_div-v4-1-d73340a794d5@bootl…
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
[ kovalev: bp to fix CVE-2025-38126; the duplicate check removal
in stmmac_ptp_register was skipped (function not present) ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index b8581a711514..d793bcb1b444 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -742,6 +742,11 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags)
if (!(priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp))
return -EOPNOTSUPP;
+ if (!priv->plat->clk_ptp_rate) {
+ netdev_err(priv->dev, "Invalid PTP clock rate");
+ return -EINVAL;
+ }
+
stmmac_config_hw_tstamping(priv, priv->ptpaddr, systime_flags);
priv->systime_flags = systime_flags;
--
2.50.1
From: Alexis Lothoré <alexis.lothore(a)bootlin.com>
commit 030ce919e114a111e83b7976ecb3597cefd33f26 upstream.
The stmmac platform drivers that do not open-code the clk_ptp_rate value
after having retrieved the default one from the device-tree can end up
with 0 in clk_ptp_rate (as clk_get_rate can return 0). It will
eventually propagate up to PTP initialization when bringing up the
interface, leading to a divide by 0:
Division by zero in kernel.
CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.12.30-00001-g48313bd5768a #22
Hardware name: STM32 (Device Tree Support)
Call trace:
unwind_backtrace from show_stack+0x18/0x1c
show_stack from dump_stack_lvl+0x6c/0x8c
dump_stack_lvl from Ldiv0_64+0x8/0x18
Ldiv0_64 from stmmac_init_tstamp_counter+0x190/0x1a4
stmmac_init_tstamp_counter from stmmac_hw_setup+0xc1c/0x111c
stmmac_hw_setup from __stmmac_open+0x18c/0x434
__stmmac_open from stmmac_open+0x3c/0xbc
stmmac_open from __dev_open+0xf4/0x1ac
__dev_open from __dev_change_flags+0x1cc/0x224
__dev_change_flags from dev_change_flags+0x24/0x60
dev_change_flags from ip_auto_config+0x2e8/0x11a0
ip_auto_config from do_one_initcall+0x84/0x33c
do_one_initcall from kernel_init_freeable+0x1b8/0x214
kernel_init_freeable from kernel_init+0x24/0x140
kernel_init from ret_from_fork+0x14/0x28
Exception stack(0xe0815fb0 to 0xe0815ff8)
Prevent this division by 0 by adding an explicit check and error log
about the actual issue. While at it, remove the same check from
stmmac_ptp_register, which then becomes duplicate
Fixes: 19d857c9038e ("stmmac: Fix calculations for ptp counters when clock input = 50Mhz.")
Signed-off-by: Alexis Lothoré <alexis.lothore(a)bootlin.com>
Reviewed-by: Yanteng Si <si.yanteng(a)linux.dev>
Reviewed-by: Maxime Chevallier <maxime.chevallier(a)bootlin.com>
Link: https://patch.msgid.link/20250529-stmmac_tstamp_div-v4-1-d73340a794d5@bootl…
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
[ kovalev: bp to fix CVE-2025-38126 ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 21cc8cd9e023..468aeedf22eb 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -522,7 +522,7 @@ bool stmmac_eee_init(struct stmmac_priv *priv)
static inline u32 stmmac_cdc_adjust(struct stmmac_priv *priv)
{
/* Correct the clk domain crossing(CDC) error */
- if (priv->plat->has_gmac4 && priv->plat->clk_ptp_rate)
+ if (priv->plat->has_gmac4)
return (2 * NSEC_PER_SEC) / priv->plat->clk_ptp_rate;
return 0;
}
@@ -848,6 +848,11 @@ int stmmac_init_tstamp_counter(struct stmmac_priv *priv, u32 systime_flags)
if (!(priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp))
return -EOPNOTSUPP;
+ if (!priv->plat->clk_ptp_rate) {
+ netdev_err(priv->dev, "Invalid PTP clock rate");
+ return -EINVAL;
+ }
+
stmmac_config_hw_tstamping(priv, priv->ptpaddr, systime_flags);
priv->systime_flags = systime_flags;
--
2.50.1
In virtio-net, we have not yet supported multi-buffer XDP packet in
zerocopy mode when there is a binding XDP program. However, in that
case, when receiving multi-buffer XDP packet, we skip the XDP program
and return XDP_PASS. As a result, the packet is passed to normal network
stack which is an incorrect behavior (e.g. a XDP program for packet
count is installed, multi-buffer XDP packet arrives and does go through
XDP program. As a result, the packet count does not increase but the
packet is still received from network stack).This commit instead returns
XDP_ABORTED in that case.
Fixes: 99c861b44eb1 ("virtio_net: xsk: rx: support recv merge mode")
Cc: stable(a)vger.kernel.org
Acked-by: Jason Wang <jasowang(a)redhat.com>
Reviewed-by: Xuan Zhuo <xuanzhuo(a)linux.alibaba.com>
Signed-off-by: Bui Quang Minh <minhquangbui99(a)gmail.com>
---
Changes in v2:
- Return XDP_ABORTED instead of XDP_DROP, make clearer explanation in
commit message
---
drivers/net/virtio_net.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index a757cbcab87f..8e8a179aaa49 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1379,9 +1379,14 @@ static struct sk_buff *virtnet_receive_xsk_merge(struct net_device *dev, struct
ret = XDP_PASS;
rcu_read_lock();
prog = rcu_dereference(rq->xdp_prog);
- /* TODO: support multi buffer. */
- if (prog && num_buf == 1)
- ret = virtnet_xdp_handler(prog, xdp, dev, xdp_xmit, stats);
+ if (prog) {
+ /* TODO: support multi buffer. */
+ if (num_buf == 1)
+ ret = virtnet_xdp_handler(prog, xdp, dev, xdp_xmit,
+ stats);
+ else
+ ret = XDP_ABORTED;
+ }
rcu_read_unlock();
switch (ret) {
--
2.43.0
From: Alexis Lothoré <alexis.lothore(a)bootlin.com>
commit cbefe2ffa7784525ec5d008ba87c7add19ec631a upstream.
If the ptp_rate recorded earlier in the driver happens to be 0, this
bogus value will propagate up to EST configuration, where it will
trigger a division by 0.
Prevent this division by 0 by adding the corresponding check and error
code.
Suggested-by: Maxime Chevallier <maxime.chevallier(a)bootlin.com>
Signed-off-by: Alexis Lothoré <alexis.lothore(a)bootlin.com>
Fixes: 8572aec3d0dc ("net: stmmac: Add basic EST support for XGMAC")
Link: https://patch.msgid.link/20250529-stmmac_tstamp_div-v4-2-d73340a794d5@bootl…
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
[ kovalev: bp to fix CVE-2025-38125;
replaced netdev_warn with pr_warn due to missing dev pointer ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
drivers/net/ethernet/stmicro/stmmac/dwmac5.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac5.c b/drivers/net/ethernet/stmicro/stmmac/dwmac5.c
index 8fd167501fa0..4df62268f852 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac5.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac5.c
@@ -597,6 +597,11 @@ int dwmac5_est_configure(void __iomem *ioaddr, struct stmmac_est *cfg,
int i, ret = 0x0;
u32 ctrl;
+ if (!ptp_rate) {
+ pr_warn("%s: Invalid PTP rate\n", __func__);
+ return -EINVAL;
+ }
+
ret |= dwmac5_est_write(ioaddr, BTR_LOW, cfg->btr[0], false);
ret |= dwmac5_est_write(ioaddr, BTR_HIGH, cfg->btr[1], false);
ret |= dwmac5_est_write(ioaddr, TER, cfg->ter, false);
--
2.50.1
The patch titled
Subject: ksm: use range-walk function to jump over holes in scan_get_next_rmap_item
has been added to the -mm mm-hotfixes-unstable branch. Its filename is
ksm-use-range-walk-function-to-jump-over-holes-in-scan_get_next_rmap_item.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patche…
This patch will later appear in the mm-hotfixes-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Pedro Demarchi Gomes <pedrodemargomes(a)gmail.com>
Subject: ksm: use range-walk function to jump over holes in scan_get_next_rmap_item
Date: Wed, 22 Oct 2025 12:30:59 -0300
Currently, scan_get_next_rmap_item() walks every page address in a VMA to
locate mergeable pages. This becomes highly inefficient when scanning
large virtual memory areas that contain mostly unmapped regions, causing
ksmd to use large amount of cpu without deduplicating much pages.
This patch replaces the per-address lookup with a range walk using
walk_page_range(). The range walker allows KSM to skip over entire
unmapped holes in a VMA, avoiding unnecessary lookups. This problem was
previously discussed in [1].
Consider the following test program which creates a 32 TiB mapping in the
virtual address space but only populates a single page:
#include <unistd.h>
#include <stdio.h>
#include <sys/mman.h>
/* 32 TiB */
const size_t size = 32ul * 1024 * 1024 * 1024 * 1024;
int main() {
char *area = mmap(NULL, size, PROT_READ | PROT_WRITE,
MAP_NORESERVE | MAP_PRIVATE | MAP_ANON, -1, 0);
if (area == MAP_FAILED) {
perror("mmap() failed\n");
return -1;
}
/* Populate a single page such that we get an anon_vma. */
*area = 0;
/* Enable KSM. */
madvise(area, size, MADV_MERGEABLE);
pause();
return 0;
}
$ ./ksm-sparse &
$ echo 1 > /sys/kernel/mm/ksm/run
Without this patch ksmd uses 100% of the cpu for a long time (more then 1
hour in my test machine) scanning all the 32 TiB virtual address space
that contain only one mapped page. This makes ksmd essentially deadlocked
not able to deduplicate anything of value. With this patch ksmd walks
only the one mapped page and skips the rest of the 32 TiB virtual address
space, making the scan fast using little cpu.
Link: https://lkml.kernel.org/r/20251023035841.41406-1-pedrodemargomes@gmail.com
Link: https://lkml.kernel.org/r/20251022153059.22763-1-pedrodemargomes@gmail.com
Link: https://lore.kernel.org/linux-mm/423de7a3-1c62-4e72-8e79-19a6413e420c@redha… [1]
Fixes: 31dbd01f3143 ("ksm: Kernel SamePage Merging")
Signed-off-by: Pedro Demarchi Gomes <pedrodemargomes(a)gmail.com>
Co-developed-by: David Hildenbrand <david(a)redhat.com>
Signed-off-by: David Hildenbrand <david(a)redhat.com>
Reported-by: craftfever <craftfever(a)airmail.cc>
Closes: https://lkml.kernel.org/r/020cf8de6e773bb78ba7614ef250129f11a63781@murena.io
Suggested-by: David Hildenbrand <david(a)redhat.com>
Acked-by: David Hildenbrand <david(a)redhat.com>
Cc: Chengming Zhou <chengming.zhou(a)linux.dev>
Cc: xu xin <xu.xin16(a)zte.com.cn>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/ksm.c | 113 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 104 insertions(+), 9 deletions(-)
--- a/mm/ksm.c~ksm-use-range-walk-function-to-jump-over-holes-in-scan_get_next_rmap_item
+++ a/mm/ksm.c
@@ -2455,6 +2455,95 @@ static bool should_skip_rmap_item(struct
return true;
}
+struct ksm_next_page_arg {
+ struct folio *folio;
+ struct page *page;
+ unsigned long addr;
+};
+
+static int ksm_next_page_pmd_entry(pmd_t *pmdp, unsigned long addr, unsigned long end,
+ struct mm_walk *walk)
+{
+ struct ksm_next_page_arg *private = walk->private;
+ struct vm_area_struct *vma = walk->vma;
+ pte_t *start_ptep = NULL, *ptep, pte;
+ struct mm_struct *mm = walk->mm;
+ struct folio *folio;
+ struct page *page;
+ spinlock_t *ptl;
+ pmd_t pmd;
+
+ if (ksm_test_exit(mm))
+ return 0;
+
+ cond_resched();
+
+ pmd = pmdp_get_lockless(pmdp);
+ if (!pmd_present(pmd))
+ return 0;
+
+ if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && pmd_leaf(pmd)) {
+ ptl = pmd_lock(mm, pmdp);
+ pmd = pmdp_get(pmdp);
+
+ if (!pmd_present(pmd)) {
+ goto not_found_unlock;
+ } else if (pmd_leaf(pmd)) {
+ page = vm_normal_page_pmd(vma, addr, pmd);
+ if (!page)
+ goto not_found_unlock;
+ folio = page_folio(page);
+
+ if (folio_is_zone_device(folio) || !folio_test_anon(folio))
+ goto not_found_unlock;
+
+ page += ((addr & (PMD_SIZE - 1)) >> PAGE_SHIFT);
+ goto found_unlock;
+ }
+ spin_unlock(ptl);
+ }
+
+ start_ptep = pte_offset_map_lock(mm, pmdp, addr, &ptl);
+ if (!start_ptep)
+ return 0;
+
+ for (ptep = start_ptep; addr < end; ptep++, addr += PAGE_SIZE) {
+ pte = ptep_get(ptep);
+
+ if (!pte_present(pte))
+ continue;
+
+ page = vm_normal_page(vma, addr, pte);
+ if (!page)
+ continue;
+ folio = page_folio(page);
+
+ if (folio_is_zone_device(folio) || !folio_test_anon(folio))
+ continue;
+ goto found_unlock;
+ }
+
+not_found_unlock:
+ spin_unlock(ptl);
+ if (start_ptep)
+ pte_unmap(start_ptep);
+ return 0;
+found_unlock:
+ folio_get(folio);
+ spin_unlock(ptl);
+ if (start_ptep)
+ pte_unmap(start_ptep);
+ private->page = page;
+ private->folio = folio;
+ private->addr = addr;
+ return 1;
+}
+
+static struct mm_walk_ops ksm_next_page_ops = {
+ .pmd_entry = ksm_next_page_pmd_entry,
+ .walk_lock = PGWALK_RDLOCK,
+};
+
static struct ksm_rmap_item *scan_get_next_rmap_item(struct page **page)
{
struct mm_struct *mm;
@@ -2542,21 +2631,27 @@ next_mm:
ksm_scan.address = vma->vm_end;
while (ksm_scan.address < vma->vm_end) {
+ struct ksm_next_page_arg ksm_next_page_arg;
struct page *tmp_page = NULL;
- struct folio_walk fw;
struct folio *folio;
if (ksm_test_exit(mm))
break;
- folio = folio_walk_start(&fw, vma, ksm_scan.address, 0);
- if (folio) {
- if (!folio_is_zone_device(folio) &&
- folio_test_anon(folio)) {
- folio_get(folio);
- tmp_page = fw.page;
- }
- folio_walk_end(&fw, vma);
+ int found;
+
+ found = walk_page_range_vma(vma, ksm_scan.address,
+ vma->vm_end,
+ &ksm_next_page_ops,
+ &ksm_next_page_arg);
+
+ if (found > 0) {
+ folio = ksm_next_page_arg.folio;
+ tmp_page = ksm_next_page_arg.page;
+ ksm_scan.address = ksm_next_page_arg.addr;
+ } else {
+ VM_WARN_ON_ONCE(found < 0);
+ ksm_scan.address = vma->vm_end - PAGE_SIZE;
}
if (tmp_page) {
_
Patches currently in -mm which might be from pedrodemargomes(a)gmail.com are
ksm-use-range-walk-function-to-jump-over-holes-in-scan_get_next_rmap_item.patch
The patch titled
Subject: mm-shmem-fix-thp-allocation-and-fallback-loop-v3
has been added to the -mm mm-hotfixes-unstable branch. Its filename is
mm-shmem-fix-thp-allocation-and-fallback-loop-v3.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patche…
This patch will later appear in the mm-hotfixes-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Kairui Song <kasong(a)tencent.com>
Subject: mm-shmem-fix-thp-allocation-and-fallback-loop-v3
Date: Thu, 23 Oct 2025 14:59:13 +0800
introduce a temporary variable to improve code
Link: https://lkml.kernel.org/r/20251023065913.36925-1-ryncsn@gmail.com
Link: https://lore.kernel.org/linux-mm/CAMgjq7DqgAmj25nDUwwu1U2cSGSn8n4-Hqpgotted… [1]
Fixes: e7a2ab7b3bb5d ("mm: shmem: add mTHP support for anonymous shmem")
Signed-off-by: Kairui Song <kasong(a)tencent.com>
Cc: Baolin Wang <baolin.wang(a)linux.alibaba.com>
Cc: Barry Song <baohua(a)kernel.org>
Cc: David Hildenbrand <david(a)redhat.com>
Cc: Dev Jain <dev.jain(a)arm.com>
Cc: Hugh Dickins <hughd(a)google.com>
Cc: Liam Howlett <liam.howlett(a)oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Cc: Matthew Wilcox (Oracle) <willy(a)infradead.org>
Cc: Nico Pache <npache(a)redhat.com>
Cc: Ryan Roberts <ryan.roberts(a)arm.com>
Cc: Zi Yan <ziy(a)nvidia.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/shmem.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
--- a/mm/shmem.c~mm-shmem-fix-thp-allocation-and-fallback-loop-v3
+++ a/mm/shmem.c
@@ -1882,6 +1882,7 @@ static struct folio *shmem_alloc_and_add
struct shmem_inode_info *info = SHMEM_I(inode);
unsigned long suitable_orders = 0;
struct folio *folio = NULL;
+ pgoff_t aligned_index;
long pages;
int error, order;
@@ -1895,9 +1896,10 @@ static struct folio *shmem_alloc_and_add
order = highest_order(suitable_orders);
while (suitable_orders) {
pages = 1UL << order;
- folio = shmem_alloc_folio(gfp, order, info, round_down(index, pages));
+ aligned_index = round_down(index, pages);
+ folio = shmem_alloc_folio(gfp, order, info, aligned_index);
if (folio) {
- index = round_down(index, pages);
+ index = aligned_index;
goto allocated;
}
_
Patches currently in -mm which might be from kasong(a)tencent.com are
mm-shmem-fix-thp-allocation-and-fallback-loop.patch
mm-shmem-fix-thp-allocation-and-fallback-loop-v3.patch
mm-swap-do-not-perform-synchronous-discard-during-allocation.patch
mm-swap-rename-helper-for-setup-bad-slots.patch
mm-swap-cleanup-swap-entry-allocation-parameter.patch
mm-migrate-swap-drop-usage-of-folio_index.patch
mm-swap-remove-redundant-argument-for-isolating-a-cluster.patch
The patch titled
Subject: mm, swap: do not perform synchronous discard during allocation
has been added to the -mm mm-new branch. Its filename is
mm-swap-do-not-perform-synchronous-discard-during-allocation.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patche…
This patch will later appear in the mm-new branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Note, mm-new is a provisional staging ground for work-in-progress
patches, and acceptance into mm-new is a notification for others take
notice and to finish up reviews. Please do not hesitate to respond to
review feedback and post updated versions to replace or incrementally
fixup patches in mm-new.
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Kairui Song <kasong(a)tencent.com>
Subject: mm, swap: do not perform synchronous discard during allocation
Date: Fri, 24 Oct 2025 02:34:11 +0800
Patch series "mm, swap: misc cleanup and bugfix", v2.
A few cleanups and a bugfix that are either suitable after the swap table
phase I or found during code review.
Patch 1 is a bugfix and needs to be included in the stable branch, the
rest have no behavioral change.
This patch (of 5):
Since commit 1b7e90020eb77 ("mm, swap: use percpu cluster as allocation
fast path"), swap allocation is protected by a local lock, which means we
can't do any sleeping calls during allocation.
However, the discard routine is not taken well care of. When the swap
allocator failed to find any usable cluster, it would look at the pending
discard cluster and try to issue some blocking discards. It may not
necessarily sleep, but the cond_resched at the bio layer indicates this is
wrong when combined with a local lock. And the bio GFP flag used for
discard bio is also wrong (not atomic).
It's arguable whether this synchronous discard is helpful at all. In most
cases, the async discard is good enough. And the swap allocator is doing
very differently at organizing the clusters since the recent change, so it
is very rare to see discard clusters piling up.
So far, no issues have been observed or reported with typical SSD setups
under months of high pressure. This issue was found during my code
review. But by hacking the kernel a bit: adding a mdelay(500) in the
async discard path, this issue will be observable with WARNING triggered
by the wrong GFP and cond_resched in the bio layer for debug builds.
So now let's apply a hotfix for this issue: remove the synchronous discard
in the swap allocation path. And when order 0 is failing with all cluster
list drained on all swap devices, try to do a discard following the swap
device priority list. If any discards released some cluster, try the
allocation again. This way, we can still avoid OOM due to swap failure if
the hardware is very slow and memory pressure is extremely high.
This may cause more fragmentation issues if the discarding hardware is
really slow. Ideally, we want to discard pending clusters before
continuing to iterate the fragment cluster lists. This can be implemented
in a cleaner way if we clean up the device list iteration part first.
Link: https://lkml.kernel.org/r/20251024-swap-clean-after-swap-table-p1-v2-0-a709…
Link: https://lkml.kernel.org/r/20251024-swap-clean-after-swap-table-p1-v2-1-c5b0…
Fixes: 1b7e90020eb77 ("mm, swap: use percpu cluster as allocation fast path")
Signed-off-by: Kairui Song <kasong(a)tencent.com>
Acked-by: Nhat Pham <nphamcs(a)gmail.com>
Cc: Baolin Wang <baolin.wang(a)linux.alibaba.com>
Cc: Baoquan He <bhe(a)redhat.com>
Cc: Barry Song <baohua(a)kernel.org>
Cc: Chris Li <chrisl(a)kernel.org>
Cc: David Hildenbrand <david(a)redhat.com>
Cc: "Huang, Ying" <ying.huang(a)linux.alibaba.com>
Cc: Kemeng Shi <shikemeng(a)huaweicloud.com>
Cc: Matthew Wilcox (Oracle) <willy(a)infradead.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/swapfile.c | 40 +++++++++++++++++++++++++++++++++-------
1 file changed, 33 insertions(+), 7 deletions(-)
--- a/mm/swapfile.c~mm-swap-do-not-perform-synchronous-discard-during-allocation
+++ a/mm/swapfile.c
@@ -1101,13 +1101,6 @@ new_cluster:
goto done;
}
- /*
- * We don't have free cluster but have some clusters in discarding,
- * do discard now and reclaim them.
- */
- if ((si->flags & SWP_PAGE_DISCARD) && swap_do_scheduled_discard(si))
- goto new_cluster;
-
if (order)
goto done;
@@ -1394,6 +1387,33 @@ start_over:
return false;
}
+/*
+ * Discard pending clusters in a synchronized way when under high pressure.
+ * Return: true if any cluster is discarded.
+ */
+static bool swap_sync_discard(void)
+{
+ bool ret = false;
+ int nid = numa_node_id();
+ struct swap_info_struct *si, *next;
+
+ spin_lock(&swap_avail_lock);
+ plist_for_each_entry_safe(si, next, &swap_avail_heads[nid], avail_lists[nid]) {
+ spin_unlock(&swap_avail_lock);
+ if (get_swap_device_info(si)) {
+ if (si->flags & SWP_PAGE_DISCARD)
+ ret = swap_do_scheduled_discard(si);
+ put_swap_device(si);
+ }
+ if (ret)
+ return true;
+ spin_lock(&swap_avail_lock);
+ }
+ spin_unlock(&swap_avail_lock);
+
+ return false;
+}
+
/**
* folio_alloc_swap - allocate swap space for a folio
* @folio: folio we want to move to swap
@@ -1432,11 +1452,17 @@ int folio_alloc_swap(struct folio *folio
}
}
+again:
local_lock(&percpu_swap_cluster.lock);
if (!swap_alloc_fast(&entry, order))
swap_alloc_slow(&entry, order);
local_unlock(&percpu_swap_cluster.lock);
+ if (unlikely(!order && !entry.val)) {
+ if (swap_sync_discard())
+ goto again;
+ }
+
/* Need to call this even if allocation failed, for MEMCG_SWAP_FAIL. */
if (mem_cgroup_try_charge_swap(folio, entry))
goto out_free;
_
Patches currently in -mm which might be from kasong(a)tencent.com are
mm-shmem-fix-thp-allocation-and-fallback-loop.patch
mm-swap-do-not-perform-synchronous-discard-during-allocation.patch
mm-swap-rename-helper-for-setup-bad-slots.patch
mm-swap-cleanup-swap-entry-allocation-parameter.patch
mm-migrate-swap-drop-usage-of-folio_index.patch
mm-swap-remove-redundant-argument-for-isolating-a-cluster.patch
The switch_brightness_work delayed work accesses device->brightness
and device->backlight, which are freed by
acpi_video_dev_unregister_backlight() during device removal.
If the work executes after acpi_video_bus_unregister_backlight()
frees these resources, it causes a use-after-free when
acpi_video_switch_brightness() dereferences device->brightness or
device->backlight.
Fix this by calling cancel_delayed_work_sync() for each device's
switch_brightness_work in acpi_video_bus_remove_notify_handler()
after removing the notify handler that queues the work. This ensures
the work completes before the memory is freed.
Fixes: 8ab58e8e7e097 ("ACPI / video: Fix backlight taking 2 steps on a brightness up/down keypress")
Cc: stable(a)vger.kernel.org
Signed-off-by: Yuhao Jiang <danisjiang(a)gmail.com>
---
Changes in v3:
- Move cancel_delayed_work_sync() to acpi_video_bus_remove_notify_handler()
instead of acpi_video_bus_unregister_backlight() for better logic placement
- Link to v2: https://lore.kernel.org/all/20251022042514.2167599-1-danisjiang@gmail.com/
---
drivers/acpi/acpi_video.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 103f29661576..be8e7e18abca 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -1959,8 +1959,10 @@ static void acpi_video_bus_remove_notify_handler(struct acpi_video_bus *video)
struct acpi_video_device *dev;
mutex_lock(&video->device_list_lock);
- list_for_each_entry(dev, &video->video_device_list, entry)
+ list_for_each_entry(dev, &video->video_device_list, entry) {
acpi_video_dev_remove_notify_handler(dev);
+ cancel_delayed_work_sync(&dev->switch_brightness_work);
+ }
mutex_unlock(&video->device_list_lock);
acpi_video_bus_stop_devices(video);
--
2.34.1
The SD current limit logic is updated to avoid explicitly setting the
current limit when the maximum power is 200mA (0.72W) or less, as this
is already the default value. The code now only issues a current limit
switch if a higher limit is required, and the unused
SD_SET_CURRENT_NO_CHANGE constant is removed. This reduces unnecessary
commands and simplifies the logic.
Fixes: 0aa6770000ba ("mmc: sdhci: only set 200mA support for 1.8v if 200mA is available")
Signed-off-by: Avri Altman <avri.altman(a)sandisk.com>
Cc: stable(a)vger.kernel.org
---
drivers/mmc/core/sd.c | 7 ++-----
include/linux/mmc/card.h | 1 -
2 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
index ec02067f03c5..cf92c5b2059a 100644
--- a/drivers/mmc/core/sd.c
+++ b/drivers/mmc/core/sd.c
@@ -554,7 +554,7 @@ static u32 sd_get_host_max_current(struct mmc_host *host)
static int sd_set_current_limit(struct mmc_card *card, u8 *status)
{
- int current_limit = SD_SET_CURRENT_NO_CHANGE;
+ int current_limit = SD_SET_CURRENT_LIMIT_200;
int err;
u32 max_current;
@@ -598,11 +598,8 @@ static int sd_set_current_limit(struct mmc_card *card, u8 *status)
else if (max_current >= 400 &&
card->sw_caps.sd3_curr_limit & SD_MAX_CURRENT_400)
current_limit = SD_SET_CURRENT_LIMIT_400;
- else if (max_current >= 200 &&
- card->sw_caps.sd3_curr_limit & SD_MAX_CURRENT_200)
- current_limit = SD_SET_CURRENT_LIMIT_200;
- if (current_limit != SD_SET_CURRENT_NO_CHANGE) {
+ if (current_limit != SD_SET_CURRENT_LIMIT_200) {
err = mmc_sd_switch(card, SD_SWITCH_SET, 3,
current_limit, status);
if (err)
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index ddcdf23d731c..e9e964c20e53 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -182,7 +182,6 @@ struct sd_switch_caps {
#define SD_SET_CURRENT_LIMIT_400 1
#define SD_SET_CURRENT_LIMIT_600 2
#define SD_SET_CURRENT_LIMIT_800 3
-#define SD_SET_CURRENT_NO_CHANGE (-1)
#define SD_MAX_CURRENT_200 (1 << SD_SET_CURRENT_LIMIT_200)
#define SD_MAX_CURRENT_400 (1 << SD_SET_CURRENT_LIMIT_400)
--
2.25.1
Hi,
We provide custom packaging boxes and labels. We make boxes in
different materials and styles such as Vape Boxe, Cigarette Boxes,
Cartridge Boxes, Cardboard boxes, Rigid Boxes and Mailer boxes, etc.
Our benefits include quick turnaround time, free shipping and design
support. Just send over your box or label specifications and quantity
so I can give you an estimate on that.
Let me know if you have any questions. Thanks
Best Regards
Micah Robert
My Packaging Pro
From: Brian Norris <briannorris(a)google.com>
As the comments in pci_pm_thaw_noirq() suggest, pci_restore_state() may
need to restore MSI-X state in MMIO space. This is only possible if we
reach D0; if we failed to power up, this might produce a fatal error
when touching memory space.
Check for errors (as the "verify" in "pci_pm_power_up_and_verify_state"
implies), and skip restoring if it fails.
This mitigates errors seen during resume_noirq, for example, when the
platform did not resume the link properly.
Cc: stable(a)vger.kernel.org
Signed-off-by: Brian Norris <briannorris(a)google.com>
Signed-off-by: Brian Norris <briannorris(a)chromium.org>
---
drivers/pci/pci-driver.c | 12 +++++++++---
drivers/pci/pci.c | 13 +++++++++++--
drivers/pci/pci.h | 2 +-
3 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index 302d61783f6c..d66d95bd0ca2 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -557,7 +557,13 @@ static void pci_pm_default_resume(struct pci_dev *pci_dev)
static void pci_pm_default_resume_early(struct pci_dev *pci_dev)
{
- pci_pm_power_up_and_verify_state(pci_dev);
+ /*
+ * If we failed to reach D0, we'd better not touch MSI-X state in MMIO
+ * space.
+ */
+ if (pci_pm_power_up_and_verify_state(pci_dev))
+ return;
+
pci_restore_state(pci_dev);
pci_pme_restore(pci_dev);
}
@@ -1101,8 +1107,8 @@ static int pci_pm_thaw_noirq(struct device *dev)
* in case the driver's "freeze" callbacks put it into a low-power
* state.
*/
- pci_pm_power_up_and_verify_state(pci_dev);
- pci_restore_state(pci_dev);
+ if (!pci_pm_power_up_and_verify_state(pci_dev))
+ pci_restore_state(pci_dev);
if (pci_has_legacy_pm_support(pci_dev))
return 0;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index e698278229f2..c75fec3b094f 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3144,10 +3144,19 @@ void pci_d3cold_disable(struct pci_dev *dev)
}
EXPORT_SYMBOL_GPL(pci_d3cold_disable);
-void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev)
+int pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev)
{
- pci_power_up(pci_dev);
+ int ret;
+
+ ret = pci_power_up(pci_dev);
pci_update_current_state(pci_dev, PCI_D0);
+
+ if (ret < 0 && pci_dev->current_state == PCI_D3cold) {
+ dev_err(&pci_dev->dev, "Failed to power up device: %d\n", ret);
+ return ret;
+ }
+
+ return 0;
}
/**
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 1c48bc447f58..87ad201417d5 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -233,7 +233,7 @@ void pci_dev_adjust_pme(struct pci_dev *dev);
void pci_dev_complete_resume(struct pci_dev *pci_dev);
void pci_config_pm_runtime_get(struct pci_dev *dev);
void pci_config_pm_runtime_put(struct pci_dev *dev);
-void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev);
+int pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev);
void pci_pm_init(struct pci_dev *dev);
void pci_ea_init(struct pci_dev *dev);
void pci_msi_init(struct pci_dev *dev);
--
2.51.0.rc1.193.gad69d77794-goog
The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x 15292f1b4c55a3a7c940dbcb6cb8793871ed3d92
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025102051-foe-trunks-268f@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 15292f1b4c55a3a7c940dbcb6cb8793871ed3d92 Mon Sep 17 00:00:00 2001
From: Babu Moger <babu.moger(a)amd.com>
Date: Fri, 10 Oct 2025 12:08:35 -0500
Subject: [PATCH] x86/resctrl: Fix miscount of bandwidth event when
reactivating previously unavailable RMID
Users can create as many monitoring groups as the number of RMIDs supported
by the hardware. However, on AMD systems, only a limited number of RMIDs
are guaranteed to be actively tracked by the hardware. RMIDs that exceed
this limit are placed in an "Unavailable" state.
When a bandwidth counter is read for such an RMID, the hardware sets
MSR_IA32_QM_CTR.Unavailable (bit 62). When such an RMID starts being tracked
again the hardware counter is reset to zero. MSR_IA32_QM_CTR.Unavailable
remains set on first read after tracking re-starts and is clear on all
subsequent reads as long as the RMID is tracked.
resctrl miscounts the bandwidth events after an RMID transitions from the
"Unavailable" state back to being tracked. This happens because when the
hardware starts counting again after resetting the counter to zero, resctrl
in turn compares the new count against the counter value stored from the
previous time the RMID was tracked.
This results in resctrl computing an event value that is either undercounting
(when new counter is more than stored counter) or a mistaken overflow (when
new counter is less than stored counter).
Reset the stored value (arch_mbm_state::prev_msr) of MSR_IA32_QM_CTR to
zero whenever the RMID is in the "Unavailable" state to ensure accurate
counting after the RMID resets to zero when it starts to be tracked again.
Example scenario that results in mistaken overflow
==================================================
1. The resctrl filesystem is mounted, and a task is assigned to a
monitoring group.
$mount -t resctrl resctrl /sys/fs/resctrl
$mkdir /sys/fs/resctrl/mon_groups/test1/
$echo 1234 > /sys/fs/resctrl/mon_groups/test1/tasks
$cat /sys/fs/resctrl/mon_groups/test1/mon_data/mon_L3_*/mbm_total_bytes
21323 <- Total bytes on domain 0
"Unavailable" <- Total bytes on domain 1
Task is running on domain 0. Counter on domain 1 is "Unavailable".
2. The task runs on domain 0 for a while and then moves to domain 1. The
counter starts incrementing on domain 1.
$cat /sys/fs/resctrl/mon_groups/test1/mon_data/mon_L3_*/mbm_total_bytes
7345357 <- Total bytes on domain 0
4545 <- Total bytes on domain 1
3. At some point, the RMID in domain 0 transitions to the "Unavailable"
state because the task is no longer executing in that domain.
$cat /sys/fs/resctrl/mon_groups/test1/mon_data/mon_L3_*/mbm_total_bytes
"Unavailable" <- Total bytes on domain 0
434341 <- Total bytes on domain 1
4. Since the task continues to migrate between domains, it may eventually
return to domain 0.
$cat /sys/fs/resctrl/mon_groups/test1/mon_data/mon_L3_*/mbm_total_bytes
17592178699059 <- Overflow on domain 0
3232332 <- Total bytes on domain 1
In this case, the RMID on domain 0 transitions from "Unavailable" state to
active state. The hardware sets MSR_IA32_QM_CTR.Unavailable (bit 62) when
the counter is read and begins tracking the RMID counting from 0.
Subsequent reads succeed but return a value smaller than the previously
saved MSR value (7345357). Consequently, the resctrl's overflow logic is
triggered, it compares the previous value (7345357) with the new, smaller
value and incorrectly interprets this as a counter overflow, adding a large
delta.
In reality, this is a false positive: the counter did not overflow but was
simply reset when the RMID transitioned from "Unavailable" back to active
state.
Here is the text from APM [1] available from [2].
"In PQOS Version 2.0 or higher, the MBM hardware will set the U bit on the
first QM_CTR read when it begins tracking an RMID that it was not
previously tracking. The U bit will be zero for all subsequent reads from
that RMID while it is still tracked by the hardware. Therefore, a QM_CTR
read with the U bit set when that RMID is in use by a processor can be
considered 0 when calculating the difference with a subsequent read."
[1] AMD64 Architecture Programmer's Manual Volume 2: System Programming
Publication # 24593 Revision 3.41 section 19.3.3 Monitoring L3 Memory
Bandwidth (MBM).
[ bp: Split commit message into smaller paragraph chunks for better
consumption. ]
Fixes: 4d05bf71f157d ("x86/resctrl: Introduce AMD QOS feature")
Signed-off-by: Babu Moger <babu.moger(a)amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp(a)alien8.de>
Reviewed-by: Reinette Chatre <reinette.chatre(a)intel.com>
Tested-by: Reinette Chatre <reinette.chatre(a)intel.com>
Cc: stable(a)vger.kernel.org # needs adjustments for <= v6.17
Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537 # [2]
diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
index c8945610d455..2cd25a0d4637 100644
--- a/arch/x86/kernel/cpu/resctrl/monitor.c
+++ b/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -242,7 +242,9 @@ int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_mon_domain *d,
u32 unused, u32 rmid, enum resctrl_event_id eventid,
u64 *val, void *ignored)
{
+ struct rdt_hw_mon_domain *hw_dom = resctrl_to_arch_mon_dom(d);
int cpu = cpumask_any(&d->hdr.cpu_mask);
+ struct arch_mbm_state *am;
u64 msr_val;
u32 prmid;
int ret;
@@ -251,12 +253,16 @@ int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_mon_domain *d,
prmid = logical_rmid_to_physical_rmid(cpu, rmid);
ret = __rmid_read_phys(prmid, eventid, &msr_val);
- if (ret)
- return ret;
- *val = get_corrected_val(r, d, rmid, eventid, msr_val);
+ if (!ret) {
+ *val = get_corrected_val(r, d, rmid, eventid, msr_val);
+ } else if (ret == -EINVAL) {
+ am = get_arch_mbm_state(hw_dom, rmid, eventid);
+ if (am)
+ am->prev_msr = 0;
+ }
- return 0;
+ return ret;
}
static int __cntr_id_read(u32 cntr_id, u64 *val)
Evaluaciones Psicométricas para RR.HH.
body {
margin: 0;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #333;
background-color: #ffffff;
}
table {
border-spacing: 0;
width: 100%;
max-width: 600px;
margin: auto;
}
td {
padding: 12px 20px;
}
a {
color: #1a73e8;
text-decoration: none;
}
.footer {
font-size: 12px;
color: #888888;
text-align: center;
}
Mejora tus procesos de selección con evaluaciones psicométricas fáciles y confiables.
Hola, ,
Sabemos que encontrar al candidato ideal va más allá del currículum. Por eso quiero contarte brevemente sobre PsicoSmart, una plataforma que ayuda a equipos de RR.HH. a evaluar talento con pruebas psicométricas rápidas, confiables y fáciles de aplicar.
Con PsicoSmart puedes:
Aplicar evaluaciones psicométricas 100% en línea.
Elegir entre más de 31 pruebas psicométricas
Generar reportes automáticos, visuales y fáciles de interpretar.
Comparar resultados entre candidatos en segundos.
Ahorrar horas valiosas del proceso de selección.
Si estás buscando mejorar tus contrataciones, te lo recomiendo muchísimo. Si quieres conocer más puedes responder este correo o simplemente contactarme, mis datos están abajo.
Saludos,
-----------------------------
Atte.: Valeria Pérez
Ciudad de México: (55) 5018 0565
WhatsApp: +52 33 1607 2089
Si no deseas recibir más correos, haz clic aquí para darte de baja.
Para remover su dirección de esta lista haga <a href="https://s1.arrobamail.com/unsuscribe.php?id=yiwtsrewispptseup">click aquí</a>
On Thu, Oct 23, 2025 at 11:25:53AM -0400, Sasha Levin wrote:
> This is a note to let you know that I've just added the patch titled
>
> binfmt_elf: preserve original ELF e_flags for core dumps
>
> to the 6.12-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
>
> The filename of the patch is:
> binfmt_elf-preserve-original-elf-e_flags-for-core-du.patch
> and it can be found in the queue-6.12 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable(a)vger.kernel.org> know about it.
No, please don't. I already asked that this not be auto-backported:
https://lore.kernel.org/all/202510020856.736F028D@keescook/
--
Kees Cook
Since commit 4959aebba8c0 ("virtio-net: use mtu size as buffer length
for big packets"), when guest gso is off, the allocated size for big
packets is not MAX_SKB_FRAGS * PAGE_SIZE anymore but depends on
negotiated MTU. The number of allocated frags for big packets is stored
in vi->big_packets_num_skbfrags.
Because the host announced buffer length can be malicious (e.g. the host
vhost_net driver's get_rx_bufs is modified to announce incorrect
length), we need a check in virtio_net receive path. Currently, the
check is not adapted to the new change which can lead to NULL page
pointer dereference in the below while loop when receiving length that
is larger than the allocated one.
This commit fixes the received length check corresponding to the new
change.
Fixes: 4959aebba8c0 ("virtio-net: use mtu size as buffer length for big packets")
Cc: stable(a)vger.kernel.org
Signed-off-by: Bui Quang Minh <minhquangbui99(a)gmail.com>
---
Changes in v4:
- Remove unrelated changes, add more comments
Changes in v3:
- Convert BUG_ON to WARN_ON_ONCE
Changes in v2:
- Remove incorrect give_pages call
---
drivers/net/virtio_net.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index a757cbcab87f..0ffe78b3fd8d 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -852,7 +852,7 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi,
{
struct sk_buff *skb;
struct virtio_net_common_hdr *hdr;
- unsigned int copy, hdr_len, hdr_padded_len;
+ unsigned int copy, hdr_len, hdr_padded_len, max_remaining_len;
struct page *page_to_free = NULL;
int tailroom, shinfo_size;
char *p, *hdr_p, *buf;
@@ -915,13 +915,23 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi,
* This is here to handle cases when the device erroneously
* tries to receive more than is possible. This is usually
* the case of a broken device.
+ *
+ * The number of allocated pages for big packet is
+ * vi->big_packets_num_skbfrags + 1, the start of first page is
+ * for virtio header, the remaining is for data. We need to ensure
+ * the remaining len does not go out of the allocated pages.
+ * Please refer to add_recvbuf_big for more details on big packet
+ * buffer allocation.
*/
- if (unlikely(len > MAX_SKB_FRAGS * PAGE_SIZE)) {
+ BUG_ON(offset >= PAGE_SIZE);
+ max_remaining_len = (unsigned int)PAGE_SIZE - offset;
+ max_remaining_len += vi->big_packets_num_skbfrags * PAGE_SIZE;
+ if (unlikely(len > max_remaining_len)) {
net_dbg_ratelimited("%s: too much data\n", skb->dev->name);
dev_kfree_skb(skb);
return NULL;
}
- BUG_ON(offset >= PAGE_SIZE);
+
while (len) {
unsigned int frag_size = min((unsigned)PAGE_SIZE - offset, len);
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, offset,
--
2.43.0
When GSO tunnel is negotiated virtio_net_hdr_tnl_from_skb() tries to
initialize the tunnel metadata but forget to zero unused rxhash
fields. This may leak information to another side. Fixing this by
zeroing the unused hash fields.
Acked-by: Michael S. Tsirkin <mst(a)redhat.com>
Fixes: a2fb4bc4e2a6a ("net: implement virtio helpers to handle UDP GSO tunneling")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Jason Wang <jasowang(a)redhat.com>
---
include/linux/virtio_net.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
index 20e0584db1dd..4d1780848d0e 100644
--- a/include/linux/virtio_net.h
+++ b/include/linux/virtio_net.h
@@ -401,6 +401,10 @@ virtio_net_hdr_tnl_from_skb(const struct sk_buff *skb,
if (!tnl_hdr_negotiated)
return -EINVAL;
+ vhdr->hash_hdr.hash_value = 0;
+ vhdr->hash_hdr.hash_report = 0;
+ vhdr->hash_hdr.padding = 0;
+
/* Let the basic parsing deal with plain GSO features. */
skb_shinfo(skb)->gso_type &= ~tnl_gso_type;
ret = virtio_net_hdr_from_skb(skb, hdr, true, false, vlan_hlen);
--
2.42.0
vb2_ioctl_remove_bufs() call manipulates queue internal buffer list,
potentially overwriting some pointers used by the legacy fileio access
mode. Forbid that ioctl when fileio is active to protect internal queue
state between subsequent read/write calls.
CC: stable(a)vger.kernel.org
Fixes: a3293a85381e ("media: v4l2: Add REMOVE_BUFS ioctl")
Reported-by: Shuangpeng Bai <SJB7183(a)psu.edu>
Signed-off-by: Marek Szyprowski <m.szyprowski(a)samsung.com>
---
v4:
- got back to simple vb2_fileio_is_active() check as in v1, as relying on
vb2_verify_memory_type() misses some corner cases important to v4l2
compliance
v3: https://lore.kernel.org/all/20251023113052.1303082-1-m.szyprowski@samsung.c…
- moved vb2_verify_memory_type() check after (d->count == 0) check to pass v4l2
compliance
v2: https://lore.kernel.org/all/20251020160121.1985354-1-m.szyprowski@samsung.c…
- dropped a change to vb2_ioctl_create_bufs(), as it is already handled
by the vb2_verify_memory_type() call
- replaced queue->type check in vb2_ioctl_remove_bufs() by a call to
vb2_verify_memory_type() which covers all cases
v1: https://lore.kernel.org/all/20251016111154.993949-1-m.szyprowski@samsung.co…
---
drivers/media/common/videobuf2/videobuf2-v4l2.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c
index d911021c1bb0..83862d57b126 100644
--- a/drivers/media/common/videobuf2/videobuf2-v4l2.c
+++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c
@@ -1010,6 +1010,11 @@ int vb2_ioctl_remove_bufs(struct file *file, void *priv,
if (vb2_queue_is_busy(vdev->queue, file))
return -EBUSY;
+ if (vb2_fileio_is_active(vdev->queue)) {
+ dprintk(vdev->queue, 1, "file io in progress\n");
+ return -EBUSY;
+ }
+
return vb2_core_remove_bufs(vdev->queue, d->index, d->count);
}
EXPORT_SYMBOL_GPL(vb2_ioctl_remove_bufs);
--
2.34.1
From: Stefano Garzarella <sgarzare(a)redhat.com>
Syzbot reported a potential lock inversion deadlock between
vsock_register_mutex and sk_lock-AF_VSOCK when vsock_linger() is called.
The issue was introduced by commit 687aa0c5581b ("vsock: Fix
transport_* TOCTOU") which added vsock_register_mutex locking in
vsock_assign_transport() around the transport->release() call, that can
call vsock_linger(). vsock_assign_transport() can be called with sk_lock
held. vsock_linger() calls sk_wait_event() that temporarily releases and
re-acquires sk_lock. During this window, if another thread hold
vsock_register_mutex while trying to acquire sk_lock, a circular
dependency is created.
Fix this by releasing vsock_register_mutex before calling
transport->release() and vsock_deassign_transport(). This is safe
because we don't need to hold vsock_register_mutex while releasing the
old transport, and we ensure the new transport won't disappear by
obtaining a module reference first via try_module_get().
Reported-by: syzbot+10e35716f8e4929681fa(a)syzkaller.appspotmail.com
Tested-by: syzbot+10e35716f8e4929681fa(a)syzkaller.appspotmail.com
Fixes: 687aa0c5581b ("vsock: Fix transport_* TOCTOU")
Cc: mhal(a)rbox.co
Cc: stable(a)vger.kernel.org
Signed-off-by: Stefano Garzarella <sgarzare(a)redhat.com>
---
net/vmw_vsock/af_vsock.c | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c
index 4c2db6cca557..76763247a377 100644
--- a/net/vmw_vsock/af_vsock.c
+++ b/net/vmw_vsock/af_vsock.c
@@ -487,12 +487,26 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk)
goto err;
}
- if (vsk->transport) {
- if (vsk->transport == new_transport) {
- ret = 0;
- goto err;
- }
+ if (vsk->transport && vsk->transport == new_transport) {
+ ret = 0;
+ goto err;
+ }
+ /* We increase the module refcnt to prevent the transport unloading
+ * while there are open sockets assigned to it.
+ */
+ if (!new_transport || !try_module_get(new_transport->module)) {
+ ret = -ENODEV;
+ goto err;
+ }
+
+ /* It's safe to release the mutex after a successful try_module_get().
+ * Whichever transport `new_transport` points at, it won't go away until
+ * the last module_put() below or in vsock_deassign_transport().
+ */
+ mutex_unlock(&vsock_register_mutex);
+
+ if (vsk->transport) {
/* transport->release() must be called with sock lock acquired.
* This path can only be taken during vsock_connect(), where we
* have already held the sock lock. In the other cases, this
@@ -512,20 +526,6 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk)
vsk->peer_shutdown = 0;
}
- /* We increase the module refcnt to prevent the transport unloading
- * while there are open sockets assigned to it.
- */
- if (!new_transport || !try_module_get(new_transport->module)) {
- ret = -ENODEV;
- goto err;
- }
-
- /* It's safe to release the mutex after a successful try_module_get().
- * Whichever transport `new_transport` points at, it won't go away until
- * the last module_put() below or in vsock_deassign_transport().
- */
- mutex_unlock(&vsock_register_mutex);
-
if (sk->sk_type == SOCK_SEQPACKET) {
if (!new_transport->seqpacket_allow ||
!new_transport->seqpacket_allow(remote_cid)) {
--
2.51.0
From: Johannes Berg <johannes.berg(a)intel.com>
commit eb29b4ffafb20281624dcd2cbb768d6f30edf600 upstream.
The order of actions taken for debug was implemented incorrectly.
Now we implemented the dump split and do the FW reset only in the
middle of the dump (rather than the FW killing itself on error.)
As a result, some of the actions taken when applying the config
will now crash the device, so we need to fix the order.
Fixes: 1a5daead217c ("iwlwifi: yoyo: support for ROM usniffer")
Fixes: f21baf244112 ("iwlwifi: yoyo: fw debug config from context info and preset")
Signed-off-by: Johannes Berg <johannes.berg(a)intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit(a)intel.com>
Link: https://patch.msgid.link/20250308231427.6de7fa8e63ed.I40632c48e2a67a8aca05d…
Signed-off-by: Johannes Berg <johannes.berg(a)intel.com>
[ kovalev: bp to fix CVE-2025-38045; added Fixes tags ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
index ab80c79e35bc..d6d9f60839db 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/*
- * Copyright (C) 2018-2022 Intel Corporation
+ * Copyright (C) 2018-2025 Intel Corporation
*/
#include <linux/firmware.h>
#include "iwl-drv.h"
@@ -1363,15 +1363,15 @@ void _iwl_dbg_tlv_time_point(struct iwl_fw_runtime *fwrt,
switch (tp_id) {
case IWL_FW_INI_TIME_POINT_EARLY:
iwl_dbg_tlv_init_cfg(fwrt);
- iwl_dbg_tlv_apply_config(fwrt, conf_list);
iwl_dbg_tlv_update_drams(fwrt);
iwl_dbg_tlv_tp_trigger(fwrt, sync, trig_list, tp_data, NULL);
+ iwl_dbg_tlv_apply_config(fwrt, conf_list);
break;
case IWL_FW_INI_TIME_POINT_AFTER_ALIVE:
iwl_dbg_tlv_apply_buffers(fwrt);
iwl_dbg_tlv_send_hcmds(fwrt, hcmd_list);
- iwl_dbg_tlv_apply_config(fwrt, conf_list);
iwl_dbg_tlv_tp_trigger(fwrt, sync, trig_list, tp_data, NULL);
+ iwl_dbg_tlv_apply_config(fwrt, conf_list);
break;
case IWL_FW_INI_TIME_POINT_PERIODIC:
iwl_dbg_tlv_set_periodic_trigs(fwrt);
@@ -1381,14 +1381,14 @@ void _iwl_dbg_tlv_time_point(struct iwl_fw_runtime *fwrt,
case IWL_FW_INI_TIME_POINT_MISSED_BEACONS:
case IWL_FW_INI_TIME_POINT_FW_DHC_NOTIFICATION:
iwl_dbg_tlv_send_hcmds(fwrt, hcmd_list);
- iwl_dbg_tlv_apply_config(fwrt, conf_list);
iwl_dbg_tlv_tp_trigger(fwrt, sync, trig_list, tp_data,
iwl_dbg_tlv_check_fw_pkt);
+ iwl_dbg_tlv_apply_config(fwrt, conf_list);
break;
default:
iwl_dbg_tlv_send_hcmds(fwrt, hcmd_list);
- iwl_dbg_tlv_apply_config(fwrt, conf_list);
iwl_dbg_tlv_tp_trigger(fwrt, sync, trig_list, tp_data, NULL);
+ iwl_dbg_tlv_apply_config(fwrt, conf_list);
break;
}
}
--
2.50.1
From: Christian Hitz <christian.hitz(a)bbv.ch>
led_banks contains LED module number(s) that should be grouped into the
module bank. led_banks is 0-initialized.
By checking the led_banks entries for 0, un-set entries are detected.
But a 0-entry also indicates that LED module 0 should be grouped into the
module bank.
By only iterating over the available entries no check for unused entries
is required and LED module 0 can be added to bank.
Signed-off-by: Christian Hitz <christian.hitz(a)bbv.ch>
Cc: stable(a)vger.kernel.org
---
drivers/leds/leds-lp50xx.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/leds/leds-lp50xx.c b/drivers/leds/leds-lp50xx.c
index 94f8ef6b482c..d50c7f3e8f99 100644
--- a/drivers/leds/leds-lp50xx.c
+++ b/drivers/leds/leds-lp50xx.c
@@ -341,17 +341,15 @@ static int lp50xx_brightness_set(struct led_classdev *cdev,
return ret;
}
-static int lp50xx_set_banks(struct lp50xx *priv, u32 led_banks[])
+static int lp50xx_set_banks(struct lp50xx *priv, u32 led_banks[], int num_leds)
{
u8 led_config_lo, led_config_hi;
u32 bank_enable_mask = 0;
int ret;
int i;
- for (i = 0; i < priv->chip_info->max_modules; i++) {
- if (led_banks[i])
- bank_enable_mask |= (1 << led_banks[i]);
- }
+ for (i = 0; i < num_leds; i++)
+ bank_enable_mask |= (1 << led_banks[i]);
led_config_lo = bank_enable_mask;
led_config_hi = bank_enable_mask >> 8;
@@ -405,7 +403,7 @@ static int lp50xx_probe_leds(struct fwnode_handle *child, struct lp50xx *priv,
return ret;
}
- ret = lp50xx_set_banks(priv, led_banks);
+ ret = lp50xx_set_banks(priv, led_banks, num_leds);
if (ret) {
dev_err(priv->dev, "Cannot setup banked LEDs\n");
return ret;
--
2.51.0
The patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 9daa5a8795865f9a3c93d8d1066785b07ded6073
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101905-removal-wistful-dd49@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 9daa5a8795865f9a3c93d8d1066785b07ded6073 Mon Sep 17 00:00:00 2001
From: Vineeth Vijayan <vneethv(a)linux.ibm.com>
Date: Wed, 1 Oct 2025 15:38:17 +0200
Subject: [PATCH] s390/cio: Update purge function to unregister the unused
subchannels
Starting with 'commit 2297791c92d0 ("s390/cio: dont unregister
subchannel from child-drivers")', cio no longer unregisters
subchannels when the attached device is invalid or unavailable.
As an unintended side-effect, the cio_ignore purge function no longer
removes subchannels for devices on the cio_ignore list if no CCW device
is attached. This situation occurs when a CCW device is non-operational
or unavailable
To ensure the same outcome of the purge function as when the
current cio_ignore list had been active during boot, update the purge
function to remove I/O subchannels without working CCW devices if the
associated device number is found on the cio_ignore list.
Fixes: 2297791c92d0 ("s390/cio: dont unregister subchannel from child-drivers")
Suggested-by: Peter Oberparleiter <oberpar(a)linux.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar(a)linux.ibm.com>
Signed-off-by: Vineeth Vijayan <vneethv(a)linux.ibm.com>
Signed-off-by: Heiko Carstens <hca(a)linux.ibm.com>
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index fb2c07cb4d3d..4b2dae6eb376 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1316,23 +1316,34 @@ void ccw_device_schedule_recovery(void)
spin_unlock_irqrestore(&recovery_lock, flags);
}
-static int purge_fn(struct device *dev, void *data)
+static int purge_fn(struct subchannel *sch, void *data)
{
- struct ccw_device *cdev = to_ccwdev(dev);
- struct ccw_dev_id *id = &cdev->private->dev_id;
- struct subchannel *sch = to_subchannel(cdev->dev.parent);
+ struct ccw_device *cdev;
- spin_lock_irq(cdev->ccwlock);
- if (is_blacklisted(id->ssid, id->devno) &&
- (cdev->private->state == DEV_STATE_OFFLINE) &&
- (atomic_cmpxchg(&cdev->private->onoff, 0, 1) == 0)) {
- CIO_MSG_EVENT(3, "ccw: purging 0.%x.%04x\n", id->ssid,
- id->devno);
+ spin_lock_irq(&sch->lock);
+ if (sch->st != SUBCHANNEL_TYPE_IO || !sch->schib.pmcw.dnv)
+ goto unlock;
+
+ if (!is_blacklisted(sch->schid.ssid, sch->schib.pmcw.dev))
+ goto unlock;
+
+ cdev = sch_get_cdev(sch);
+ if (cdev) {
+ if (cdev->private->state != DEV_STATE_OFFLINE)
+ goto unlock;
+
+ if (atomic_cmpxchg(&cdev->private->onoff, 0, 1) != 0)
+ goto unlock;
ccw_device_sched_todo(cdev, CDEV_TODO_UNREG);
- css_sched_sch_todo(sch, SCH_TODO_UNREG);
atomic_set(&cdev->private->onoff, 0);
}
- spin_unlock_irq(cdev->ccwlock);
+
+ css_sched_sch_todo(sch, SCH_TODO_UNREG);
+ CIO_MSG_EVENT(3, "ccw: purging 0.%x.%04x%s\n", sch->schid.ssid,
+ sch->schib.pmcw.dev, cdev ? "" : " (no cdev)");
+
+unlock:
+ spin_unlock_irq(&sch->lock);
/* Abort loop in case of pending signal. */
if (signal_pending(current))
return -EINTR;
@@ -1348,7 +1359,7 @@ static int purge_fn(struct device *dev, void *data)
int ccw_purge_blacklisted(void)
{
CIO_MSG_EVENT(2, "ccw: purging blacklisted devices\n");
- bus_for_each_dev(&ccw_bus_type, NULL, NULL, purge_fn);
+ for_each_subchannel_staged(purge_fn, NULL, NULL);
return 0;
}
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 9daa5a8795865f9a3c93d8d1066785b07ded6073
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101905-depress-banjo-bc7e@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 9daa5a8795865f9a3c93d8d1066785b07ded6073 Mon Sep 17 00:00:00 2001
From: Vineeth Vijayan <vneethv(a)linux.ibm.com>
Date: Wed, 1 Oct 2025 15:38:17 +0200
Subject: [PATCH] s390/cio: Update purge function to unregister the unused
subchannels
Starting with 'commit 2297791c92d0 ("s390/cio: dont unregister
subchannel from child-drivers")', cio no longer unregisters
subchannels when the attached device is invalid or unavailable.
As an unintended side-effect, the cio_ignore purge function no longer
removes subchannels for devices on the cio_ignore list if no CCW device
is attached. This situation occurs when a CCW device is non-operational
or unavailable
To ensure the same outcome of the purge function as when the
current cio_ignore list had been active during boot, update the purge
function to remove I/O subchannels without working CCW devices if the
associated device number is found on the cio_ignore list.
Fixes: 2297791c92d0 ("s390/cio: dont unregister subchannel from child-drivers")
Suggested-by: Peter Oberparleiter <oberpar(a)linux.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar(a)linux.ibm.com>
Signed-off-by: Vineeth Vijayan <vneethv(a)linux.ibm.com>
Signed-off-by: Heiko Carstens <hca(a)linux.ibm.com>
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index fb2c07cb4d3d..4b2dae6eb376 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1316,23 +1316,34 @@ void ccw_device_schedule_recovery(void)
spin_unlock_irqrestore(&recovery_lock, flags);
}
-static int purge_fn(struct device *dev, void *data)
+static int purge_fn(struct subchannel *sch, void *data)
{
- struct ccw_device *cdev = to_ccwdev(dev);
- struct ccw_dev_id *id = &cdev->private->dev_id;
- struct subchannel *sch = to_subchannel(cdev->dev.parent);
+ struct ccw_device *cdev;
- spin_lock_irq(cdev->ccwlock);
- if (is_blacklisted(id->ssid, id->devno) &&
- (cdev->private->state == DEV_STATE_OFFLINE) &&
- (atomic_cmpxchg(&cdev->private->onoff, 0, 1) == 0)) {
- CIO_MSG_EVENT(3, "ccw: purging 0.%x.%04x\n", id->ssid,
- id->devno);
+ spin_lock_irq(&sch->lock);
+ if (sch->st != SUBCHANNEL_TYPE_IO || !sch->schib.pmcw.dnv)
+ goto unlock;
+
+ if (!is_blacklisted(sch->schid.ssid, sch->schib.pmcw.dev))
+ goto unlock;
+
+ cdev = sch_get_cdev(sch);
+ if (cdev) {
+ if (cdev->private->state != DEV_STATE_OFFLINE)
+ goto unlock;
+
+ if (atomic_cmpxchg(&cdev->private->onoff, 0, 1) != 0)
+ goto unlock;
ccw_device_sched_todo(cdev, CDEV_TODO_UNREG);
- css_sched_sch_todo(sch, SCH_TODO_UNREG);
atomic_set(&cdev->private->onoff, 0);
}
- spin_unlock_irq(cdev->ccwlock);
+
+ css_sched_sch_todo(sch, SCH_TODO_UNREG);
+ CIO_MSG_EVENT(3, "ccw: purging 0.%x.%04x%s\n", sch->schid.ssid,
+ sch->schib.pmcw.dev, cdev ? "" : " (no cdev)");
+
+unlock:
+ spin_unlock_irq(&sch->lock);
/* Abort loop in case of pending signal. */
if (signal_pending(current))
return -EINTR;
@@ -1348,7 +1359,7 @@ static int purge_fn(struct device *dev, void *data)
int ccw_purge_blacklisted(void)
{
CIO_MSG_EVENT(2, "ccw: purging blacklisted devices\n");
- bus_for_each_dev(&ccw_bus_type, NULL, NULL, purge_fn);
+ for_each_subchannel_staged(purge_fn, NULL, NULL);
return 0;
}
The RFCOMM driver confuses the local and remote modem control signals,
which specifically means that the reported DTR and RTS state will
instead reflect the remote end (i.e. DSR and CTS).
This issue dates back to the original driver (and a follow-on update)
merged in 2002, which resulted in a non-standard implementation of
TIOCMSET that allowed controlling also the TS07.10 IC and DV signals by
mapping them to the RI and DCD input flags, while TIOCMGET failed to
return the actual state of DTR and RTS.
Note that the bogus control of input signals in tiocmset() is just
dead code as those flags will have been masked out by the tty layer
since 2003.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable(a)vger.kernel.org
Signed-off-by: Johan Hovold <johan(a)kernel.org>
---
net/bluetooth/rfcomm/tty.c | 25 ++++++++++---------------
1 file changed, 10 insertions(+), 15 deletions(-)
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
index 376ce6de84be..f20f043cc9b5 100644
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
@@ -643,8 +643,8 @@ static void rfcomm_dev_modem_status(struct rfcomm_dlc *dlc, u8 v24_sig)
tty_port_tty_hangup(&dev->port, true);
dev->modem_status =
- ((v24_sig & RFCOMM_V24_RTC) ? (TIOCM_DSR | TIOCM_DTR) : 0) |
- ((v24_sig & RFCOMM_V24_RTR) ? (TIOCM_RTS | TIOCM_CTS) : 0) |
+ ((v24_sig & RFCOMM_V24_RTC) ? TIOCM_DSR : 0) |
+ ((v24_sig & RFCOMM_V24_RTR) ? TIOCM_CTS : 0) |
((v24_sig & RFCOMM_V24_IC) ? TIOCM_RI : 0) |
((v24_sig & RFCOMM_V24_DV) ? TIOCM_CD : 0);
}
@@ -1055,10 +1055,13 @@ static void rfcomm_tty_hangup(struct tty_struct *tty)
static int rfcomm_tty_tiocmget(struct tty_struct *tty)
{
struct rfcomm_dev *dev = tty->driver_data;
+ u8 v24_sig;
BT_DBG("tty %p dev %p", tty, dev);
- return dev->modem_status;
+ rfcomm_dlc_get_modem_status(dlc, &v24_sig);
+
+ return (v24_sig & (TIOCM_DTR | TIOCM_RTS)) | dev->modem_status;
}
static int rfcomm_tty_tiocmset(struct tty_struct *tty, unsigned int set, unsigned int clear)
@@ -1071,23 +1074,15 @@ static int rfcomm_tty_tiocmset(struct tty_struct *tty, unsigned int set, unsigne
rfcomm_dlc_get_modem_status(dlc, &v24_sig);
- if (set & TIOCM_DSR || set & TIOCM_DTR)
+ if (set & TIOCM_DTR)
v24_sig |= RFCOMM_V24_RTC;
- if (set & TIOCM_RTS || set & TIOCM_CTS)
+ if (set & TIOCM_RTS)
v24_sig |= RFCOMM_V24_RTR;
- if (set & TIOCM_RI)
- v24_sig |= RFCOMM_V24_IC;
- if (set & TIOCM_CD)
- v24_sig |= RFCOMM_V24_DV;
- if (clear & TIOCM_DSR || clear & TIOCM_DTR)
+ if (clear & TIOCM_DTR)
v24_sig &= ~RFCOMM_V24_RTC;
- if (clear & TIOCM_RTS || clear & TIOCM_CTS)
+ if (clear & TIOCM_RTS)
v24_sig &= ~RFCOMM_V24_RTR;
- if (clear & TIOCM_RI)
- v24_sig &= ~RFCOMM_V24_IC;
- if (clear & TIOCM_CD)
- v24_sig &= ~RFCOMM_V24_DV;
rfcomm_dlc_set_modem_status(dlc, v24_sig);
--
2.49.1
The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x 9daa5a8795865f9a3c93d8d1066785b07ded6073
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101904-seltzer-landslide-60b6@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 9daa5a8795865f9a3c93d8d1066785b07ded6073 Mon Sep 17 00:00:00 2001
From: Vineeth Vijayan <vneethv(a)linux.ibm.com>
Date: Wed, 1 Oct 2025 15:38:17 +0200
Subject: [PATCH] s390/cio: Update purge function to unregister the unused
subchannels
Starting with 'commit 2297791c92d0 ("s390/cio: dont unregister
subchannel from child-drivers")', cio no longer unregisters
subchannels when the attached device is invalid or unavailable.
As an unintended side-effect, the cio_ignore purge function no longer
removes subchannels for devices on the cio_ignore list if no CCW device
is attached. This situation occurs when a CCW device is non-operational
or unavailable
To ensure the same outcome of the purge function as when the
current cio_ignore list had been active during boot, update the purge
function to remove I/O subchannels without working CCW devices if the
associated device number is found on the cio_ignore list.
Fixes: 2297791c92d0 ("s390/cio: dont unregister subchannel from child-drivers")
Suggested-by: Peter Oberparleiter <oberpar(a)linux.ibm.com>
Reviewed-by: Peter Oberparleiter <oberpar(a)linux.ibm.com>
Signed-off-by: Vineeth Vijayan <vneethv(a)linux.ibm.com>
Signed-off-by: Heiko Carstens <hca(a)linux.ibm.com>
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index fb2c07cb4d3d..4b2dae6eb376 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -1316,23 +1316,34 @@ void ccw_device_schedule_recovery(void)
spin_unlock_irqrestore(&recovery_lock, flags);
}
-static int purge_fn(struct device *dev, void *data)
+static int purge_fn(struct subchannel *sch, void *data)
{
- struct ccw_device *cdev = to_ccwdev(dev);
- struct ccw_dev_id *id = &cdev->private->dev_id;
- struct subchannel *sch = to_subchannel(cdev->dev.parent);
+ struct ccw_device *cdev;
- spin_lock_irq(cdev->ccwlock);
- if (is_blacklisted(id->ssid, id->devno) &&
- (cdev->private->state == DEV_STATE_OFFLINE) &&
- (atomic_cmpxchg(&cdev->private->onoff, 0, 1) == 0)) {
- CIO_MSG_EVENT(3, "ccw: purging 0.%x.%04x\n", id->ssid,
- id->devno);
+ spin_lock_irq(&sch->lock);
+ if (sch->st != SUBCHANNEL_TYPE_IO || !sch->schib.pmcw.dnv)
+ goto unlock;
+
+ if (!is_blacklisted(sch->schid.ssid, sch->schib.pmcw.dev))
+ goto unlock;
+
+ cdev = sch_get_cdev(sch);
+ if (cdev) {
+ if (cdev->private->state != DEV_STATE_OFFLINE)
+ goto unlock;
+
+ if (atomic_cmpxchg(&cdev->private->onoff, 0, 1) != 0)
+ goto unlock;
ccw_device_sched_todo(cdev, CDEV_TODO_UNREG);
- css_sched_sch_todo(sch, SCH_TODO_UNREG);
atomic_set(&cdev->private->onoff, 0);
}
- spin_unlock_irq(cdev->ccwlock);
+
+ css_sched_sch_todo(sch, SCH_TODO_UNREG);
+ CIO_MSG_EVENT(3, "ccw: purging 0.%x.%04x%s\n", sch->schid.ssid,
+ sch->schib.pmcw.dev, cdev ? "" : " (no cdev)");
+
+unlock:
+ spin_unlock_irq(&sch->lock);
/* Abort loop in case of pending signal. */
if (signal_pending(current))
return -EINTR;
@@ -1348,7 +1359,7 @@ static int purge_fn(struct device *dev, void *data)
int ccw_purge_blacklisted(void)
{
CIO_MSG_EVENT(2, "ccw: purging blacklisted devices\n");
- bus_for_each_dev(&ccw_bus_type, NULL, NULL, purge_fn);
+ for_each_subchannel_staged(purge_fn, NULL, NULL);
return 0;
}
If you need to cancel your Spirit Airlines flight, do not worry — the process is fairly straightforward! You can call Spirit Airlines directly at 📞 1-866-284-3022. Whether you are canceling due to personal reasons, weather disruptions, or a change in plans, this guide will walk you through every step. While cancellations can be made online, calling may provide faster support and more detailed assistance.
📍 Step 1: Find Your Flight Information
Before you call or go online, make sure you have the following information ready:
✅ Your booking confirmation number
✅ The name on the reservation
✅ Your flight details (departure date, destination, etc.)
Having this information handy will make the process quicker, especially if you are speaking with a Spirit Airlines representative at 📞 1-866-284-3022.
📞 Step 2: Call Spirit Airlines Customer Support
The easiest and most direct way to cancel your flight is by calling Spirit Airlines customer service at 1-866-284-3022. This line is available to assist with cancellations, modifications, and refund requests.
🧑💼 When you call:
• You will be prompted to enter your confirmation number
• Select the option for "existing reservation"
• Ask to speak to a live representative if needed
Pro tip: Call during off-peak hours (early mornings or late evenings) to avoid long wait times.
🌐 Step 3: Cancel Online (Alternative Option)
If you prefer to cancel online, follow these steps:
1. Go to the official Volaris Airlines website
2. Click on "My Trips" at the top of the homepage
3. Enter your last name and confirmation code
4. Find the reservation you want to cancel
5. Click on “Cancel” and follow the on-screen instructions
However, if you run into any issues or if your fare type does not allow online cancellations, don’t hesitate to call 1-866-284-3022 for support.
💸 Step 4: Check for Refund or Credit Eligibility
Spirit Airlines is a low-cost carrier, and refund policies can vary depending on the fare type. Here is a quick breakdown:
🟢 WORKS Bundle or Refundable Tickets: Eligible for a full refund
🟡 Standard Tickets: May not be refundable but can be canceled for a credit (valid for 90 days)
🔴 Basic Fare or Promo Tickets: Often non-refundable
To clarify your eligibility, it is best to speak to a Porter representative directly at 📞 1-866-284-3022. They can explain whether you will receive a refund, a travel credit, or incur a cancellation fee.
⏱️ Step 5: Cancel Within 24 Hours (If Possible)
✅ If you booked your ticket less than 24 hours ago AND your flight is at least 7 days away, you are eligible for a full refund with no cancellation fees.
To take advantage of this policy, it is strongly advised to call 1-866-284-3022 right away and notify them that you fall within the 24-hour window.
📧 Step 6: Get Confirmation of Cancellation
Once your flight is canceled, make sure to:
📨 Check your email for a cancellation confirmation
💳 Verify if any refund or credit has been issued to your account
📅 Note the expiration date of any travel credit issued (typically valid for 90 days)
If you have not received confirmation within a few hours, call 📞 1-866-284-3022 again to follow up and ensure your cancellation was processed correctly.
🤔 Need Help? Contact Spirit Airlines Again
Porter’s website can sometimes be tricky or limited in functionality, especially for special fares or last-minute cancellations. That is why calling customer service at 📞 1-866-284-3022 is always the most reliable option. Their agents can also assist with:
• Modifying your travel dates
• Applying travel credits
• Rebooking future flights
• Answering policy-related questions
✍️ Final Thoughts
Canceling a Spirit Airlines flight does not have to be stressful. Whether you are canceling online or over the phone, knowing the process and your rights can save you time and money. Always keep the Porter customer service number 📞 1-866-284-3022 on hand for quick assistance and peace of mind.
🧭 Quick Recap:
• Prepare your booking info
• Try canceling online or via the Porter app
• For best results, call Porter directly at 📞 1-866-284-3022
• Check your eligibility for refunds or travel credits
• Always get a cancellation confirmation
✈️ Safe travels — or smooth cancellations — whichever your journey brings next!
If you need to cancel your Aeromexico Airlines flight, do not worry — the process is fairly straightforward! You can call Aeromexico Airlines directly at 📞 1-866-284-3022. Whether you are canceling due to personal reasons, weather disruptions, or a change in plans, this guide will walk you through every step. While cancellations can be made online, calling may provide faster support and more detailed assistance.
📍 Step 1: Find Your Flight Information
Before you call or go online, make sure you have the following information ready:
✅ Your booking confirmation number
✅ The name on the reservation
✅ Your flight details (departure date, destination, etc.)
Having this information handy will make the process quicker, especially if you are speaking with a Aeromexico Airlines representative at 📞 1-866-284-3022.
📞 Step 2: Call Aeromexico Airlines Customer Support
The easiest and most direct way to cancel your flight is by calling Aeromexico Airlines customer service at 1-866-284-3022. This line is available to assist with cancellations, modifications, and refund requests.
🧑💼 When you call:
• You will be prompted to enter your confirmation number
• Select the option for "existing reservation"
• Ask to speak to a live representative if needed
Pro tip: Call during off-peak hours (early mornings or late evenings) to avoid long wait times.
🌐 Step 3: Cancel Online (Alternative Option)
If you prefer to cancel online, follow these steps:
1. Go to the official Volaris Airlines website
2. Click on "My Trips" at the top of the homepage
3. Enter your last name and confirmation code
4. Find the reservation you want to cancel
5. Click on “Cancel” and follow the on-screen instructions
However, if you run into any issues or if your fare type does not allow online cancellations, don’t hesitate to call 1-866-284-3022 for support.
💸 Step 4: Check for Refund or Credit Eligibility
Aeromexico Airlines is a low-cost carrier, and refund policies can vary depending on the fare type. Here is a quick breakdown:
🟢 WORKS Bundle or Refundable Tickets: Eligible for a full refund
🟡 Standard Tickets: May not be refundable but can be canceled for a credit (valid for 90 days)
🔴 Basic Fare or Promo Tickets: Often non-refundable
To clarify your eligibility, it is best to speak to a Porter representative directly at 📞 1-866-284-3022. They can explain whether you will receive a refund, a travel credit, or incur a cancellation fee.
⏱️ Step 5: Cancel Within 24 Hours (If Possible)
✅ If you booked your ticket less than 24 hours ago AND your flight is at least 7 days away, you are eligible for a full refund with no cancellation fees.
To take advantage of this policy, it is strongly advised to call 1-866-284-3022 right away and notify them that you fall within the 24-hour window.
📧 Step 6: Get Confirmation of Cancellation
Once your flight is canceled, make sure to:
📨 Check your email for a cancellation confirmation
💳 Verify if any refund or credit has been issued to your account
📅 Note the expiration date of any travel credit issued (typically valid for 90 days)
If you have not received confirmation within a few hours, call 📞 1-866-284-3022 again to follow up and ensure your cancellation was processed correctly.
🤔 Need Help? Contact Aeromexico Airlines Again
Porter’s website can sometimes be tricky or limited in functionality, especially for special fares or last-minute cancellations. That is why calling customer service at 📞 1-866-284-3022 is always the most reliable option. Their agents can also assist with:
• Modifying your travel dates
• Applying travel credits
• Rebooking future flights
• Answering policy-related questions
✍️ Final Thoughts
Canceling a Aeromexico Airlines flight does not have to be stressful. Whether you are canceling online or over the phone, knowing the process and your rights can save you time and money. Always keep the Porter customer service number 📞 1-866-284-3022 on hand for quick assistance and peace of mind.
🧭 Quick Recap:
• Prepare your booking info
• Try canceling online or via the Porter app
• For best results, call Porter directly at 📞 1-866-284-3022
• Check your eligibility for refunds or travel credits
• Always get a cancellation confirmation
✈️ Safe travels — or smooth cancellations — whichever your journey brings next!
If you need to cancel your Avelo Airlines flight, do not worry — the process is fairly straightforward! You can call Avelo Airlines directly at 📞 1-866-284-3022. Whether you are canceling due to personal reasons, weather disruptions, or a change in plans, this guide will walk you through every step. While cancellations can be made online, calling may provide faster support and more detailed assistance.
📍 Step 1: Find Your Flight Information
Before you call or go online, make sure you have the following information ready:
✅ Your booking confirmation number
✅ The name on the reservation
✅ Your flight details (departure date, destination, etc.)
Having this information handy will make the process quicker, especially if you are speaking with a Avelo Airlines representative at 📞 1-866-284-3022.
📞 Step 2: Call Avelo Airlines Customer Support
The easiest and most direct way to cancel your flight is by calling Avelo Airlines customer service at 1-866-284-3022. This line is available to assist with cancellations, modifications, and refund requests.
🧑💼 When you call:
• You will be prompted to enter your confirmation number
• Select the option for "existing reservation"
• Ask to speak to a live representative if needed
Pro tip: Call during off-peak hours (early mornings or late evenings) to avoid long wait times.
🌐 Step 3: Cancel Online (Alternative Option)
If you prefer to cancel online, follow these steps:
1. Go to the official Volaris Airlines website
2. Click on "My Trips" at the top of the homepage
3. Enter your last name and confirmation code
4. Find the reservation you want to cancel
5. Click on “Cancel” and follow the on-screen instructions
However, if you run into any issues or if your fare type does not allow online cancellations, don’t hesitate to call 1-866-284-3022 for support.
💸 Step 4: Check for Refund or Credit Eligibility
Avelo Airlines is a low-cost carrier, and refund policies can vary depending on the fare type. Here is a quick breakdown:
🟢 WORKS Bundle or Refundable Tickets: Eligible for a full refund
🟡 Standard Tickets: May not be refundable but can be canceled for a credit (valid for 90 days)
🔴 Basic Fare or Promo Tickets: Often non-refundable
To clarify your eligibility, it is best to speak to a Porter representative directly at 📞 1-866-284-3022. They can explain whether you will receive a refund, a travel credit, or incur a cancellation fee.
⏱️ Step 5: Cancel Within 24 Hours (If Possible)
✅ If you booked your ticket less than 24 hours ago AND your flight is at least 7 days away, you are eligible for a full refund with no cancellation fees.
To take advantage of this policy, it is strongly advised to call 1-866-284-3022 right away and notify them that you fall within the 24-hour window.
📧 Step 6: Get Confirmation of Cancellation
Once your flight is canceled, make sure to:
📨 Check your email for a cancellation confirmation
💳 Verify if any refund or credit has been issued to your account
📅 Note the expiration date of any travel credit issued (typically valid for 90 days)
If you have not received confirmation within a few hours, call 📞 1-866-284-3022 again to follow up and ensure your cancellation was processed correctly.
🤔 Need Help? Contact Avelo Airlines Again
Porter’s website can sometimes be tricky or limited in functionality, especially for special fares or last-minute cancellations. That is why calling customer service at 📞 1-866-284-3022 is always the most reliable option. Their agents can also assist with:
• Modifying your travel dates
• Applying travel credits
• Rebooking future flights
• Answering policy-related questions
✍️ Final Thoughts
Canceling a Avelo Airlines flight does not have to be stressful. Whether you are canceling online or over the phone, knowing the process and your rights can save you time and money. Always keep the Porter customer service number 📞 1-866-284-3022 on hand for quick assistance and peace of mind.
🧭 Quick Recap:
• Prepare your booking info
• Try canceling online or via the Porter app
• For best results, call Porter directly at 📞 1-866-284-3022
• Check your eligibility for refunds or travel credits
• Always get a cancellation confirmation
✈️ Safe travels — or smooth cancellations — whichever your journey brings next!
If you need to cancel your Contour Airlines flight, do not worry — the process is fairly straightforward! You can call Contour Airlines directly at 📞 1-866-284-3022. Whether you are canceling due to personal reasons, weather disruptions, or a change in plans, this guide will walk you through every step. While cancellations can be made online, calling may provide faster support and more detailed assistance.
📍 Step 1: Find Your Flight Information
Before you call or go online, make sure you have the following information ready:
✅ Your booking confirmation number
✅ The name on the reservation
✅ Your flight details (departure date, destination, etc.)
Having this information handy will make the process quicker, especially if you are speaking with a Contour Airlines representative at 📞 1-866-284-3022.
📞 Step 2: Call Contour Airlines Customer Support
The easiest and most direct way to cancel your flight is by calling Contour Airlines customer service at 1-866-284-3022. This line is available to assist with cancellations, modifications, and refund requests.
🧑💼 When you call:
• You will be prompted to enter your confirmation number
• Select the option for "existing reservation"
• Ask to speak to a live representative if needed
Pro tip: Call during off-peak hours (early mornings or late evenings) to avoid long wait times.
🌐 Step 3: Cancel Online (Alternative Option)
If you prefer to cancel online, follow these steps:
1. Go to the official Volaris Airlines website
2. Click on "My Trips" at the top of the homepage
3. Enter your last name and confirmation code
4. Find the reservation you want to cancel
5. Click on “Cancel” and follow the on-screen instructions
However, if you run into any issues or if your fare type does not allow online cancellations, don’t hesitate to call 1-866-284-3022 for support.
💸 Step 4: Check for Refund or Credit Eligibility
Contour Airlines is a low-cost carrier, and refund policies can vary depending on the fare type. Here is a quick breakdown:
🟢 WORKS Bundle or Refundable Tickets: Eligible for a full refund
🟡 Standard Tickets: May not be refundable but can be canceled for a credit (valid for 90 days)
🔴 Basic Fare or Promo Tickets: Often non-refundable
To clarify your eligibility, it is best to speak to a Porter representative directly at 📞 1-866-284-3022. They can explain whether you will receive a refund, a travel credit, or incur a cancellation fee.
⏱️ Step 5: Cancel Within 24 Hours (If Possible)
✅ If you booked your ticket less than 24 hours ago AND your flight is at least 7 days away, you are eligible for a full refund with no cancellation fees.
To take advantage of this policy, it is strongly advised to call 1-866-284-3022 right away and notify them that you fall within the 24-hour window.
📧 Step 6: Get Confirmation of Cancellation
Once your flight is canceled, make sure to:
📨 Check your email for a cancellation confirmation
💳 Verify if any refund or credit has been issued to your account
📅 Note the expiration date of any travel credit issued (typically valid for 90 days)
If you have not received confirmation within a few hours, call 📞 1-866-284-3022 again to follow up and ensure your cancellation was processed correctly.
🤔 Need Help? Contact Contour Airlines Again
Porter’s website can sometimes be tricky or limited in functionality, especially for special fares or last-minute cancellations. That is why calling customer service at 📞 1-866-284-3022 is always the most reliable option. Their agents can also assist with:
• Modifying your travel dates
• Applying travel credits
• Rebooking future flights
• Answering policy-related questions
✍️ Final Thoughts
Canceling a Contour Airlines flight does not have to be stressful. Whether you are canceling online or over the phone, knowing the process and your rights can save you time and money. Always keep the Porter customer service number 📞 1-866-284-3022 on hand for quick assistance and peace of mind.
🧭 Quick Recap:
• Prepare your booking info
• Try canceling online or via the Porter app
• For best results, call Porter directly at 📞 1-866-284-3022
• Check your eligibility for refunds or travel credits
• Always get a cancellation confirmation
✈️ Safe travels — or smooth cancellations — whichever your journey brings next!
If you need to cancel your Condor Airlines flight, do not worry — the process is fairly straightforward! You can call Condor Airlines directly at 📞 1-866-284-3022. Whether you are canceling due to personal reasons, weather disruptions, or a change in plans, this guide will walk you through every step. While cancellations can be made online, calling may provide faster support and more detailed assistance.
📍 Step 1: Find Your Flight Information
Before you call or go online, make sure you have the following information ready:
✅ Your booking confirmation number
✅ The name on the reservation
✅ Your flight details (departure date, destination, etc.)
Having this information handy will make the process quicker, especially if you are speaking with a Condor Airlines representative at 📞 1-866-284-3022.
📞 Step 2: Call Condor Airlines Customer Support
The easiest and most direct way to cancel your flight is by calling Condor Airlines customer service at 1-866-284-3022. This line is available to assist with cancellations, modifications, and refund requests.
🧑💼 When you call:
• You will be prompted to enter your confirmation number
• Select the option for "existing reservation"
• Ask to speak to a live representative if needed
Pro tip: Call during off-peak hours (early mornings or late evenings) to avoid long wait times.
🌐 Step 3: Cancel Online (Alternative Option)
If you prefer to cancel online, follow these steps:
1. Go to the official Volaris Airlines website
2. Click on "My Trips" at the top of the homepage
3. Enter your last name and confirmation code
4. Find the reservation you want to cancel
5. Click on “Cancel” and follow the on-screen instructions
However, if you run into any issues or if your fare type does not allow online cancellations, don’t hesitate to call 1-866-284-3022 for support.
💸 Step 4: Check for Refund or Credit Eligibility
Condor Airlines is a low-cost carrier, and refund policies can vary depending on the fare type. Here is a quick breakdown:
🟢 WORKS Bundle or Refundable Tickets: Eligible for a full refund
🟡 Standard Tickets: May not be refundable but can be canceled for a credit (valid for 90 days)
🔴 Basic Fare or Promo Tickets: Often non-refundable
To clarify your eligibility, it is best to speak to a Porter representative directly at 📞 1-866-284-3022. They can explain whether you will receive a refund, a travel credit, or incur a cancellation fee.
⏱️ Step 5: Cancel Within 24 Hours (If Possible)
✅ If you booked your ticket less than 24 hours ago AND your flight is at least 7 days away, you are eligible for a full refund with no cancellation fees.
To take advantage of this policy, it is strongly advised to call 1-866-284-3022 right away and notify them that you fall within the 24-hour window.
📧 Step 6: Get Confirmation of Cancellation
Once your flight is canceled, make sure to:
📨 Check your email for a cancellation confirmation
💳 Verify if any refund or credit has been issued to your account
📅 Note the expiration date of any travel credit issued (typically valid for 90 days)
If you have not received confirmation within a few hours, call 📞 1-866-284-3022 again to follow up and ensure your cancellation was processed correctly.
🤔 Need Help? Contact Condor Airlines Again
Porter’s website can sometimes be tricky or limited in functionality, especially for special fares or last-minute cancellations. That is why calling customer service at 📞 1-866-284-3022 is always the most reliable option. Their agents can also assist with:
• Modifying your travel dates
• Applying travel credits
• Rebooking future flights
• Answering policy-related questions
✍️ Final Thoughts
Canceling a Condor Airlines flight does not have to be stressful. Whether you are canceling online or over the phone, knowing the process and your rights can save you time and money. Always keep the Porter customer service number 📞 1-866-284-3022 on hand for quick assistance and peace of mind.
🧭 Quick Recap:
• Prepare your booking info
• Try canceling online or via the Porter app
• For best results, call Porter directly at 📞 1-866-284-3022
• Check your eligibility for refunds or travel credits
• Always get a cancellation confirmation
✈️ Safe travels — or smooth cancellations — whichever your journey brings next!
If you need to cancel your Frontier Airlines flight, do not worry — the process is fairly straightforward! You can call Frontier Airlines directly at 📞 1-866-284-3022. Whether you are canceling due to personal reasons, weather disruptions, or a change in plans, this guide will walk you through every step. While cancellations can be made online, calling may provide faster support and more detailed assistance.
📍 Step 1: Find Your Flight Information
Before you call or go online, make sure you have the following information ready:
✅ Your booking confirmation number
✅ The name on the reservation
✅ Your flight details (departure date, destination, etc.)
Having this information handy will make the process quicker, especially if you are speaking with a Frontier Airlines representative at 📞 1-866-284-3022.
📞 Step 2: Call Frontier Airlines Customer Support
The easiest and most direct way to cancel your flight is by calling Frontier Airlines customer service at 1-866-284-3022. This line is available to assist with cancellations, modifications, and refund requests.
🧑💼 When you call:
• You will be prompted to enter your confirmation number
• Select the option for "existing reservation"
• Ask to speak to a live representative if needed
Pro tip: Call during off-peak hours (early mornings or late evenings) to avoid long wait times.
🌐 Step 3: Cancel Online (Alternative Option)
If you prefer to cancel online, follow these steps:
1. Go to the official Volaris Airlines website
2. Click on "My Trips" at the top of the homepage
3. Enter your last name and confirmation code
4. Find the reservation you want to cancel
5. Click on “Cancel” and follow the on-screen instructions
However, if you run into any issues or if your fare type does not allow online cancellations, don’t hesitate to call 1-866-284-3022 for support.
💸 Step 4: Check for Refund or Credit Eligibility
Frontier Airlines is a low-cost carrier, and refund policies can vary depending on the fare type. Here is a quick breakdown:
🟢 WORKS Bundle or Refundable Tickets: Eligible for a full refund
🟡 Standard Tickets: May not be refundable but can be canceled for a credit (valid for 90 days)
🔴 Basic Fare or Promo Tickets: Often non-refundable
To clarify your eligibility, it is best to speak to a Porter representative directly at 📞 1-866-284-3022. They can explain whether you will receive a refund, a travel credit, or incur a cancellation fee.
⏱️ Step 5: Cancel Within 24 Hours (If Possible)
✅ If you booked your ticket less than 24 hours ago AND your flight is at least 7 days away, you are eligible for a full refund with no cancellation fees.
To take advantage of this policy, it is strongly advised to call 1-866-284-3022 right away and notify them that you fall within the 24-hour window.
📧 Step 6: Get Confirmation of Cancellation
Once your flight is canceled, make sure to:
📨 Check your email for a cancellation confirmation
💳 Verify if any refund or credit has been issued to your account
📅 Note the expiration date of any travel credit issued (typically valid for 90 days)
If you have not received confirmation within a few hours, call 📞 1-866-284-3022 again to follow up and ensure your cancellation was processed correctly.
🤔 Need Help? Contact Frontier Airlines Again
Porter’s website can sometimes be tricky or limited in functionality, especially for special fares or last-minute cancellations. That is why calling customer service at 📞 1-866-284-3022 is always the most reliable option. Their agents can also assist with:
• Modifying your travel dates
• Applying travel credits
• Rebooking future flights
• Answering policy-related questions
✍️ Final Thoughts
Canceling a Frontier Airlines flight does not have to be stressful. Whether you are canceling online or over the phone, knowing the process and your rights can save you time and money. Always keep the Porter customer service number 📞 1-866-284-3022 on hand for quick assistance and peace of mind.
🧭 Quick Recap:
• Prepare your booking info
• Try canceling online or via the Porter app
• For best results, call Porter directly at 📞 1-866-284-3022
• Check your eligibility for refunds or travel credits
• Always get a cancellation confirmation
✈️ Safe travels — or smooth cancellations — whichever your journey brings next!
Fix the order of the freq-table-hz property, then convert to OPP tables
and add interconnect support for UFS for the SM6350 SoC.
Signed-off-by: Luca Weiss <luca.weiss(a)fairphone.com>
---
Changes in v2:
- Resend, pick up tags
- Link to v1: https://lore.kernel.org/r/20250314-sm6350-ufs-things-v1-0-3600362cc52c@fair…
---
Luca Weiss (3):
arm64: dts: qcom: sm6350: Fix wrong order of freq-table-hz for UFS
arm64: dts: qcom: sm6350: Add OPP table support to UFSHC
arm64: dts: qcom: sm6350: Add interconnect support to UFS
arch/arm64/boot/dts/qcom/sm6350.dtsi | 49 ++++++++++++++++++++++++++++--------
1 file changed, 39 insertions(+), 10 deletions(-)
---
base-commit: a92c761bcac3d5042559107fa7679470727a4bcb
change-id: 20250314-sm6350-ufs-things-53c5de9fec5e
Best regards,
--
Luca Weiss <luca.weiss(a)fairphone.com>
If the send_peer_notif counter and the peer event notify are not synchronized.
It may cause problems such as the loss or dup of peer notify event.
Before this patch:
- If should_notify_peers is true and the lock for send_peer_notif-- fails, peer
event may be sent again in next mii_monitor loop, because should_notify_peers
is still true.
- If should_notify_peers is true and the lock for send_peer_notif-- succeeded,
but the lock for peer event fails, the peer event will be lost.
This patch locks the RTNL for send_peer_notif, events, and commit simultaneously.
Fixes: 07a4ddec3ce9 ("bonding: add an option to specify a delay between peer notifications")
Cc: Jay Vosburgh <jv(a)jvosburgh.net>
Cc: Andrew Lunn <andrew+netdev(a)lunn.ch>
Cc: Eric Dumazet <edumazet(a)google.com>
Cc: Jakub Kicinski <kuba(a)kernel.org>
Cc: Paolo Abeni <pabeni(a)redhat.com>
Cc: Hangbin Liu <liuhangbin(a)gmail.com>
Cc: Nikolay Aleksandrov <razor(a)blackwall.org>
Cc: Vincent Bernat <vincent(a)bernat.ch>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Tonghao Zhang <tonghao(a)bamaicloud.com>
---
drivers/net/bonding/bond_main.c | 40 +++++++++++++++------------------
1 file changed, 18 insertions(+), 22 deletions(-)
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 5791c3e39baa..52b7ac8ddfbc 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2971,7 +2971,7 @@ static void bond_mii_monitor(struct work_struct *work)
{
struct bonding *bond = container_of(work, struct bonding,
mii_work.work);
- bool should_notify_peers = false;
+ bool should_notify_peers;
bool commit;
unsigned long delay;
struct slave *slave;
@@ -2983,30 +2983,33 @@ static void bond_mii_monitor(struct work_struct *work)
goto re_arm;
rcu_read_lock();
+
should_notify_peers = bond_should_notify_peers(bond);
commit = !!bond_miimon_inspect(bond);
- if (bond->send_peer_notif) {
- rcu_read_unlock();
- if (rtnl_trylock()) {
- bond->send_peer_notif--;
- rtnl_unlock();
- }
- } else {
- rcu_read_unlock();
- }
- if (commit) {
+ rcu_read_unlock();
+
+ if (commit || bond->send_peer_notif) {
/* Race avoidance with bond_close cancel of workqueue */
if (!rtnl_trylock()) {
delay = 1;
- should_notify_peers = false;
goto re_arm;
}
- bond_for_each_slave(bond, slave, iter) {
- bond_commit_link_state(slave, BOND_SLAVE_NOTIFY_LATER);
+ if (commit) {
+ bond_for_each_slave(bond, slave, iter) {
+ bond_commit_link_state(slave,
+ BOND_SLAVE_NOTIFY_LATER);
+ }
+ bond_miimon_commit(bond);
+ }
+
+ if (bond->send_peer_notif) {
+ bond->send_peer_notif--;
+ if (should_notify_peers)
+ call_netdevice_notifiers(NETDEV_NOTIFY_PEERS,
+ bond->dev);
}
- bond_miimon_commit(bond);
rtnl_unlock(); /* might sleep, hold no other locks */
}
@@ -3014,13 +3017,6 @@ static void bond_mii_monitor(struct work_struct *work)
re_arm:
if (bond->params.miimon)
queue_delayed_work(bond->wq, &bond->mii_work, delay);
-
- if (should_notify_peers) {
- if (!rtnl_trylock())
- return;
- call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, bond->dev);
- rtnl_unlock();
- }
}
static int bond_upper_dev_walk(struct net_device *upper,
--
2.34.1
In i2c_amd_probe(), amd_mp2_find_device() utilizes
driver_find_next_device() which internally calls driver_find_device()
to locate the matching device. driver_find_device() increments the
reference count of the found device by calling get_device(), but
amd_mp2_find_device() fails to call put_device() to decrement the
reference count before returning. This results in a reference count
leak of the PCI device each time i2c_amd_probe() is executed, which
may prevent the device from being properly released and cause a memory
leak.
Found by code review.
Cc: stable(a)vger.kernel.org
Fixes: 529766e0a011 ("i2c: Add drivers for the AMD PCIe MP2 I2C controller")
Signed-off-by: Ma Ke <make24(a)iscas.ac.cn>
---
Changes in v3:
- kept the temporary variable to store pci_get_drvdata() result before releasing the device reference;
Changes in v2:
- modified the missing initialization in the patch. Sorry for the omission.
---
drivers/i2c/busses/i2c-amd-mp2-pci.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-amd-mp2-pci.c b/drivers/i2c/busses/i2c-amd-mp2-pci.c
index ef7370d3dbea..60edbabc2986 100644
--- a/drivers/i2c/busses/i2c-amd-mp2-pci.c
+++ b/drivers/i2c/busses/i2c-amd-mp2-pci.c
@@ -458,13 +458,16 @@ struct amd_mp2_dev *amd_mp2_find_device(void)
{
struct device *dev;
struct pci_dev *pci_dev;
+ struct amd_mp2_dev *mp2_dev;
dev = driver_find_next_device(&amd_mp2_pci_driver.driver, NULL);
if (!dev)
return NULL;
pci_dev = to_pci_dev(dev);
- return (struct amd_mp2_dev *)pci_get_drvdata(pci_dev);
+ mp2_dev = (struct amd_mp2_dev *)pci_get_drvdata(pci_dev);
+ put_device(dev);
+ return mp2_dev;
}
EXPORT_SYMBOL_GPL(amd_mp2_find_device);
--
2.17.1
vb2_ioctl_remove_bufs() call manipulates queue internal buffer list,
potentially overwriting some pointers used by the legacy fileio access
mode. Add a vb2_verify_memory_type() check symmetrical to
vb2_ioctl_create_bufs() to forbid that ioctl when fileio is active to
protect internal queue state between subsequent read/write calls.
CC: stable(a)vger.kernel.org
Fixes: a3293a85381e ("media: v4l2: Add REMOVE_BUFS ioctl")
Reported-by: Shuangpeng Bai<SJB7183(a)psu.edu>
Suggested-by: Benjamin Gaignard <benjamin.gaignard(a)collabora.com>
Signed-off-by: Marek Szyprowski <m.szyprowski(a)samsung.com>
---
v2:
- dropped a change to vb2_ioctl_create_bufs(), as it is already handled
by the vb2_verify_memory_type() call
- replaced queue->type check in vb2_ioctl_remove_bufs() by a call to
vb2_verify_memory_type() which covers all cases
v1: https://lore.kernel.org/all/20251016111154.993949-1-m.szyprowski@samsung.co…
---
drivers/media/common/videobuf2/videobuf2-v4l2.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c
index d911021c1bb0..0de7490292fe 100644
--- a/drivers/media/common/videobuf2/videobuf2-v4l2.c
+++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c
@@ -1000,9 +1000,11 @@ int vb2_ioctl_remove_bufs(struct file *file, void *priv,
struct v4l2_remove_buffers *d)
{
struct video_device *vdev = video_devdata(file);
+ int res;
- if (vdev->queue->type != d->type)
- return -EINVAL;
+ res = vb2_verify_memory_type(vdev->queue, vdev->queue->memory, d->type);
+ if (res)
+ return res;
if (d->count == 0)
return 0;
--
2.34.1
From: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
On SoCs that only support the best-effort queue and not the network
control queue, calling alloc_etherdev_mqs() with fixed values for
TX/RX queues is not appropriate. Use the nc_queues flag from the
per-SoC match data to determine whether the network control queue
is available, and fall back to a single TX/RX queue when it is not.
This ensures correct queue allocation across all supported SoCs.
Fixes: a92f4f0662bf ("ravb: Add nc_queue to struct ravb_hw_info")
Cc: stable(a)vger.kernel.org
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas(a)ragnatech.se>
---
v1->v2:
- Added Reviewed-by tag from Niklas.
---
drivers/net/ethernet/renesas/ravb_main.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index 69d382e8757d..a200e205825a 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -2926,13 +2926,14 @@ static int ravb_probe(struct platform_device *pdev)
return dev_err_probe(&pdev->dev, PTR_ERR(rstc),
"failed to get cpg reset\n");
+ info = of_device_get_match_data(&pdev->dev);
+
ndev = alloc_etherdev_mqs(sizeof(struct ravb_private),
- NUM_TX_QUEUE, NUM_RX_QUEUE);
+ info->nc_queues ? NUM_TX_QUEUE : 1,
+ info->nc_queues ? NUM_RX_QUEUE : 1);
if (!ndev)
return -ENOMEM;
- info = of_device_get_match_data(&pdev->dev);
-
ndev->features = info->net_features;
ndev->hw_features = info->net_hw_features;
ndev->vlan_features = info->vlan_features;
--
2.43.0
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
📞 Call 24/7 QuickBooks® Enterprise™ Support: 1-855-219-0007
Are you facing issues with QuickBooks® Enterprise™ and need immediate assistance? Do not worry--help is just a phone call away! Our 24/7 QuickBooks® Enterprise™ Support is available at 1-855-219-0007, ready to help you resolve any accounting or technical issues around the clock. Whether it is late at night, early morning, or during a holiday, our expert team is standing by to provide fast, friendly support.
Why Call 24/7 QuickBooks® Enterprise™ Support? 📈
QuickBooks® Enterprise™ is a powerful accounting solution used by thousands of businesses across the U.S. But even the most robust software can run into occasional hiccups--and when it does, you need help fast.
✅ Real-time support
✅ Certified QuickBooks experts
✅ 100% U.S.-based support
✅ No waiting--live agents on call
Just call 1-855-219-0007 anytime--our agents are trained to assist with setup, installation, payroll, multi-user issues, and any technical errors that may arise.
Common Issues We Can Help With 🔧
When you are stuck, time is money. Our QuickBooks® Enterprise™ specialists can walk you through even the most complex problems. Call us now at 1-855-219-0007 for help with:
🛠️ Error codes like H202, 6000 series, or 6177
🧾 Company file not opening or loading
🔄 Data sync and backup issues
👥 Multi-user mode configuration problems
💰 Payroll setup or tax form errors
📊 Custom reports or chart of accounts
Whether it is a small bug or a major crash, just call 1-855-219-0007 and get back to business quickly.
Available 24/7 – Even on Weekends and Holidays 🕒
Many business owners work after hours or need help outside of 9 to 5. That is why our QuickBooks® Enterprise™ Support Line (1-855-219-0007) never closes. We are open 24 hours a day, 7 days a week--including weekends and holidays!
🌙 Working late? Call us.
🎄 It is a holiday? We are still here.
🚨 Emergency? We will pick up.
It is like having your own IT department, just a phone call away--1-855-219-0007.
Live Help from Certified Experts 👨💻👩💻
Not all support is created equal. When you call 1-855-219-0007, you are speaking with professionals who are:
✔️ Intuit Certified ProAdvisors
✔️ Highly trained in QuickBooks® Enterprise™
✔️ Experienced in handling business accounting for all industries
✔️ Friendly, patient, and clear communicators
We do not read from scripts. We solve real problems with real people--fast.
Remote Assistance Available 🔐
Some problems need hands-on troubleshooting. We offer secure remote support--with your permission--so our experts can access your system and fix the issue in real time. All you need to do is call 1-855-219-0007, and we will guide you step-by-step.
Your data is safe and confidential--always protected under strict security protocols. 🔒
Get Help Now – Do not Wait! 🚀
When QuickBooks® Enterprise™ stops working, your workflow stalls. That is why you should not wait hours or search forums for answers. Get direct access to our support team now by calling:
📞 1-855-219-0007
Do not let technical issues slow you down. Our friendly agents are available day or night to get you back on track--usually within minutes.
Who Can Call This Support Line? 📣
This support service is perfect for:
✅ Small to mid-size businesses
✅ Accountants and bookkeepers
✅ Enterprise-level organizations
✅ First-time QuickBooks users
✅ Long-time users with new errors
If you are using QuickBooks® Enterprise™, this number is for you: 1-855-219-0007.
Do not Risk Losing Data or Time – Call Now! ⏳
Even minor issues in QuickBooks can lead to hours of lost time or incorrect financials. Whether you are experiencing performance lags, crashing software, or user access issues, do not try to fix it alone.
Instead, call the experts at 1-855-219-0007--your trusted QuickBooks® Enterprise™ Support directory. We will diagnose and resolve the problem, often on the first call.
📞 Call Now: 1-855-219-0007 – QuickBooks® Enterprise™ Support You Can Trust!
Let us handle the stress while you focus on growing your business. Fast. Friendly. 24/7.
Qu!ckB00ks helpline
Qu!ckB00ks support contact
Qu!ckB00ks customer care
Qu!ckB00ks phone support
Qu!ckB00ks support email
Qu!ckB00ks live chat
Qu!ckB00ks help desk
Qu!ckB00ks contact support
Qu!ckB00ks support team
Qu!ckB00ks customer assistance
Qu!ckB00ks service hotline
Qu!ckB00ks technical support
Qu!ckB00ks issue resolution
Qu!ckB00ks account help
Qu!ckB00ks payment support
Qu!ckB00ks withdrawal issues
Qu!ckB00ks login help
Qu!ckB00ks verification support
Qu!ckB00ks account recovery
Qu!ckB00ks lost access
Qu!ckB00ks security issues
Qu!ckB00ks fraud support
Qu!ckB00ks billing support
Qu!ckB00ks transaction problems
Qu!ckB00ks support
Qu!ckB00ks wallet issues
Qu!ckB00ks mobile app support
Qu!ckB00ks crypto transfer help
Qu!ckB00ks error fixing
Qu!ckB00ks support login
Qu!ckB00ks problem resolution
Qu!ckB00ks feedback contact
Qu!ckB00ks account suspension help
Qu!ckB00ks withdrawal delay
Qu!ckB00ks deposit issues
Qu!ckB00ks crypto conversion help
Qu!ckB00ks order status
Qu!ckB00ks refund support
Qu!ckB00ks tax document support
Qu!ckB00ks international support
Qu!ckB00ks 24/7 support
Qu!ckB00ks account settings help
Qu!ckB00ks password reset
Qu!ckB00ks two-factor authentication help
Qu!ckB00ks customer inquiry
Qu!ckB00ks support number USA
Qu!ckB00ks help center phone number
Do not stop a q6asm stream if its not started, this can result in
unnecessary dsp command which will timeout anyway something like below:
q6asm-dai ab00000.remoteproc:glink-edge:apr:service@7:dais: CMD 10bcd timeout
Fix this by correctly checking the state.
Fixes: 2a9e92d371db ("ASoC: qdsp6: q6asm: Add q6asm dai driver")
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla(a)oss.qualcomm.com>
Tested-by: Alexey Klimov <alexey.klimov(a)linaro.org> # RB5, RB3
---
sound/soc/qcom/qdsp6/q6asm-dai.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
index e8129510a734..0eae8c6e42b8 100644
--- a/sound/soc/qcom/qdsp6/q6asm-dai.c
+++ b/sound/soc/qcom/qdsp6/q6asm-dai.c
@@ -233,13 +233,14 @@ static int q6asm_dai_prepare(struct snd_soc_component *component,
prtd->pcm_count = snd_pcm_lib_period_bytes(substream);
prtd->pcm_irq_pos = 0;
/* rate and channels are sent to audio driver */
- if (prtd->state) {
+ if (prtd->state == Q6ASM_STREAM_RUNNING) {
/* clear the previous setup if any */
q6asm_cmd(prtd->audio_client, prtd->stream_id, CMD_CLOSE);
q6asm_unmap_memory_regions(substream->stream,
prtd->audio_client);
q6routing_stream_close(soc_prtd->dai_link->id,
substream->stream);
+ prtd->state = Q6ASM_STREAM_STOPPED;
}
ret = q6asm_map_memory_regions(substream->stream, prtd->audio_client,
--
2.51.0
DSP expects the periods to be aligned to fragment sizes, currently
setting up to hw constriants on periods bytes is not going to work
correctly as we can endup with periods sizes aligned to 32 bytes however
not aligned to fragment size.
Update the constriants to use fragment size, and also set at step of
10ms for period size to accommodate DSP requirements of 10ms latency.
Fixes: 2a9e92d371db ("ASoC: qdsp6: q6asm: Add q6asm dai driver")
Cc: <Stable(a)vger.kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla(a)oss.qualcomm.com>
Tested-by: Alexey Klimov <alexey.klimov(a)linaro.org> # RB5, RB3
---
sound/soc/qcom/qdsp6/q6asm-dai.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
index b616ce316d2f..e8129510a734 100644
--- a/sound/soc/qcom/qdsp6/q6asm-dai.c
+++ b/sound/soc/qcom/qdsp6/q6asm-dai.c
@@ -403,13 +403,13 @@ static int q6asm_dai_open(struct snd_soc_component *component,
}
ret = snd_pcm_hw_constraint_step(runtime, 0,
- SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 32);
+ SNDRV_PCM_HW_PARAM_PERIOD_SIZE, 480);
if (ret < 0) {
dev_err(dev, "constraint for period bytes step ret = %d\n",
ret);
}
ret = snd_pcm_hw_constraint_step(runtime, 0,
- SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 32);
+ SNDRV_PCM_HW_PARAM_BUFFER_SIZE, 480);
if (ret < 0) {
dev_err(dev, "constraint for buffer bytes step ret = %d\n",
ret);
--
2.51.0
The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x 8d33a030c566e1f105cd5bf27f37940b6367f3be
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101316-favored-pulsate-a811@gregkh' --subject-prefix 'PATCH 5.10.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 8d33a030c566e1f105cd5bf27f37940b6367f3be Mon Sep 17 00:00:00 2001
From: Zheng Qixing <zhengqixing(a)huawei.com>
Date: Tue, 26 Aug 2025 15:42:04 +0800
Subject: [PATCH] dm: fix NULL pointer dereference in __dm_suspend()
There is a race condition between dm device suspend and table load that
can lead to null pointer dereference. The issue occurs when suspend is
invoked before table load completes:
BUG: kernel NULL pointer dereference, address: 0000000000000054
Oops: 0000 [#1] PREEMPT SMP PTI
CPU: 6 PID: 6798 Comm: dmsetup Not tainted 6.6.0-g7e52f5f0ca9b #62
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014
RIP: 0010:blk_mq_wait_quiesce_done+0x0/0x50
Call Trace:
<TASK>
blk_mq_quiesce_queue+0x2c/0x50
dm_stop_queue+0xd/0x20
__dm_suspend+0x130/0x330
dm_suspend+0x11a/0x180
dev_suspend+0x27e/0x560
ctl_ioctl+0x4cf/0x850
dm_ctl_ioctl+0xd/0x20
vfs_ioctl+0x1d/0x50
__se_sys_ioctl+0x9b/0xc0
__x64_sys_ioctl+0x19/0x30
x64_sys_call+0x2c4a/0x4620
do_syscall_64+0x9e/0x1b0
The issue can be triggered as below:
T1 T2
dm_suspend table_load
__dm_suspend dm_setup_md_queue
dm_mq_init_request_queue
blk_mq_init_allocated_queue
=> q->mq_ops = set->ops; (1)
dm_stop_queue / dm_wait_for_completion
=> q->tag_set NULL pointer! (2)
=> q->tag_set = set; (3)
Fix this by checking if a valid table (map) exists before performing
request-based suspend and waiting for target I/O. When map is NULL,
skip these table-dependent suspend steps.
Even when map is NULL, no I/O can reach any target because there is
no table loaded; I/O submitted in this state will fail early in the
DM layer. Skipping the table-dependent suspend logic in this case
is safe and avoids NULL pointer dereferences.
Fixes: c4576aed8d85 ("dm: fix request-based dm's use of dm_wait_for_completion")
Cc: stable(a)vger.kernel.org
Signed-off-by: Zheng Qixing <zhengqixing(a)huawei.com>
Signed-off-by: Mikulas Patocka <mpatocka(a)redhat.com>
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 7222f20c1a83..66dd5f6ce778 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2908,7 +2908,7 @@ static int __dm_suspend(struct mapped_device *md, struct dm_table *map,
{
bool do_lockfs = suspend_flags & DM_SUSPEND_LOCKFS_FLAG;
bool noflush = suspend_flags & DM_SUSPEND_NOFLUSH_FLAG;
- int r;
+ int r = 0;
lockdep_assert_held(&md->suspend_lock);
@@ -2960,7 +2960,7 @@ static int __dm_suspend(struct mapped_device *md, struct dm_table *map,
* Stop md->queue before flushing md->wq in case request-based
* dm defers requests to md->wq from md->queue.
*/
- if (dm_request_based(md)) {
+ if (map && dm_request_based(md)) {
dm_stop_queue(md->queue);
set_bit(DMF_QUEUE_STOPPED, &md->flags);
}
@@ -2972,7 +2972,8 @@ static int __dm_suspend(struct mapped_device *md, struct dm_table *map,
* We call dm_wait_for_completion to wait for all existing requests
* to finish.
*/
- r = dm_wait_for_completion(md, task_state);
+ if (map)
+ r = dm_wait_for_completion(md, task_state);
if (!r)
set_bit(dmf_suspended_flag, &md->flags);
From: Niko Mauno <niko.mauno(a)vaisala.com>
This reverts commit b7e5c59f3b0971f56ebbceb9d42cc45e9ac1cd94.
Commit in question broke building perf followingly with v5.15.195:
| ld: perf-in.o: in function `test__PERF_RECORD':
| tools/perf/tests/perf-record.c:142: undefined reference to `evlist__cancel_workload'
The 'evlist__cancel_workload' seems to be introduced in
commit e880a70f8046 ("perf stat: Close cork_fd when create_perf_stat_counter() failed")
which is currently not included in the 5.15 stable series.
Fixes: b7e5c59f3b09 ("perf test: Don't leak workload gopipe in PERF_RECORD_*")
Cc: stable(a)vger.kernel.org # 5.15
Signed-off-by: Niko Mauno <niko.mauno(a)vaisala.com>
---
tools/perf/tests/perf-record.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/tools/perf/tests/perf-record.c b/tools/perf/tests/perf-record.c
index b215e89b65f7..0df471bf1590 100644
--- a/tools/perf/tests/perf-record.c
+++ b/tools/perf/tests/perf-record.c
@@ -115,7 +115,6 @@ int test__PERF_RECORD(struct test *test __maybe_unused, int subtest __maybe_unus
if (err < 0) {
pr_debug("sched__get_first_possible_cpu: %s\n",
str_error_r(errno, sbuf, sizeof(sbuf)));
- evlist__cancel_workload(evlist);
goto out_delete_evlist;
}
@@ -127,7 +126,6 @@ int test__PERF_RECORD(struct test *test __maybe_unused, int subtest __maybe_unus
if (sched_setaffinity(evlist->workload.pid, cpu_mask_size, &cpu_mask) < 0) {
pr_debug("sched_setaffinity: %s\n",
str_error_r(errno, sbuf, sizeof(sbuf)));
- evlist__cancel_workload(evlist);
goto out_delete_evlist;
}
@@ -139,7 +137,6 @@ int test__PERF_RECORD(struct test *test __maybe_unused, int subtest __maybe_unus
if (err < 0) {
pr_debug("perf_evlist__open: %s\n",
str_error_r(errno, sbuf, sizeof(sbuf)));
- evlist__cancel_workload(evlist);
goto out_delete_evlist;
}
@@ -152,7 +149,6 @@ int test__PERF_RECORD(struct test *test __maybe_unused, int subtest __maybe_unus
if (err < 0) {
pr_debug("evlist__mmap: %s\n",
str_error_r(errno, sbuf, sizeof(sbuf)));
- evlist__cancel_workload(evlist);
goto out_delete_evlist;
}
--
2.39.5
Commit 16c07342b542 ("gpiolib: acpi: Program debounce when finding GPIO")
adds a gpio_set_debounce_timeout() call to acpi_find_gpio() and makes
acpi_find_gpio() fail if this fails.
But gpio_set_debounce_timeout() failing is a somewhat normal occurrence,
since not all debounce values are supported on all GPIO/pinctrl chips.
Making this an error for example break getting the card-detect GPIO for
the micro-sd slot found on many Bay Trail tablets, breaking support for
the micro-sd slot on these tablets.
acpi_request_own_gpiod() already treats gpio_set_debounce_timeout()
failures as non-fatal, just warning about them.
Add a acpi_gpio_set_debounce_timeout() helper which wraps
gpio_set_debounce_timeout() and warns on failures and replace both existing
gpio_set_debounce_timeout() calls with the helper.
Since the helper only warns on failures this fixes the card-detect issue.
Fixes: 16c07342b542 ("gpiolib: acpi: Program debounce when finding GPIO")
Cc: stable(a)vger.kernel.org
Cc: Mario Limonciello <superm1(a)kernel.org>
Signed-off-by: Hans de Goede <hansg(a)kernel.org>
---
drivers/gpio/gpiolib-acpi-core.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/drivers/gpio/gpiolib-acpi-core.c b/drivers/gpio/gpiolib-acpi-core.c
index 284e762d92c4..67c4c38afb86 100644
--- a/drivers/gpio/gpiolib-acpi-core.c
+++ b/drivers/gpio/gpiolib-acpi-core.c
@@ -291,6 +291,19 @@ acpi_gpio_to_gpiod_flags(const struct acpi_resource_gpio *agpio, int polarity)
return GPIOD_ASIS;
}
+static void acpi_gpio_set_debounce_timeout(struct gpio_desc *desc,
+ unsigned int acpi_debounce)
+{
+ int ret;
+
+ /* ACPI uses hundredths of milliseconds units */
+ acpi_debounce *= 10;
+ ret = gpio_set_debounce_timeout(desc, acpi_debounce);
+ if (ret)
+ gpiod_warn(desc, "Failed to set debounce-timeout %u: %d\n",
+ acpi_debounce, ret);
+}
+
static struct gpio_desc *acpi_request_own_gpiod(struct gpio_chip *chip,
struct acpi_resource_gpio *agpio,
unsigned int index,
@@ -300,18 +313,12 @@ static struct gpio_desc *acpi_request_own_gpiod(struct gpio_chip *chip,
enum gpiod_flags flags = acpi_gpio_to_gpiod_flags(agpio, polarity);
unsigned int pin = agpio->pin_table[index];
struct gpio_desc *desc;
- int ret;
desc = gpiochip_request_own_desc(chip, pin, label, polarity, flags);
if (IS_ERR(desc))
return desc;
- /* ACPI uses hundredths of milliseconds units */
- ret = gpio_set_debounce_timeout(desc, agpio->debounce_timeout * 10);
- if (ret)
- dev_warn(chip->parent,
- "Failed to set debounce-timeout for pin 0x%04X, err %d\n",
- pin, ret);
+ acpi_gpio_set_debounce_timeout(desc, agpio->debounce_timeout);
return desc;
}
@@ -944,7 +951,6 @@ struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
bool can_fallback = acpi_can_fallback_to_crs(adev, con_id);
struct acpi_gpio_info info = {};
struct gpio_desc *desc;
- int ret;
desc = __acpi_find_gpio(fwnode, con_id, idx, can_fallback, &info);
if (IS_ERR(desc))
@@ -959,10 +965,7 @@ struct gpio_desc *acpi_find_gpio(struct fwnode_handle *fwnode,
acpi_gpio_update_gpiod_flags(dflags, &info);
acpi_gpio_update_gpiod_lookup_flags(lookupflags, &info);
- /* ACPI uses hundredths of milliseconds units */
- ret = gpio_set_debounce_timeout(desc, info.debounce * 10);
- if (ret)
- return ERR_PTR(ret);
+ acpi_gpio_set_debounce_timeout(desc, info.debounce);
return desc;
}
--
2.51.0
From: Kairui Song <kasong(a)tencent.com>
The order check and fallback loop is updating the index value on
every loop, this will cause the index to be aligned by a larger
value while the loop shrinks the order.
This may result in inserting and returning a folio of the wrong index
and cause data corruption with some userspace workloads [1].
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/linux-mm/CAMgjq7DqgAmj25nDUwwu1U2cSGSn8n4-Hqpgotted… [1]
Fixes: e7a2ab7b3bb5d ("mm: shmem: add mTHP support for anonymous shmem")
Signed-off-by: Kairui Song <kasong(a)tencent.com>
---
Changes from V1:
- Link to V1: https://lore.kernel.org/linux-mm/20251021190436.81682-1-ryncsn@gmail.com/
- Remove unnecessary cleanup and simplify the commit message.
mm/shmem.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/mm/shmem.c b/mm/shmem.c
index b50ce7dbc84a..7559773ebb30 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1895,10 +1895,11 @@ static struct folio *shmem_alloc_and_add_folio(struct vm_fault *vmf,
order = highest_order(suitable_orders);
while (suitable_orders) {
pages = 1UL << order;
- index = round_down(index, pages);
- folio = shmem_alloc_folio(gfp, order, info, index);
- if (folio)
+ folio = shmem_alloc_folio(gfp, order, info, round_down(index, pages));
+ if (folio) {
+ index = round_down(index, pages);
goto allocated;
+ }
if (pages == HPAGE_PMD_NR)
count_vm_event(THP_FILE_FALLBACK);
--
2.51.0
A race condition during gadget teardown can lead to a use-after-free
in usb_gadget_state_work(), as reported by KASAN:
BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0
Workqueue: events usb_gadget_state_work
The fundamental race occurs because a concurrent event (e.g., an
interrupt) can call usb_gadget_set_state() and schedule gadget->work
at any time during the cleanup process in usb_del_gadget().
Commit 399a45e5237c ("usb: gadget: core: flush gadget workqueue after
device removal") attempted to fix this by moving flush_work() to after
device_del(). However, this does not fully solve the race, as a new
work item can still be scheduled *after* flush_work() completes but
before the gadget's memory is freed, leading to the same use-after-free.
This patch fixes the race condition robustly by introducing a 'teardown'
flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is
set during cleanup in usb_del_gadget() *before* calling flush_work() to
prevent any new work from being scheduled once cleanup has commenced.
The scheduling site, usb_gadget_set_state(), now checks this flag under
the lock before queueing the work, thus safely closing the race window.
Fixes: 5702f75375aa9 ("usb: gadget: udc-core: move sysfs_notify() to a workqueue")
Cc: stable(a)vger.kernel.org
Signed-off-by: Jimmy Hu <hhhuuu(a)google.com>
---
Changes in v3:
- Updated patch title to more accurately describe the bug.
- Moved changelog below the '---' line as requested by Greg KH.
- Rebased on usb-linus branch as requested by Greg KH.
Changes in v2:
- Removed redundant inline comments as suggested by Alan Stern.
drivers/usb/gadget/udc/core.c | 17 ++++++++++++++++-
include/linux/usb/gadget.h | 5 +++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
index 694653761c44..8dbe79bdc0f9 100644
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -1126,8 +1126,13 @@ static void usb_gadget_state_work(struct work_struct *work)
void usb_gadget_set_state(struct usb_gadget *gadget,
enum usb_device_state state)
{
+ unsigned long flags;
+
+ spin_lock_irqsave(&gadget->state_lock, flags);
gadget->state = state;
- schedule_work(&gadget->work);
+ if (!gadget->teardown)
+ schedule_work(&gadget->work);
+ spin_unlock_irqrestore(&gadget->state_lock, flags);
trace_usb_gadget_set_state(gadget, 0);
}
EXPORT_SYMBOL_GPL(usb_gadget_set_state);
@@ -1361,6 +1366,8 @@ static void usb_udc_nop_release(struct device *dev)
void usb_initialize_gadget(struct device *parent, struct usb_gadget *gadget,
void (*release)(struct device *dev))
{
+ spin_lock_init(&gadget->state_lock);
+ gadget->teardown = false;
INIT_WORK(&gadget->work, usb_gadget_state_work);
gadget->dev.parent = parent;
@@ -1535,6 +1542,7 @@ EXPORT_SYMBOL_GPL(usb_add_gadget_udc);
void usb_del_gadget(struct usb_gadget *gadget)
{
struct usb_udc *udc = gadget->udc;
+ unsigned long flags;
if (!udc)
return;
@@ -1548,6 +1556,13 @@ void usb_del_gadget(struct usb_gadget *gadget)
kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
sysfs_remove_link(&udc->dev.kobj, "gadget");
device_del(&gadget->dev);
+ /*
+ * Set the teardown flag before flushing the work to prevent new work
+ * from being scheduled while we are cleaning up.
+ */
+ spin_lock_irqsave(&gadget->state_lock, flags);
+ gadget->teardown = true;
+ spin_unlock_irqrestore(&gadget->state_lock, flags);
flush_work(&gadget->work);
ida_free(&gadget_id_numbers, gadget->id_number);
cancel_work_sync(&udc->vbus_work);
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 3aaf19e77558..8285b19a25e0 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -376,6 +376,9 @@ struct usb_gadget_ops {
* can handle. The UDC must support this and all slower speeds and lower
* number of lanes.
* @state: the state we are now (attached, suspended, configured, etc)
+ * @state_lock: Spinlock protecting the `state` and `teardown` members.
+ * @teardown: True if the device is undergoing teardown, used to prevent
+ * new work from being scheduled during cleanup.
* @name: Identifies the controller hardware type. Used in diagnostics
* and sometimes configuration.
* @dev: Driver model state for this abstract device.
@@ -451,6 +454,8 @@ struct usb_gadget {
enum usb_ssp_rate max_ssp_rate;
enum usb_device_state state;
+ spinlock_t state_lock;
+ bool teardown;
const char *name;
struct device dev;
unsigned isoch_delay;
--
2.51.1.814.gb8fa24458f-goog
driver_find_device() calls get_device() to increment the reference
count once a matching device is found, but there is no put_device() to
balance the reference count. To avoid reference count leakage, add
put_device() to decrease the reference count.
Found by code review.
Cc: stable(a)vger.kernel.org
Fixes: a31500fe7055 ("drm/tegra: dc: Restore coupling of display controllers")
Signed-off-by: Ma Ke <make24(a)iscas.ac.cn>
---
drivers/gpu/drm/tegra/dc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 59d5c1ba145a..6c84bd69b11f 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -3148,6 +3148,7 @@ static int tegra_dc_couple(struct tegra_dc *dc)
dc->client.parent = &parent->client;
dev_dbg(dc->dev, "coupled to %s\n", dev_name(companion));
+ put_device(companion);
}
return 0;
--
2.17.1
From: Matt Fleming <mfleming(a)cloudflare.com>
This reverts commit b7ca5743a2604156d6083b88cefacef983f3a3a6.
If we dequeue a task (task B) that was sched delayed then that task is
definitely no longer on the rq and not tracked in the rbtree.
Unfortunately, task_on_rq_queued(B) will still return true because
dequeue_task() doesn't update p->on_rq.
This inconsistency can lead to tasks (task A) spinning indefinitely in
wait_task_inactive(), e.g. when delivering a fatal signal to a thread
group, because it thinks the task B is still queued (it's not) and waits
forever for it to unschedule.
Task A Task B
arch_do_signal_or_restart()
get_signal()
do_coredump()
coredump_wait()
zap_threads() arch_do_signal_or_restart()
wait_task_inactive() <-- SPIN get_signal()
do_group_exit()
do_exit()
coredump_task_exit()
schedule() <--- never comes back
Not only will task A spin forever in wait_task_inactive(), but task B
will also trigger RCU stalls:
INFO: rcu_tasks detected stalls on tasks:
00000000a973a4d8: .. nvcsw: 2/2 holdout: 1 idle_cpu: -1/79
task:ffmpeg state:I stack:0 pid:665601 tgid:665155 ppid:668691 task_flags:0x400448 flags:0x00004006
Call Trace:
<TASK>
__schedule+0x4fb/0xbf0
? srso_return_thunk+0x5/0x5f
schedule+0x27/0xf0
do_exit+0xdd/0xaa0
? __pfx_futex_wake_mark+0x10/0x10
do_group_exit+0x30/0x80
get_signal+0x81e/0x860
? srso_return_thunk+0x5/0x5f
? futex_wake+0x177/0x1a0
arch_do_signal_or_restart+0x2e/0x1f0
? srso_return_thunk+0x5/0x5f
? srso_return_thunk+0x5/0x5f
? __x64_sys_futex+0x10c/0x1d0
syscall_exit_to_user_mode+0xa5/0x130
do_syscall_64+0x57/0x110
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7f22d05b0f16
RSP: 002b:00007f2265761cf0 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 0000000000000000 RCX: 00007f22d05b0f16
RDX: 0000000000000000 RSI: 0000000000000189 RDI: 00005629e320d97c
RBP: 0000000000000000 R08: 0000000000000000 R09: 00000000ffffffff
R10: 0000000000000000 R11: 0000000000000246 R12: 00005629e320d928
R13: 0000000000000000 R14: 0000000000000001 R15: 00005629e320d97c
</TASK>
Fixes: b7ca5743a260 ("sched/core: Tweak wait_task_inactive() to force dequeue sched_delayed tasks")
Cc: Peter Zijlstra <peterz(a)infradead.org>
Cc: Oleg Nesterov <oleg(a)redhat.com>
Cc: John Stultz <jstultz(a)google.com>
Cc: Chris Arges <carges(a)cloudflare.com>
Cc: stable(a)vger.kernel.org # v6.12
Signed-off-by: Matt Fleming <mfleming(a)cloudflare.com>
---
kernel/sched/core.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index ccba6fc3c3fe..2dfc3977920d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2293,12 +2293,6 @@ unsigned long wait_task_inactive(struct task_struct *p, unsigned int match_state
* just go back and repeat.
*/
rq = task_rq_lock(p, &rf);
- /*
- * If task is sched_delayed, force dequeue it, to avoid always
- * hitting the tick timeout in the queued case
- */
- if (p->se.sched_delayed)
- dequeue_task(rq, p, DEQUEUE_SLEEP | DEQUEUE_DELAYED);
trace_sched_wait_task(p);
running = task_on_cpu(rq, p);
queued = task_on_rq_queued(p);
--
2.34.1
On Wed, Oct 22, 2025 at 7:45 PM くさあさ <pioooooooooip(a)gmail.com> wrote:
>
> Hi Namjae, Steve,
Hi,
>
> Thanks for updating the patch. I’ve reviewed the changes and they look good to me.
Okay.
>
> Minor impact note: this patch prevents a 4-byte out-of-bounds read in ksmbd’s handle_response() when the declared Generic Netlink payload size is < 4.
> If a remote client can influence ksmbd.mountd to emit a truncated payload, this could be remotely triggerable (info-leak/DoS potential).
I don't understand how this is possible. Could you please explain it
to me via private email?
> If you consider this security-impacting, I’m happy to request a CVE via the kernel.org CNA.
>
> Thanks!!
> Qianchang Zhao
From: Matt Johnston <matt(a)codeconstruct.com.au>
commit f11cf946c0a92c560a890d68e4775723353599e1 upstream.
In mctp_dump_addrinfo, ifa_index can be used to filter interfaces, but
only when the struct ifaddrmsg is provided. Otherwise it will be
comparing to uninitialised memory - reproducible in the syzkaller case from
dhcpd, or busybox "ip addr show".
The kernel MCTP implementation has always filtered by ifa_index, so
existing userspace programs expecting to dump MCTP addresses must
already be passing a valid ifa_index value (either 0 or a real index).
BUG: KMSAN: uninit-value in mctp_dump_addrinfo+0x208/0xac0 net/mctp/device.c:128
mctp_dump_addrinfo+0x208/0xac0 net/mctp/device.c:128
rtnl_dump_all+0x3ec/0x5b0 net/core/rtnetlink.c:4380
rtnl_dumpit+0xd5/0x2f0 net/core/rtnetlink.c:6824
netlink_dump+0x97b/0x1690 net/netlink/af_netlink.c:2309
Fixes: 583be982d934 ("mctp: Add device handling and netlink interface")
Reported-by: syzbot+e76d52dadc089b9d197f(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/all/68135815.050a0220.3a872c.000e.GAE@google.com/
Reported-by: syzbot+1065a199625a388fce60(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/all/681357d6.050a0220.14dd7d.000d.GAE@google.com/
Signed-off-by: Matt Johnston <matt(a)codeconstruct.com.au>
Link: https://patch.msgid.link/20250508-mctp-addr-dump-v2-1-c8a53fd2dd66@codecons…
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
[ kovalev: bp to fix CVE-2025-38006 ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
net/mctp/device.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/net/mctp/device.c b/net/mctp/device.c
index 85cc5f31f1e7..27aee8b04055 100644
--- a/net/mctp/device.c
+++ b/net/mctp/device.c
@@ -119,12 +119,19 @@ static int mctp_dump_addrinfo(struct sk_buff *skb, struct netlink_callback *cb)
struct net_device *dev;
struct ifaddrmsg *hdr;
struct mctp_dev *mdev;
- int ifindex;
+ int ifindex = 0;
int idx = 0, rc;
- hdr = nlmsg_data(cb->nlh);
- // filter by ifindex if requested
- ifindex = hdr->ifa_index;
+ /* Filter by ifindex if a header is provided */
+ if (cb->nlh->nlmsg_len >= nlmsg_msg_size(sizeof(*hdr))) {
+ hdr = nlmsg_data(cb->nlh);
+ ifindex = hdr->ifa_index;
+ } else {
+ if (cb->strict_check) {
+ NL_SET_ERR_MSG(cb->extack, "mctp: Invalid header for addr dump request");
+ return -EINVAL;
+ }
+ }
rcu_read_lock();
for (; mcb->h < NETDEV_HASHENTRIES; mcb->h++, mcb->idx = 0) {
--
2.50.1
The patch titled
Subject: mm/shmem: fix THP allocation and fallback loop
has been added to the -mm mm-hotfixes-unstable branch. Its filename is
mm-shmem-fix-thp-allocation-and-fallback-loop.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patche…
This patch will later appear in the mm-hotfixes-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Kairui Song <kasong(a)tencent.com>
Subject: mm/shmem: fix THP allocation and fallback loop
Date: Wed, 22 Oct 2025 18:57:19 +0800
The order check and fallback loop is updating the index value on every
loop, this will cause the index to be aligned by a larger value while the
loop shrinks the order.
This may result in inserting and returning a folio of the wrong index and
cause data corruption with some userspace workloads [1].
Link: https://lkml.kernel.org/r/20251022105719.18321-1-ryncsn@gmail.com
Link: https://lore.kernel.org/linux-mm/CAMgjq7DqgAmj25nDUwwu1U2cSGSn8n4-Hqpgotted… [1]
Fixes: e7a2ab7b3bb5d ("mm: shmem: add mTHP support for anonymous shmem")
Signed-off-by: Kairui Song <kasong(a)tencent.com>
Cc: Baolin Wang <baolin.wang(a)linux.alibaba.com>
Cc: Barry Song <baohua(a)kernel.org>
Cc: David Hildenbrand <david(a)redhat.com>
Cc: Dev Jain <dev.jain(a)arm.com>
Cc: Hugh Dickins <hughd(a)google.com>
Cc: Liam Howlett <liam.howlett(a)oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Cc: Matthew Wilcox (Oracle) <willy(a)infradead.org>
Cc: Nico Pache <npache(a)redhat.com>
Cc: Ryan Roberts <ryan.roberts(a)arm.com>
Cc: Zi Yan <ziy(a)nvidia.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/shmem.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
--- a/mm/shmem.c~mm-shmem-fix-thp-allocation-and-fallback-loop
+++ a/mm/shmem.c
@@ -1895,10 +1895,11 @@ static struct folio *shmem_alloc_and_add
order = highest_order(suitable_orders);
while (suitable_orders) {
pages = 1UL << order;
- index = round_down(index, pages);
- folio = shmem_alloc_folio(gfp, order, info, index);
- if (folio)
+ folio = shmem_alloc_folio(gfp, order, info, round_down(index, pages));
+ if (folio) {
+ index = round_down(index, pages);
goto allocated;
+ }
if (pages == HPAGE_PMD_NR)
count_vm_event(THP_FILE_FALLBACK);
_
Patches currently in -mm which might be from kasong(a)tencent.com are
mm-shmem-fix-thp-allocation-and-fallback-loop.patch
The switch_brightness_work delayed work accesses device->brightness
and device->backlight, which are freed by
acpi_video_dev_unregister_backlight() during device removal.
If the work executes after acpi_video_bus_unregister_backlight()
frees these resources, it causes a use-after-free when
acpi_video_switch_brightness() dereferences device->brightness or
device->backlight.
Fix this by calling cancel_delayed_work_sync() for each device's
switch_brightness_work before unregistering its backlight resources.
This ensures the work completes before the memory is freed.
Fixes: 8ab58e8e7e097 ("ACPI / video: Fix backlight taking 2 steps on a brightness up/down keypress")
Cc: stable(a)vger.kernel.org
Signed-off-by: Yuhao Jiang <danisjiang(a)gmail.com>
---
Changes in v2:
- Move cancel_delayed_work_sync() to acpi_video_bus_unregister_backlight()
instead of acpi_video_bus_put_devices() for better logic clarity and to
prevent potential UAF of device->brightness
- Correct Fixes tag to point to 8ab58e8e7e097 which introduced the delayed work
- Link to v1: https://lore.kernel.org/all/20251022040859.2102914-1-danisjiang@gmail.com
---
drivers/acpi/acpi_video.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 103f29661576..64709658bdc4 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -1869,8 +1869,10 @@ static int acpi_video_bus_unregister_backlight(struct acpi_video_bus *video)
error = unregister_pm_notifier(&video->pm_nb);
mutex_lock(&video->device_list_lock);
- list_for_each_entry(dev, &video->video_device_list, entry)
+ list_for_each_entry(dev, &video->video_device_list, entry) {
+ cancel_delayed_work_sync(&dev->switch_brightness_work);
acpi_video_dev_unregister_backlight(dev);
+ }
mutex_unlock(&video->device_list_lock);
video->backlight_registered = false;
--
2.34.1
From: Shannon Nelson <shannon.nelson(a)amd.com>
commit 4a54903ff68ddb33b6463c94b4eb37fc584ef760 upstream.
Add a check for NULL on the alloc return. If devlink_alloc() fails and
we try to use devlink_priv() on the NULL return, the kernel gets very
unhappy and panics. With this fix, the driver load will still fail,
but at least it won't panic the kernel.
Fixes: df69ba43217d ("ionic: Add basic framework for IONIC Network device driver")
Signed-off-by: Shannon Nelson <shannon.nelson(a)amd.com>
Reviewed-by: Simon Horman <simon.horman(a)corigine.com>
Reviewed-by: Jiri Pirko <jiri(a)nvidia.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
[ kovalev: bp to fix CVE-2023-53470 ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
drivers/net/ethernet/pensando/ionic/ionic_devlink.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
index 3d94064c685d..52ebecf2521e 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
+++ b/drivers/net/ethernet/pensando/ionic/ionic_devlink.c
@@ -65,6 +65,8 @@ struct ionic *ionic_devlink_alloc(struct device *dev)
struct devlink *dl;
dl = devlink_alloc(&ionic_dl_ops, sizeof(struct ionic));
+ if (!dl)
+ return NULL;
return devlink_priv(dl);
}
--
2.50.1
In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware
shares and walks the CPU's page tables. The x86 architecture maps the
kernel's virtual address space into the upper portion of every process's
page table. Consequently, in an SVA context, the IOMMU hardware can walk
and cache kernel page table entries.
The Linux kernel currently lacks a notification mechanism for kernel page
table changes, specifically when page table pages are freed and reused.
The IOMMU driver is only notified of changes to user virtual address
mappings. This can cause the IOMMU's internal caches to retain stale
entries for kernel VA.
Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when
kernel page table pages are freed and later reallocated. The IOMMU could
misinterpret the new data as valid page table entries. The IOMMU might
then walk into attacker-controlled memory, leading to arbitrary physical
memory DMA access or privilege escalation. This is also a Write-After-Free
issue, as the IOMMU will potentially continue to write Accessed and Dirty
bits to the freed memory while attempting to walk the stale page tables.
Currently, SVA contexts are unprivileged and cannot access kernel
mappings. However, the IOMMU will still walk kernel-only page tables
all the way down to the leaf entries, where it realizes the mapping
is for the kernel and errors out. This means the IOMMU still caches
these intermediate page table entries, making the described vulnerability
a real concern.
Disable SVA on x86 architecture until the IOMMU can receive notification
to flush the paging cache before freeing the CPU kernel page table pages.
Fixes: 26b25a2b98e4 ("iommu: Bind process address spaces to devices")
Cc: stable(a)vger.kernel.org
Suggested-by: Jason Gunthorpe <jgg(a)nvidia.com>
Signed-off-by: Lu Baolu <baolu.lu(a)linux.intel.com>
---
drivers/iommu/iommu-sva.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/iommu/iommu-sva.c b/drivers/iommu/iommu-sva.c
index 1a51cfd82808..a0442faad952 100644
--- a/drivers/iommu/iommu-sva.c
+++ b/drivers/iommu/iommu-sva.c
@@ -77,6 +77,9 @@ struct iommu_sva *iommu_sva_bind_device(struct device *dev, struct mm_struct *mm
if (!group)
return ERR_PTR(-ENODEV);
+ if (IS_ENABLED(CONFIG_X86))
+ return ERR_PTR(-EOPNOTSUPP);
+
mutex_lock(&iommu_sva_lock);
/* Allocate mm->pasid if necessary. */
--
2.43.0
The patch titled
Subject: iommu: disable SVA when CONFIG_X86 is set
has been added to the -mm mm-new branch. Its filename is
iommu-disable-sva-when-config_x86-is-set.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patche…
This patch will later appear in the mm-new branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Note, mm-new is a provisional staging ground for work-in-progress
patches, and acceptance into mm-new is a notification for others take
notice and to finish up reviews. Please do not hesitate to respond to
review feedback and post updated versions to replace or incrementally
fixup patches in mm-new.
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Lu Baolu <baolu.lu(a)linux.intel.com>
Subject: iommu: disable SVA when CONFIG_X86 is set
Date: Wed, 22 Oct 2025 16:26:27 +0800
Patch series "Fix stale IOTLB entries for kernel address space", v7.
This proposes a fix for a security vulnerability related to IOMMU Shared
Virtual Addressing (SVA). In an SVA context, an IOMMU can cache kernel
page table entries. When a kernel page table page is freed and
reallocated for another purpose, the IOMMU might still hold stale,
incorrect entries. This can be exploited to cause a use-after-free or
write-after-free condition, potentially leading to privilege escalation or
data corruption.
This solution introduces a deferred freeing mechanism for kernel page
table pages, which provides a safe window to notify the IOMMU to
invalidate its caches before the page is reused.
This patch (of 8):
In the IOMMU Shared Virtual Addressing (SVA) context, the IOMMU hardware
shares and walks the CPU's page tables. The x86 architecture maps the
kernel's virtual address space into the upper portion of every process's
page table. Consequently, in an SVA context, the IOMMU hardware can walk
and cache kernel page table entries.
The Linux kernel currently lacks a notification mechanism for kernel page
table changes, specifically when page table pages are freed and reused.
The IOMMU driver is only notified of changes to user virtual address
mappings. This can cause the IOMMU's internal caches to retain stale
entries for kernel VA.
Use-After-Free (UAF) and Write-After-Free (WAF) conditions arise when
kernel page table pages are freed and later reallocated. The IOMMU could
misinterpret the new data as valid page table entries. The IOMMU might
then walk into attacker-controlled memory, leading to arbitrary physical
memory DMA access or privilege escalation. This is also a
Write-After-Free issue, as the IOMMU will potentially continue to write
Accessed and Dirty bits to the freed memory while attempting to walk the
stale page tables.
Currently, SVA contexts are unprivileged and cannot access kernel
mappings. However, the IOMMU will still walk kernel-only page tables all
the way down to the leaf entries, where it realizes the mapping is for the
kernel and errors out. This means the IOMMU still caches these
intermediate page table entries, making the described vulnerability a real
concern.
Disable SVA on x86 architecture until the IOMMU can receive notification
to flush the paging cache before freeing the CPU kernel page table pages.
Link: https://lkml.kernel.org/r/20251022082635.2462433-1-baolu.lu@linux.intel.com
Link: https://lkml.kernel.org/r/20251022082635.2462433-2-baolu.lu@linux.intel.com
Fixes: 26b25a2b98e4 ("iommu: Bind process address spaces to devices")
Signed-off-by: Lu Baolu <baolu.lu(a)linux.intel.com>
Suggested-by: Jason Gunthorpe <jgg(a)nvidia.com>
Cc: Alistair Popple <apopple(a)nvidia.com>
Cc: Andy Lutomirski <luto(a)kernel.org>
Cc: Borislav Betkov <bp(a)alien8.de>
Cc: Dave Hansen <dave.hansen(a)intel.com>
Cc: David Hildenbrand <david(a)redhat.com>
Cc: Ingo Molnar <mingo(a)redhat.com>
Cc: Jann Horn <jannh(a)google.com>
Cc: Jean-Philippe Brucker <jean-philippe(a)linaro.org>
Cc: Joerg Roedel <joro(a)8bytes.org>
Cc: Kevin Tian <kevin.tian(a)intel.com>
Cc: Liam Howlett <liam.howlett(a)oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Cc: Matthew Wilcox (Oracle) <willy(a)infradead.org>
Cc: Michal Hocko <mhocko(a)kernel.org>
Cc: Mike Rapoport <rppt(a)kernel.org>
Cc: Peter Zijlstra <peterz(a)infradead.org>
Cc: Robin Murohy <robin.murphy(a)arm.com>
Cc: Thomas Gleinxer <tglx(a)linutronix.de>
Cc: "Uladzislau Rezki (Sony)" <urezki(a)gmail.com>
Cc: Vasant Hegde <vasant.hegde(a)amd.com>
Cc: Vinicius Costa Gomes <vinicius.gomes(a)intel.com>
Cc: Vlastimil Babka <vbabka(a)suse.cz>
Cc: Will Deacon <will(a)kernel.org>
Cc: Yi Lai <yi1.lai(a)intel.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
drivers/iommu/iommu-sva.c | 3 +++
1 file changed, 3 insertions(+)
--- a/drivers/iommu/iommu-sva.c~iommu-disable-sva-when-config_x86-is-set
+++ a/drivers/iommu/iommu-sva.c
@@ -77,6 +77,9 @@ struct iommu_sva *iommu_sva_bind_device(
if (!group)
return ERR_PTR(-ENODEV);
+ if (IS_ENABLED(CONFIG_X86))
+ return ERR_PTR(-EOPNOTSUPP);
+
mutex_lock(&iommu_sva_lock);
/* Allocate mm->pasid if necessary. */
_
Patches currently in -mm which might be from baolu.lu(a)linux.intel.com are
iommu-disable-sva-when-config_x86-is-set.patch
x86-mm-use-pagetable_free.patch
iommu-sva-invalidate-stale-iotlb-entries-for-kernel-address-space.patch
From: Shay Drory <shayd(a)nvidia.com>
commit 38b50aa44495d5eb4218f0b82fc2da76505cec53 upstream.
Currently, when mlx5_ib_get_hw_stats() is used for device (port_num = 0),
there is a special handling in order to use the correct counters, but,
port_num is being passed down the stack without any change. Also, some
functions assume that port_num >=1. As a result, the following oops can
occur.
BUG: unable to handle page fault for address: ffff89510294f1a8
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 0 P4D 0
Oops: 0002 [#1] SMP
CPU: 8 PID: 1382 Comm: devlink Tainted: G W 6.1.0-rc4_for_upstream_base_2022_11_10_16_12 #1
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
RIP: 0010:_raw_spin_lock+0xc/0x20
Call Trace:
<TASK>
mlx5_ib_get_native_port_mdev+0x73/0xe0 [mlx5_ib]
do_get_hw_stats.constprop.0+0x109/0x160 [mlx5_ib]
mlx5_ib_get_hw_stats+0xad/0x180 [mlx5_ib]
ib_setup_device_attrs+0xf0/0x290 [ib_core]
ib_register_device+0x3bb/0x510 [ib_core]
? atomic_notifier_chain_register+0x67/0x80
__mlx5_ib_add+0x2b/0x80 [mlx5_ib]
mlx5r_probe+0xb8/0x150 [mlx5_ib]
? auxiliary_match_id+0x6a/0x90
auxiliary_bus_probe+0x3c/0x70
? driver_sysfs_add+0x6b/0x90
really_probe+0xcd/0x380
__driver_probe_device+0x80/0x170
driver_probe_device+0x1e/0x90
__device_attach_driver+0x7d/0x100
? driver_allows_async_probing+0x60/0x60
? driver_allows_async_probing+0x60/0x60
bus_for_each_drv+0x7b/0xc0
__device_attach+0xbc/0x200
bus_probe_device+0x87/0xa0
device_add+0x404/0x940
? dev_set_name+0x53/0x70
__auxiliary_device_add+0x43/0x60
add_adev+0x99/0xe0 [mlx5_core]
mlx5_attach_device+0xc8/0x120 [mlx5_core]
mlx5_load_one_devl_locked+0xb2/0xe0 [mlx5_core]
devlink_reload+0x133/0x250
devlink_nl_cmd_reload+0x480/0x570
? devlink_nl_pre_doit+0x44/0x2b0
genl_family_rcv_msg_doit.isra.0+0xc2/0x110
genl_rcv_msg+0x180/0x2b0
? devlink_nl_cmd_region_read_dumpit+0x540/0x540
? devlink_reload+0x250/0x250
? devlink_put+0x50/0x50
? genl_family_rcv_msg_doit.isra.0+0x110/0x110
netlink_rcv_skb+0x54/0x100
genl_rcv+0x24/0x40
netlink_unicast+0x1f6/0x2c0
netlink_sendmsg+0x237/0x490
sock_sendmsg+0x33/0x40
__sys_sendto+0x103/0x160
? handle_mm_fault+0x10e/0x290
? do_user_addr_fault+0x1c0/0x5f0
__x64_sys_sendto+0x25/0x30
do_syscall_64+0x3d/0x90
entry_SYSCALL_64_after_hwframe+0x46/0xb0
Fix it by setting port_num to 1 in order to get device status and remove
unused variable.
Fixes: aac4492ef23a ("IB/mlx5: Update counter implementation for dual port RoCE")
Link: https://lore.kernel.org/r/98b82994c3cd3fa593b8a75ed3f3901e208beb0f.16722317…
Signed-off-by: Shay Drory <shayd(a)nvidia.com>
Reviewed-by: Patrisious Haddad <phaddad(a)nvidia.com>
Signed-off-by: Leon Romanovsky <leon(a)kernel.org>
[ kovalev: bp to fix CVE-2023-53393 ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
drivers/infiniband/hw/mlx5/counters.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/infiniband/hw/mlx5/counters.c b/drivers/infiniband/hw/mlx5/counters.c
index 33636268d43d..29b38cf055be 100644
--- a/drivers/infiniband/hw/mlx5/counters.c
+++ b/drivers/infiniband/hw/mlx5/counters.c
@@ -249,7 +249,6 @@ static int mlx5_ib_get_hw_stats(struct ib_device *ibdev,
const struct mlx5_ib_counters *cnts = get_counters(dev, port_num - 1);
struct mlx5_core_dev *mdev;
int ret, num_counters;
- u8 mdev_port_num;
if (!stats)
return -EINVAL;
@@ -270,8 +269,9 @@ static int mlx5_ib_get_hw_stats(struct ib_device *ibdev,
}
if (MLX5_CAP_GEN(dev->mdev, cc_query_allowed)) {
- mdev = mlx5_ib_get_native_port_mdev(dev, port_num,
- &mdev_port_num);
+ if (!port_num)
+ port_num = 1;
+ mdev = mlx5_ib_get_native_port_mdev(dev, port_num, NULL);
if (!mdev) {
/* If port is not affiliated yet, its in down state
* which doesn't have any counters yet, so it would be
--
2.50.1
Hi all,
Random fixes for 6.18.
If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.
This has been running on the djcloud for months with no problems. Enjoy!
Comments and questions are, as always, welcome.
--D
kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=xf…
---
Commits in this patchset:
* xfs: don't set bt_nr_sectors to a negative number
* xfs: always warn about deprecated mount options
* xfs: loudly complain about defunct mount options
* xfs: fix locking in xchk_nlinks_collect_dir
---
fs/xfs/xfs_buf.h | 1 +
fs/xfs/scrub/nlinks.c | 34 +++++++++++++++++++++++++++++++---
fs/xfs/xfs_buf.c | 2 +-
fs/xfs/xfs_super.c | 45 +++++++++++++++++++++++++++++++++++----------
4 files changed, 68 insertions(+), 14 deletions(-)
Mejora el clima organizacional
body {
margin: 0;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #333;
background-color: #ffffff;
}
table {
border-spacing: 0;
width: 100%;
max-width: 600px;
margin: auto;
}
td {
padding: 12px 20px;
}
a {
color: #1a73e8;
text-decoration: none;
}
.footer {
font-size: 12px;
color: #888888;
text-align: center;
}
Diagnostica el clima y cultura de tu organización con Vorecol Work Environment.
Hola, ,
El desempeño de un equipo no solo depende del talento individual, también del entorno en el que trabaja. Muchas veces, los problemas de rotación o bajo compromiso tienen raíces invisibles... hasta que se miden.
Por eso quiero presentarte Vorecol Work Environment, una herramienta diseñada para ayudarte a comprender mejor cómo se vive la cultura y el clima dentro de tu organización.
Con Vorecol puedes:
Aplicar evaluaciones periódicas de clima y cultura organizacional, personalizadas a tu contexto.
Obtener resultados organizados por áreas, con alertas sobre temas críticos como liderazgo, carga laboral o reconocimiento.
Acceder a paneles dinámicos que te permiten visualizar tendencias, puntos de mejora y fortalezas de forma clara.
Ideal para organizaciones que quieren escuchar más, reaccionar mejor y construir un entorno donde las personas quieran quedarse.
Si estás buscando mejorar tu ambiente laboral, vale la pena considerarlo. Si quieres conocer más puedes responder este correo o simplemente contactarme, mis datos están abajo.
Saludos,
--------------
Atte.: Daniel Rodríguez
Ciudad de México: (55) 5018 0565
WhatsApp: +52 33 1607 2089
Si no deseas recibir más correos, haz clic aquí para darte de baja.
Para remover su dirección de esta lista haga <a href="https://s1.arrobamail.com/unsuscribe.php?id=yiwtsrewispprseup">click aquí</a>
Once cdev_device_add() failed, we should use put_device() to decrement
reference count for cleanup. Or it could cause memory leak. Although
operations in err_free_ida are similar to the operations in callback
function fsi_slave_release(), put_device() is a correct handling
operation as comments require when cdev_device_add() fails.
As comment of device_add() says, 'if device_add() succeeds, you should
call device_del() when you want to get rid of it. If device_add() has
not succeeded, use only put_device() to drop the reference count'.
Found by code review.
Cc: stable(a)vger.kernel.org
Fixes: 371975b0b075 ("fsi/core: Fix error paths on CFAM init")
Signed-off-by: Ma Ke <make24(a)iscas.ac.cn>
---
drivers/fsi/fsi-core.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
index c6c115993ebc..444878ab9fb1 100644
--- a/drivers/fsi/fsi-core.c
+++ b/drivers/fsi/fsi-core.c
@@ -1084,7 +1084,8 @@ static int fsi_slave_init(struct fsi_master *master, int link, uint8_t id)
rc = cdev_device_add(&slave->cdev, &slave->dev);
if (rc) {
dev_err(&slave->dev, "Error %d creating slave device\n", rc);
- goto err_free_ida;
+ put_device(&slave->dev);
+ return rc;
}
/* Now that we have the cdev registered with the core, any fatal
@@ -1110,8 +1111,6 @@ static int fsi_slave_init(struct fsi_master *master, int link, uint8_t id)
return 0;
-err_free_ida:
- fsi_free_minor(slave->dev.devt);
err_free:
of_node_put(slave->dev.of_node);
kfree(slave);
--
2.17.1
From: "Kory Maincent (TI.com)" <kory.maincent(a)bootlin.com>
The drm_kms_helper_poll_fini() and drm_atomic_helper_shutdown() helpers
should only be called when the device has been successfully registered.
Currently, these functions are called unconditionally in tilcdc_fini(),
which causes warnings during probe deferral scenarios.
[ 7.972317] WARNING: CPU: 0 PID: 23 at drivers/gpu/drm/drm_atomic_state_helper.c:175 drm_atomic_helper_crtc_duplicate_state+0x60/0x68
...
[ 8.005820] drm_atomic_helper_crtc_duplicate_state from drm_atomic_get_crtc_state+0x68/0x108
[ 8.005858] drm_atomic_get_crtc_state from drm_atomic_helper_disable_all+0x90/0x1c8
[ 8.005885] drm_atomic_helper_disable_all from drm_atomic_helper_shutdown+0x90/0x144
[ 8.005911] drm_atomic_helper_shutdown from tilcdc_fini+0x68/0xf8 [tilcdc]
[ 8.005957] tilcdc_fini [tilcdc] from tilcdc_pdev_probe+0xb0/0x6d4 [tilcdc]
Fix this by moving both drm_kms_helper_poll_fini() and
drm_atomic_helper_shutdown() inside the priv->is_registered conditional
block, ensuring they only execute after successful device registration.
Cc: stable(a)vger.kernel.org
Reviewed-by: Swamil Jain <s-jain1(a)ti.com>
Fixes: 3c4babae3c4a ("drm: Call drm_atomic_helper_shutdown() at shutdown/remove time for misc drivers")
Signed-off-by: Kory Maincent (TI.com) <kory.maincent(a)bootlin.com>
---
I'm working on removing the usage of deprecated functions as well as
general improvements to this driver, but it will take some time so for
now this is a simple fix to a functional bug.
Change in v2:
- Add missing cc: stable tag
- Add Swamil reviewed-by
---
drivers/gpu/drm/tilcdc/tilcdc_drv.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 7caec4d38ddf..2031267a3490 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -172,11 +172,11 @@ static void tilcdc_fini(struct drm_device *dev)
if (priv->crtc)
tilcdc_crtc_shutdown(priv->crtc);
- if (priv->is_registered)
+ if (priv->is_registered) {
drm_dev_unregister(dev);
-
- drm_kms_helper_poll_fini(dev);
- drm_atomic_helper_shutdown(dev);
+ drm_kms_helper_poll_fini(dev);
+ drm_atomic_helper_shutdown(dev);
+ }
tilcdc_irq_uninstall(dev);
drm_mode_config_cleanup(dev);
--
2.43.0
handle_response() dereferences the payload as a 4-byte handle without
verifying that the declared payload size is at least 4 bytes. A malformed
or truncated message from ksmbd.mountd can lead to a 4-byte read past the
declared payload size. Validate the size before dereferencing.
This is a minimal fix to guard the initial handle read.
Fixes: 0626e6641f6b ("cifsd: add server handler for central processing and tranport layers")
Cc: stable(a)vger.kernel.org
Reported-by: Qianchang Zhao <pioooooooooip(a)gmail.com>
Signed-off-by: Qianchang Zhao <pioooooooooip(a)gmail.com>
---
fs/smb/server/transport_ipc.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/fs/smb/server/transport_ipc.c b/fs/smb/server/transport_ipc.c
index 46f87fd1ce1c..2028de4d3ddf 100644
--- a/fs/smb/server/transport_ipc.c
+++ b/fs/smb/server/transport_ipc.c
@@ -263,6 +263,10 @@ static void ipc_msg_handle_free(int handle)
static int handle_response(int type, void *payload, size_t sz)
{
+ /* Prevent 4-byte read beyond declared payload size */
+ if (sz < sizeof(unsigned int))
+ return -EINVAL;
+
unsigned int handle = *(unsigned int *)payload;
struct ipc_msg_table_entry *entry;
int ret = 0;
--
2.34.1
Between Rust 1.79 and 1.86, under `CONFIG_RUST_KERNEL_DOCTESTS=y`,
`objtool` may report:
rust/doctests_kernel_generated.o: warning: objtool:
rust_doctest_kernel_alloc_kbox_rs_13() falls through to next
function rust_doctest_kernel_alloc_kvec_rs_0()
(as well as in rust_doctest_kernel_alloc_kvec_rs_0) due to calls to the
`noreturn` symbol:
core::option::expect_failed
from code added in commits 779db37373a3 ("rust: alloc: kvec: implement
AsPageIter for VVec") and 671618432f46 ("rust: alloc: kbox: implement
AsPageIter for VBox").
Thus add the mangled one to the list so that `objtool` knows it is
actually `noreturn`.
This can be reproduced as well in other versions by tweaking the code,
such as the latest stable Rust (1.90.0).
Stable does not have code that triggers this, but it could have it in
the future. Downstream forks could too. Thus tag it for backport.
See commit 56d680dd23c3 ("objtool/rust: list `noreturn` Rust functions")
for more details.
Cc: stable(a)vger.kernel.org # Needed in 6.12.y and later.
Cc: Josh Poimboeuf <jpoimboe(a)kernel.org>
Cc: Peter Zijlstra <peterz(a)infradead.org>
Signed-off-by: Miguel Ojeda <ojeda(a)kernel.org>
---
tools/objtool/check.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index a5770570b106..3c7ab910b189 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -217,6 +217,7 @@ static bool is_rust_noreturn(const struct symbol *func)
* these come from the Rust standard library).
*/
return str_ends_with(func->name, "_4core5sliceSp15copy_from_slice17len_mismatch_fail") ||
+ str_ends_with(func->name, "_4core6option13expect_failed") ||
str_ends_with(func->name, "_4core6option13unwrap_failed") ||
str_ends_with(func->name, "_4core6result13unwrap_failed") ||
str_ends_with(func->name, "_4core9panicking5panic") ||
base-commit: 211ddde0823f1442e4ad052a2f30f050145ccada
--
2.51.0
From: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Add a final dma_wmb() barrier before triggering the transmit request
(TCCR_TSRQ) to ensure all descriptor and buffer writes are visible to
the DMA engine.
According to the hardware manual, a read-back operation is required
before writing to the doorbell register to guarantee completion of
previous writes. Instead of performing a dummy read, a dma_wmb() is
used to both enforce the same ordering semantics on the CPU side and
also to ensure completion of writes.
Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper")
Cc: stable(a)vger.kernel.org
Co-developed-by: Fabrizio Castro <fabrizio.castro.jz(a)renesas.com>
Signed-off-by: Fabrizio Castro <fabrizio.castro.jz(a)renesas.com>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
---
v1->v2:
- New patch added to separate out the memory barrier change
before ringing the doorbell.
---
drivers/net/ethernet/renesas/ravb_main.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index 0e40001f64b4..c3fc15f9ec85 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -2232,6 +2232,14 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)
dma_wmb();
desc->die_dt = DT_FSINGLE;
}
+
+ /* Before ringing the doorbell we need to make sure that the latest
+ * writes have been committed to memory, otherwise it could delay
+ * things until the doorbell is rang again.
+ * This is in replacement of the read operation mentioned in the HW
+ * manuals.
+ */
+ dma_wmb();
ravb_modify(ndev, TCCR, TCCR_TSRQ0 << q, TCCR_TSRQ0 << q);
priv->cur_tx[q] += num_tx_desc;
--
2.43.0
From: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
Ensure the TX descriptor type fields are published in a safe order so the
DMA engine never begins processing a descriptor chain before all descriptor
fields are fully initialised.
For multi-descriptor transmits the driver writes DT_FEND into the last
descriptor and DT_FSTART into the first. The DMA engine begins processing
when it observes DT_FSTART. Move the dma_wmb() barrier so it executes
immediately after DT_FEND and immediately before writing DT_FSTART
(and before DT_FSINGLE in the single-descriptor case). This guarantees
that all prior CPU writes to the descriptor memory are visible to the
device before DT_FSTART is seen.
This avoids a situation where compiler/CPU reordering could publish
DT_FSTART ahead of DT_FEND or other descriptor fields, allowing the DMA to
start on a partially initialised chain and causing corrupted transmissions
or TX timeouts. Such a failure was observed on RZ/G2L with an RT kernel as
transmit queue timeouts and device resets.
Fixes: 2f45d1902acf ("ravb: minimize TX data copying")
Cc: stable(a)vger.kernel.org
Co-developed-by: Fabrizio Castro <fabrizio.castro.jz(a)renesas.com>
Signed-off-by: Fabrizio Castro <fabrizio.castro.jz(a)renesas.com>
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj(a)bp.renesas.com>
---
v1->v2:
- Reflowed the code and updated the comment to clarify the ordering
requirements.
- Updated commit message.
- Split up adding memory barrier change before ringing doorbell
into a separate patch.
---
drivers/net/ethernet/renesas/ravb_main.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
index a200e205825a..0e40001f64b4 100644
--- a/drivers/net/ethernet/renesas/ravb_main.c
+++ b/drivers/net/ethernet/renesas/ravb_main.c
@@ -2211,13 +2211,25 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *skb, struct net_device *ndev)
skb_tx_timestamp(skb);
}
- /* Descriptor type must be set after all the above writes */
- dma_wmb();
+
if (num_tx_desc > 1) {
desc->die_dt = DT_FEND;
desc--;
+ /* When using multi-descriptors, DT_FEND needs to get written
+ * before DT_FSTART, but the compiler may reorder the memory
+ * writes in an attempt to optimize the code.
+ * Use a dma_wmb() barrier to make sure DT_FEND and DT_FSTART
+ * are written exactly in the order shown in the code.
+ * This is particularly important for cases where the DMA engine
+ * is already running when we are running this code. If the DMA
+ * sees DT_FSTART without the corresponding DT_FEND it will enter
+ * an error condition.
+ */
+ dma_wmb();
desc->die_dt = DT_FSTART;
} else {
+ /* Descriptor type must be set after all the above writes */
+ dma_wmb();
desc->die_dt = DT_FSINGLE;
}
ravb_modify(ndev, TCCR, TCCR_TSRQ0 << q, TCCR_TSRQ0 << q);
--
2.43.0
Hello,
This series is based on commit
320475fbd590 Merge tag 'mtd/fixes-for-6.17-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
of Mainline Linux.
The first patch in the series has been posted as a Fix in contrast to
its predecessor at:
https://lore.kernel.org/r/20250903124505.365913-10-s-vadapalli@ti.com/
based on the feedback provided by Jiri Slaby <jirislaby(a)kernel.org> at:
https://lore.kernel.org/r/3d3a4b52-e343-42f3-9d69-94c259812143@kernel.org/
Since the Fix is independent of enabling loadable module support for the
pci-keystone.c driver, it is being posted as a new patch.
Checking out at the commit of Mainline Linux which this series is based
on, I noticed an exception triggered by the pci-keystone.c driver during
its probe. Although this is not a fatal exception and Linux continues to
boot, the driver is non-functional. I root-caused the exception to
free_initmem() freeing the memory associated with the ks_pcie_host_init()
function in the driver before the driver's probe was invoked. This
appears to be a race condition but it is easily reproducible with the
Linux .config that I have used. The fix therefore is to remove the
__init macro which is implemented by the second patch in the series.
For reference, the logs for the case where Linux is built by checking
out at the base commit of Mainline Linux are:
https://gist.github.com/Siddharth-Vadapalli-at-TI/f4891b707921c53dfb464ad2f…
and the logs clearly prove that the print associated with free_initmem()
which is:
[ 2.446834] Freeing unused kernel memory: 4864K
is displayed prior to the prints associated with the pci-keystone.c
driver being probed which is:
[ 7.707103] keystone-pcie 5500000.pcie: host bridge /bus@100000/pcie@5500000 ranges:
Building Linux by applying both patches in the series on the base commit of
Mainline Linux, the driver probes successfully without any exceptions or
errors. This was tested on AM654-EVM with an NVMe SSD connected to the
PCIe Connector on the board. The NVMe SSD enumerates successfully.
Additionally, the 'hdparm' utility was used to read from the SSD
confirming that the SSD is functional. The logs corresponding to this are:
https://gist.github.com/Siddharth-Vadapalli-at-TI/1b09a12a53db4233e82c5bcfc…
Regards,
Siddharth.
Siddharth Vadapalli (2):
PCI: keystone: Use devm_request_irq() to free "ks-pcie-error-irq" on
exit
PCI: keystone: Remove the __init macro for the ks_pcie_host_init()
callback
drivers/pci/controller/dwc/pci-keystone.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--
2.43.0
commit 039d4926379b ("serial: 8250: Toggle IER bits on only after irq
has been set up") moved IRQ setup before the THRE test, so the interrupt
handler can run during the test and race with its IIR reads. This can
produce wrong THRE test results and cause spurious registration of the
serial8250_backup_timeout timer. Unconditionally disable the IRQ for the
short duration of the test and re-enable it afterwards to avoid the race.
Cc: stable(a)vger.kernel.org
Fixes: 039d4926379b ("serial: 8250: Toggle IER bits on only after irq has been set up")
Signed-off-by: Peng Zhang <zhangpeng.00(a)bytedance.com>
---
drivers/tty/serial/8250/8250_port.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 719faf92aa8a..f1740cc91143 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -2147,8 +2147,7 @@ static void serial8250_THRE_test(struct uart_port *port)
if (up->port.flags & UPF_NO_THRE_TEST)
return;
- if (port->irqflags & IRQF_SHARED)
- disable_irq_nosync(port->irq);
+ disable_irq(port->irq);
/*
* Test for UARTs that do not reassert THRE when the transmitter is idle and the interrupt
@@ -2170,8 +2169,7 @@ static void serial8250_THRE_test(struct uart_port *port)
serial_port_out(port, UART_IER, 0);
}
- if (port->irqflags & IRQF_SHARED)
- enable_irq(port->irq);
+ enable_irq(port->irq);
/*
* If the interrupt is not reasserted, or we otherwise don't trust the iir, setup a timer to
--
2.20.1
The padding field in the structure was previously reserved to
maintain a stable interface for potential new fields, ensuring
compatibility with user-space shared data structures.
However,it was accidentally removed by tiantao in a prior commit,
which may lead to incompatibility between user space and the kernel.
This patch reinstates the padding to restore the original structure
layout and preserve compatibility.
Fixes: 8ddde07a3d28 ("dma-mapping: benchmark: extract a common header file for map_benchmark definition")
Cc: stable(a)vger.kernel.org
Acked-by: Barry Song <baohua(a)kernel.org>
Signed-off-by: Qinxin Xia <xiaqinxin(a)huawei.com>
---
include/linux/map_benchmark.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/linux/map_benchmark.h b/include/linux/map_benchmark.h
index 62674c83bde4..2ac2fe52f248 100644
--- a/include/linux/map_benchmark.h
+++ b/include/linux/map_benchmark.h
@@ -27,5 +27,6 @@ struct map_benchmark {
__u32 dma_dir; /* DMA data direction */
__u32 dma_trans_ns; /* time for DMA transmission in ns */
__u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */
+ __u8 expansion[76]; /* For future use */
};
#endif /* _KERNEL_DMA_BENCHMARK_H */
--
2.33.0
Dear all,
this commit (Upstream commit 51a73f1b2e56b0324b4a3bb8cebc4221b5be4c7)
makes our WLE600 Compex wifi cards (qca988x based) unusable. Reverting
the commit brings the wifi card back.
This was discovered on the v6.12.53 from today.
ath10k messages excerpt:
--------------
Oct 15 22:00:13 klog: ath10k_pci 0000:05:00.0: pci irq msi oper_irq_mode
2 irq_mode 0 reset_mode 0
Oct 15 22:00:13 klog: ath10k_pci 0000:05:00.0: qca988x hw2.0 target
0x4100016c chip_id 0x043222ff sub 0000:0000
Oct 15 22:00:13 klog: ath10k_pci 0000:05:00.0: kconfig debug 0 debugfs 0
tracing 0 dfs 1 testmode 0
Oct 15 22:00:13 klog: ath10k_pci 0000:05:00.0: firmware ver
10.2.4-1.0-00047 api 5 features no-p2p,raw-mode,mfp,allows-mesh-bcast
crc32 35bd9258
Oct 15 22:00:13 klog: ath10k_pci 0000:05:00.0: board_file api 1 bmi_id
N/A crc32 bebc7c08
Oct 15 22:00:20 klog: ath10k_pci 0000:05:00.0: wmi unified ready event
not received
Oct 15 22:00:21 klog: ath10k_pci 0000:05:00.0: could not init core (-110)
Oct 15 22:00:21 klog: ath10k_pci 0000:05:00.0: could not probe fw (-110)
--------------
Beside reverting, how can we help fixing this?
Thanks & regards,
Andreas
As comment of device_add() says, 'if device_add() succeeds, you should
call device_del() when you want to get rid of it. If device_add() has
not succeeded, use only put_device() to drop the reference count'.
Found by code review.
Cc: stable(a)vger.kernel.org
Fixes: 371975b0b075 ("fsi/core: Fix error paths on CFAM init")
Signed-off-by: Ma Ke <make24(a)iscas.ac.cn>
---
drivers/fsi/fsi-core.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
index c6c115993ebc..444878ab9fb1 100644
--- a/drivers/fsi/fsi-core.c
+++ b/drivers/fsi/fsi-core.c
@@ -1084,7 +1084,8 @@ static int fsi_slave_init(struct fsi_master *master, int link, uint8_t id)
rc = cdev_device_add(&slave->cdev, &slave->dev);
if (rc) {
dev_err(&slave->dev, "Error %d creating slave device\n", rc);
- goto err_free_ida;
+ put_device(&slave->dev);
+ return rc;
}
/* Now that we have the cdev registered with the core, any fatal
@@ -1110,8 +1111,6 @@ static int fsi_slave_init(struct fsi_master *master, int link, uint8_t id)
return 0;
-err_free_ida:
- fsi_free_minor(slave->dev.devt);
err_free:
of_node_put(slave->dev.of_node);
kfree(slave);
--
2.17.1
A race condition during gadget teardown can lead to a use-after-free
in usb_gadget_state_work(), as reported by KASAN:
BUG: KASAN: invalid-access in sysfs_notify+0_x_2c/0_x_d0
Workqueue: events usb_gadget_state_work
The fundamental race occurs because a concurrent event (e.g., an
interrupt) can call usb_gadget_set_state() and schedule gadget->work
at any time during the cleanup process in usb_del_gadget().
Commit 399a45e5237c ("usb: gadget: core: flush gadget workqueue after
device removal") attempted to fix this by moving flush_work() to after
device_del(). However, this does not fully solve the race, as a new
work item can still be scheduled *after* flush_work() completes but
before the gadget's memory is freed, leading to the same use-after-free.
This patch fixes the race condition robustly by introducing a 'teardown'
flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is
set during cleanup in usb_del_gadget() *before* calling flush_work() to
prevent any new work from being scheduled once cleanup has commenced.
The scheduling site, usb_gadget_set_state(), now checks this flag under
the lock before queueing the work, thus safely closing the race window.
Changes in v2:
- Removed redundant inline comments as suggested by Alan Stern.
Fixes: 5702f75375aa9 ("usb: gadget: udc-core: move sysfs_notify() to a workqueue")
Signed-off-by: Jimmy Hu <hhhuuu(a)google.com>
Cc: stable(a)vger.kernel.org
---
drivers/usb/gadget/udc/core.c | 17 ++++++++++++++++-
include/linux/usb/gadget.h | 5 +++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c
index d709e24c1fd4..66d2428835da 100644
--- a/drivers/usb/gadget/udc/core.c
+++ b/drivers/usb/gadget/udc/core.c
@@ -1123,8 +1123,13 @@ static void usb_gadget_state_work(struct work_struct *work)
void usb_gadget_set_state(struct usb_gadget *gadget,
enum usb_device_state state)
{
+ unsigned long flags;
+
+ spin_lock_irqsave(&gadget->state_lock, flags);
gadget->state = state;
- schedule_work(&gadget->work);
+ if (!gadget->teardown)
+ schedule_work(&gadget->work);
+ spin_unlock_irqrestore(&gadget->state_lock, flags);
}
EXPORT_SYMBOL_GPL(usb_gadget_set_state);
@@ -1357,6 +1362,8 @@ static void usb_udc_nop_release(struct device *dev)
void usb_initialize_gadget(struct device *parent, struct usb_gadget *gadget,
void (*release)(struct device *dev))
{
+ spin_lock_init(&gadget->state_lock);
+ gadget->teardown = false;
INIT_WORK(&gadget->work, usb_gadget_state_work);
gadget->dev.parent = parent;
@@ -1531,6 +1538,7 @@ EXPORT_SYMBOL_GPL(usb_add_gadget_udc);
void usb_del_gadget(struct usb_gadget *gadget)
{
struct usb_udc *udc = gadget->udc;
+ unsigned long flags;
if (!udc)
return;
@@ -1544,6 +1552,13 @@ void usb_del_gadget(struct usb_gadget *gadget)
kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE);
sysfs_remove_link(&udc->dev.kobj, "gadget");
device_del(&gadget->dev);
+ /*
+ * Set the teardown flag before flushing the work to prevent new work
+ * from being scheduled while we are cleaning up.
+ */
+ spin_lock_irqsave(&gadget->state_lock, flags);
+ gadget->teardown = true;
+ spin_unlock_irqrestore(&gadget->state_lock, flags);
flush_work(&gadget->work);
ida_free(&gadget_id_numbers, gadget->id_number);
cancel_work_sync(&udc->vbus_work);
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index 0f28c5512fcb..8b5e593f7966 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -351,6 +351,9 @@ struct usb_gadget_ops {
* can handle. The UDC must support this and all slower speeds and lower
* number of lanes.
* @state: the state we are now (attached, suspended, configured, etc)
+ * @state_lock: Spinlock protecting the `state` and `teardown` members.
+ * @teardown: True if the device is undergoing teardown, used to prevent
+ * new work from being scheduled during cleanup.
* @name: Identifies the controller hardware type. Used in diagnostics
* and sometimes configuration.
* @dev: Driver model state for this abstract device.
@@ -426,6 +429,8 @@ struct usb_gadget {
enum usb_ssp_rate max_ssp_rate;
enum usb_device_state state;
+ spinlock_t state_lock;
+ bool teardown;
const char *name;
struct device dev;
unsigned isoch_delay;
--
2.51.0.760.g7b8bcc2412-goog
From: Kairui Song <kasong(a)tencent.com>
There are some problems with the code implementations of THP fallback.
suitable_orders could be zero, and calling highest_order on a zero value
returns an overflowed size. And the order check loop is updating the
index value on every loop which may cause the index to be aligned by a
larger value while the loop shrinks the order. And it forgot to try order
0 after the final loop.
This is usually fine because shmem_add_to_page_cache ensures the shmem
mapping is still sane, but it might cause many potential issues like
allocating random folios into the random position in the map or return
-ENOMEM by accident. This triggered some strange userspace errors [1],
and shouldn't have happened in the first place.
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/linux-mm/CAMgjq7DqgAmj25nDUwwu1U2cSGSn8n4-Hqpgotted… [1]
Fixes: e7a2ab7b3bb5d ("mm: shmem: add mTHP support for anonymous shmem")
Signed-off-by: Kairui Song <kasong(a)tencent.com>
---
mm/shmem.c | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/mm/shmem.c b/mm/shmem.c
index b50ce7dbc84a..25303711f123 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -1824,6 +1824,9 @@ static unsigned long shmem_suitable_orders(struct inode *inode, struct vm_fault
unsigned long pages;
int order;
+ if (!orders)
+ return 0;
+
if (vma) {
orders = thp_vma_suitable_orders(vma, vmf->address, orders);
if (!orders)
@@ -1888,27 +1891,28 @@ static struct folio *shmem_alloc_and_add_folio(struct vm_fault *vmf,
if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE))
orders = 0;
- if (orders > 0) {
- suitable_orders = shmem_suitable_orders(inode, vmf,
- mapping, index, orders);
+ suitable_orders = shmem_suitable_orders(inode, vmf,
+ mapping, index, orders);
+ if (suitable_orders) {
order = highest_order(suitable_orders);
- while (suitable_orders) {
+ do {
pages = 1UL << order;
- index = round_down(index, pages);
- folio = shmem_alloc_folio(gfp, order, info, index);
- if (folio)
+ folio = shmem_alloc_folio(gfp, order, info, round_down(index, pages));
+ if (folio) {
+ index = round_down(index, pages);
goto allocated;
+ }
if (pages == HPAGE_PMD_NR)
count_vm_event(THP_FILE_FALLBACK);
count_mthp_stat(order, MTHP_STAT_SHMEM_FALLBACK);
order = next_order(&suitable_orders, order);
- }
- } else {
- pages = 1;
- folio = shmem_alloc_folio(gfp, 0, info, index);
+ } while (suitable_orders);
}
+
+ pages = 1;
+ folio = shmem_alloc_folio(gfp, 0, info, index);
if (!folio)
return ERR_PTR(-ENOMEM);
--
2.51.0
Page cache folios from a file system that support large block size (LBS)
can have minimal folio order greater than 0, thus a high order folio might
not be able to be split down to order-0. Commit e220917fa507 ("mm: split a
folio in minimum folio order chunks") bumps the target order of
split_huge_page*() to the minimum allowed order when splitting a LBS folio.
This causes confusion for some split_huge_page*() callers like memory
failure handling code, since they expect after-split folios all have
order-0 when split succeeds but in reality get min_order_for_split() order
folios and give warnings.
Fix it by failing a split if the folio cannot be split to the target order.
Rename try_folio_split() to try_folio_split_to_order() to reflect the added
new_order parameter. Remove its unused list parameter.
Fixes: e220917fa507 ("mm: split a folio in minimum folio order chunks")
[The test poisons LBS folios, which cannot be split to order-0 folios, and
also tries to poison all memory. The non split LBS folios take more memory
than the test anticipated, leading to OOM. The patch fixed the kernel
warning and the test needs some change to avoid OOM.]
Reported-by: syzbot+e6367ea2fdab6ed46056(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/all/68d2c943.a70a0220.1b52b.02b3.GAE@google.com/
Cc: stable(a)vger.kernel.org
Signed-off-by: Zi Yan <ziy(a)nvidia.com>
Reviewed-by: Luis Chamberlain <mcgrof(a)kernel.org>
Reviewed-by: Pankaj Raghav <p.raghav(a)samsung.com>
Reviewed-by: Wei Yang <richard.weiyang(a)gmail.com>
---
From V2[1]:
1. Removed a typo in try_folio_split_to_order() comment.
2. Sent the Fixes patch separately.
[1] https://lore.kernel.org/linux-mm/20251016033452.125479-1-ziy@nvidia.com/
include/linux/huge_mm.h | 55 +++++++++++++++++------------------------
mm/huge_memory.c | 9 +------
mm/truncate.c | 6 +++--
3 files changed, 28 insertions(+), 42 deletions(-)
diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
index c4a811958cda..7698b3542c4f 100644
--- a/include/linux/huge_mm.h
+++ b/include/linux/huge_mm.h
@@ -383,45 +383,30 @@ static inline int split_huge_page_to_list_to_order(struct page *page, struct lis
}
/*
- * try_folio_split - try to split a @folio at @page using non uniform split.
+ * try_folio_split_to_order - try to split a @folio at @page to @new_order using
+ * non uniform split.
* @folio: folio to be split
- * @page: split to order-0 at the given page
- * @list: store the after-split folios
+ * @page: split to @new_order at the given page
+ * @new_order: the target split order
*
- * Try to split a @folio at @page using non uniform split to order-0, if
- * non uniform split is not supported, fall back to uniform split.
+ * Try to split a @folio at @page using non uniform split to @new_order, if
+ * non uniform split is not supported, fall back to uniform split. After-split
+ * folios are put back to LRU list. Use min_order_for_split() to get the lower
+ * bound of @new_order.
*
* Return: 0: split is successful, otherwise split failed.
*/
-static inline int try_folio_split(struct folio *folio, struct page *page,
- struct list_head *list)
+static inline int try_folio_split_to_order(struct folio *folio,
+ struct page *page, unsigned int new_order)
{
- int ret = min_order_for_split(folio);
-
- if (ret < 0)
- return ret;
-
- if (!non_uniform_split_supported(folio, 0, false))
- return split_huge_page_to_list_to_order(&folio->page, list,
- ret);
- return folio_split(folio, ret, page, list);
+ if (!non_uniform_split_supported(folio, new_order, /* warns= */ false))
+ return split_huge_page_to_list_to_order(&folio->page, NULL,
+ new_order);
+ return folio_split(folio, new_order, page, NULL);
}
static inline int split_huge_page(struct page *page)
{
- struct folio *folio = page_folio(page);
- int ret = min_order_for_split(folio);
-
- if (ret < 0)
- return ret;
-
- /*
- * split_huge_page() locks the page before splitting and
- * expects the same page that has been split to be locked when
- * returned. split_folio(page_folio(page)) cannot be used here
- * because it converts the page to folio and passes the head
- * page to be split.
- */
- return split_huge_page_to_list_to_order(page, NULL, ret);
+ return split_huge_page_to_list_to_order(page, NULL, 0);
}
void deferred_split_folio(struct folio *folio, bool partially_mapped);
#ifdef CONFIG_MEMCG
@@ -611,14 +596,20 @@ static inline int split_huge_page(struct page *page)
return -EINVAL;
}
+static inline int min_order_for_split(struct folio *folio)
+{
+ VM_WARN_ON_ONCE_FOLIO(1, folio);
+ return -EINVAL;
+}
+
static inline int split_folio_to_list(struct folio *folio, struct list_head *list)
{
VM_WARN_ON_ONCE_FOLIO(1, folio);
return -EINVAL;
}
-static inline int try_folio_split(struct folio *folio, struct page *page,
- struct list_head *list)
+static inline int try_folio_split_to_order(struct folio *folio,
+ struct page *page, unsigned int new_order)
{
VM_WARN_ON_ONCE_FOLIO(1, folio);
return -EINVAL;
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index f14fbef1eefd..fc65ec3393d2 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -3812,8 +3812,6 @@ static int __folio_split(struct folio *folio, unsigned int new_order,
min_order = mapping_min_folio_order(folio->mapping);
if (new_order < min_order) {
- VM_WARN_ONCE(1, "Cannot split mapped folio below min-order: %u",
- min_order);
ret = -EINVAL;
goto out;
}
@@ -4165,12 +4163,7 @@ int min_order_for_split(struct folio *folio)
int split_folio_to_list(struct folio *folio, struct list_head *list)
{
- int ret = min_order_for_split(folio);
-
- if (ret < 0)
- return ret;
-
- return split_huge_page_to_list_to_order(&folio->page, list, ret);
+ return split_huge_page_to_list_to_order(&folio->page, list, 0);
}
/*
diff --git a/mm/truncate.c b/mm/truncate.c
index 91eb92a5ce4f..9210cf808f5c 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -194,6 +194,7 @@ bool truncate_inode_partial_folio(struct folio *folio, loff_t start, loff_t end)
size_t size = folio_size(folio);
unsigned int offset, length;
struct page *split_at, *split_at2;
+ unsigned int min_order;
if (pos < start)
offset = start - pos;
@@ -223,8 +224,9 @@ bool truncate_inode_partial_folio(struct folio *folio, loff_t start, loff_t end)
if (!folio_test_large(folio))
return true;
+ min_order = mapping_min_folio_order(folio->mapping);
split_at = folio_page(folio, PAGE_ALIGN_DOWN(offset) / PAGE_SIZE);
- if (!try_folio_split(folio, split_at, NULL)) {
+ if (!try_folio_split_to_order(folio, split_at, min_order)) {
/*
* try to split at offset + length to make sure folios within
* the range can be dropped, especially to avoid memory waste
@@ -254,7 +256,7 @@ bool truncate_inode_partial_folio(struct folio *folio, loff_t start, loff_t end)
*/
if (folio_test_large(folio2) &&
folio2->mapping == folio->mapping)
- try_folio_split(folio2, split_at2, NULL);
+ try_folio_split_to_order(folio2, split_at2, min_order);
folio_unlock(folio2);
out:
--
2.51.0
The migration of IDIO-16 GPIO drivers to the regmap API resulted in some
regressions to the gpio-104-idio-16, gpio-pci-idio-16, and gpio-idio-16
modules. Specifically, the 104-idio-16 and pci-idio-16 GPIO drivers
utilize regmap caching and thus must set max_register for their
regmap_config, while gpio-idio-16 requires fixed_direction_output to
represent the fixed direction of the IDIO-16 GPIO lines. Fixes for these
regressions are provided by this series.
Link: https://lore.kernel.org/r/cover.1680618405.git.william.gray@linaro.org
Closes: https://lore.kernel.org/r/9b0375fd-235f-4ee1-a7fa-daca296ef6bf@nutanix.com
Signed-off-by: William Breathitt Gray <wbg(a)kernel.org>
---
Changes in v2:
- Pick up Reviewed-by tags
- Replace Link tags with Closes tags for fixes addressing bug reports
- Link to v1: https://lore.kernel.org/r/20251017-fix-gpio-idio-16-regmap-v1-0-a7c71080f74…
---
William Breathitt Gray (3):
gpio: 104-idio-16: Define maximum valid register address offset
gpio: pci-idio-16: Define maximum valid register address offset
gpio: idio-16: Define fixed direction of the GPIO lines
drivers/gpio/gpio-104-idio-16.c | 1 +
drivers/gpio/gpio-idio-16.c | 5 +++++
drivers/gpio/gpio-pci-idio-16.c | 1 +
3 files changed, 7 insertions(+)
---
base-commit: eba11116f39533d2e38cc5898014f2c95f32d23a
change-id: 20251017-fix-gpio-idio-16-regmap-1282cdc56a19
Best regards,
--
William Breathitt Gray <wbg(a)kernel.org>
Dear sir/Ma
I'm an Investment Financing Consultant working for top investment financing companies globally.
By virtue of my esteemed affiliation with a Bank in Hong Kong, S. Korea, Japan and the USA, we can help you get a Credit Line which will actively give you access to Funds between $10 million to $5 billion up to a period of 5 to 10 years for 5% annual rate on the credit line in returns.
I will help you process the Credit Line within a few days if interested.
The Fund is available to fund any type of viable businesses, investments or projects.
Let me know the exact amount you need for your projects.
Get in touch if you have a viable project that requires funding.
Regards
Ms. Madelaine Alfelor.
[2025-10-20 10:36] gregkh linuxfoundation ! org:
> This is a note to let you know that I've just added the patch titled
>
> PM: hibernate: Add pm_hibernation_mode_is_suspend()
>
> to the 6.17-stable tree which can be found at:
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=sum…
>
> The filename of the patch is:
> pm-hibernate-add-pm_hibernation_mode_is_suspend.patch
> and it can be found in the queue-6.17 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable(a)vger.kernel.org> know about it.
>
>
> From stable+bounces-187839-greg=kroah.com(a)vger.kernel.org Sat Oct 18 15:51:25 2025
> From: Sasha Levin <sashal(a)kernel.org>
> Date: Sat, 18 Oct 2025 09:51:01 -0400
> Subject: PM: hibernate: Add pm_hibernation_mode_is_suspend()
> To: stable(a)vger.kernel.org
> Cc: "Mario Limonciello (AMD)" <superm1(a)kernel.org>, Ionut Nechita <ionut_n2001(a)yahoo.com>, Kenneth Crudup <kenny(a)panix.com>, Alex Deucher <alexander.deucher(a)amd.com>, "Rafael J. Wysocki" <rafael.j.wysocki(a)intel.com>, Sasha Levin <sashal(a)kernel.org>
> Message-ID: <20251018135102.711457-1-sashal(a)kernel.org>
>
> From: "Mario Limonciello (AMD)" <superm1(a)kernel.org>
>
> [ Upstream commit 495c8d35035edb66e3284113bef01f3b1b843832 ]
>
> Some drivers have different flows for hibernation and suspend. If
> the driver opportunistically will skip thaw() then it needs a hint
> to know what is happening after the hibernate.
>
> Introduce a new symbol pm_hibernation_mode_is_suspend() that drivers
> can call to determine if suspending the system for this purpose.
>
> Tested-by: Ionut Nechita <ionut_n2001(a)yahoo.com>
> Tested-by: Kenneth Crudup <kenny(a)panix.com>
> Acked-by: Alex Deucher <alexander.deucher(a)amd.com>
> Signed-off-by: Mario Limonciello (AMD) <superm1(a)kernel.org>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
> Stable-dep-of: 0a6e9e098fcc ("drm/amd: Fix hybrid sleep")
> Signed-off-by: Sasha Levin <sashal(a)kernel.org>
> Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
> ---
> include/linux/suspend.h | 2 ++
> kernel/power/hibernate.c | 11 +++++++++++
> 2 files changed, 13 insertions(+)
>
> --- a/include/linux/suspend.h
> +++ b/include/linux/suspend.h
> @@ -276,6 +276,7 @@ extern void arch_suspend_enable_irqs(voi
>
> extern int pm_suspend(suspend_state_t state);
> extern bool sync_on_suspend_enabled;
> +bool pm_hibernation_mode_is_suspend(void);
> #else /* !CONFIG_SUSPEND */
> #define suspend_valid_only_mem NULL
>
> @@ -288,6 +289,7 @@ static inline bool pm_suspend_via_firmwa
> static inline bool pm_resume_via_firmware(void) { return false; }
> static inline bool pm_suspend_no_platform(void) { return false; }
> static inline bool pm_suspend_default_s2idle(void) { return false; }
> +static inline bool pm_hibernation_mode_is_suspend(void) { return false; }
>
> static inline void suspend_set_ops(const struct platform_suspend_ops *ops) {}
> static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; }
> --- a/kernel/power/hibernate.c
> +++ b/kernel/power/hibernate.c
> @@ -80,6 +80,17 @@ static const struct platform_hibernation
>
> static atomic_t hibernate_atomic = ATOMIC_INIT(1);
>
> +#ifdef CONFIG_SUSPEND
> +/**
> + * pm_hibernation_mode_is_suspend - Check if hibernation has been set to suspend
> + */
> +bool pm_hibernation_mode_is_suspend(void)
> +{
> + return hibernation_mode == HIBERNATION_SUSPEND;
> +}
> +EXPORT_SYMBOL_GPL(pm_hibernation_mode_is_suspend);
> +#endif
> +
> bool hibernate_acquire(void)
> {
> return atomic_add_unless(&hibernate_atomic, -1, 0);
>
>
> Patches currently in stable-queue which might be from sashal(a)kernel.org are
>
> queue-6.17/drm-amd-fix-hybrid-sleep.patch
> queue-6.17/usb-gadget-introduce-free_usb_request-helper.patch
> queue-6.17/pm-hibernate-add-pm_hibernation_mode_is_suspend.patch
> queue-6.17/usb-gadget-store-endpoint-pointer-in-usb_request.patch
> queue-6.17/media-nxp-imx8-isi-m2m-fix-streaming-cleanup-on-release.patch
> queue-6.17/usb-gadget-f_rndis-refactor-bind-path-to-use-__free.patch
Hi,
I kept getting "ERROR: modpost: "pm_hibernation_mode_is_suspend" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined!" when trying to build a 6.17.4 kernel with all the patches from queue-6.17 applied on top (from the stable-queue git repo at commit id 6aceec507fd0d3cefa7cac227eaf897edf09bf32). That build-time error is gone and the resulting kernel boots/runs fine on various x86_64 machines and VMs since I've removed/omitted both this patch and queue-6.17/drm-amd-fix-hybrid-sleep.patch.
I'm not sure if omitting queue-6.17/drm-amd-fix-hybrid-sleep.patch would have been sufficient, but both patches are part of the same patch set anyway.
Sadly, I haven't been able to figure out what about the changes actually causes the issue. My first guess was that if CONFIG_SUSPEND is not selected/enabled, then the whole pm_hibernation_mode_is_suspend() function and the corresponding export symbol would be missing. However, the kernel that I was trying to build *does* have CONFIG_SUSPEND=y in its config, so this shouldn't be the cause…
Regards
Pascal
The code contains a use-after-free vulnerability due to missing
cancellation of delayed work during device removal. Specifically,
in acpi_video_bus_remove(), the function acpi_video_bus_put_devices()
is called, which frees all acpi_video_device structures without
cancelling the associated delayed work (switch_brightness_work).
This work is scheduled via brightness_switch_event() in response to
ACPI events (e.g., brightness key presses) with a 100ms delay. If
the work is pending when the device is removed, it may execute after
the memory is freed, leading to use-after-free when the work function
acpi_video_switch_brightness() accesses the device structure.
Fix this by calling cancel_delayed_work_sync() before freeing each
acpi_video_device to ensure the work is fully completed before the
memory is released.
Fixes: 67b662e189f46 ("ACPI / video: seperate backlight control and event interface")
Cc: stable(a)vger.kernel.org
Signed-off-by: Yuhao Jiang <danisjiang(a)gmail.com>
---
drivers/acpi/acpi_video.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 103f29661576..5b80f87e078f 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -1974,6 +1974,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
mutex_lock(&video->device_list_lock);
list_for_each_entry_safe(dev, next, &video->video_device_list, entry) {
+ cancel_delayed_work_sync(&dev->switch_brightness_work);
list_del(&dev->entry);
kfree(dev);
}
--
2.34.1
The code contains a use-after-free vulnerability due to missing
cancellation of delayed work during device removal. Specifically,
in acpi_video_bus_remove(), the function acpi_video_bus_put_devices()
is called, which frees all acpi_video_device structures without
cancelling the associated delayed work (switch_brightness_work).
This work is scheduled via brightness_switch_event() in response to
ACPI events (e.g., brightness key presses) with a 100ms delay. If
the work is pending when the device is removed, it may execute after
the memory is freed, leading to use-after-free when the work function
acpi_video_switch_brightness() accesses the device structure.
Fix this by calling cancel_delayed_work_sync() before freeing each
acpi_video_device to ensure the work is fully completed before the
memory is released.
Fixes: 67b662e189f46 ("ACPI / video: seperate backlight control and event interface")
Cc: stable(a)vger.kernel.org
Signed-off-by: Yuhao Jiang <danisjiang(a)gmail.com>
---
drivers/acpi/acpi_video.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
index 103f29661576..5b80f87e078f 100644
--- a/drivers/acpi/acpi_video.c
+++ b/drivers/acpi/acpi_video.c
@@ -1974,6 +1974,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
mutex_lock(&video->device_list_lock);
list_for_each_entry_safe(dev, next, &video->video_device_list, entry) {
+ cancel_delayed_work_sync(&dev->switch_brightness_work);
list_del(&dev->entry);
kfree(dev);
}
--
2.34.1
When GSO tunnel is negotiated virtio_net_hdr_tnl_from_skb() tries to
initialize the tunnel metadata but forget to zero unused rxhash
fields. This may leak information to another side. Fixing this by
zeroing the unused hash fields.
Fixes: a2fb4bc4e2a6a ("net: implement virtio helpers to handle UDP GSO tunneling")x
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Jason Wang <jasowang(a)redhat.com>
---
include/linux/virtio_net.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
index 20e0584db1dd..4d1780848d0e 100644
--- a/include/linux/virtio_net.h
+++ b/include/linux/virtio_net.h
@@ -401,6 +401,10 @@ virtio_net_hdr_tnl_from_skb(const struct sk_buff *skb,
if (!tnl_hdr_negotiated)
return -EINVAL;
+ vhdr->hash_hdr.hash_value = 0;
+ vhdr->hash_hdr.hash_report = 0;
+ vhdr->hash_hdr.padding = 0;
+
/* Let the basic parsing deal with plain GSO features. */
skb_shinfo(skb)->gso_type &= ~tnl_gso_type;
ret = virtio_net_hdr_from_skb(skb, hdr, true, false, vlan_hlen);
--
2.42.0
Greetings,
I hope this email finds you well.
I am Mrs. Diana Owen contacting you from Reality Trading Group Ltd India.
.
As a new growing company, we are looking for reliable company of your product as seen in your website for urgent purchase order basis.
Could you please give me more details and specification of your products.
We also need your products catalog, MOQ, Production Lead Time and Unit price?
Best Regards,
Mrs. Diana Owen
Purchase Manager
Company: Reality Trading Group Ltd
From: Srinivasan Shanmugam <srinivasan.shanmugam(a)amd.com>
commit cdb637d339572398821204a1142d8d615668f1e9 upstream.
The issue arises when the array 'adev->vcn.vcn_config' is accessed
before checking if the index 'adev->vcn.num_vcn_inst' is within the
bounds of the array.
The fix involves moving the bounds check before the array access. This
ensures that 'adev->vcn.num_vcn_inst' is within the bounds of the array
before it is used as an index.
Fixes the below:
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:1289 amdgpu_discovery_reg_base_init() error: testing array offset 'adev->vcn.num_vcn_inst' after use.
Fixes: a0ccc717c4ab ("drm/amdgpu/discovery: validate VCN and SDMA instances")
Cc: Christian König <christian.koenig(a)amd.com>
Cc: Alex Deucher <alexander.deucher(a)amd.com>
Signed-off-by: Srinivasan Shanmugam <srinivasan.shanmugam(a)amd.com>
Reviewed-by: Alex Deucher <alexander.deucher(a)amd.com>
Signed-off-by: Alex Deucher <alexander.deucher(a)amd.com>
[ kovalev: bp to fix CVE-2024-27042 ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index d8441e273..8bc3a4bf3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -1128,15 +1128,16 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev)
* 0b10 : encode is disabled
* 0b01 : decode is disabled
*/
- adev->vcn.vcn_config[adev->vcn.num_vcn_inst] =
- ip->revision & 0xc0;
- ip->revision &= ~0xc0;
- if (adev->vcn.num_vcn_inst < AMDGPU_MAX_VCN_INSTANCES)
+ if (adev->vcn.num_vcn_inst < AMDGPU_MAX_VCN_INSTANCES) {
+ adev->vcn.vcn_config[adev->vcn.num_vcn_inst] =
+ ip->revision & 0xc0;
adev->vcn.num_vcn_inst++;
+ }
else
dev_err(adev->dev, "Too many VCN instances: %d vs %d\n",
adev->vcn.num_vcn_inst + 1,
AMDGPU_MAX_VCN_INSTANCES);
+ ip->revision &= ~0xc0;
}
if (le16_to_cpu(ip->hw_id) == SDMA0_HWID ||
le16_to_cpu(ip->hw_id) == SDMA1_HWID ||
--
2.50.1
The patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x 26e5c67deb2e1f42a951f022fdf5b9f7eb747b01
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101630-unvaried-protector-cae4@gregkh' --subject-prefix 'PATCH 5.10.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 26e5c67deb2e1f42a951f022fdf5b9f7eb747b01 Mon Sep 17 00:00:00 2001
From: "Darrick J. Wong" <djwong(a)kernel.org>
Date: Mon, 15 Sep 2025 17:24:17 -0700
Subject: [PATCH] fuse: fix livelock in synchronous file put from fuseblk
workers
I observed a hang when running generic/323 against a fuseblk server.
This test opens a file, initiates a lot of AIO writes to that file
descriptor, and closes the file descriptor before the writes complete.
Unsurprisingly, the AIO exerciser threads are mostly stuck waiting for
responses from the fuseblk server:
# cat /proc/372265/task/372313/stack
[<0>] request_wait_answer+0x1fe/0x2a0 [fuse]
[<0>] __fuse_simple_request+0xd3/0x2b0 [fuse]
[<0>] fuse_do_getattr+0xfc/0x1f0 [fuse]
[<0>] fuse_file_read_iter+0xbe/0x1c0 [fuse]
[<0>] aio_read+0x130/0x1e0
[<0>] io_submit_one+0x542/0x860
[<0>] __x64_sys_io_submit+0x98/0x1a0
[<0>] do_syscall_64+0x37/0xf0
[<0>] entry_SYSCALL_64_after_hwframe+0x4b/0x53
But the /weird/ part is that the fuseblk server threads are waiting for
responses from itself:
# cat /proc/372210/task/372232/stack
[<0>] request_wait_answer+0x1fe/0x2a0 [fuse]
[<0>] __fuse_simple_request+0xd3/0x2b0 [fuse]
[<0>] fuse_file_put+0x9a/0xd0 [fuse]
[<0>] fuse_release+0x36/0x50 [fuse]
[<0>] __fput+0xec/0x2b0
[<0>] task_work_run+0x55/0x90
[<0>] syscall_exit_to_user_mode+0xe9/0x100
[<0>] do_syscall_64+0x43/0xf0
[<0>] entry_SYSCALL_64_after_hwframe+0x4b/0x53
The fuseblk server is fuse2fs so there's nothing all that exciting in
the server itself. So why is the fuse server calling fuse_file_put?
The commit message for the fstest sheds some light on that:
"By closing the file descriptor before calling io_destroy, you pretty
much guarantee that the last put on the ioctx will be done in interrupt
context (during I/O completion).
Aha. AIO fgets a new struct file from the fd when it queues the ioctx.
The completion of the FUSE_WRITE command from userspace causes the fuse
server to call the AIO completion function. The completion puts the
struct file, queuing a delayed fput to the fuse server task. When the
fuse server task returns to userspace, it has to run the delayed fput,
which in the case of a fuseblk server, it does synchronously.
Sending the FUSE_RELEASE command sychronously from fuse server threads
is a bad idea because a client program can initiate enough simultaneous
AIOs such that all the fuse server threads end up in delayed_fput, and
now there aren't any threads left to handle the queued fuse commands.
Fix this by only using asynchronous fputs when closing files, and leave
a comment explaining why.
Cc: stable(a)vger.kernel.org # v2.6.38
Fixes: 5a18ec176c934c ("fuse: fix hang of single threaded fuseblk filesystem")
Signed-off-by: Darrick J. Wong <djwong(a)kernel.org>
Signed-off-by: Miklos Szeredi <mszeredi(a)redhat.com>
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 54786f62a9d8..f1ef77a0be05 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -356,8 +356,14 @@ void fuse_file_release(struct inode *inode, struct fuse_file *ff,
* Make the release synchronous if this is a fuseblk mount,
* synchronous RELEASE is allowed (and desirable) in this case
* because the server can be trusted not to screw up.
+ *
+ * Always use the asynchronous file put because the current thread
+ * might be the fuse server. This can happen if a process starts some
+ * aio and closes the fd before the aio completes. Since aio takes its
+ * own ref to the file, the IO completion has to drop the ref, which is
+ * how the fuse server can end up closing its clients' files.
*/
- fuse_file_put(ff, ff->fm->fc->destroy);
+ fuse_file_put(ff, false);
}
void fuse_release_common(struct file *file, bool isdir)
Here are a few independent fixes related to MPTCP and its selftests:
- Patch 1: correctly handle ADD_ADDR being received after the switch to
'fully-established'. A fix for another recent fix backported up to
v5.14.
- Patches 2-5: properly mark some MPTCP Join subtests as 'skipped' if
the tested kernel doesn't support the feature being validated. Some
fixes for up to v5.13, v5.18, v6.11 and v6.18-rc1 respectively.
Signed-off-by: Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
---
Matthieu Baerts (NGI0) (5):
mptcp: pm: in-kernel: C-flag: handle late ADD_ADDR
selftests: mptcp: join: mark 'flush re-add' as skipped if not supported
selftests: mptcp: join: mark implicit tests as skipped if not supported
selftests: mptcp: join: mark 'delete re-add signal' as skipped if not supported
selftests: mptcp: join: mark laminar tests as skipped if not supported
net/mptcp/pm_kernel.c | 6 ++++++
tools/testing/selftests/net/mptcp/mptcp_join.sh | 18 +++++++++---------
2 files changed, 15 insertions(+), 9 deletions(-)
---
base-commit: ffff5c8fc2af2218a3332b3d5b97654599d50cde
change-id: 20251020-net-mptcp-c-flag-late-add-addr-1d954e7b63d2
Best regards,
--
Matthieu Baerts (NGI0) <matttbe(a)kernel.org>
If one enrolls linux kernel by-hash into db (for example using
virt-fw-vars), the secureboot fails with security violation as EDK2
computation of authenticode for the linux binary doesn't match the
enrolled hash.
This is reproducible in AWS VMs, as well as locally with EDK2 builds
with secureboot.
Not affected v6.17
Not affected v6.17.3
Affected v6.17.4
Affected v6.18-rc1
Affected v6.18-rc2
Suspected patches are:
$ git log --oneline v6.17.3..v6.17.4 -- scripts/
8e5e13c8df9e6 kbuild: Add '.rel.*' strip pattern for vmlinux
7b80f81ae3190 kbuild: Restore pattern to avoid stripping .rela.dyn from vmlinux
5b5cdb1fe434e kbuild: keep .modinfo section in vmlinux.unstripped
86f364ee58420 kbuild: always create intermediate vmlinux.unstripped
Reverting all of the above, makes secureboot with by-hash enrolled
into db work again.
I will try to bisect this further to determine the culprit. It feels
like the strip potentially didn't update section offsets or their
numbers or something like that.
--
Regards,
Dimitri.
The quilt patch titled
Subject: mm/damon/core: use damos_commit_quota_goal() for new goal commit
has been removed from the -mm tree. Its filename was
mm-damon-core-use-damos_commit_quota_goal-for-new-goal-commit.patch
This patch was dropped because it was merged into the mm-hotfixes-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: SeongJae Park <sj(a)kernel.org>
Subject: mm/damon/core: use damos_commit_quota_goal() for new goal commit
Date: Mon, 13 Oct 2025 17:18:44 -0700
When damos_commit_quota_goals() is called for adding new DAMOS quota goals
of DAMOS_QUOTA_USER_INPUT metric, current_value fields of the new goals
should be also set as requested.
However, damos_commit_quota_goals() is not updating the field for the
case, since it is setting only metrics and target values using
damos_new_quota_goal(), and metric-optional union fields using
damos_commit_quota_goal_union(). As a result, users could see the first
current_value parameter that committed online with a new quota goal is
ignored. Users are assumed to commit the current_value for
DAMOS_QUOTA_USER_INPUT quota goals, since it is being used as a feedback.
Hence the real impact would be subtle. That said, this is obviously not
intended behavior.
Fix the issue by using damos_commit_quota_goal() which sets all quota goal
parameters, instead of damos_commit_quota_goal_union(), which sets only
the union fields.
Link: https://lkml.kernel.org/r/20251014001846.279282-1-sj@kernel.org
Fixes: 1aef9df0ee90 ("mm/damon/core: commit damos_quota_goal->nid")
Signed-off-by: SeongJae Park <sj(a)kernel.org>
Cc: <stable(a)vger.kernel.org> [6.16+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/damon/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/damon/core.c~mm-damon-core-use-damos_commit_quota_goal-for-new-goal-commit
+++ a/mm/damon/core.c
@@ -835,7 +835,7 @@ int damos_commit_quota_goals(struct damo
src_goal->metric, src_goal->target_value);
if (!new_goal)
return -ENOMEM;
- damos_commit_quota_goal_union(new_goal, src_goal);
+ damos_commit_quota_goal(new_goal, src_goal);
damos_add_quota_goal(dst, new_goal);
}
return 0;
_
Patches currently in -mm which might be from sj(a)kernel.org are
mm-zswap-remove-unnecessary-dlen-writes-for-incompressible-pages.patch
mm-zswap-fix-typos-s-zwap-zswap.patch
mm-zswap-s-red-black-tree-xarray.patch
docs-admin-guide-mm-zswap-s-red-black-tree-xarray.patch
mm-damon-document-damos_quota_goal-nid-use-case.patch
mm-damon-add-damos-quota-goal-type-for-per-memcg-per-node-memory-usage.patch
mm-damon-core-implement-damos_quota_node_memcg_used_bp.patch
mm-damon-sysfs-schemes-implement-path-file-under-quota-goal-directory.patch
mm-damon-sysfs-schemes-support-damos_quota_node_memcg_used_bp.patch
mm-damon-core-add-damos-quota-gaol-metric-for-per-memcg-per-numa-free-memory.patch
mm-damon-sysfs-schemes-support-damos_quota_node_memcg_free_bp.patch
docs-mm-damon-design-document-damos_quota_node_memcg_usedfree_bp.patch
docs-admin-guide-mm-damon-usage-document-damos-quota-goal-path-file.patch
docs-abi-damon-document-damos-quota-goal-path-file.patch
The quilt patch titled
Subject: mm/damon/core: fix potential memory leak by cleaning ops_filter in damon_destroy_scheme
has been removed from the -mm tree. Its filename was
mm-damon-core-fix-potential-memory-leak-by-cleaning-ops_filter-in-damon_destroy_scheme.patch
This patch was dropped because it was merged into the mm-hotfixes-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Enze Li <lienze(a)kylinos.cn>
Subject: mm/damon/core: fix potential memory leak by cleaning ops_filter in damon_destroy_scheme
Date: Tue, 14 Oct 2025 16:42:25 +0800
Currently, damon_destroy_scheme() only cleans up the filter list but
leaves ops_filter untouched, which could lead to memory leaks when a
scheme is destroyed.
This patch ensures both filter and ops_filter are properly freed in
damon_destroy_scheme(), preventing potential memory leaks.
Link: https://lkml.kernel.org/r/20251014084225.313313-1-lienze@kylinos.cn
Fixes: ab82e57981d0 ("mm/damon/core: introduce damos->ops_filters")
Signed-off-by: Enze Li <lienze(a)kylinos.cn>
Reviewed-by: SeongJae Park <sj(a)kernel.org>
Tested-by: SeongJae Park <sj(a)kernel.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/damon/core.c | 3 +++
1 file changed, 3 insertions(+)
--- a/mm/damon/core.c~mm-damon-core-fix-potential-memory-leak-by-cleaning-ops_filter-in-damon_destroy_scheme
+++ a/mm/damon/core.c
@@ -452,6 +452,9 @@ void damon_destroy_scheme(struct damos *
damos_for_each_filter_safe(f, next, s)
damos_destroy_filter(f);
+ damos_for_each_ops_filter_safe(f, next, s)
+ damos_destroy_filter(f);
+
kfree(s->migrate_dests.node_id_arr);
kfree(s->migrate_dests.weight_arr);
damon_del_scheme(s);
_
Patches currently in -mm which might be from lienze(a)kylinos.cn are
The quilt patch titled
Subject: vmw_balloon: indicate success when effectively deflating during migration
has been removed from the -mm tree. Its filename was
vmw_balloon-indicate-success-when-effectively-deflating-during-migration.patch
This patch was dropped because it was merged into the mm-hotfixes-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: David Hildenbrand <david(a)redhat.com>
Subject: vmw_balloon: indicate success when effectively deflating during migration
Date: Tue, 14 Oct 2025 14:44:55 +0200
When migrating a balloon page, we first deflate the old page to then
inflate the new page.
However, if inflating the new page succeeded, we effectively deflated the
old page, reducing the balloon size.
In that case, the migration actually worked: similar to migrating+
immediately deflating the new page. The old page will be freed back to
the buddy.
Right now, the core will leave the page be marked as isolated (as we
returned an error). When later trying to putback that page, we will run
into the WARN_ON_ONCE() in balloon_page_putback().
That handling was changed in commit 3544c4faccb8 ("mm/balloon_compaction:
stop using __ClearPageMovable()"); before that change, we would have
tolerated that way of handling it.
To fix it, let's just return 0 in that case, making the core effectively
just clear the "isolated" flag + freeing it back to the buddy as if the
migration succeeded. Note that the new page will also get freed when the
core puts the last reference.
Note that this also makes it all be more consistent: we will no longer
unisolate the page in the balloon driver while keeping it marked as being
isolated in migration core.
This was found by code inspection.
Link: https://lkml.kernel.org/r/20251014124455.478345-1-david@redhat.com
Fixes: 3544c4faccb8 ("mm/balloon_compaction: stop using __ClearPageMovable()")
Signed-off-by: David Hildenbrand <david(a)redhat.com>
Cc: Jerrin Shaji George <jerrin.shaji-george(a)broadcom.com>
Cc: Broadcom internal kernel review list <bcm-kernel-feedback-list(a)broadcom.com>
Cc: Arnd Bergmann <arnd(a)arndb.de>
Cc: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
drivers/misc/vmw_balloon.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
--- a/drivers/misc/vmw_balloon.c~vmw_balloon-indicate-success-when-effectively-deflating-during-migration
+++ a/drivers/misc/vmw_balloon.c
@@ -1737,7 +1737,7 @@ static int vmballoon_migratepage(struct
{
unsigned long status, flags;
struct vmballoon *b;
- int ret;
+ int ret = 0;
b = container_of(b_dev_info, struct vmballoon, b_dev_info);
@@ -1796,17 +1796,15 @@ static int vmballoon_migratepage(struct
* A failure happened. While we can deflate the page we just
* inflated, this deflation can also encounter an error. Instead
* we will decrease the size of the balloon to reflect the
- * change and report failure.
+ * change.
*/
atomic64_dec(&b->size);
- ret = -EBUSY;
} else {
/*
* Success. Take a reference for the page, and we will add it to
* the list after acquiring the lock.
*/
get_page(newpage);
- ret = 0;
}
/* Update the balloon list under the @pages_lock */
@@ -1817,7 +1815,7 @@ static int vmballoon_migratepage(struct
* If we succeed just insert it to the list and update the statistics
* under the lock.
*/
- if (!ret) {
+ if (status == VMW_BALLOON_SUCCESS) {
balloon_page_insert(&b->b_dev_info, newpage);
__count_vm_event(BALLOON_MIGRATE);
}
_
Patches currently in -mm which might be from david(a)redhat.com are
The quilt patch titled
Subject: mm/damon/core: fix list_add_tail() call on damon_call()
has been removed from the -mm tree. Its filename was
mm-damon-core-fix-list_add_tail-call-on-damon_call.patch
This patch was dropped because it was merged into the mm-hotfixes-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: SeongJae Park <sj(a)kernel.org>
Subject: mm/damon/core: fix list_add_tail() call on damon_call()
Date: Tue, 14 Oct 2025 13:59:36 -0700
Each damon_ctx maintains callback requests using a linked list
(damon_ctx->call_controls). When a new callback request is received via
damon_call(), the new request should be added to the list. However, the
function is making a mistake at list_add_tail() invocation: putting the
new item to add and the list head to add it before, in the opposite order.
Because of the linked list manipulation implementation, the new request
can still be reached from the context's list head. But the list items
that were added before the new request are dropped from the list.
As a result, the callbacks are unexpectedly not invocated. Worse yet, if
the dropped callback requests were dynamically allocated, the memory is
leaked. Actually DAMON sysfs interface is using a dynamically allocated
repeat-mode callback request for automatic essential stats update. And
because the online DAMON parameters commit is using a non-repeat-mode
callback request, the issue can easily be reproduced, like below.
# damo start --damos_action stat --refresh_stat 1s
# damo tune --damos_action stat --refresh_stat 1s
The first command dynamically allocates the repeat-mode callback request
for automatic essential stat update. Users can see the essential stats
are automatically updated for every second, using the sysfs interface.
The second command calls damon_commit() with a new callback request that
was made for the commit. As a result, the previously added repeat-mode
callback request is dropped from the list. The automatic stats refresh
stops working, and the memory for the repeat-mode callback request is
leaked. It can be confirmed using kmemleak.
Fix the mistake on the list_add_tail() call.
Link: https://lkml.kernel.org/r/20251014205939.1206-1-sj@kernel.org
Fixes: 004ded6bee11 ("mm/damon: accept parallel damon_call() requests")
Signed-off-by: SeongJae Park <sj(a)kernel.org>
Cc: <stable(a)vger.kernel.org> [6.17+]
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/damon/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/mm/damon/core.c~mm-damon-core-fix-list_add_tail-call-on-damon_call
+++ a/mm/damon/core.c
@@ -1450,7 +1450,7 @@ int damon_call(struct damon_ctx *ctx, st
INIT_LIST_HEAD(&control->list);
mutex_lock(&ctx->call_controls_lock);
- list_add_tail(&ctx->call_controls, &control->list);
+ list_add_tail(&control->list, &ctx->call_controls);
mutex_unlock(&ctx->call_controls_lock);
if (!damon_is_running(ctx))
return -EINVAL;
_
Patches currently in -mm which might be from sj(a)kernel.org are
mm-zswap-remove-unnecessary-dlen-writes-for-incompressible-pages.patch
mm-zswap-fix-typos-s-zwap-zswap.patch
mm-zswap-s-red-black-tree-xarray.patch
docs-admin-guide-mm-zswap-s-red-black-tree-xarray.patch
mm-damon-document-damos_quota_goal-nid-use-case.patch
mm-damon-add-damos-quota-goal-type-for-per-memcg-per-node-memory-usage.patch
mm-damon-core-implement-damos_quota_node_memcg_used_bp.patch
mm-damon-sysfs-schemes-implement-path-file-under-quota-goal-directory.patch
mm-damon-sysfs-schemes-support-damos_quota_node_memcg_used_bp.patch
mm-damon-core-add-damos-quota-gaol-metric-for-per-memcg-per-numa-free-memory.patch
mm-damon-sysfs-schemes-support-damos_quota_node_memcg_free_bp.patch
docs-mm-damon-design-document-damos_quota_node_memcg_usedfree_bp.patch
docs-admin-guide-mm-damon-usage-document-damos-quota-goal-path-file.patch
docs-abi-damon-document-damos-quota-goal-path-file.patch
The quilt patch titled
Subject: mm/mremap: correctly account old mapping after MREMAP_DONTUNMAP remap
has been removed from the -mm tree. Its filename was
mm-mremap-correctly-account-old-mapping-after-mremap_dontunmap-remap.patch
This patch was dropped because it was merged into the mm-hotfixes-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Subject: mm/mremap: correctly account old mapping after MREMAP_DONTUNMAP remap
Date: Mon, 13 Oct 2025 17:58:36 +0100
Commit b714ccb02a76 ("mm/mremap: complete refactor of move_vma()")
mistakenly introduced a new behaviour - clearing the VM_ACCOUNT flag of
the old mapping when a mapping is mremap()'d with the MREMAP_DONTUNMAP
flag set.
While we always clear the VM_LOCKED and VM_LOCKONFAULT flags for the old
mapping (the page tables have been moved, so there is no data that could
possibly be locked in memory), there is no reason to touch any other VMA
flags.
This is because after the move the old mapping is in a state as if it were
freshly mapped. This implies that the attributes of the mapping ought to
remain the same, including whether or not the mapping is accounted.
Link: https://lkml.kernel.org/r/20251013165836.273113-1-lorenzo.stoakes@oracle.com
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Fixes: b714ccb02a76 ("mm/mremap: complete refactor of move_vma()")
Reviewed-by: Pedro Falcato <pfalcato(a)suse.de>
Cc: Jann Horn <jannh(a)google.com>
Cc: Liam Howlett <liam.howlett(a)oracle.com>
Cc: Vlastimil Babka <vbabka(a)suse.cz>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/mremap.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
--- a/mm/mremap.c~mm-mremap-correctly-account-old-mapping-after-mremap_dontunmap-remap
+++ a/mm/mremap.c
@@ -1237,10 +1237,10 @@ static int copy_vma_and_data(struct vma_
}
/*
- * Perform final tasks for MADV_DONTUNMAP operation, clearing mlock() and
- * account flags on remaining VMA by convention (it cannot be mlock()'d any
- * longer, as pages in range are no longer mapped), and removing anon_vma_chain
- * links from it (if the entire VMA was copied over).
+ * Perform final tasks for MADV_DONTUNMAP operation, clearing mlock() flag on
+ * remaining VMA by convention (it cannot be mlock()'d any longer, as pages in
+ * range are no longer mapped), and removing anon_vma_chain links from it if the
+ * entire VMA was copied over.
*/
static void dontunmap_complete(struct vma_remap_struct *vrm,
struct vm_area_struct *new_vma)
@@ -1250,11 +1250,8 @@ static void dontunmap_complete(struct vm
unsigned long old_start = vrm->vma->vm_start;
unsigned long old_end = vrm->vma->vm_end;
- /*
- * We always clear VM_LOCKED[ONFAULT] | VM_ACCOUNT on the old
- * vma.
- */
- vm_flags_clear(vrm->vma, VM_LOCKED_MASK | VM_ACCOUNT);
+ /* We always clear VM_LOCKED[ONFAULT] on the old VMA. */
+ vm_flags_clear(vrm->vma, VM_LOCKED_MASK);
/*
* anon_vma links of the old vma is no longer needed after its page
_
Patches currently in -mm which might be from lorenzo.stoakes(a)oracle.com are
mm-shmem-update-shmem-to-use-mmap_prepare.patch
device-dax-update-devdax-to-use-mmap_prepare.patch
mm-vma-remove-unused-function-make-internal-functions-static.patch
mm-add-vma_desc_size-vma_desc_pages-helpers.patch
relay-update-relay-to-use-mmap_prepare.patch
mm-vma-rename-__mmap_prepare-function-to-avoid-confusion.patch
mm-add-remap_pfn_range_prepare-remap_pfn_range_complete.patch
mm-abstract-io_remap_pfn_range-based-on-pfn.patch
mm-introduce-io_remap_pfn_range_.patch
mm-add-ability-to-take-further-action-in-vm_area_desc.patch
doc-update-porting-vfs-documentation-for-mmap_prepare-actions.patch
mm-hugetlbfs-update-hugetlbfs-to-use-mmap_prepare.patch
mm-add-shmem_zero_setup_desc.patch
mm-update-mem-char-driver-to-use-mmap_prepare.patch
mm-update-resctl-to-use-mmap_prepare.patch
From: Andrey Konovalov <andreyknvl(a)gmail.com>
Drop the check on the maximum transfer length in Raw Gadget for both
control and non-control transfers.
Limiting the transfer length causes a problem with emulating USB devices
whose full configuration descriptor exceeds PAGE_SIZE in length.
Overall, there does not appear to be any reason to enforce any kind of
transfer length limit on the Raw Gadget side for either control or
non-control transfers, so let's just drop the related check.
Cc: stable(a)vger.kernel.org
Fixes: f2c2e717642c ("usb: gadget: add raw-gadget interface")
Signed-off-by: Andrey Konovalov <andreyknvl(a)gmail.com>
---
drivers/usb/gadget/legacy/raw_gadget.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/usb/gadget/legacy/raw_gadget.c b/drivers/usb/gadget/legacy/raw_gadget.c
index 20165e1582d9..b71680c58de6 100644
--- a/drivers/usb/gadget/legacy/raw_gadget.c
+++ b/drivers/usb/gadget/legacy/raw_gadget.c
@@ -667,8 +667,6 @@ static void *raw_alloc_io_data(struct usb_raw_ep_io *io, void __user *ptr,
return ERR_PTR(-EINVAL);
if (!usb_raw_io_flags_valid(io->flags))
return ERR_PTR(-EINVAL);
- if (io->length > PAGE_SIZE)
- return ERR_PTR(-EINVAL);
if (get_from_user)
data = memdup_user(ptr + sizeof(*io), io->length);
else {
--
2.43.0
From: Andrey Konovalov <andreyknvl(a)gmail.com>
Drop the check on the maximum transfer length in Raw Gadget for both
control and non-control transfers.
Limiting the transfer length causes a problem with emulating USB devices
whose full configuration descriptor exceeds PAGE_SIZE in length.
Overall, there does not appear to be any reason to enforce any kind of
transfer length limit on the Raw Gadget side for either control or
non-control transfers, so let's just drop the related check.
Cc: stable(a)vger.kernel.org
Fixes: f2c2e717642c ("usb: gadget: add raw-gadget interface")
Signed-off-by: Andrey Konovalov <andreyknvl(a)gmail.com>
---
drivers/usb/gadget/legacy/raw_gadget.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/usb/gadget/legacy/raw_gadget.c b/drivers/usb/gadget/legacy/raw_gadget.c
index 20165e1582d9..b71680c58de6 100644
--- a/drivers/usb/gadget/legacy/raw_gadget.c
+++ b/drivers/usb/gadget/legacy/raw_gadget.c
@@ -667,8 +667,6 @@ static void *raw_alloc_io_data(struct usb_raw_ep_io *io, void __user *ptr,
return ERR_PTR(-EINVAL);
if (!usb_raw_io_flags_valid(io->flags))
return ERR_PTR(-EINVAL);
- if (io->length > PAGE_SIZE)
- return ERR_PTR(-EINVAL);
if (get_from_user)
data = memdup_user(ptr + sizeof(*io), io->length);
else {
--
2.43.0
Do not merge yet, the current series has not been tested yet.
The race is only easily reproducible with additional patches that
pin pages during FUSE_IO_URING_CMD_REGISTER - slows it down and then
xfstest's generic/001 triggers it reliably. However, I need to update
these pin patches for linux master.
Signed-off-by: Bernd Schubert <bschubert(a)ddn.com>
---
Bernd Schubert (1):
fuse: Move ring queues_refs decrement
Jian Huang Li (1):
fs/fuse: fix potential memory leak from fuse_uring_cancel
fs/fuse/dev_uring.c | 33 ++++++++++++++-------------------
1 file changed, 14 insertions(+), 19 deletions(-)
---
base-commit: 6548d364a3e850326831799d7e3ea2d7bb97ba08
change-id: 20251021-io-uring-fixes-cancel-mem-leak-820642677c37
Best regards,
--
Bernd Schubert <bschubert(a)ddn.com>
The patch titled
Subject: mm/shmem: fix THP allocation size check and fallback
has been added to the -mm mm-hotfixes-unstable branch. Its filename is
mm-shmem-fix-thp-allocation-size-check-and-fallback.patch
This patch will shortly appear at
https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patche…
This patch will later appear in the mm-hotfixes-unstable branch at
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next via the mm-everything
branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
and is updated there every 2-3 working days
------------------------------------------------------
From: Kairui Song <kasong(a)tencent.com>
Subject: mm/shmem: fix THP allocation size check and fallback
Date: Wed, 22 Oct 2025 03:04:36 +0800
There are some problems with the code implementations of THP fallback.
suitable_orders could be zero, and calling highest_order on a zero value
returns an overflowed size. And the order check loop is updating the
index value on every loop which may cause the index to be aligned by a
larger value while the loop shrinks the order. And it forgot to try order
0 after the final loop.
This is usually fine because shmem_add_to_page_cache ensures the shmem
mapping is still sane, but it might cause many potential issues like
allocating random folios into the random position in the map or return
-ENOMEM by accident. This triggered some strange userspace errors [1],
and shouldn't have happened in the first place.
Link: https://lkml.kernel.org/r/20251021190436.81682-1-ryncsn@gmail.com
Link: https://lore.kernel.org/linux-mm/CAMgjq7DqgAmj25nDUwwu1U2cSGSn8n4-Hqpgotted… [1]
Fixes: e7a2ab7b3bb5d ("mm: shmem: add mTHP support for anonymous shmem")
Signed-off-by: Kairui Song <kasong(a)tencent.com>
Cc: Baolin Wang <baolin.wang(a)linux.alibaba.com>
Cc: Barry Song <baohua(a)kernel.org>
Cc: David Hildenbrand <david(a)redhat.com>
Cc: Dev Jain <dev.jain(a)arm.com>
Cc: Hugh Dickins <hughd(a)google.com>
Cc: Liam Howlett <liam.howlett(a)oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes(a)oracle.com>
Cc: Matthew Wilcox (Oracle) <willy(a)infradead.org>
Cc: Nico Pache <npache(a)redhat.com>
Cc: Ryan Roberts <ryan.roberts(a)arm.com>
Cc: Zi Yan <ziy(a)nvidia.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/shmem.c | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
--- a/mm/shmem.c~mm-shmem-fix-thp-allocation-size-check-and-fallback
+++ a/mm/shmem.c
@@ -1824,6 +1824,9 @@ static unsigned long shmem_suitable_orde
unsigned long pages;
int order;
+ if (!orders)
+ return 0;
+
if (vma) {
orders = thp_vma_suitable_orders(vma, vmf->address, orders);
if (!orders)
@@ -1888,27 +1891,28 @@ static struct folio *shmem_alloc_and_add
if (!IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE))
orders = 0;
- if (orders > 0) {
- suitable_orders = shmem_suitable_orders(inode, vmf,
- mapping, index, orders);
+ suitable_orders = shmem_suitable_orders(inode, vmf,
+ mapping, index, orders);
+ if (suitable_orders) {
order = highest_order(suitable_orders);
- while (suitable_orders) {
+ do {
pages = 1UL << order;
- index = round_down(index, pages);
- folio = shmem_alloc_folio(gfp, order, info, index);
- if (folio)
+ folio = shmem_alloc_folio(gfp, order, info, round_down(index, pages));
+ if (folio) {
+ index = round_down(index, pages);
goto allocated;
+ }
if (pages == HPAGE_PMD_NR)
count_vm_event(THP_FILE_FALLBACK);
count_mthp_stat(order, MTHP_STAT_SHMEM_FALLBACK);
order = next_order(&suitable_orders, order);
- }
- } else {
- pages = 1;
- folio = shmem_alloc_folio(gfp, 0, info, index);
+ } while (suitable_orders);
}
+
+ pages = 1;
+ folio = shmem_alloc_folio(gfp, 0, info, index);
if (!folio)
return ERR_PTR(-ENOMEM);
_
Patches currently in -mm which might be from kasong(a)tencent.com are
mm-shmem-fix-thp-allocation-size-check-and-fallback.patch
From: "Paul E. McKenney" <paulmck(a)kernel.org>
commit 8ed00760203d8018bee042fbfe8e076579be2c2b upstream.
Currently, cleanup_srcu_struct() checks for a grace period in progress,
but it does not check for a grace period that has not yet started but
which might start at any time. Such a situation could result in a
use-after-free bug, so this commit adds a check for a grace period that
is needed but not yet started to cleanup_srcu_struct().
Fixes: da915ad5cf25 ("srcu: Parallelize callback handling")
Signed-off-by: Paul E. McKenney <paulmck(a)kernel.org>
[ kovalev: backport to fix CVE-2022-49651; added Fixes tag for commit
da915ad5cf25 that introduced the srcu_gp_seq_needed field and the
race condition between grace period requests and cleanup ]
Signed-off-by: Vasiliy Kovalev <kovalev(a)altlinux.org>
---
kernel/rcu/srcutree.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index b8821665c435..5d89d941280f 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -388,9 +388,11 @@ void cleanup_srcu_struct(struct srcu_struct *ssp)
return; /* Forgot srcu_barrier(), so just leak it! */
}
if (WARN_ON(rcu_seq_state(READ_ONCE(ssp->srcu_gp_seq)) != SRCU_STATE_IDLE) ||
+ WARN_ON(rcu_seq_current(&ssp->srcu_gp_seq) != ssp->srcu_gp_seq_needed) ||
WARN_ON(srcu_readers_active(ssp))) {
- pr_info("%s: Active srcu_struct %p state: %d\n",
- __func__, ssp, rcu_seq_state(READ_ONCE(ssp->srcu_gp_seq)));
+ pr_info("%s: Active srcu_struct %p read state: %d gp state: %lu/%lu\n",
+ __func__, ssp, rcu_seq_state(READ_ONCE(ssp->srcu_gp_seq)),
+ rcu_seq_current(&ssp->srcu_gp_seq), ssp->srcu_gp_seq_needed);
return; /* Caller forgot to stop doing call_srcu()? */
}
free_percpu(ssp->sda);
--
2.50.1
Hi,
I came across some issues in PCI code for s390 while working on VFIO error
recovery for s390 PCI devices [1]. These patches can be indepedently applied and
has no depedency on error recovery patch series. We would like to get these
patches merged as they do fix some existing issues.
[1] https://lore.kernel.org/all/20250924171628.826-1-alifm@linux.ibm.com/
Thanks
Farhan
Farhan Ali (3):
PCI: Allow per function PCI slots
s390/pci: Add architecture specific resource/bus address translation
s390/pci: Restore IRQ unconditionally for the zPCI device
arch/s390/include/asm/pci.h | 1 -
arch/s390/pci/pci.c | 74 ++++++++++++++++++++++++++++++
arch/s390/pci/pci_irq.c | 9 +---
drivers/pci/host-bridge.c | 4 +-
drivers/pci/hotplug/s390_pci_hpc.c | 10 +++-
drivers/pci/pci.c | 5 +-
drivers/pci/slot.c | 14 ++++--
include/linux/pci.h | 1 +
8 files changed, 100 insertions(+), 18 deletions(-)
--
2.43.0
The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x 26e5c67deb2e1f42a951f022fdf5b9f7eb747b01
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101627-calzone-emperor-7442@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 26e5c67deb2e1f42a951f022fdf5b9f7eb747b01 Mon Sep 17 00:00:00 2001
From: "Darrick J. Wong" <djwong(a)kernel.org>
Date: Mon, 15 Sep 2025 17:24:17 -0700
Subject: [PATCH] fuse: fix livelock in synchronous file put from fuseblk
workers
I observed a hang when running generic/323 against a fuseblk server.
This test opens a file, initiates a lot of AIO writes to that file
descriptor, and closes the file descriptor before the writes complete.
Unsurprisingly, the AIO exerciser threads are mostly stuck waiting for
responses from the fuseblk server:
# cat /proc/372265/task/372313/stack
[<0>] request_wait_answer+0x1fe/0x2a0 [fuse]
[<0>] __fuse_simple_request+0xd3/0x2b0 [fuse]
[<0>] fuse_do_getattr+0xfc/0x1f0 [fuse]
[<0>] fuse_file_read_iter+0xbe/0x1c0 [fuse]
[<0>] aio_read+0x130/0x1e0
[<0>] io_submit_one+0x542/0x860
[<0>] __x64_sys_io_submit+0x98/0x1a0
[<0>] do_syscall_64+0x37/0xf0
[<0>] entry_SYSCALL_64_after_hwframe+0x4b/0x53
But the /weird/ part is that the fuseblk server threads are waiting for
responses from itself:
# cat /proc/372210/task/372232/stack
[<0>] request_wait_answer+0x1fe/0x2a0 [fuse]
[<0>] __fuse_simple_request+0xd3/0x2b0 [fuse]
[<0>] fuse_file_put+0x9a/0xd0 [fuse]
[<0>] fuse_release+0x36/0x50 [fuse]
[<0>] __fput+0xec/0x2b0
[<0>] task_work_run+0x55/0x90
[<0>] syscall_exit_to_user_mode+0xe9/0x100
[<0>] do_syscall_64+0x43/0xf0
[<0>] entry_SYSCALL_64_after_hwframe+0x4b/0x53
The fuseblk server is fuse2fs so there's nothing all that exciting in
the server itself. So why is the fuse server calling fuse_file_put?
The commit message for the fstest sheds some light on that:
"By closing the file descriptor before calling io_destroy, you pretty
much guarantee that the last put on the ioctx will be done in interrupt
context (during I/O completion).
Aha. AIO fgets a new struct file from the fd when it queues the ioctx.
The completion of the FUSE_WRITE command from userspace causes the fuse
server to call the AIO completion function. The completion puts the
struct file, queuing a delayed fput to the fuse server task. When the
fuse server task returns to userspace, it has to run the delayed fput,
which in the case of a fuseblk server, it does synchronously.
Sending the FUSE_RELEASE command sychronously from fuse server threads
is a bad idea because a client program can initiate enough simultaneous
AIOs such that all the fuse server threads end up in delayed_fput, and
now there aren't any threads left to handle the queued fuse commands.
Fix this by only using asynchronous fputs when closing files, and leave
a comment explaining why.
Cc: stable(a)vger.kernel.org # v2.6.38
Fixes: 5a18ec176c934c ("fuse: fix hang of single threaded fuseblk filesystem")
Signed-off-by: Darrick J. Wong <djwong(a)kernel.org>
Signed-off-by: Miklos Szeredi <mszeredi(a)redhat.com>
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index 54786f62a9d8..f1ef77a0be05 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -356,8 +356,14 @@ void fuse_file_release(struct inode *inode, struct fuse_file *ff,
* Make the release synchronous if this is a fuseblk mount,
* synchronous RELEASE is allowed (and desirable) in this case
* because the server can be trusted not to screw up.
+ *
+ * Always use the asynchronous file put because the current thread
+ * might be the fuse server. This can happen if a process starts some
+ * aio and closes the fd before the aio completes. Since aio takes its
+ * own ref to the file, the IO completion has to drop the ref, which is
+ * how the fuse server can end up closing its clients' files.
*/
- fuse_file_put(ff, ff->fm->fc->destroy);
+ fuse_file_put(ff, false);
}
void fuse_release_common(struct file *file, bool isdir)
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 42f9c66a6d0cc45758dab77233c5460e1cf003df
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101639-january-preheated-6487@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 42f9c66a6d0cc45758dab77233c5460e1cf003df Mon Sep 17 00:00:00 2001
From: Niklas Cassel <cassel(a)kernel.org>
Date: Mon, 22 Sep 2025 16:08:25 +0200
Subject: [PATCH] PCI: tegra194: Reset BARs when running in PCIe endpoint mode
Tegra already defines all BARs except BAR0 as BAR_RESERVED. This is
sufficient for pci-epf-test to not allocate backing memory and to not call
set_bar() for those BARs. However, marking a BAR as BAR_RESERVED does not
mean that the BAR gets disabled.
The host side driver, pci_endpoint_test, simply does an ioremap for all
enabled BARs and will run tests against all enabled BARs, so it will run
tests against the BARs marked as BAR_RESERVED.
After running the BAR tests (which will write to all enabled BARs), the
inbound address translation is broken. This is because the tegra controller
exposes the ATU Port Logic Structure in BAR4, so when BAR4 is written, the
inbound address translation settings get overwritten.
To avoid this, implement the dw_pcie_ep_ops .init() callback and start off
by disabling all BARs (pci-epf-test will later enable/configure BARs that
are not defined as BAR_RESERVED).
This matches the behavior of other PCIe endpoint drivers: dra7xx, imx6,
layerscape-ep, artpec6, dw-rockchip, qcom-ep, rcar-gen4, and uniphier-ep.
With this, the PCI endpoint kselftest test case CONSECUTIVE_BAR_TEST (which
was specifically made to detect address translation issues) passes.
Fixes: c57247f940e8 ("PCI: tegra: Add support for PCIe endpoint mode in Tegra194")
Signed-off-by: Niklas Cassel <cassel(a)kernel.org>
Signed-off-by: Manivannan Sadhasivam <mani(a)kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas(a)google.com>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20250922140822.519796-7-cassel@kernel.org
diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index fe418b9bfbb4..359d92dca86a 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1941,6 +1941,15 @@ static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg)
return IRQ_HANDLED;
}
+static void tegra_pcie_ep_init(struct dw_pcie_ep *ep)
+{
+ struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
+ enum pci_barno bar;
+
+ for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
+ dw_pcie_ep_reset_bar(pci, bar);
+};
+
static int tegra_pcie_ep_raise_intx_irq(struct tegra_pcie_dw *pcie, u16 irq)
{
/* Tegra194 supports only INTA */
@@ -2016,6 +2025,7 @@ tegra_pcie_ep_get_features(struct dw_pcie_ep *ep)
}
static const struct dw_pcie_ep_ops pcie_ep_ops = {
+ .init = tegra_pcie_ep_init,
.raise_irq = tegra_pcie_ep_raise_irq,
.get_features = tegra_pcie_ep_get_features,
};
The patch below does not apply to the 6.12-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.12.y
git checkout FETCH_HEAD
git cherry-pick -x 1ebe8f7e782523e62cd1fa8237f7afba5d1dae83
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101616-gigahertz-profane-b22c@gregkh' --subject-prefix 'PATCH 6.12.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 1ebe8f7e782523e62cd1fa8237f7afba5d1dae83 Mon Sep 17 00:00:00 2001
From: Christian Loehle <christian.loehle(a)arm.com>
Date: Sun, 31 Aug 2025 22:43:57 +0100
Subject: [PATCH] PM: EM: Fix late boot with holes in CPU topology
Commit e3f1164fc9ee ("PM: EM: Support late CPUs booting and capacity
adjustment") added a mechanism to handle CPUs that come up late by
retrying when any of the `cpufreq_cpu_get()` call fails.
However, if there are holes in the CPU topology (offline CPUs, e.g.
nosmt), the first missing CPU causes the loop to break, preventing
subsequent online CPUs from being updated.
Instead of aborting on the first missing CPU policy, loop through all
and retry if any were missing.
Fixes: e3f1164fc9ee ("PM: EM: Support late CPUs booting and capacity adjustment")
Suggested-by: Kenneth Crudup <kenneth.crudup(a)gmail.com>
Reported-by: Kenneth Crudup <kenneth.crudup(a)gmail.com>
Link: https://lore.kernel.org/linux-pm/40212796-734c-4140-8a85-854f72b8144d@panix…
Cc: 6.9+ <stable(a)vger.kernel.org> # 6.9+
Signed-off-by: Christian Loehle <christian.loehle(a)arm.com>
Link: https://patch.msgid.link/20250831214357.2020076-1-christian.loehle@arm.com
[ rjw: Drop the new pr_debug() message which is not very useful ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki(a)intel.com>
diff --git a/kernel/power/energy_model.c b/kernel/power/energy_model.c
index 8df55397414a..5f17d2e8e954 100644
--- a/kernel/power/energy_model.c
+++ b/kernel/power/energy_model.c
@@ -799,7 +799,7 @@ void em_adjust_cpu_capacity(unsigned int cpu)
static void em_check_capacity_update(void)
{
cpumask_var_t cpu_done_mask;
- int cpu;
+ int cpu, failed_cpus = 0;
if (!zalloc_cpumask_var(&cpu_done_mask, GFP_KERNEL)) {
pr_warn("no free memory\n");
@@ -817,10 +817,8 @@ static void em_check_capacity_update(void)
policy = cpufreq_cpu_get(cpu);
if (!policy) {
- pr_debug("Accessing cpu%d policy failed\n", cpu);
- schedule_delayed_work(&em_update_work,
- msecs_to_jiffies(1000));
- break;
+ failed_cpus++;
+ continue;
}
cpufreq_cpu_put(policy);
@@ -835,6 +833,9 @@ static void em_check_capacity_update(void)
em_adjust_new_capacity(cpu, dev, pd);
}
+ if (failed_cpus)
+ schedule_delayed_work(&em_update_work, msecs_to_jiffies(1000));
+
free_cpumask_var(cpu_done_mask);
}
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y
git checkout FETCH_HEAD
git cherry-pick -x 6744085079e785dae5f7a2239456135407c58b25
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101607-discharge-haiku-4150@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 6744085079e785dae5f7a2239456135407c58b25 Mon Sep 17 00:00:00 2001
From: Zhen Ni <zhen.ni(a)easystack.cn>
Date: Wed, 6 Aug 2025 10:55:38 +0800
Subject: [PATCH] memory: samsung: exynos-srom: Fix of_iomap leak in
exynos_srom_probe
The of_platform_populate() call at the end of the function has a
possible failure path, causing a resource leak.
Replace of_iomap() with devm_platform_ioremap_resource() to ensure
automatic cleanup of srom->reg_base.
This issue was detected by smatch static analysis:
drivers/memory/samsung/exynos-srom.c:155 exynos_srom_probe()warn:
'srom->reg_base' from of_iomap() not released on lines: 155.
Fixes: 8ac2266d8831 ("memory: samsung: exynos-srom: Add support for bank configuration")
Cc: stable(a)vger.kernel.org
Signed-off-by: Zhen Ni <zhen.ni(a)easystack.cn>
Link: https://lore.kernel.org/r/20250806025538.306593-1-zhen.ni@easystack.cn
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski(a)linaro.org>
diff --git a/drivers/memory/samsung/exynos-srom.c b/drivers/memory/samsung/exynos-srom.c
index e73dd330af47..d913fb901973 100644
--- a/drivers/memory/samsung/exynos-srom.c
+++ b/drivers/memory/samsung/exynos-srom.c
@@ -121,20 +121,18 @@ static int exynos_srom_probe(struct platform_device *pdev)
return -ENOMEM;
srom->dev = dev;
- srom->reg_base = of_iomap(np, 0);
- if (!srom->reg_base) {
+ srom->reg_base = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(srom->reg_base)) {
dev_err(&pdev->dev, "iomap of exynos srom controller failed\n");
- return -ENOMEM;
+ return PTR_ERR(srom->reg_base);
}
platform_set_drvdata(pdev, srom);
srom->reg_offset = exynos_srom_alloc_reg_dump(exynos_srom_offsets,
ARRAY_SIZE(exynos_srom_offsets));
- if (!srom->reg_offset) {
- iounmap(srom->reg_base);
+ if (!srom->reg_offset)
return -ENOMEM;
- }
for_each_child_of_node(np, child) {
if (exynos_srom_configure_bank(srom, child)) {
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 0a8f173d9dad13930d5888505dc4c4fd6a1d4262
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101648-abruptly-poncho-afdd@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 0a8f173d9dad13930d5888505dc4c4fd6a1d4262 Mon Sep 17 00:00:00 2001
From: Marek Vasut <marek.vasut+renesas(a)mailbox.org>
Date: Tue, 9 Sep 2025 18:26:24 +0200
Subject: [PATCH] PCI: rcar-host: Drop PMSR spinlock
The pmsr_lock spinlock used to be necessary to synchronize access to the
PMSR register, because that access could have been triggered from either
config space access in rcar_pcie_config_access() or an exception handler
rcar_pcie_aarch32_abort_handler().
The rcar_pcie_aarch32_abort_handler() case is no longer applicable since
commit 6e36203bc14c ("PCI: rcar: Use PCI_SET_ERROR_RESPONSE after read
which triggered an exception"), which performs more accurate, controlled
invocation of the exception, and a fixup.
This leaves rcar_pcie_config_access() as the only call site from which
rcar_pcie_wakeup() is called. The rcar_pcie_config_access() can only be
called from the controller struct pci_ops .read and .write callbacks,
and those are serialized in drivers/pci/access.c using raw spinlock
'pci_lock' . It should be noted that CONFIG_PCI_LOCKLESS_CONFIG is never
set on this platform.
Since the 'pci_lock' is a raw spinlock , and the 'pmsr_lock' is not a
raw spinlock, this constellation triggers 'BUG: Invalid wait context'
with CONFIG_PROVE_RAW_LOCK_NESTING=y .
Remove the pmsr_lock to fix the locking.
Fixes: a115b1bd3af0 ("PCI: rcar: Add L1 link state fix into data abort hook")
Reported-by: Duy Nguyen <duy.nguyen.rh(a)renesas.com>
Reported-by: Thuan Nguyen <thuan.nguyen-hong(a)banvien.com.vn>
Signed-off-by: Marek Vasut <marek.vasut+renesas(a)mailbox.org>
Signed-off-by: Manivannan Sadhasivam <mani(a)kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas(a)glider.be>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20250909162707.13927-1-marek.vasut+renesas@mailbox…
diff --git a/drivers/pci/controller/pcie-rcar-host.c b/drivers/pci/controller/pcie-rcar-host.c
index 4780e0109e58..625a00f3b223 100644
--- a/drivers/pci/controller/pcie-rcar-host.c
+++ b/drivers/pci/controller/pcie-rcar-host.c
@@ -52,20 +52,13 @@ struct rcar_pcie_host {
int (*phy_init_fn)(struct rcar_pcie_host *host);
};
-static DEFINE_SPINLOCK(pmsr_lock);
-
static int rcar_pcie_wakeup(struct device *pcie_dev, void __iomem *pcie_base)
{
- unsigned long flags;
u32 pmsr, val;
int ret = 0;
- spin_lock_irqsave(&pmsr_lock, flags);
-
- if (!pcie_base || pm_runtime_suspended(pcie_dev)) {
- ret = -EINVAL;
- goto unlock_exit;
- }
+ if (!pcie_base || pm_runtime_suspended(pcie_dev))
+ return -EINVAL;
pmsr = readl(pcie_base + PMSR);
@@ -87,8 +80,6 @@ static int rcar_pcie_wakeup(struct device *pcie_dev, void __iomem *pcie_base)
writel(L1FAEG | PMEL1RX, pcie_base + PMSR);
}
-unlock_exit:
- spin_unlock_irqrestore(&pmsr_lock, flags);
return ret;
}
The patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 42f9c66a6d0cc45758dab77233c5460e1cf003df
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101638-slider-outlying-148b@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 42f9c66a6d0cc45758dab77233c5460e1cf003df Mon Sep 17 00:00:00 2001
From: Niklas Cassel <cassel(a)kernel.org>
Date: Mon, 22 Sep 2025 16:08:25 +0200
Subject: [PATCH] PCI: tegra194: Reset BARs when running in PCIe endpoint mode
Tegra already defines all BARs except BAR0 as BAR_RESERVED. This is
sufficient for pci-epf-test to not allocate backing memory and to not call
set_bar() for those BARs. However, marking a BAR as BAR_RESERVED does not
mean that the BAR gets disabled.
The host side driver, pci_endpoint_test, simply does an ioremap for all
enabled BARs and will run tests against all enabled BARs, so it will run
tests against the BARs marked as BAR_RESERVED.
After running the BAR tests (which will write to all enabled BARs), the
inbound address translation is broken. This is because the tegra controller
exposes the ATU Port Logic Structure in BAR4, so when BAR4 is written, the
inbound address translation settings get overwritten.
To avoid this, implement the dw_pcie_ep_ops .init() callback and start off
by disabling all BARs (pci-epf-test will later enable/configure BARs that
are not defined as BAR_RESERVED).
This matches the behavior of other PCIe endpoint drivers: dra7xx, imx6,
layerscape-ep, artpec6, dw-rockchip, qcom-ep, rcar-gen4, and uniphier-ep.
With this, the PCI endpoint kselftest test case CONSECUTIVE_BAR_TEST (which
was specifically made to detect address translation issues) passes.
Fixes: c57247f940e8 ("PCI: tegra: Add support for PCIe endpoint mode in Tegra194")
Signed-off-by: Niklas Cassel <cassel(a)kernel.org>
Signed-off-by: Manivannan Sadhasivam <mani(a)kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas(a)google.com>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20250922140822.519796-7-cassel@kernel.org
diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index fe418b9bfbb4..359d92dca86a 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1941,6 +1941,15 @@ static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg)
return IRQ_HANDLED;
}
+static void tegra_pcie_ep_init(struct dw_pcie_ep *ep)
+{
+ struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
+ enum pci_barno bar;
+
+ for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
+ dw_pcie_ep_reset_bar(pci, bar);
+};
+
static int tegra_pcie_ep_raise_intx_irq(struct tegra_pcie_dw *pcie, u16 irq)
{
/* Tegra194 supports only INTA */
@@ -2016,6 +2025,7 @@ tegra_pcie_ep_get_features(struct dw_pcie_ep *ep)
}
static const struct dw_pcie_ep_ops pcie_ep_ops = {
+ .init = tegra_pcie_ep_init,
.raise_irq = tegra_pcie_ep_raise_irq,
.get_features = tegra_pcie_ep_get_features,
};
The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x f842d3313ba179d4005096357289c7ad09cec575
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101614-regulator-gumball-c7c6@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From f842d3313ba179d4005096357289c7ad09cec575 Mon Sep 17 00:00:00 2001
From: Siddharth Vadapalli <s-vadapalli(a)ti.com>
Date: Mon, 8 Sep 2025 17:38:27 +0530
Subject: [PATCH] PCI: j721e: Fix programming sequence of "strap" settings
The Cadence PCIe Controller integrated in the TI K3 SoCs supports both
Root-Complex and Endpoint modes of operation. The Glue Layer allows
"strapping" the Mode of operation of the Controller, the Link Speed
and the Link Width. This is enabled by programming the "PCIEn_CTRL"
register (n corresponds to the PCIe instance) within the CTRL_MMR
memory-mapped register space. The "reset-values" of the registers are
also different depending on the mode of operation.
Since the PCIe Controller latches onto the "reset-values" immediately
after being powered on, if the Glue Layer configuration is not done while
the PCIe Controller is off, it will result in the PCIe Controller latching
onto the wrong "reset-values". In practice, this will show up as a wrong
representation of the PCIe Controller's capability structures in the PCIe
Configuration Space. Some such capabilities which are supported by the PCIe
Controller in the Root-Complex mode but are incorrectly latched onto as
being unsupported are:
- Link Bandwidth Notification
- Alternate Routing ID (ARI) Forwarding Support
- Next capability offset within Advanced Error Reporting (AER) capability
Fix this by powering off the PCIe Controller before programming the "strap"
settings and powering it on after that. The runtime PM APIs namely
pm_runtime_put_sync() and pm_runtime_get_sync() will decrement and
increment the usage counter respectively, causing GENPD to power off and
power on the PCIe Controller.
Fixes: f3e25911a430 ("PCI: j721e: Add TI J721E PCIe driver")
Signed-off-by: Siddharth Vadapalli <s-vadapalli(a)ti.com>
Signed-off-by: Manivannan Sadhasivam <mani(a)kernel.org>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20250908120828.1471776-1-s-vadapalli@ti.com
diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
index cfca13a4c840..5a9ae33e2b93 100644
--- a/drivers/pci/controller/cadence/pci-j721e.c
+++ b/drivers/pci/controller/cadence/pci-j721e.c
@@ -284,6 +284,25 @@ static int j721e_pcie_ctrl_init(struct j721e_pcie *pcie)
if (!ret)
offset = args.args[0];
+ /*
+ * The PCIe Controller's registers have different "reset-values"
+ * depending on the "strap" settings programmed into the PCIEn_CTRL
+ * register within the CTRL_MMR memory-mapped register space.
+ * The registers latch onto a "reset-value" based on the "strap"
+ * settings sampled after the PCIe Controller is powered on.
+ * To ensure that the "reset-values" are sampled accurately, power
+ * off the PCIe Controller before programming the "strap" settings
+ * and power it on after that. The runtime PM APIs namely
+ * pm_runtime_put_sync() and pm_runtime_get_sync() will decrement and
+ * increment the usage counter respectively, causing GENPD to power off
+ * and power on the PCIe Controller.
+ */
+ ret = pm_runtime_put_sync(dev);
+ if (ret < 0) {
+ dev_err(dev, "Failed to power off PCIe Controller\n");
+ return ret;
+ }
+
ret = j721e_pcie_set_mode(pcie, syscon, offset);
if (ret < 0) {
dev_err(dev, "Failed to set pci mode\n");
@@ -302,6 +321,12 @@ static int j721e_pcie_ctrl_init(struct j721e_pcie *pcie)
return ret;
}
+ ret = pm_runtime_get_sync(dev);
+ if (ret < 0) {
+ dev_err(dev, "Failed to power on PCIe Controller\n");
+ return ret;
+ }
+
/* Enable ACSPCIE refclk output if the optional property exists */
syscon = syscon_regmap_lookup_by_phandle_optional(node,
"ti,syscon-acspcie-proxy-ctrl");
The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x 42f9c66a6d0cc45758dab77233c5460e1cf003df
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101638-carry-unwashed-bba6@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 42f9c66a6d0cc45758dab77233c5460e1cf003df Mon Sep 17 00:00:00 2001
From: Niklas Cassel <cassel(a)kernel.org>
Date: Mon, 22 Sep 2025 16:08:25 +0200
Subject: [PATCH] PCI: tegra194: Reset BARs when running in PCIe endpoint mode
Tegra already defines all BARs except BAR0 as BAR_RESERVED. This is
sufficient for pci-epf-test to not allocate backing memory and to not call
set_bar() for those BARs. However, marking a BAR as BAR_RESERVED does not
mean that the BAR gets disabled.
The host side driver, pci_endpoint_test, simply does an ioremap for all
enabled BARs and will run tests against all enabled BARs, so it will run
tests against the BARs marked as BAR_RESERVED.
After running the BAR tests (which will write to all enabled BARs), the
inbound address translation is broken. This is because the tegra controller
exposes the ATU Port Logic Structure in BAR4, so when BAR4 is written, the
inbound address translation settings get overwritten.
To avoid this, implement the dw_pcie_ep_ops .init() callback and start off
by disabling all BARs (pci-epf-test will later enable/configure BARs that
are not defined as BAR_RESERVED).
This matches the behavior of other PCIe endpoint drivers: dra7xx, imx6,
layerscape-ep, artpec6, dw-rockchip, qcom-ep, rcar-gen4, and uniphier-ep.
With this, the PCI endpoint kselftest test case CONSECUTIVE_BAR_TEST (which
was specifically made to detect address translation issues) passes.
Fixes: c57247f940e8 ("PCI: tegra: Add support for PCIe endpoint mode in Tegra194")
Signed-off-by: Niklas Cassel <cassel(a)kernel.org>
Signed-off-by: Manivannan Sadhasivam <mani(a)kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas(a)google.com>
Cc: stable(a)vger.kernel.org
Link: https://patch.msgid.link/20250922140822.519796-7-cassel@kernel.org
diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
index fe418b9bfbb4..359d92dca86a 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -1941,6 +1941,15 @@ static irqreturn_t tegra_pcie_ep_pex_rst_irq(int irq, void *arg)
return IRQ_HANDLED;
}
+static void tegra_pcie_ep_init(struct dw_pcie_ep *ep)
+{
+ struct dw_pcie *pci = to_dw_pcie_from_ep(ep);
+ enum pci_barno bar;
+
+ for (bar = 0; bar < PCI_STD_NUM_BARS; bar++)
+ dw_pcie_ep_reset_bar(pci, bar);
+};
+
static int tegra_pcie_ep_raise_intx_irq(struct tegra_pcie_dw *pcie, u16 irq)
{
/* Tegra194 supports only INTA */
@@ -2016,6 +2025,7 @@ tegra_pcie_ep_get_features(struct dw_pcie_ep *ep)
}
static const struct dw_pcie_ep_ops pcie_ep_ops = {
+ .init = tegra_pcie_ep_init,
.raise_irq = tegra_pcie_ep_raise_irq,
.get_features = tegra_pcie_ep_get_features,
};
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y
git checkout FETCH_HEAD
git cherry-pick -x 29e0b471ccbd674d20d4bbddea1a51e7105212c5
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101621-blah-dyslexic-116b@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 29e0b471ccbd674d20d4bbddea1a51e7105212c5 Mon Sep 17 00:00:00 2001
From: Pratyush Yadav <pratyush(a)kernel.org>
Date: Sat, 6 Sep 2025 00:29:55 +0530
Subject: [PATCH] spi: cadence-quadspi: Flush posted register writes before
INDAC access
cqspi_indirect_read_execute() and cqspi_indirect_write_execute() first
set the enable bit on APB region and then start reading/writing to the
AHB region. On TI K3 SoCs these regions lie on different endpoints. This
means that the order of the two operations is not guaranteed, and they
might be reordered at the interconnect level.
It is possible for the AHB write to be executed before the APB write to
enable the indirect controller, causing the transaction to be invalid
and the write erroring out. Read back the APB region write before
accessing the AHB region to make sure the write got flushed and the race
condition is eliminated.
Fixes: 140623410536 ("mtd: spi-nor: Add driver for Cadence Quad SPI Flash Controller")
CC: stable(a)vger.kernel.org
Reviewed-by: Pratyush Yadav <pratyush(a)kernel.org>
Signed-off-by: Pratyush Yadav <pratyush(a)kernel.org>
Signed-off-by: Santhosh Kumar K <s-k6(a)ti.com>
Message-ID: <20250905185958.3575037-2-s-k6(a)ti.com>
Signed-off-by: Mark Brown <broonie(a)kernel.org>
diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c
index 9bf823348cd3..eaf9a0f522d5 100644
--- a/drivers/spi/spi-cadence-quadspi.c
+++ b/drivers/spi/spi-cadence-quadspi.c
@@ -764,6 +764,7 @@ static int cqspi_indirect_read_execute(struct cqspi_flash_pdata *f_pdata,
reinit_completion(&cqspi->transfer_complete);
writel(CQSPI_REG_INDIRECTRD_START_MASK,
reg_base + CQSPI_REG_INDIRECTRD);
+ readl(reg_base + CQSPI_REG_INDIRECTRD); /* Flush posted write. */
while (remaining > 0) {
if (use_irq &&
@@ -1090,6 +1091,8 @@ static int cqspi_indirect_write_execute(struct cqspi_flash_pdata *f_pdata,
reinit_completion(&cqspi->transfer_complete);
writel(CQSPI_REG_INDIRECTWR_START_MASK,
reg_base + CQSPI_REG_INDIRECTWR);
+ readl(reg_base + CQSPI_REG_INDIRECTWR); /* Flush posted write. */
+
/*
* As per 66AK2G02 TRM SPRUHY8F section 11.15.5.3 Indirect Access
* Controller programming sequence, couple of cycles of
The patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y
git checkout FETCH_HEAD
git cherry-pick -x 1ad55767e77a853c98752ed1e33b68049a243bd7
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable(a)vger.kernel.org>' --in-reply-to '2025101635-laurel-crawling-2104@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 1ad55767e77a853c98752ed1e33b68049a243bd7 Mon Sep 17 00:00:00 2001
From: Pratyush Yadav <pratyush(a)kernel.org>
Date: Sat, 6 Sep 2025 00:29:56 +0530
Subject: [PATCH] spi: cadence-quadspi: Flush posted register writes before DAC
access
cqspi_read_setup() and cqspi_write_setup() program the address width as
the last step in the setup. This is likely to be immediately followed by
a DAC region read/write. On TI K3 SoCs the DAC region is on a different
endpoint from the register region. This means that the order of the two
operations is not guaranteed, and they might be reordered at the
interconnect level. It is possible that the DAC read/write goes through
before the address width update goes through. In this situation if the
previous command used a different address width the OSPI command is sent
with the wrong number of address bytes, resulting in an invalid command
and undefined behavior.
Read back the size register to make sure the write gets flushed before
accessing the DAC region.
Fixes: 140623410536 ("mtd: spi-nor: Add driver for Cadence Quad SPI Flash Controller")
CC: stable(a)vger.kernel.org
Reviewed-by: Pratyush Yadav <pratyush(a)kernel.org>
Signed-off-by: Pratyush Yadav <pratyush(a)kernel.org>
Signed-off-by: Santhosh Kumar K <s-k6(a)ti.com>
Message-ID: <20250905185958.3575037-3-s-k6(a)ti.com>
Signed-off-by: Mark Brown <broonie(a)kernel.org>
diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c
index eaf9a0f522d5..447a32a08a93 100644
--- a/drivers/spi/spi-cadence-quadspi.c
+++ b/drivers/spi/spi-cadence-quadspi.c
@@ -719,6 +719,7 @@ static int cqspi_read_setup(struct cqspi_flash_pdata *f_pdata,
reg &= ~CQSPI_REG_SIZE_ADDRESS_MASK;
reg |= (op->addr.nbytes - 1);
writel(reg, reg_base + CQSPI_REG_SIZE);
+ readl(reg_base + CQSPI_REG_SIZE); /* Flush posted write. */
return 0;
}
@@ -1063,6 +1064,7 @@ static int cqspi_write_setup(struct cqspi_flash_pdata *f_pdata,
reg &= ~CQSPI_REG_SIZE_ADDRESS_MASK;
reg |= (op->addr.nbytes - 1);
writel(reg, reg_base + CQSPI_REG_SIZE);
+ readl(reg_base + CQSPI_REG_SIZE); /* Flush posted write. */
return 0;
}